From c195fd5a4cbadb1b235b5cb1a203a58ab856bbd7 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Tue, 17 Oct 2023 19:44:50 +0300 Subject: [PATCH 01/56] added ability to add global prefix for all topics --- .../DefaultNotificationCenter.java | 6 +- .../queue/DefaultTbClusterService.java | 24 +++--- .../DefaultSubscriptionManagerService.java | 16 ++-- .../DefaultTbCoreToTransportService.java | 10 +-- .../src/main/resources/thingsboard.yml | 1 + .../discovery/HashPartitionServiceTest.java | 5 +- .../queue/DefaultTbClusterServiceTest.java | 86 +++++++++---------- .../queue/discovery/HashPartitionService.java | 11 ++- ...onsTopicService.java => TopicService.java} | 19 +++- .../RemoteNotificationRuleProcessor.java | 6 +- .../provider/AwsSqsMonolithQueueFactory.java | 42 ++++----- .../provider/AwsSqsTbCoreQueueFactory.java | 36 ++++---- .../AwsSqsTbRuleEngineQueueFactory.java | 26 +++--- .../AwsSqsTbVersionControlQueueFactory.java | 12 ++- .../provider/AwsSqsTransportQueueFactory.java | 20 +++-- .../InMemoryMonolithQueueFactory.java | 42 ++++----- .../InMemoryTbTransportQueueFactory.java | 20 +++-- .../provider/KafkaMonolithQueueFactory.java | 58 ++++++------- .../provider/KafkaTbCoreQueueFactory.java | 46 +++++----- .../KafkaTbRuleEngineQueueFactory.java | 28 +++--- .../KafkaTbTransportQueueFactory.java | 24 +++--- .../KafkaTbVersionControlQueueFactory.java | 14 +-- .../provider/PubSubMonolithQueueFactory.java | 12 +-- .../provider/PubSubTbCoreQueueFactory.java | 10 +-- .../PubSubTbRuleEngineQueueFactory.java | 26 +++--- .../PubSubTbVersionControlQueueFactory.java | 12 ++- .../provider/PubSubTransportQueueFactory.java | 20 +++-- .../RabbitMqMonolithQueueFactory.java | 42 ++++----- .../provider/RabbitMqTbCoreQueueFactory.java | 34 ++++---- .../RabbitMqTbRuleEngineQueueFactory.java | 26 +++--- .../RabbitMqTbVersionControlQueueFactory.java | 12 ++- .../RabbitMqTransportQueueFactory.java | 20 +++-- .../ServiceBusMonolithQueueFactory.java | 40 ++++----- .../ServiceBusTbCoreQueueFactory.java | 34 ++++---- .../ServiceBusTbRuleEngineQueueFactory.java | 26 +++--- ...erviceBusTbVersionControlQueueFactory.java | 12 ++- .../ServiceBusTransportQueueFactory.java | 20 +++-- .../service/DefaultTransportService.java | 11 ++- .../DefaultClusterVersionControlService.java | 6 +- .../src/main/resources/tb-vc-executor.yml | 1 + .../src/main/resources/tb-coap-transport.yml | 1 + .../src/main/resources/tb-http-transport.yml | 1 + .../src/main/resources/tb-lwm2m-transport.yml | 1 + .../src/main/resources/tb-mqtt-transport.yml | 1 + .../src/main/resources/tb-snmp-transport.yml | 1 + 45 files changed, 496 insertions(+), 425 deletions(-) rename common/queue/src/main/java/org/thingsboard/server/queue/discovery/{NotificationsTopicService.java => TopicService.java} (75%) diff --git a/application/src/main/java/org/thingsboard/server/service/notification/DefaultNotificationCenter.java b/application/src/main/java/org/thingsboard/server/service/notification/DefaultNotificationCenter.java index f6c77691da..b4ba871edf 100644 --- a/application/src/main/java/org/thingsboard/server/service/notification/DefaultNotificationCenter.java +++ b/application/src/main/java/org/thingsboard/server/service/notification/DefaultNotificationCenter.java @@ -64,7 +64,7 @@ import org.thingsboard.server.dao.notification.NotificationTemplateService; import org.thingsboard.server.dao.util.limits.RateLimitService; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.provider.TbQueueProducerProvider; import org.thingsboard.server.service.executors.NotificationExecutorService; import org.thingsboard.server.service.notification.channels.NotificationChannel; @@ -94,7 +94,7 @@ public class DefaultNotificationCenter extends AbstractSubscriptionService imple private final NotificationTemplateService notificationTemplateService; private final NotificationSettingsService notificationSettingsService; private final NotificationExecutorService notificationExecutor; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbQueueProducerProvider producerProvider; private final RateLimitService rateLimitService; @@ -431,7 +431,7 @@ public class DefaultNotificationCenter extends AbstractSubscriptionService imple TransportProtos.ToCoreNotificationMsg notificationRequestUpdateProto = TbSubscriptionUtils.notificationRequestUpdateToProto(tenantId, update); Set coreServices = new HashSet<>(partitionService.getAllServiceIds(ServiceType.TB_CORE)); for (String serviceId : coreServices) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceId); producerProvider.getTbCoreNotificationsMsgProducer().send(tpi, new TbProtoQueueMsg<>(UUID.randomUUID(), notificationRequestUpdateProto), null); } }); 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 53ef38d96a..4cf290ed37 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 @@ -68,7 +68,7 @@ import org.thingsboard.server.queue.TbQueueCallback; import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.common.MultipleTbQueueCallbackWrapper; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.PartitionService; import org.thingsboard.server.queue.provider.TbQueueProducerProvider; import org.thingsboard.server.queue.util.DataDecodingEncodingService; @@ -109,7 +109,7 @@ public class DefaultTbClusterService implements TbClusterService { @Lazy private OtaPackageStateService otaPackageStateService; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final DataDecodingEncodingService encodingService; private final TbDeviceProfileCache deviceProfileCache; private final TbAssetProfileCache assetProfileCache; @@ -149,7 +149,7 @@ public class DefaultTbClusterService implements TbClusterService { @Override public void pushNotificationToCore(String serviceId, FromDeviceRpcResponse response, TbQueueCallback callback) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceId); log.trace("PUSHING msg: {} to:{}", response, tpi); FromDeviceRPCResponseProto.Builder builder = FromDeviceRPCResponseProto.newBuilder() .setRequestIdMSB(response.getId().getMostSignificantBits()) @@ -224,7 +224,7 @@ public class DefaultTbClusterService implements TbClusterService { @Override public void pushNotificationToRuleEngine(String serviceId, FromDeviceRpcResponse response, TbQueueCallback callback) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceId); log.trace("PUSHING msg: {} to:{}", response, tpi); FromDeviceRPCResponseProto.Builder builder = FromDeviceRPCResponseProto.newBuilder() .setRequestIdMSB(response.getId().getMostSignificantBits()) @@ -245,7 +245,7 @@ public class DefaultTbClusterService implements TbClusterService { } return; } - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, serviceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, serviceId); log.trace("PUSHING msg: {} to:{}", response, tpi); producerProvider.getTransportNotificationsMsgProducer().send(tpi, new TbProtoQueueMsg<>(UUID.randomUUID(), response), callback); toTransportNfs.incrementAndGet(); @@ -353,7 +353,7 @@ public class DefaultTbClusterService implements TbClusterService { Set tbTransportServices = partitionService.getAllServiceIds(ServiceType.TB_TRANSPORT); TbQueueCallback proxyCallback = callback != null ? new MultipleTbQueueCallbackWrapper(tbTransportServices.size(), callback) : null; for (String transportServiceId : tbTransportServices) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, transportServiceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, transportServiceId); toTransportNfProducer.send(tpi, new TbProtoQueueMsg<>(UUID.randomUUID(), transportMsg), proxyCallback); toTransportNfs.incrementAndGet(); } @@ -388,7 +388,7 @@ public class DefaultTbClusterService implements TbClusterService { TbQueueProducer> toCoreNfProducer = producerProvider.getTbCoreNotificationsMsgProducer(); Set tbCoreServices = partitionService.getAllServiceIds(ServiceType.TB_CORE); for (String serviceId : tbCoreServices) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceId); toCoreNfProducer.send(tpi, new TbProtoQueueMsg<>(edgeId.getId(), toCoreMsg), null); toCoreNfs.incrementAndGet(); } @@ -412,7 +412,7 @@ public class DefaultTbClusterService implements TbClusterService { TbQueueProducer> toCoreNfProducer = producerProvider.getTbCoreNotificationsMsgProducer(); Set tbCoreServices = partitionService.getAllServiceIds(ServiceType.TB_CORE); for (String serviceId : tbCoreServices) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceId); ToCoreNotificationMsg toCoreMsg = ToCoreNotificationMsg.newBuilder().setComponentLifecycleMsg(ByteString.copyFrom(msgBytes)).build(); toCoreNfProducer.send(tpi, new TbProtoQueueMsg<>(msg.getEntityId().getId(), toCoreMsg), null); toCoreNfs.incrementAndGet(); @@ -421,7 +421,7 @@ public class DefaultTbClusterService implements TbClusterService { tbRuleEngineServices.removeAll(tbCoreServices); } for (String serviceId : tbRuleEngineServices) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceId); ToRuleEngineNotificationMsg toRuleEngineMsg = ToRuleEngineNotificationMsg.newBuilder().setComponentLifecycleMsg(ByteString.copyFrom(msgBytes)).build(); toRuleEngineProducer.send(tpi, new TbProtoQueueMsg<>(msg.getEntityId().getId(), toRuleEngineMsg), null); toRuleEngineNfs.incrementAndGet(); @@ -576,17 +576,17 @@ public class DefaultTbClusterService implements TbClusterService { tbCoreServices.removeAll(tbRuleEngineServices); for (String ruleEngineServiceId : tbRuleEngineServices) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, ruleEngineServiceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, ruleEngineServiceId); producerProvider.getRuleEngineNotificationsMsgProducer().send(tpi, new TbProtoQueueMsg<>(UUID.randomUUID(), ruleEngineMsg), null); toRuleEngineNfs.incrementAndGet(); } for (String coreServiceId : tbCoreServices) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, coreServiceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, coreServiceId); producerProvider.getTbCoreNotificationsMsgProducer().send(tpi, new TbProtoQueueMsg<>(UUID.randomUUID(), coreMsg), null); toCoreNfs.incrementAndGet(); } for (String transportServiceId : tbTransportServices) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, transportServiceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, transportServiceId); producerProvider.getTransportNotificationsMsgProducer().send(tpi, new TbProtoQueueMsg<>(UUID.randomUUID(), transportMsg), null); toTransportNfs.incrementAndGet(); } diff --git a/application/src/main/java/org/thingsboard/server/service/subscription/DefaultSubscriptionManagerService.java b/application/src/main/java/org/thingsboard/server/service/subscription/DefaultSubscriptionManagerService.java index 60fce13560..4feefc5a68 100644 --- a/application/src/main/java/org/thingsboard/server/service/subscription/DefaultSubscriptionManagerService.java +++ b/application/src/main/java/org/thingsboard/server/service/subscription/DefaultSubscriptionManagerService.java @@ -51,7 +51,7 @@ import org.thingsboard.server.gen.transport.TransportProtos.TbSubscriptionUpdate import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.PartitionService; import org.thingsboard.server.queue.discovery.TbApplicationEventListener; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; @@ -90,7 +90,7 @@ public class DefaultSubscriptionManagerService extends TbApplicationEventListene private final AttributesService attrService; private final TimeseriesService tsService; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final PartitionService partitionService; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueProducerProvider producerProvider; @@ -356,7 +356,7 @@ public class DefaultSubscriptionManagerService extends TbApplicationEventListene } else { log.trace("[{}][{}][{}] Subscription session is not managed by current service (update: {})", subscription.getServiceId(), subscription.getEntityId(), subscription.getSessionId(), subscriptionUpdate); - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, subscription.getServiceId()); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, subscription.getServiceId()); ToCoreNotificationMsg updateProto = TbSubscriptionUtils.notificationsSubUpdateToProto(subscription, subscriptionUpdate); TbProtoQueueMsg queueMsg = new TbProtoQueueMsg<>(subscription.getEntityId().getId(), updateProto); toCoreNotificationsProducer.send(tpi, queueMsg, null); @@ -439,7 +439,7 @@ public class DefaultSubscriptionManagerService extends TbApplicationEventListene TelemetrySubscriptionUpdate update = new TelemetrySubscriptionUpdate(s.getSubscriptionId(), subscriptionUpdate); localSubscriptionService.onSubscriptionUpdate(s.getSessionId(), update, TbCallback.EMPTY); } else { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, s.getServiceId()); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, s.getServiceId()); toCoreNotificationsProducer.send(tpi, toProto(s, subscriptionUpdate, ignoreEmptyUpdates), null); } } @@ -464,7 +464,7 @@ public class DefaultSubscriptionManagerService extends TbApplicationEventListene AlarmSubscriptionUpdate update = new AlarmSubscriptionUpdate(s.getSubscriptionId(), alarm, deleted); localSubscriptionService.onSubscriptionUpdate(s.getSessionId(), update, TbCallback.EMPTY); } else { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, s.getServiceId()); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, s.getServiceId()); toCoreNotificationsProducer.send(tpi, toProto(s, alarm, deleted), null); } }); @@ -504,7 +504,7 @@ public class DefaultSubscriptionManagerService extends TbApplicationEventListene } }); if (!missedUpdates.isEmpty()) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, subscription.getServiceId()); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, subscription.getServiceId()); toCoreNotificationsProducer.send(tpi, toProto(subscription, missedUpdates), null); } }, @@ -527,7 +527,7 @@ public class DefaultSubscriptionManagerService extends TbApplicationEventListene DonAsynchron.withCallback(tsService.findLatest(subscription.getTenantId(), subscription.getEntityId(), subscription.getKeyStates().keySet()), missedUpdates -> { if (missedUpdates != null && !missedUpdates.isEmpty()) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, subscription.getServiceId()); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, subscription.getServiceId()); toCoreNotificationsProducer.send(tpi, toProto(subscription, missedUpdates), null); } }, @@ -546,7 +546,7 @@ public class DefaultSubscriptionManagerService extends TbApplicationEventListene DonAsynchron.withCallback(tsService.findAll(subscription.getTenantId(), subscription.getEntityId(), queries), missedUpdates -> { if (missedUpdates != null && !missedUpdates.isEmpty()) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, subscription.getServiceId()); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, subscription.getServiceId()); toCoreNotificationsProducer.send(tpi, toProto(subscription, missedUpdates), null); } }, diff --git a/application/src/main/java/org/thingsboard/server/service/transport/DefaultTbCoreToTransportService.java b/application/src/main/java/org/thingsboard/server/service/transport/DefaultTbCoreToTransportService.java index b87758ace5..380ba34f91 100644 --- a/application/src/main/java/org/thingsboard/server/service/transport/DefaultTbCoreToTransportService.java +++ b/application/src/main/java/org/thingsboard/server/service/transport/DefaultTbCoreToTransportService.java @@ -24,7 +24,7 @@ import org.thingsboard.server.queue.TbQueueCallback; import org.thingsboard.server.queue.TbQueueMsgMetadata; import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.provider.TbQueueProducerProvider; import org.thingsboard.server.queue.util.TbCoreComponent; @@ -38,11 +38,11 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; @TbCoreComponent public class DefaultTbCoreToTransportService implements TbCoreToTransportService { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbQueueProducer> tbTransportProducer; - public DefaultTbCoreToTransportService(NotificationsTopicService notificationsTopicService, TbQueueProducerProvider tbQueueProducerProvider) { - this.notificationsTopicService = notificationsTopicService; + public DefaultTbCoreToTransportService(TopicService topicService, TbQueueProducerProvider tbQueueProducerProvider) { + this.topicService = topicService; this.tbTransportProducer = tbQueueProducerProvider.getTransportNotificationsMsgProducer(); } @@ -60,7 +60,7 @@ public class DefaultTbCoreToTransportService implements TbCoreToTransportService } return; } - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, nodeId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, nodeId); UUID sessionId = new UUID(msg.getSessionIdMSB(), msg.getSessionIdLSB()); log.trace("[{}][{}] Pushing session data to topic: {}", tpi.getFullTopicName(), sessionId, msg); TbProtoQueueMsg queueMsg = new TbProtoQueueMsg<>(NULL_UUID, msg); diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index b511989c8b..3454be5ade 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1270,6 +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) + prefix: "${TB_QUEUE_PREFIX:}" # Global queue prefix. Used for all topics and consumer groups Empty by default in_memory: stats: # For debug level diff --git a/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java b/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java index ef87794d96..511faa6a2b 100644 --- a/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java @@ -77,6 +77,7 @@ public class HashPartitionServiceTest { private TenantRoutingInfoService routingInfoService; private ApplicationEventPublisher applicationEventPublisher; private QueueRoutingInfoService queueRoutingInfoService; + private TopicService topicService; private String hashFunctionName = "murmur3_128"; @@ -86,6 +87,7 @@ public class HashPartitionServiceTest { applicationEventPublisher = mock(ApplicationEventPublisher.class); routingInfoService = mock(TenantRoutingInfoService.class); queueRoutingInfoService = mock(QueueRoutingInfoService.class); + topicService = mock(TopicService.class); clusterRoutingService = createPartitionService(); ServiceInfo currentServer = ServiceInfo.newBuilder() .setServiceId("tb-core-0") @@ -393,7 +395,8 @@ public class HashPartitionServiceTest { HashPartitionService partitionService = new HashPartitionService(discoveryService, routingInfoService, applicationEventPublisher, - queueRoutingInfoService); + queueRoutingInfoService, + topicService); ReflectionTestUtils.setField(partitionService, "coreTopic", "tb.core"); ReflectionTestUtils.setField(partitionService, "corePartitions", 10); ReflectionTestUtils.setField(partitionService, "vcTopic", "tb.vc"); diff --git a/application/src/test/java/org/thingsboard/server/service/queue/DefaultTbClusterServiceTest.java b/application/src/test/java/org/thingsboard/server/service/queue/DefaultTbClusterServiceTest.java index 0bc1800896..233839bb5f 100644 --- a/application/src/test/java/org/thingsboard/server/service/queue/DefaultTbClusterServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/queue/DefaultTbClusterServiceTest.java @@ -32,7 +32,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.PartitionService; import org.thingsboard.server.queue.provider.TbQueueProducerProvider; import org.thingsboard.server.queue.util.DataDecodingEncodingService; @@ -78,7 +78,7 @@ public class DefaultTbClusterServiceTest { protected TbQueueProducerProvider producerProvider; @SpyBean - protected NotificationsTopicService notificationsTopicService; + protected TopicService topicService; @SpyBean protected TbClusterService clusterService; @@ -94,12 +94,12 @@ public class DefaultTbClusterServiceTest { clusterService.onQueueChange(createTestQueue()); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, MONOLITH); - verify(notificationsTopicService, never()).getNotificationsTopic(eq(ServiceType.TB_CORE), any()); - verify(notificationsTopicService, never()).getNotificationsTopic(eq(ServiceType.TB_TRANSPORT), any()); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, MONOLITH); + verify(topicService, never()).getNotificationsTopic(eq(ServiceType.TB_CORE), any()); + verify(topicService, never()).getNotificationsTopic(eq(ServiceType.TB_TRANSPORT), any()); verify(tbQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, MONOLITH)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, MONOLITH)), any(TbProtoQueueMsg.class), isNull()); verify(producerProvider, never()).getTbCoreNotificationsMsgProducer(); verify(producerProvider, never()).getTransportNotificationsMsgProducer(); @@ -119,15 +119,15 @@ public class DefaultTbClusterServiceTest { clusterService.onQueueChange(createTestQueue()); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith1); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith2); - verify(notificationsTopicService, never()).getNotificationsTopic(eq(ServiceType.TB_CORE), any()); - verify(notificationsTopicService, never()).getNotificationsTopic(eq(ServiceType.TB_TRANSPORT), any()); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith1); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith2); + verify(topicService, never()).getNotificationsTopic(eq(ServiceType.TB_CORE), any()); + verify(topicService, never()).getNotificationsTopic(eq(ServiceType.TB_TRANSPORT), any()); verify(tbQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith1)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith1)), any(TbProtoQueueMsg.class), isNull()); verify(tbQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith2)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith2)), any(TbProtoQueueMsg.class), isNull()); verify(producerProvider, never()).getTbCoreNotificationsMsgProducer(); verify(producerProvider, never()).getTransportNotificationsMsgProducer(); @@ -147,20 +147,20 @@ public class DefaultTbClusterServiceTest { clusterService.onQueueChange(createTestQueue()); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, MONOLITH); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_TRANSPORT, TRANSPORT); - verify(notificationsTopicService, never()).getNotificationsTopic(eq(ServiceType.TB_CORE), any()); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, MONOLITH); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_TRANSPORT, TRANSPORT); + verify(topicService, never()).getNotificationsTopic(eq(ServiceType.TB_CORE), any()); verify(tbREQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, MONOLITH)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, MONOLITH)), any(TbProtoQueueMsg.class), isNull()); verify(tbTransportQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, TRANSPORT)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, TRANSPORT)), any(TbProtoQueueMsg.class), isNull()); verify(tbTransportQueueProducer, never()) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, MONOLITH)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, MONOLITH)), any(TbProtoQueueMsg.class), isNull()); verify(tbTransportQueueProducer, never()) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, MONOLITH)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_CORE, MONOLITH)), any(TbProtoQueueMsg.class), isNull()); verify(producerProvider, never()).getTbCoreNotificationsMsgProducer(); } @@ -193,47 +193,47 @@ public class DefaultTbClusterServiceTest { clusterService.onQueueChange(createTestQueue()); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith1); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith2); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, ruleEngine1); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, ruleEngine2); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith1); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith2); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, ruleEngine1); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_RULE_ENGINE, ruleEngine2); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_CORE, core1); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_CORE, core2); - verify(notificationsTopicService, never()).getNotificationsTopic(ServiceType.TB_CORE, monolith1); - verify(notificationsTopicService, never()).getNotificationsTopic(ServiceType.TB_CORE, monolith2); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_CORE, core1); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_CORE, core2); + verify(topicService, never()).getNotificationsTopic(ServiceType.TB_CORE, monolith1); + verify(topicService, never()).getNotificationsTopic(ServiceType.TB_CORE, monolith2); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_TRANSPORT, transport1); - verify(notificationsTopicService, times(1)).getNotificationsTopic(ServiceType.TB_TRANSPORT, transport2); - verify(notificationsTopicService, never()).getNotificationsTopic(ServiceType.TB_TRANSPORT, monolith1); - verify(notificationsTopicService, never()).getNotificationsTopic(ServiceType.TB_TRANSPORT, monolith2); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_TRANSPORT, transport1); + verify(topicService, times(1)).getNotificationsTopic(ServiceType.TB_TRANSPORT, transport2); + verify(topicService, never()).getNotificationsTopic(ServiceType.TB_TRANSPORT, monolith1); + verify(topicService, never()).getNotificationsTopic(ServiceType.TB_TRANSPORT, monolith2); verify(tbREQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith1)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith1)), any(TbProtoQueueMsg.class), isNull()); verify(tbREQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith2)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, monolith2)), any(TbProtoQueueMsg.class), isNull()); verify(tbREQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, ruleEngine1)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, ruleEngine1)), any(TbProtoQueueMsg.class), isNull()); verify(tbREQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, ruleEngine2)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, ruleEngine2)), any(TbProtoQueueMsg.class), isNull()); verify(tbCoreQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, core1)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_CORE, core1)), any(TbProtoQueueMsg.class), isNull()); verify(tbCoreQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, core2)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_CORE, core2)), any(TbProtoQueueMsg.class), isNull()); verify(tbCoreQueueProducer, never()) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, monolith1)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_CORE, monolith1)), any(TbProtoQueueMsg.class), isNull()); verify(tbCoreQueueProducer, never()) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, monolith2)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_CORE, monolith2)), any(TbProtoQueueMsg.class), isNull()); verify(tbTransportQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, transport1)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, transport1)), any(TbProtoQueueMsg.class), isNull()); verify(tbTransportQueueProducer, times(1)) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, transport2)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, transport2)), any(TbProtoQueueMsg.class), isNull()); verify(tbTransportQueueProducer, never()) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, monolith1)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, monolith1)), any(TbProtoQueueMsg.class), isNull()); verify(tbTransportQueueProducer, never()) - .send(eq(notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, monolith2)), any(TbProtoQueueMsg.class), isNull()); + .send(eq(topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, monolith2)), any(TbProtoQueueMsg.class), isNull()); } protected Queue createTestQueue() { diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java index 5be5caf6ff..22bbb48871 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java @@ -71,6 +71,7 @@ public class HashPartitionService implements PartitionService { private final TbServiceInfoProvider serviceInfoProvider; private final TenantRoutingInfoService tenantRoutingInfoService; private final QueueRoutingInfoService queueRoutingInfoService; + private final TopicService topicService; protected volatile ConcurrentMap> myPartitions = new ConcurrentHashMap<>(); @@ -88,11 +89,13 @@ public class HashPartitionService implements PartitionService { public HashPartitionService(TbServiceInfoProvider serviceInfoProvider, TenantRoutingInfoService tenantRoutingInfoService, ApplicationEventPublisher applicationEventPublisher, - QueueRoutingInfoService queueRoutingInfoService) { + QueueRoutingInfoService queueRoutingInfoService, + TopicService topicService) { this.serviceInfoProvider = serviceInfoProvider; this.tenantRoutingInfoService = tenantRoutingInfoService; this.applicationEventPublisher = applicationEventPublisher; this.queueRoutingInfoService = queueRoutingInfoService; + this.topicService = topicService; } @PostConstruct @@ -100,11 +103,11 @@ public class HashPartitionService implements PartitionService { this.hashFunction = forName(hashFunctionName); QueueKey coreKey = new QueueKey(ServiceType.TB_CORE); partitionSizesMap.put(coreKey, corePartitions); - partitionTopicsMap.put(coreKey, coreTopic); + partitionTopicsMap.put(coreKey, topicService.buildTopicName(coreTopic)); QueueKey vcKey = new QueueKey(ServiceType.TB_VC_EXECUTOR); partitionSizesMap.put(vcKey, vcPartitions); - partitionTopicsMap.put(vcKey, vcTopic); + partitionTopicsMap.put(vcKey, topicService.buildTopicName(topicService.buildTopicName(vcTopic))); if (!isTransport(serviceInfoProvider.getServiceType())) { doInitRuleEnginePartitions(); @@ -122,7 +125,7 @@ public class HashPartitionService implements PartitionService { List queueRoutingInfoList = getQueueRoutingInfos(); queueRoutingInfoList.forEach(queue -> { QueueKey queueKey = new QueueKey(ServiceType.TB_RULE_ENGINE, queue); - partitionTopicsMap.put(queueKey, queue.getQueueTopic()); + partitionTopicsMap.put(queueKey, topicService.buildTopicName(queue.getQueueTopic())); partitionSizesMap.put(queueKey, queue.getPartitions()); }); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/NotificationsTopicService.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java similarity index 75% rename from common/queue/src/main/java/org/thingsboard/server/queue/discovery/NotificationsTopicService.java rename to common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java index c209bd1aee..27023f1619 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/NotificationsTopicService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java @@ -15,7 +15,10 @@ */ package org.thingsboard.server.queue.discovery; +import lombok.Getter; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.msg.queue.ServiceType; import org.thingsboard.server.common.msg.queue.TopicPartitionInfo; @@ -23,7 +26,11 @@ import java.util.HashMap; import java.util.Map; @Service -public class NotificationsTopicService { +public class TopicService { + + @Getter + @Value("${queue.prefix}") + private String prefix; private Map tbCoreNotificationTopics = new HashMap<>(); private Map tbRuleEngineNotificationTopics = new HashMap<>(); @@ -49,6 +56,14 @@ public class NotificationsTopicService { } private TopicPartitionInfo buildNotificationsTopicPartitionInfo(ServiceType serviceType, String serviceId) { - return new TopicPartitionInfo(serviceType.name().toLowerCase() + ".notifications." + serviceId, null, null, false); + return buildTopicPartitionInfo(serviceType.name().toLowerCase() + ".notifications." + serviceId, null, null, false); + } + + public TopicPartitionInfo buildTopicPartitionInfo(String topic, TenantId tenantId, Integer partition, boolean myPartiotion) { + return new TopicPartitionInfo(buildTopicName(topic), tenantId, partition, myPartiotion); + } + + public String buildTopicName(String topic) { + return prefix.isBlank() ? topic : prefix + "." + topic; } } \ No newline at end of file diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/notification/RemoteNotificationRuleProcessor.java b/common/queue/src/main/java/org/thingsboard/server/queue/notification/RemoteNotificationRuleProcessor.java index 5304056a88..8ad5816b77 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/notification/RemoteNotificationRuleProcessor.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/notification/RemoteNotificationRuleProcessor.java @@ -26,7 +26,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; import org.thingsboard.server.common.msg.queue.TopicPartitionInfo; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.PartitionService; import org.thingsboard.server.queue.provider.TbQueueProducerProvider; import org.thingsboard.server.queue.util.DataDecodingEncodingService; @@ -41,7 +41,7 @@ public class RemoteNotificationRuleProcessor implements NotificationRuleProcesso private final NotificationDeduplicationService deduplicationService; private final TbQueueProducerProvider producerProvider; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final PartitionService partitionService; private final DataDecodingEncodingService encodingService; @@ -57,7 +57,7 @@ public class RemoteNotificationRuleProcessor implements NotificationRuleProcesso .setTrigger(ByteString.copyFrom(encodingService.encode(trigger))); partitionService.getAllServiceIds(ServiceType.TB_CORE).stream().findAny().ifPresent(serviceId -> { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceId); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceId); producerProvider.getTbCoreNotificationsMsgProducer().send(tpi, new TbProtoQueueMsg<>(UUID.randomUUID(), TransportProtos.ToCoreNotificationMsg.newBuilder() .setNotificationRuleProcessorMsg(msg) diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsMonolithQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsMonolithQueueFactory.java index 08609b13d0..5774e59d32 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsMonolithQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsMonolithQueueFactory.java @@ -40,7 +40,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; import org.thingsboard.server.queue.settings.TbQueueRemoteJsInvokeSettings; @@ -61,7 +61,7 @@ import java.nio.charset.StandardCharsets; @ConditionalOnExpression("'${queue.type:null}'=='aws-sqs' && '${service.type:null}'=='monolith'") public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngineQueueFactory, TbVersionControlQueueFactory { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbQueueCoreSettings coreSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRuleEngineSettings ruleEngineSettings; @@ -79,7 +79,7 @@ public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng private final TbQueueAdmin otaAdmin; private final TbQueueAdmin vcAdmin; - public AwsSqsMonolithQueueFactory(NotificationsTopicService notificationsTopicService, TbQueueCoreSettings coreSettings, + public AwsSqsMonolithQueueFactory(TopicService topicService, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, TbServiceInfoProvider serviceInfoProvider, TbQueueTransportApiSettings transportApiSettings, @@ -88,7 +88,7 @@ public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng TbQueueVersionControlSettings vcSettings, TbAwsSqsQueueAttributes sqsQueueAttributes, TbQueueRemoteJsInvokeSettings jsInvokeSettings) { - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.coreSettings = coreSettings; this.serviceInfoProvider = serviceInfoProvider; this.ruleEngineSettings = ruleEngineSettings; @@ -109,71 +109,71 @@ public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbAwsSqsProducerTemplate<>(ruleEngineAdmin, sqsSettings, ruleEngineSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(ruleEngineAdmin, sqsSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, ruleEngineSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, coreSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { - return new TbAwsSqsConsumerTemplate<>(vcAdmin, sqsSettings, vcSettings.getTopic(), + return new TbAwsSqsConsumerTemplate<>(vcAdmin, sqsSettings, topicService.buildTopicName(vcSettings.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()) ); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { - return new TbAwsSqsConsumerTemplate<>(ruleEngineAdmin, sqsSettings, configuration.getTopic(), + return new TbAwsSqsConsumerTemplate<>(ruleEngineAdmin, sqsSettings, topicService.buildTopicName(configuration.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbAwsSqsConsumerTemplate<>(notificationAdmin, sqsSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { - return new TbAwsSqsConsumerTemplate<>(coreAdmin, sqsSettings, coreSettings.getTopic(), + return new TbAwsSqsConsumerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbAwsSqsConsumerTemplate<>(notificationAdmin, sqsSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { - return new TbAwsSqsConsumerTemplate<>(transportApiAdmin, sqsSettings, transportApiSettings.getRequestsTopic(), + return new TbAwsSqsConsumerTemplate<>(transportApiAdmin, sqsSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new TbAwsSqsProducerTemplate<>(transportApiAdmin, sqsSettings, transportApiSettings.getResponsesTopic()); + return new TbAwsSqsProducerTemplate<>(transportApiAdmin, sqsSettings, topicService.buildTopicName(transportApiSettings.getResponsesTopic())); } @Override @@ -201,29 +201,29 @@ public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getUsageStatsTopic()); + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { - return new TbAwsSqsConsumerTemplate<>(coreAdmin, sqsSettings, coreSettings.getUsageStatsTopic(), + return new TbAwsSqsConsumerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { - return new TbAwsSqsConsumerTemplate<>(otaAdmin, sqsSettings, coreSettings.getOtaPackageTopic(), + return new TbAwsSqsConsumerTemplate<>(otaAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbAwsSqsProducerTemplate<>(otaAdmin, sqsSettings, coreSettings.getOtaPackageTopic()); + return new TbAwsSqsProducerTemplate<>(otaAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @Override public TbQueueProducer> createVersionControlMsgProducer() { - return new TbAwsSqsProducerTemplate<>(vcAdmin, sqsSettings, vcSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(vcAdmin, sqsSettings, topicService.buildTopicName(vcSettings.getTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbCoreQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbCoreQueueFactory.java index 257ac37408..d7f7a0412f 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbCoreQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbCoreQueueFactory.java @@ -38,7 +38,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; import org.thingsboard.server.queue.settings.TbQueueRemoteJsInvokeSettings; @@ -63,7 +63,7 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory { private final TbQueueRuleEngineSettings ruleEngineSettings; private final TbQueueCoreSettings coreSettings; private final TbQueueTransportApiSettings transportApiSettings; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRemoteJsInvokeSettings jsInvokeSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; @@ -81,7 +81,7 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory { TbQueueCoreSettings coreSettings, TbQueueTransportApiSettings transportApiSettings, TbQueueRuleEngineSettings ruleEngineSettings, - NotificationsTopicService notificationsTopicService, + TopicService topicService, TbQueueVersionControlSettings vcSettings, TbServiceInfoProvider serviceInfoProvider, TbQueueRemoteJsInvokeSettings jsInvokeSettings, @@ -91,7 +91,7 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory { this.coreSettings = coreSettings; this.transportApiSettings = transportApiSettings; this.ruleEngineSettings = ruleEngineSettings; - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.serviceInfoProvider = serviceInfoProvider; this.jsInvokeSettings = jsInvokeSettings; this.transportNotificationSettings = transportNotificationSettings; @@ -108,51 +108,51 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, ruleEngineSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, coreSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { - return new TbAwsSqsConsumerTemplate<>(coreAdmin, sqsSettings, coreSettings.getTopic(), + return new TbAwsSqsConsumerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbAwsSqsConsumerTemplate<>(notificationAdmin, sqsSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { - return new TbAwsSqsConsumerTemplate<>(transportApiAdmin, sqsSettings, transportApiSettings.getRequestsTopic(), + return new TbAwsSqsConsumerTemplate<>(transportApiAdmin, sqsSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new TbAwsSqsProducerTemplate<>(transportApiAdmin, sqsSettings, transportApiSettings.getResponsesTopic()); + return new TbAwsSqsProducerTemplate<>(transportApiAdmin, sqsSettings, topicService.buildTopicName(transportApiSettings.getResponsesTopic())); } @Override @@ -180,29 +180,29 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getUsageStatsTopic()); + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { - return new TbAwsSqsConsumerTemplate<>(coreAdmin, sqsSettings, coreSettings.getUsageStatsTopic(), + return new TbAwsSqsConsumerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { - return new TbAwsSqsConsumerTemplate<>(otaAdmin, sqsSettings, coreSettings.getOtaPackageTopic(), + return new TbAwsSqsConsumerTemplate<>(otaAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbAwsSqsProducerTemplate<>(otaAdmin, sqsSettings, coreSettings.getOtaPackageTopic()); + return new TbAwsSqsProducerTemplate<>(otaAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @Override public TbQueueProducer> createVersionControlMsgProducer() { - return new TbAwsSqsProducerTemplate<>(vcAdmin, sqsSettings, vcSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(vcAdmin, sqsSettings, topicService.buildTopicName(vcSettings.getTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbRuleEngineQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbRuleEngineQueueFactory.java index 9b1f9dba0d..9df4cc5c4a 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbRuleEngineQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbRuleEngineQueueFactory.java @@ -33,7 +33,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; import org.thingsboard.server.queue.settings.TbQueueRemoteJsInvokeSettings; @@ -52,7 +52,7 @@ import java.nio.charset.StandardCharsets; @ConditionalOnExpression("'${queue.type:null}'=='aws-sqs' && '${service.type:null}'=='tb-rule-engine'") public class AwsSqsTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbQueueCoreSettings coreSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRuleEngineSettings ruleEngineSettings; @@ -66,14 +66,14 @@ public class AwsSqsTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory private final TbQueueAdmin notificationAdmin; private final TbQueueAdmin otaAdmin; - public AwsSqsTbRuleEngineQueueFactory(NotificationsTopicService notificationsTopicService, TbQueueCoreSettings coreSettings, + public AwsSqsTbRuleEngineQueueFactory(TopicService topicService, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, TbServiceInfoProvider serviceInfoProvider, TbAwsSqsSettings sqsSettings, TbAwsSqsQueueAttributes sqsQueueAttributes, TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings) { - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.coreSettings = coreSettings; this.serviceInfoProvider = serviceInfoProvider; this.ruleEngineSettings = ruleEngineSettings; @@ -90,39 +90,39 @@ public class AwsSqsTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbAwsSqsProducerTemplate<>(ruleEngineAdmin, sqsSettings, ruleEngineSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(ruleEngineAdmin, sqsSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, ruleEngineSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, coreSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { - return new TbAwsSqsConsumerTemplate<>(ruleEngineAdmin, sqsSettings, configuration.getTopic(), + return new TbAwsSqsConsumerTemplate<>(ruleEngineAdmin, sqsSettings, topicService.buildTopicName(configuration.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbAwsSqsConsumerTemplate<>(notificationAdmin, sqsSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @@ -151,12 +151,12 @@ public class AwsSqsTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getUsageStatsTopic()); + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbAwsSqsProducerTemplate<>(otaAdmin, sqsSettings, coreSettings.getOtaPackageTopic()); + return new TbAwsSqsProducerTemplate<>(otaAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbVersionControlQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbVersionControlQueueFactory.java index 24453d3c5c..a8f69e6eab 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbVersionControlQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTbVersionControlQueueFactory.java @@ -22,6 +22,7 @@ import org.thingsboard.server.queue.TbQueueAdmin; import org.thingsboard.server.queue.TbQueueConsumer; import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.common.TbProtoQueueMsg; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; import org.thingsboard.server.queue.settings.TbQueueVersionControlSettings; import org.thingsboard.server.queue.sqs.TbAwsSqsAdmin; @@ -39,6 +40,7 @@ public class AwsSqsTbVersionControlQueueFactory implements TbVersionControlQueue private final TbAwsSqsSettings sqsSettings; private final TbQueueCoreSettings coreSettings; private final TbQueueVersionControlSettings vcSettings; + private final TopicService topicService; private final TbQueueAdmin coreAdmin; @@ -48,11 +50,13 @@ public class AwsSqsTbVersionControlQueueFactory implements TbVersionControlQueue public AwsSqsTbVersionControlQueueFactory(TbAwsSqsSettings sqsSettings, TbQueueCoreSettings coreSettings, TbQueueVersionControlSettings vcSettings, - TbAwsSqsQueueAttributes sqsQueueAttributes + TbAwsSqsQueueAttributes sqsQueueAttributes, + TopicService topicService ) { this.sqsSettings = sqsSettings; this.coreSettings = coreSettings; this.vcSettings = vcSettings; + this.topicService = topicService; this.coreAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getCoreAttributes()); this.notificationAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getNotificationsAttributes()); @@ -61,17 +65,17 @@ public class AwsSqsTbVersionControlQueueFactory implements TbVersionControlQueue @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getUsageStatsTopic()); + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, coreSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { - return new TbAwsSqsConsumerTemplate<>(vcAdmin, sqsSettings, vcSettings.getTopic(), + return new TbAwsSqsConsumerTemplate<>(vcAdmin, sqsSettings, topicService.buildTopicName(vcSettings.getTopic()), 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/AwsSqsTransportQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTransportQueueFactory.java index fa16ee9093..4818affc93 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTransportQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/AwsSqsTransportQueueFactory.java @@ -32,6 +32,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoQueueMsg; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; import org.thingsboard.server.queue.settings.TbQueueRuleEngineSettings; import org.thingsboard.server.queue.settings.TbQueueTransportApiSettings; @@ -54,6 +55,7 @@ public class AwsSqsTransportQueueFactory implements TbTransportQueueFactory { private final TbQueueCoreSettings coreSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRuleEngineSettings ruleEngineSettings; + private final TopicService topicService; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin transportApiAdmin; @@ -66,13 +68,15 @@ public class AwsSqsTransportQueueFactory implements TbTransportQueueFactory { TbServiceInfoProvider serviceInfoProvider, TbQueueCoreSettings coreSettings, TbAwsSqsQueueAttributes sqsQueueAttributes, - TbQueueRuleEngineSettings ruleEngineSettings) { + TbQueueRuleEngineSettings ruleEngineSettings, + TopicService topicService) { this.transportApiSettings = transportApiSettings; this.transportNotificationSettings = transportNotificationSettings; this.sqsSettings = sqsSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; this.ruleEngineSettings = ruleEngineSettings; + this.topicService = topicService; this.coreAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getCoreAttributes()); this.transportApiAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getTransportApiAttributes()); @@ -83,11 +87,11 @@ public class AwsSqsTransportQueueFactory implements TbTransportQueueFactory { @Override public TbQueueRequestTemplate, TbProtoQueueMsg> createTransportApiRequestTemplate() { TbQueueProducer> producerTemplate = - new TbAwsSqsProducerTemplate<>(transportApiAdmin, sqsSettings, transportApiSettings.getRequestsTopic()); + new TbAwsSqsProducerTemplate<>(transportApiAdmin, sqsSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic())); TbQueueConsumer> consumerTemplate = new TbAwsSqsConsumerTemplate<>(transportApiAdmin, sqsSettings, - transportApiSettings.getResponsesTopic() + "_" + serviceInfoProvider.getServiceId(), + topicService.buildTopicName(transportApiSettings.getResponsesTopic() + "_" + serviceInfoProvider.getServiceId()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiResponseMsg.parseFrom(msg.getData()), msg.getHeaders())); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder @@ -103,28 +107,28 @@ public class AwsSqsTransportQueueFactory implements TbTransportQueueFactory { @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbAwsSqsProducerTemplate<>(ruleEngineAdmin, sqsSettings, ruleEngineSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(ruleEngineAdmin, sqsSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, coreSettings.getTopic()); + return new TbAwsSqsProducerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createTransportNotificationsConsumer() { - return new TbAwsSqsConsumerTemplate<>(notificationAdmin, sqsSettings, transportNotificationSettings.getNotificationsTopic() + "_" + serviceInfoProvider.getServiceId(), + return new TbAwsSqsConsumerTemplate<>(notificationAdmin, sqsSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic() + "_" + serviceInfoProvider.getServiceId()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToTransportMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getUsageStatsTopic()); + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/InMemoryMonolithQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/InMemoryMonolithQueueFactory.java index 87fc8aa3db..933daac0df 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/InMemoryMonolithQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/InMemoryMonolithQueueFactory.java @@ -28,7 +28,7 @@ import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.memory.InMemoryStorage; import org.thingsboard.server.queue.memory.InMemoryTbQueueConsumer; @@ -44,7 +44,7 @@ import org.thingsboard.server.queue.settings.TbQueueVersionControlSettings; @ConditionalOnExpression("'${queue.type:null}'=='in-memory' && '${service.type:null}'=='monolith'") public class InMemoryMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngineQueueFactory, TbVersionControlQueueFactory { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbQueueCoreSettings coreSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRuleEngineSettings ruleEngineSettings; @@ -53,14 +53,14 @@ public class InMemoryMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE private final TbQueueTransportNotificationSettings transportNotificationSettings; private final InMemoryStorage storage; - public InMemoryMonolithQueueFactory(NotificationsTopicService notificationsTopicService, TbQueueCoreSettings coreSettings, + public InMemoryMonolithQueueFactory(TopicService topicService, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, TbQueueVersionControlSettings vcSettings, TbServiceInfoProvider serviceInfoProvider, TbQueueTransportApiSettings transportApiSettings, TbQueueTransportNotificationSettings transportNotificationSettings, InMemoryStorage storage) { - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.coreSettings = coreSettings; this.vcSettings = vcSettings; this.serviceInfoProvider = serviceInfoProvider; @@ -72,62 +72,62 @@ public class InMemoryMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, transportNotificationSettings.getNotificationsTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, ruleEngineSettings.getTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, ruleEngineSettings.getTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, coreSettings.getTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, coreSettings.getTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { - return new InMemoryTbQueueConsumer<>(storage, vcSettings.getTopic()); + return new InMemoryTbQueueConsumer<>(storage, topicService.buildTopicName(vcSettings.getTopic())); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { - return new InMemoryTbQueueConsumer<>(storage, configuration.getTopic()); + return new InMemoryTbQueueConsumer<>(storage, topicService.buildTopicName(configuration.getTopic())); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { - return new InMemoryTbQueueConsumer<>(storage, notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName()); + return new InMemoryTbQueueConsumer<>(storage, topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName()); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { - return new InMemoryTbQueueConsumer<>(storage, coreSettings.getTopic()); + return new InMemoryTbQueueConsumer<>(storage, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { - return new InMemoryTbQueueConsumer<>(storage, notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName()); + return new InMemoryTbQueueConsumer<>(storage, topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName()); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { - return new InMemoryTbQueueConsumer<>(storage, transportApiSettings.getRequestsTopic()); + return new InMemoryTbQueueConsumer<>(storage, topicService.buildTopicName(transportApiSettings.getRequestsTopic())); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new InMemoryTbQueueProducer<>(storage, transportApiSettings.getResponsesTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(transportApiSettings.getResponsesTopic())); } @Override @@ -137,27 +137,27 @@ public class InMemoryMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { - return new InMemoryTbQueueConsumer<>(storage, coreSettings.getUsageStatsTopic()); + return new InMemoryTbQueueConsumer<>(storage, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { - return new InMemoryTbQueueConsumer<>(storage, coreSettings.getOtaPackageTopic()); + return new InMemoryTbQueueConsumer<>(storage, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, coreSettings.getOtaPackageTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, coreSettings.getUsageStatsTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createVersionControlMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, vcSettings.getTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(vcSettings.getTopic())); } @Scheduled(fixedRateString = "${queue.in_memory.stats.print-interval-ms:60000}") diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/InMemoryTbTransportQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/InMemoryTbTransportQueueFactory.java index a789816c34..f578079a4f 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/InMemoryTbTransportQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/InMemoryTbTransportQueueFactory.java @@ -32,6 +32,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoQueueMsg; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.memory.InMemoryStorage; import org.thingsboard.server.queue.memory.InMemoryTbQueueConsumer; import org.thingsboard.server.queue.memory.InMemoryTbQueueProducer; @@ -48,26 +49,29 @@ public class InMemoryTbTransportQueueFactory implements TbTransportQueueFactory private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueCoreSettings coreSettings; private final InMemoryStorage storage; + private final TopicService topicService; public InMemoryTbTransportQueueFactory(TbQueueTransportApiSettings transportApiSettings, TbQueueTransportNotificationSettings transportNotificationSettings, TbServiceInfoProvider serviceInfoProvider, TbQueueCoreSettings coreSettings, - InMemoryStorage storage) { + InMemoryStorage storage, + TopicService topicService) { this.transportApiSettings = transportApiSettings; this.transportNotificationSettings = transportNotificationSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; this.storage = storage; + this.topicService = topicService; } @Override public TbQueueRequestTemplate, TbProtoQueueMsg> createTransportApiRequestTemplate() { InMemoryTbQueueProducer> producerTemplate = - new InMemoryTbQueueProducer<>(storage, transportApiSettings.getRequestsTopic()); + new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(transportApiSettings.getRequestsTopic())); InMemoryTbQueueConsumer> consumerTemplate = - new InMemoryTbQueueConsumer<>(storage, transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId()); + new InMemoryTbQueueConsumer<>(storage, topicService.buildTopicName(transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId())); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder , TbProtoQueueMsg> templateBuilder = DefaultTbQueueRequestTemplate.builder(); @@ -93,27 +97,27 @@ public class InMemoryTbTransportQueueFactory implements TbTransportQueueFactory @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, transportApiSettings.getRequestsTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(transportApiSettings.getRequestsTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, coreSettings.getTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, coreSettings.getTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createTransportNotificationsConsumer() { - return new InMemoryTbQueueConsumer<>(storage, transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId()); + return new InMemoryTbQueueConsumer<>(storage, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new InMemoryTbQueueProducer<>(storage, coreSettings.getUsageStatsTopic()); + return new InMemoryTbQueueProducer<>(storage, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaMonolithQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaMonolithQueueFactory.java index 22a16de64f..01a1c11656 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaMonolithQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaMonolithQueueFactory.java @@ -39,7 +39,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.kafka.TbKafkaAdmin; import org.thingsboard.server.queue.kafka.TbKafkaConsumerStatsService; @@ -62,7 +62,7 @@ import java.util.concurrent.atomic.AtomicLong; @ConditionalOnExpression("'${queue.type:null}'=='kafka' && '${service.type:null}'=='monolith'") public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngineQueueFactory, TbVersionControlQueueFactory { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbKafkaSettings kafkaSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueCoreSettings coreSettings; @@ -85,7 +85,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi private final AtomicLong consumerCount = new AtomicLong(); - public KafkaMonolithQueueFactory(NotificationsTopicService notificationsTopicService, TbKafkaSettings kafkaSettings, + public KafkaMonolithQueueFactory(TopicService topicService, TbKafkaSettings kafkaSettings, TbServiceInfoProvider serviceInfoProvider, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, @@ -95,7 +95,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi TbQueueVersionControlSettings vcSettings, TbKafkaConsumerStatsService consumerStatsService, TbKafkaTopicConfigs kafkaTopicConfigs) { - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.kafkaSettings = kafkaSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; @@ -122,7 +122,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("monolith-transport-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(transportNotificationSettings.getNotificationsTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -132,7 +132,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("monolith-rule-engine-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(ruleEngineSettings.getTopic())); requestBuilder.admin(ruleEngineAdmin); return requestBuilder.build(); } @@ -142,7 +142,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("monolith-rule-engine-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(ruleEngineSettings.getTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -152,7 +152,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("monolith-core-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getTopic())); requestBuilder.admin(coreAdmin); return requestBuilder.build(); } @@ -162,7 +162,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("monolith-core-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -171,9 +171,9 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi public TbQueueConsumer> createToVersionControlMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(vcSettings.getTopic()); + consumerBuilder.topic(topicService.buildTopicName(vcSettings.getTopic())); consumerBuilder.clientId("monolith-vc-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("monolith-vc-node"); + consumerBuilder.groupId(topicService.buildTopicName("monolith-vc-node")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(vcAdmin); consumerBuilder.statsService(consumerStatsService); @@ -185,9 +185,9 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi String queueName = configuration.getName(); TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(configuration.getTopic()); + consumerBuilder.topic(topicService.buildTopicName(configuration.getTopic())); consumerBuilder.clientId("re-" + queueName + "-consumer-" + serviceInfoProvider.getServiceId() + "-" + consumerCount.incrementAndGet()); - consumerBuilder.groupId("re-" + queueName + (configuration.getTenantId().isSysTenantId() ? "" : ("-" + configuration.getTenantId())) + "-consumer"); + consumerBuilder.groupId(topicService.buildTopicName("re-" + queueName + (configuration.getTenantId().isSysTenantId() ? "" : ("-" + configuration.getTenantId())) + "-consumer")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(ruleEngineAdmin); consumerBuilder.statsService(consumerStatsService); @@ -198,9 +198,9 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName()); + consumerBuilder.topic(topicService.buildTopicName(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName())); consumerBuilder.clientId("monolith-rule-engine-notifications-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("monolith-rule-engine-notifications-consumer-" + serviceInfoProvider.getServiceId()); + consumerBuilder.groupId(topicService.buildTopicName("monolith-rule-engine-notifications-consumer-" + serviceInfoProvider.getServiceId())); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(notificationAdmin); consumerBuilder.statsService(consumerStatsService); @@ -211,9 +211,9 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi public TbQueueConsumer> createToCoreMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(coreSettings.getTopic()); + consumerBuilder.topic(topicService.buildTopicName(coreSettings.getTopic())); consumerBuilder.clientId("monolith-core-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("monolith-core-consumer"); + consumerBuilder.groupId(topicService.buildTopicName("monolith-core-consumer")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(coreAdmin); consumerBuilder.statsService(consumerStatsService); @@ -224,9 +224,9 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName()); + consumerBuilder.topic(topicService.buildTopicName(topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName())); consumerBuilder.clientId("monolith-core-notifications-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("monolith-core-notifications-consumer-" + serviceInfoProvider.getServiceId()); + consumerBuilder.groupId(topicService.buildTopicName("monolith-core-notifications-consumer-" + serviceInfoProvider.getServiceId())); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(notificationAdmin); consumerBuilder.statsService(consumerStatsService); @@ -237,9 +237,9 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi public TbQueueConsumer> createTransportApiRequestConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(transportApiSettings.getRequestsTopic()); + consumerBuilder.topic(topicService.buildTopicName(transportApiSettings.getRequestsTopic())); consumerBuilder.clientId("monolith-transport-api-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("monolith-transport-api-consumer"); + consumerBuilder.groupId(topicService.buildTopicName("monolith-transport-api-consumer")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(transportApiRequestAdmin); consumerBuilder.statsService(consumerStatsService); @@ -251,7 +251,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("monolith-transport-api-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(transportApiSettings.getResponsesTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(transportApiSettings.getResponsesTopic())); requestBuilder.admin(transportApiResponseAdmin); return requestBuilder.build(); } @@ -294,9 +294,9 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(coreSettings.getUsageStatsTopic()); + consumerBuilder.topic(topicService.buildTopicName(coreSettings.getUsageStatsTopic())); consumerBuilder.clientId("monolith-us-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("monolith-us-consumer"); + consumerBuilder.groupId(topicService.buildTopicName("monolith-us-consumer")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(coreAdmin); consumerBuilder.statsService(consumerStatsService); @@ -307,9 +307,9 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(coreSettings.getOtaPackageTopic()); + consumerBuilder.topic(topicService.buildTopicName(coreSettings.getOtaPackageTopic())); consumerBuilder.clientId("monolith-ota-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("monolith-ota-consumer"); + consumerBuilder.groupId(topicService.buildTopicName("monolith-ota-consumer")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(fwUpdatesAdmin); consumerBuilder.statsService(consumerStatsService); @@ -321,7 +321,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("monolith-ota-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getOtaPackageTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getOtaPackageTopic())); requestBuilder.admin(fwUpdatesAdmin); return requestBuilder.build(); } @@ -331,7 +331,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("monolith-us-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getUsageStatsTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getUsageStatsTopic())); requestBuilder.admin(coreAdmin); return requestBuilder.build(); } @@ -341,7 +341,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("monolith-vc-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(vcSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(vcSettings.getTopic())); requestBuilder.admin(vcAdmin); return requestBuilder.build(); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbCoreQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbCoreQueueFactory.java index 9c25a5d420..ed546fc8aa 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbCoreQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbCoreQueueFactory.java @@ -38,7 +38,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.kafka.TbKafkaAdmin; import org.thingsboard.server.queue.kafka.TbKafkaConsumerStatsService; @@ -60,7 +60,7 @@ import java.nio.charset.StandardCharsets; @ConditionalOnExpression("'${queue.type:null}'=='kafka' && '${service.type:null}'=='tb-core'") public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbKafkaSettings kafkaSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueCoreSettings coreSettings; @@ -81,7 +81,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { private final TbQueueAdmin fwUpdatesAdmin; private final TbQueueAdmin vcAdmin; - public KafkaTbCoreQueueFactory(NotificationsTopicService notificationsTopicService, + public KafkaTbCoreQueueFactory(TopicService topicService, TbKafkaSettings kafkaSettings, TbServiceInfoProvider serviceInfoProvider, TbQueueCoreSettings coreSettings, @@ -92,7 +92,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { TbKafkaConsumerStatsService consumerStatsService, TbQueueTransportNotificationSettings transportNotificationSettings, TbKafkaTopicConfigs kafkaTopicConfigs) { - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.kafkaSettings = kafkaSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; @@ -119,7 +119,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-core-transport-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(transportNotificationSettings.getNotificationsTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -129,7 +129,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-core-rule-engine-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getTopic())); requestBuilder.admin(coreAdmin); return requestBuilder.build(); } @@ -139,7 +139,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-core-rule-engine-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(ruleEngineSettings.getTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -149,7 +149,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-core-to-core-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getTopic())); requestBuilder.admin(coreAdmin); return requestBuilder.build(); } @@ -159,7 +159,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-core-to-core-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -168,9 +168,9 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { public TbQueueConsumer> createToCoreMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(coreSettings.getTopic()); + consumerBuilder.topic(topicService.buildTopicName(coreSettings.getTopic())); consumerBuilder.clientId("tb-core-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("tb-core-node"); + consumerBuilder.groupId(topicService.buildTopicName("tb-core-node")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(coreAdmin); consumerBuilder.statsService(consumerStatsService); @@ -181,9 +181,9 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName()); + consumerBuilder.topic(topicService.buildTopicName(topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName())); consumerBuilder.clientId("tb-core-notifications-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("tb-core-notifications-node-" + serviceInfoProvider.getServiceId()); + consumerBuilder.groupId(topicService.buildTopicName("tb-core-notifications-node-" + serviceInfoProvider.getServiceId())); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(notificationAdmin); consumerBuilder.statsService(consumerStatsService); @@ -194,9 +194,9 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { public TbQueueConsumer> createTransportApiRequestConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(transportApiSettings.getRequestsTopic()); + consumerBuilder.topic(topicService.buildTopicName(transportApiSettings.getRequestsTopic())); consumerBuilder.clientId("tb-core-transport-api-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("tb-core-transport-api-consumer"); + consumerBuilder.groupId(topicService.buildTopicName("tb-core-transport-api-consumer")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(transportApiRequestAdmin); consumerBuilder.statsService(consumerStatsService); @@ -208,7 +208,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-core-transport-api-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(transportApiSettings.getResponsesTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(transportApiSettings.getResponsesTopic())); requestBuilder.admin(transportApiResponseAdmin); return requestBuilder.build(); } @@ -251,9 +251,9 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(coreSettings.getUsageStatsTopic()); + consumerBuilder.topic(topicService.buildTopicName(coreSettings.getUsageStatsTopic())); consumerBuilder.clientId("tb-core-us-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("tb-core-us-consumer"); + consumerBuilder.groupId(topicService.buildTopicName("tb-core-us-consumer")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(coreAdmin); consumerBuilder.statsService(consumerStatsService); @@ -264,9 +264,9 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(coreSettings.getOtaPackageTopic()); + consumerBuilder.topic(topicService.buildTopicName(coreSettings.getOtaPackageTopic())); consumerBuilder.clientId("tb-core-ota-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("tb-core-ota-consumer"); + consumerBuilder.groupId(topicService.buildTopicName("tb-core-ota-consumer")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(fwUpdatesAdmin); consumerBuilder.statsService(consumerStatsService); @@ -278,7 +278,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-core-ota-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getOtaPackageTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getOtaPackageTopic())); requestBuilder.admin(fwUpdatesAdmin); return requestBuilder.build(); } @@ -288,7 +288,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-core-us-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getUsageStatsTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getUsageStatsTopic())); requestBuilder.admin(coreAdmin); return requestBuilder.build(); } @@ -298,7 +298,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-core-vc-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(vcSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(vcSettings.getTopic())); requestBuilder.admin(vcAdmin); return requestBuilder.build(); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbRuleEngineQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbRuleEngineQueueFactory.java index 2e3bf784d7..202b209a26 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbRuleEngineQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbRuleEngineQueueFactory.java @@ -36,7 +36,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.kafka.TbKafkaAdmin; import org.thingsboard.server.queue.kafka.TbKafkaConsumerStatsService; @@ -57,7 +57,7 @@ import java.util.concurrent.atomic.AtomicLong; @ConditionalOnExpression("'${queue.type:null}'=='kafka' && '${service.type:null}'=='tb-rule-engine'") public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbKafkaSettings kafkaSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueCoreSettings coreSettings; @@ -74,7 +74,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { private final TbQueueAdmin fwUpdatesAdmin; private final AtomicLong consumerCount = new AtomicLong(); - public KafkaTbRuleEngineQueueFactory(NotificationsTopicService notificationsTopicService, TbKafkaSettings kafkaSettings, + public KafkaTbRuleEngineQueueFactory(TopicService topicService, TbKafkaSettings kafkaSettings, TbServiceInfoProvider serviceInfoProvider, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, @@ -82,7 +82,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { TbKafkaConsumerStatsService consumerStatsService, TbQueueTransportNotificationSettings transportNotificationSettings, TbKafkaTopicConfigs kafkaTopicConfigs) { - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.kafkaSettings = kafkaSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; @@ -104,7 +104,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-rule-engine-transport-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(transportNotificationSettings.getNotificationsTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -114,7 +114,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-rule-engine-to-rule-engine-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(ruleEngineSettings.getTopic())); requestBuilder.admin(ruleEngineAdmin); return requestBuilder.build(); } @@ -124,7 +124,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-rule-engine-to-rule-engine-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(ruleEngineSettings.getTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -134,7 +134,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-rule-engine-to-core-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getTopic())); requestBuilder.admin(coreAdmin); return requestBuilder.build(); } @@ -144,7 +144,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-rule-engine-ota-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getOtaPackageTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getOtaPackageTopic())); requestBuilder.admin(fwUpdatesAdmin); return requestBuilder.build(); } @@ -154,7 +154,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-rule-engine-to-core-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -164,9 +164,9 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { String queueName = configuration.getName(); TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(configuration.getTopic()); + consumerBuilder.topic(topicService.buildTopicName(configuration.getTopic())); consumerBuilder.clientId("re-" + queueName + "-consumer-" + serviceInfoProvider.getServiceId() + "-" + consumerCount.incrementAndGet()); - consumerBuilder.groupId("re-" + queueName + (configuration.getTenantId().isSysTenantId() ? "" : ("-" + configuration.getTenantId())) + "-consumer"); + consumerBuilder.groupId(topicService.buildTopicName("re-" + queueName + (configuration.getTenantId().isSysTenantId() ? "" : ("-" + configuration.getTenantId())) + "-consumer")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(ruleEngineAdmin); consumerBuilder.statsService(consumerStatsService); @@ -177,7 +177,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName()); + consumerBuilder.topic(topicService.buildTopicName(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName())); consumerBuilder.clientId("tb-rule-engine-notifications-consumer-" + serviceInfoProvider.getServiceId()); consumerBuilder.groupId("tb-rule-engine-notifications-node-" + serviceInfoProvider.getServiceId()); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); @@ -225,7 +225,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-rule-engine-us-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getUsageStatsTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getUsageStatsTopic())); requestBuilder.admin(coreAdmin); return requestBuilder.build(); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbTransportQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbTransportQueueFactory.java index 300e0a44b6..11c038a2bc 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbTransportQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbTransportQueueFactory.java @@ -33,6 +33,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoQueueMsg; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.kafka.TbKafkaAdmin; import org.thingsboard.server.queue.kafka.TbKafkaConsumerStatsService; import org.thingsboard.server.queue.kafka.TbKafkaConsumerTemplate; @@ -58,6 +59,7 @@ public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory { private final TbQueueTransportApiSettings transportApiSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; private final TbKafkaConsumerStatsService consumerStatsService; + private final TopicService topicService; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin ruleEngineAdmin; @@ -72,7 +74,8 @@ public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory { TbQueueTransportApiSettings transportApiSettings, TbQueueTransportNotificationSettings transportNotificationSettings, TbKafkaConsumerStatsService consumerStatsService, - TbKafkaTopicConfigs kafkaTopicConfigs) { + TbKafkaTopicConfigs kafkaTopicConfigs, + TopicService topicService) { this.kafkaSettings = kafkaSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; @@ -80,6 +83,7 @@ public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory { this.transportApiSettings = transportApiSettings; this.transportNotificationSettings = transportNotificationSettings; this.consumerStatsService = consumerStatsService; + this.topicService = topicService; this.coreAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getCoreConfigs()); this.ruleEngineAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getRuleEngineConfigs()); @@ -93,14 +97,14 @@ public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("transport-api-request-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(transportApiSettings.getRequestsTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(transportApiSettings.getRequestsTopic())); requestBuilder.admin(transportApiRequestAdmin); TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> responseBuilder = TbKafkaConsumerTemplate.builder(); responseBuilder.settings(kafkaSettings); - responseBuilder.topic(transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId()); + responseBuilder.topic(topicService.buildTopicName(transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId())); responseBuilder.clientId("transport-api-response-" + serviceInfoProvider.getServiceId()); - responseBuilder.groupId("transport-node-" + serviceInfoProvider.getServiceId()); + responseBuilder.groupId(topicService.buildTopicName("transport-node-" + serviceInfoProvider.getServiceId())); responseBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiResponseMsg.parseFrom(msg.getData()), msg.getHeaders())); responseBuilder.admin(transportApiResponseAdmin); responseBuilder.statsService(consumerStatsService); @@ -121,7 +125,7 @@ public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("transport-node-rule-engine-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(ruleEngineSettings.getTopic())); requestBuilder.admin(ruleEngineAdmin); return requestBuilder.build(); } @@ -131,7 +135,7 @@ public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("transport-node-core-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getTopic())); requestBuilder.admin(coreAdmin); return requestBuilder.build(); } @@ -141,7 +145,7 @@ public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("transport-node-to-core-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -150,9 +154,9 @@ public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory { public TbQueueConsumer> createTransportNotificationsConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> responseBuilder = TbKafkaConsumerTemplate.builder(); responseBuilder.settings(kafkaSettings); - responseBuilder.topic(transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId()); + responseBuilder.topic(topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId())); responseBuilder.clientId("transport-api-notifications-" + serviceInfoProvider.getServiceId()); - responseBuilder.groupId("transport-node-" + serviceInfoProvider.getServiceId()); + responseBuilder.groupId(topicService.buildTopicName("transport-node-" + serviceInfoProvider.getServiceId())); responseBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToTransportMsg.parseFrom(msg.getData()), msg.getHeaders())); responseBuilder.admin(notificationAdmin); responseBuilder.statsService(consumerStatsService); @@ -164,7 +168,7 @@ public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory { TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("transport-node-us-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getUsageStatsTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getUsageStatsTopic())); requestBuilder.admin(coreAdmin); return requestBuilder.build(); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbVersionControlQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbVersionControlQueueFactory.java index d851956420..952c9817a3 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbVersionControlQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbVersionControlQueueFactory.java @@ -25,6 +25,7 @@ import org.thingsboard.server.queue.TbQueueConsumer; import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.common.TbProtoQueueMsg; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.kafka.TbKafkaAdmin; import org.thingsboard.server.queue.kafka.TbKafkaConsumerStatsService; import org.thingsboard.server.queue.kafka.TbKafkaConsumerTemplate; @@ -45,6 +46,7 @@ public class KafkaTbVersionControlQueueFactory implements TbVersionControlQueueF private final TbQueueCoreSettings coreSettings; private final TbQueueVersionControlSettings vcSettings; private final TbKafkaConsumerStatsService consumerStatsService; + private final TopicService topicService; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin vcAdmin; @@ -55,12 +57,14 @@ public class KafkaTbVersionControlQueueFactory implements TbVersionControlQueueF TbQueueCoreSettings coreSettings, TbQueueVersionControlSettings vcSettings, TbKafkaConsumerStatsService consumerStatsService, - TbKafkaTopicConfigs kafkaTopicConfigs) { + TbKafkaTopicConfigs kafkaTopicConfigs, + TopicService topicService) { this.kafkaSettings = kafkaSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; this.vcSettings = vcSettings; this.consumerStatsService = consumerStatsService; + this.topicService = topicService; this.coreAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getCoreConfigs()); this.vcAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getVcConfigs()); @@ -73,7 +77,7 @@ public class KafkaTbVersionControlQueueFactory implements TbVersionControlQueueF TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-vc-to-core-notifications-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getTopic())); requestBuilder.admin(notificationAdmin); return requestBuilder.build(); } @@ -82,9 +86,9 @@ public class KafkaTbVersionControlQueueFactory implements TbVersionControlQueueF public TbQueueConsumer> createToVersionControlMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(vcSettings.getTopic()); + consumerBuilder.topic(topicService.buildTopicName(vcSettings.getTopic())); consumerBuilder.clientId("tb-vc-consumer-" + serviceInfoProvider.getServiceId()); - consumerBuilder.groupId("tb-vc-node"); + consumerBuilder.groupId(topicService.buildTopicName("tb-vc-node")); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); consumerBuilder.admin(vcAdmin); consumerBuilder.statsService(consumerStatsService); @@ -96,7 +100,7 @@ public class KafkaTbVersionControlQueueFactory implements TbVersionControlQueueF TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder> requestBuilder = TbKafkaProducerTemplate.builder(); requestBuilder.settings(kafkaSettings); requestBuilder.clientId("tb-vc-us-producer-" + serviceInfoProvider.getServiceId()); - requestBuilder.defaultTopic(coreSettings.getUsageStatsTopic()); + requestBuilder.defaultTopic(topicService.buildTopicName(coreSettings.getUsageStatsTopic())); requestBuilder.admin(coreAdmin); return requestBuilder.build(); } 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 857641098c..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 @@ -40,7 +40,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +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; @@ -66,7 +66,7 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng private final TbQueueRuleEngineSettings ruleEngineSettings; private final TbQueueTransportApiSettings transportApiSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRemoteJsInvokeSettings jsInvokeSettings; private final TbQueueVersionControlSettings vcSettings; @@ -83,7 +83,7 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng TbQueueRuleEngineSettings ruleEngineSettings, TbQueueTransportApiSettings transportApiSettings, TbQueueTransportNotificationSettings transportNotificationSettings, - NotificationsTopicService notificationsTopicService, + TopicService topicService, TbServiceInfoProvider serviceInfoProvider, TbPubSubSubscriptionSettings pubSubSubscriptionSettings, TbQueueRemoteJsInvokeSettings jsInvokeSettings, @@ -93,7 +93,7 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng this.ruleEngineSettings = ruleEngineSettings; this.transportApiSettings = transportApiSettings; this.transportNotificationSettings = transportNotificationSettings; - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.serviceInfoProvider = serviceInfoProvider; this.vcSettings = vcSettings; @@ -149,7 +149,7 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @@ -162,7 +162,7 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } 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 f197082829..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 @@ -38,7 +38,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +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; @@ -61,7 +61,7 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { private final TbPubSubSettings pubSubSettings; private final TbQueueCoreSettings coreSettings; private final TbQueueTransportApiSettings transportApiSettings; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRemoteJsInvokeSettings jsInvokeSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; @@ -76,7 +76,7 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { public PubSubTbCoreQueueFactory(TbPubSubSettings pubSubSettings, TbQueueCoreSettings coreSettings, TbQueueTransportApiSettings transportApiSettings, - NotificationsTopicService notificationsTopicService, + TopicService topicService, TbServiceInfoProvider serviceInfoProvider, TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings, @@ -85,7 +85,7 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.transportApiSettings = transportApiSettings; - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.serviceInfoProvider = serviceInfoProvider; this.jsInvokeSettings = jsInvokeSettings; this.transportNotificationSettings = transportNotificationSettings; @@ -132,7 +132,7 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } 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 9766bf9915..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 @@ -36,7 +36,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +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; @@ -58,7 +58,7 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory private final TbPubSubSettings pubSubSettings; private final TbQueueCoreSettings coreSettings; private final TbQueueRuleEngineSettings ruleEngineSettings; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRemoteJsInvokeSettings jsInvokeSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; @@ -71,7 +71,7 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory public PubSubTbRuleEngineQueueFactory(TbPubSubSettings pubSubSettings, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, - NotificationsTopicService notificationsTopicService, + TopicService topicService, TbServiceInfoProvider serviceInfoProvider, TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings, @@ -79,7 +79,7 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.ruleEngineSettings = ruleEngineSettings; - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.serviceInfoProvider = serviceInfoProvider; this.jsInvokeSettings = jsInvokeSettings; this.transportNotificationSettings = transportNotificationSettings; @@ -92,39 +92,39 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, ruleEngineSettings.getTopic()); + return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, ruleEngineSettings.getTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { - return new TbPubSubConsumerTemplate<>(ruleEngineAdmin, pubSubSettings, configuration.getTopic(), + return new TbPubSubConsumerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(configuration.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @@ -153,12 +153,12 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic()); + 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 57db7b884c..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 @@ -22,6 +22,7 @@ import org.thingsboard.server.queue.TbQueueAdmin; import org.thingsboard.server.queue.TbQueueConsumer; import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.common.TbProtoQueueMsg; +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; @@ -39,6 +40,7 @@ public class PubSubTbVersionControlQueueFactory implements TbVersionControlQueue private final TbPubSubSettings pubSubSettings; private final TbQueueCoreSettings coreSettings; private final TbQueueVersionControlSettings vcSettings; + private final TopicService topicService; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin notificationAdmin; @@ -47,11 +49,13 @@ public class PubSubTbVersionControlQueueFactory implements TbVersionControlQueue public PubSubTbVersionControlQueueFactory(TbPubSubSettings pubSubSettings, TbQueueCoreSettings coreSettings, TbQueueVersionControlSettings vcSettings, - TbPubSubSubscriptionSettings pubSubSubscriptionSettings + TbPubSubSubscriptionSettings pubSubSubscriptionSettings, + TopicService topicService ) { this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.vcSettings = vcSettings; + this.topicService = topicService; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.notificationAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getNotificationsSettings()); @@ -60,17 +64,17 @@ public class PubSubTbVersionControlQueueFactory implements TbVersionControlQueue @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { - return new TbPubSubConsumerTemplate<>(vcAdmin, pubSubSettings, vcSettings.getTopic(), + return new TbPubSubConsumerTemplate<>(vcAdmin, pubSubSettings, topicService.buildTopicName(vcSettings.getTopic()), 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 5cafaa4c48..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 @@ -33,6 +33,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoQueueMsg; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; +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; @@ -56,6 +57,7 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { private final TbQueueRuleEngineSettings ruleEngineSettings; private final TbQueueTransportApiSettings transportApiSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; + private final TopicService topicService; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin ruleEngineAdmin; @@ -68,13 +70,15 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { TbQueueRuleEngineSettings ruleEngineSettings, TbQueueTransportApiSettings transportApiSettings, TbQueueTransportNotificationSettings transportNotificationSettings, - TbPubSubSubscriptionSettings pubSubSubscriptionSettings) { + TbPubSubSubscriptionSettings pubSubSubscriptionSettings, + TopicService topicService) { this.pubSubSettings = pubSubSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; this.ruleEngineSettings = ruleEngineSettings; this.transportApiSettings = transportApiSettings; this.transportNotificationSettings = transportNotificationSettings; + this.topicService = topicService; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.ruleEngineAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getRuleEngineSettings()); @@ -84,9 +88,9 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { @Override public TbQueueRequestTemplate, TbProtoQueueMsg> createTransportApiRequestTemplate() { - TbQueueProducer> producer = new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getRequestsTopic()); + TbQueueProducer> producer = new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic())); TbQueueConsumer> consumer = new TbPubSubConsumerTemplate<>(transportApiAdmin, pubSubSettings, - transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId(), + topicService.buildTopicName(transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiResponseMsg.parseFrom(msg.getData()), msg.getHeaders())); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder @@ -102,29 +106,29 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, ruleEngineSettings.getTopic()); + return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createTransportNotificationsConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, - transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId(), + topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToTransportMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqMonolithQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqMonolithQueueFactory.java index 0318b5d06f..7e9833f56b 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqMonolithQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqMonolithQueueFactory.java @@ -40,7 +40,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqAdmin; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqConsumerTemplate; @@ -61,7 +61,7 @@ import java.nio.charset.StandardCharsets; @ConditionalOnExpression("'${queue.type:null}'=='rabbitmq' && '${service.type:null}'=='monolith'") public class RabbitMqMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngineQueueFactory, TbVersionControlQueueFactory { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbQueueCoreSettings coreSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRuleEngineSettings ruleEngineSettings; @@ -78,7 +78,7 @@ public class RabbitMqMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE private final TbQueueAdmin notificationAdmin; private final TbQueueAdmin vcAdmin; - public RabbitMqMonolithQueueFactory(NotificationsTopicService notificationsTopicService, TbQueueCoreSettings coreSettings, + public RabbitMqMonolithQueueFactory(TopicService topicService, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, TbServiceInfoProvider serviceInfoProvider, TbQueueTransportApiSettings transportApiSettings, @@ -87,7 +87,7 @@ public class RabbitMqMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE TbRabbitMqQueueArguments queueArguments, TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueVersionControlSettings vcSettings) { - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.coreSettings = coreSettings; this.serviceInfoProvider = serviceInfoProvider; this.ruleEngineSettings = ruleEngineSettings; @@ -107,71 +107,71 @@ public class RabbitMqMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbRabbitMqProducerTemplate<>(ruleEngineAdmin, rabbitMqSettings, ruleEngineSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(ruleEngineAdmin, rabbitMqSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, ruleEngineSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, coreSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { - return new TbRabbitMqConsumerTemplate<>(vcAdmin, rabbitMqSettings, vcSettings.getTopic(), + return new TbRabbitMqConsumerTemplate<>(vcAdmin, rabbitMqSettings, topicService.buildTopicName(vcSettings.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()) ); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { - return new TbRabbitMqConsumerTemplate<>(ruleEngineAdmin, rabbitMqSettings, configuration.getTopic(), + return new TbRabbitMqConsumerTemplate<>(ruleEngineAdmin, rabbitMqSettings, topicService.buildTopicName(configuration.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbRabbitMqConsumerTemplate<>(notificationAdmin, rabbitMqSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { - return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getTopic(), + return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbRabbitMqConsumerTemplate<>(notificationAdmin, rabbitMqSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { - return new TbRabbitMqConsumerTemplate<>(transportApiAdmin, rabbitMqSettings, transportApiSettings.getRequestsTopic(), + return new TbRabbitMqConsumerTemplate<>(transportApiAdmin, rabbitMqSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new TbRabbitMqProducerTemplate<>(transportApiAdmin, rabbitMqSettings, transportApiSettings.getResponsesTopic()); + return new TbRabbitMqProducerTemplate<>(transportApiAdmin, rabbitMqSettings, topicService.buildTopicName(transportApiSettings.getResponsesTopic())); } @Override @@ -199,29 +199,29 @@ public class RabbitMqMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { - return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getUsageStatsTopic(), + return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { - return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getOtaPackageTopic(), + return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getOtaPackageTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getUsageStatsTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createVersionControlMsgProducer() { - return new TbRabbitMqProducerTemplate<>(vcAdmin, rabbitMqSettings, vcSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(vcAdmin, rabbitMqSettings, topicService.buildTopicName(vcSettings.getTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbCoreQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbCoreQueueFactory.java index 45f5a92980..8311560207 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbCoreQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbCoreQueueFactory.java @@ -38,7 +38,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqAdmin; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqConsumerTemplate; @@ -62,7 +62,7 @@ public class RabbitMqTbCoreQueueFactory implements TbCoreQueueFactory { private final TbQueueRuleEngineSettings ruleEngineSettings; private final TbQueueCoreSettings coreSettings; private final TbQueueTransportApiSettings transportApiSettings; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRemoteJsInvokeSettings jsInvokeSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; @@ -77,7 +77,7 @@ public class RabbitMqTbCoreQueueFactory implements TbCoreQueueFactory { TbQueueCoreSettings coreSettings, TbQueueTransportApiSettings transportApiSettings, TbQueueRuleEngineSettings ruleEngineSettings, - NotificationsTopicService notificationsTopicService, + TopicService topicService, TbServiceInfoProvider serviceInfoProvider, TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings, @@ -86,7 +86,7 @@ public class RabbitMqTbCoreQueueFactory implements TbCoreQueueFactory { this.coreSettings = coreSettings; this.transportApiSettings = transportApiSettings; this.ruleEngineSettings = ruleEngineSettings; - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.serviceInfoProvider = serviceInfoProvider; this.jsInvokeSettings = jsInvokeSettings; this.transportNotificationSettings = transportNotificationSettings; @@ -100,51 +100,51 @@ public class RabbitMqTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, ruleEngineSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, coreSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { - return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getTopic(), + return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbRabbitMqConsumerTemplate<>(notificationAdmin, rabbitMqSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { - return new TbRabbitMqConsumerTemplate<>(transportApiAdmin, rabbitMqSettings, transportApiSettings.getRequestsTopic(), + return new TbRabbitMqConsumerTemplate<>(transportApiAdmin, rabbitMqSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new TbRabbitMqProducerTemplate<>(transportApiAdmin, rabbitMqSettings, transportApiSettings.getResponsesTopic()); + return new TbRabbitMqProducerTemplate<>(transportApiAdmin, rabbitMqSettings, topicService.buildTopicName(transportApiSettings.getResponsesTopic())); } @Override @@ -178,24 +178,24 @@ public class RabbitMqTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { - return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getUsageStatsTopic(), + return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { - return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getOtaPackageTopic(), + return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getOtaPackageTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getUsageStatsTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbRuleEngineQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbRuleEngineQueueFactory.java index 37633ced95..ae8a879782 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbRuleEngineQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbRuleEngineQueueFactory.java @@ -36,7 +36,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqAdmin; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqConsumerTemplate; @@ -55,7 +55,7 @@ import java.nio.charset.StandardCharsets; @ConditionalOnExpression("'${queue.type:null}'=='rabbitmq' && '${service.type:null}'=='tb-rule-engine'") public class RabbitMqTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbQueueCoreSettings coreSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRuleEngineSettings ruleEngineSettings; @@ -68,14 +68,14 @@ public class RabbitMqTbRuleEngineQueueFactory implements TbRuleEngineQueueFactor private final TbQueueAdmin jsExecutorAdmin; private final TbQueueAdmin notificationAdmin; - public RabbitMqTbRuleEngineQueueFactory(NotificationsTopicService notificationsTopicService, TbQueueCoreSettings coreSettings, + public RabbitMqTbRuleEngineQueueFactory(TopicService topicService, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, TbServiceInfoProvider serviceInfoProvider, TbRabbitMqSettings rabbitMqSettings, TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings, TbRabbitMqQueueArguments queueArguments) { - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.coreSettings = coreSettings; this.serviceInfoProvider = serviceInfoProvider; this.ruleEngineSettings = ruleEngineSettings; @@ -91,39 +91,39 @@ public class RabbitMqTbRuleEngineQueueFactory implements TbRuleEngineQueueFactor @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbRabbitMqProducerTemplate<>(ruleEngineAdmin, rabbitMqSettings, ruleEngineSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(ruleEngineAdmin, rabbitMqSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, ruleEngineSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, coreSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { - return new TbRabbitMqConsumerTemplate<>(ruleEngineAdmin, rabbitMqSettings, configuration.getTopic(), + return new TbRabbitMqConsumerTemplate<>(ruleEngineAdmin, rabbitMqSettings, topicService.buildTopicName(configuration.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbRabbitMqConsumerTemplate<>(notificationAdmin, rabbitMqSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @@ -152,12 +152,12 @@ public class RabbitMqTbRuleEngineQueueFactory implements TbRuleEngineQueueFactor @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getUsageStatsTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getOtaPackageTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbVersionControlQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbVersionControlQueueFactory.java index ed1da6a302..d32865a05c 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbVersionControlQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTbVersionControlQueueFactory.java @@ -22,6 +22,7 @@ import org.thingsboard.server.queue.TbQueueAdmin; import org.thingsboard.server.queue.TbQueueConsumer; import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.common.TbProtoQueueMsg; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqAdmin; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqConsumerTemplate; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqProducerTemplate; @@ -39,6 +40,7 @@ public class RabbitMqTbVersionControlQueueFactory implements TbVersionControlQue private final TbRabbitMqSettings rabbitMqSettings; private final TbQueueCoreSettings coreSettings; private final TbQueueVersionControlSettings vcSettings; + private final TopicService topicService; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin notificationAdmin; @@ -47,11 +49,13 @@ public class RabbitMqTbVersionControlQueueFactory implements TbVersionControlQue public RabbitMqTbVersionControlQueueFactory(TbRabbitMqSettings rabbitMqSettings, TbQueueCoreSettings coreSettings, TbQueueVersionControlSettings vcSettings, - TbRabbitMqQueueArguments queueArguments + TbRabbitMqQueueArguments queueArguments, + TopicService topicService ) { this.rabbitMqSettings = rabbitMqSettings; this.coreSettings = coreSettings; this.vcSettings = vcSettings; + this.topicService = topicService; this.coreAdmin = new TbRabbitMqAdmin(this.rabbitMqSettings, queueArguments.getCoreArgs()); this.notificationAdmin = new TbRabbitMqAdmin(this.rabbitMqSettings, queueArguments.getNotificationsArgs()); @@ -60,17 +64,17 @@ public class RabbitMqTbVersionControlQueueFactory implements TbVersionControlQue @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getUsageStatsTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, coreSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { - return new TbRabbitMqConsumerTemplate<>(vcAdmin, rabbitMqSettings, vcSettings.getTopic(), + return new TbRabbitMqConsumerTemplate<>(vcAdmin, rabbitMqSettings, topicService.buildTopicName(vcSettings.getTopic()), 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/RabbitMqTransportQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTransportQueueFactory.java index bcbd60a14e..1af28b629b 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTransportQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/RabbitMqTransportQueueFactory.java @@ -33,6 +33,7 @@ import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoQueueMsg; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqAdmin; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqConsumerTemplate; import org.thingsboard.server.queue.rabbitmq.TbRabbitMqProducerTemplate; @@ -55,6 +56,7 @@ public class RabbitMqTransportQueueFactory implements TbTransportQueueFactory { private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueCoreSettings coreSettings; private final TbQueueRuleEngineSettings ruleEngineSettings; + private final TopicService topicService; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin ruleEngineAdmin; @@ -67,13 +69,15 @@ public class RabbitMqTransportQueueFactory implements TbTransportQueueFactory { TbServiceInfoProvider serviceInfoProvider, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, - TbRabbitMqQueueArguments queueArguments) { + TbRabbitMqQueueArguments queueArguments, + TopicService topicService) { this.transportApiSettings = transportApiSettings; this.transportNotificationSettings = transportNotificationSettings; this.rabbitMqSettings = rabbitMqSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; this.ruleEngineSettings = ruleEngineSettings; + this.topicService = topicService; this.coreAdmin = new TbRabbitMqAdmin(rabbitMqSettings, queueArguments.getCoreArgs()); this.ruleEngineAdmin = new TbRabbitMqAdmin(rabbitMqSettings, queueArguments.getRuleEngineArgs()); @@ -84,11 +88,11 @@ public class RabbitMqTransportQueueFactory implements TbTransportQueueFactory { @Override public TbQueueRequestTemplate, TbProtoQueueMsg> createTransportApiRequestTemplate() { TbQueueProducer> producerTemplate = - new TbRabbitMqProducerTemplate<>(transportApiAdmin, rabbitMqSettings, transportApiSettings.getRequestsTopic()); + new TbRabbitMqProducerTemplate<>(transportApiAdmin, rabbitMqSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic())); TbQueueConsumer> consumerTemplate = new TbRabbitMqConsumerTemplate<>(transportApiAdmin, rabbitMqSettings, - transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId(), + topicService.buildTopicName(transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiResponseMsg.parseFrom(msg.getData()), msg.getHeaders())); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder @@ -104,28 +108,28 @@ public class RabbitMqTransportQueueFactory implements TbTransportQueueFactory { @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbRabbitMqProducerTemplate<>(ruleEngineAdmin, rabbitMqSettings, ruleEngineSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(ruleEngineAdmin, rabbitMqSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, coreSettings.getTopic()); + return new TbRabbitMqProducerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createTransportNotificationsConsumer() { - return new TbRabbitMqConsumerTemplate<>(notificationAdmin, rabbitMqSettings, transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId(), + return new TbRabbitMqConsumerTemplate<>(notificationAdmin, rabbitMqSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToTransportMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getUsageStatsTopic()); + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusMonolithQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusMonolithQueueFactory.java index 950e49dc93..6f2dbdc72f 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusMonolithQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusMonolithQueueFactory.java @@ -44,7 +44,7 @@ import org.thingsboard.server.queue.azure.servicebus.TbServiceBusSettings; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; import org.thingsboard.server.queue.settings.TbQueueRemoteJsInvokeSettings; @@ -60,7 +60,7 @@ import java.nio.charset.StandardCharsets; @ConditionalOnExpression("'${queue.type:null}'=='service-bus' && '${service.type:null}'=='monolith'") public class ServiceBusMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngineQueueFactory, TbVersionControlQueueFactory { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbQueueCoreSettings coreSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRuleEngineSettings ruleEngineSettings; @@ -77,7 +77,7 @@ public class ServiceBusMonolithQueueFactory implements TbCoreQueueFactory, TbRul private final TbQueueAdmin notificationAdmin; private final TbQueueAdmin vcAdmin; - public ServiceBusMonolithQueueFactory(NotificationsTopicService notificationsTopicService, TbQueueCoreSettings coreSettings, + public ServiceBusMonolithQueueFactory(TopicService topicService, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, TbServiceInfoProvider serviceInfoProvider, TbQueueTransportApiSettings transportApiSettings, @@ -86,7 +86,7 @@ public class ServiceBusMonolithQueueFactory implements TbCoreQueueFactory, TbRul TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueVersionControlSettings vcSettings, TbServiceBusQueueConfigs serviceBusQueueConfigs) { - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.coreSettings = coreSettings; this.serviceInfoProvider = serviceInfoProvider; this.ruleEngineSettings = ruleEngineSettings; @@ -106,32 +106,32 @@ public class ServiceBusMonolithQueueFactory implements TbCoreQueueFactory, TbRul @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbServiceBusProducerTemplate<>(ruleEngineAdmin, serviceBusSettings, ruleEngineSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(ruleEngineAdmin, serviceBusSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, ruleEngineSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, coreSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { - return new TbServiceBusConsumerTemplate<>(vcAdmin, serviceBusSettings, vcSettings.getTopic(), + return new TbServiceBusConsumerTemplate<>(vcAdmin, serviceBusSettings, topicService.buildTopicName(vcSettings.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()) ); } @@ -145,32 +145,32 @@ public class ServiceBusMonolithQueueFactory implements TbCoreQueueFactory, TbRul @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbServiceBusConsumerTemplate<>(notificationAdmin, serviceBusSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { - return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getTopic(), + return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbServiceBusConsumerTemplate<>(notificationAdmin, serviceBusSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { - return new TbServiceBusConsumerTemplate<>(transportApiAdmin, serviceBusSettings, transportApiSettings.getRequestsTopic(), + return new TbServiceBusConsumerTemplate<>(transportApiAdmin, serviceBusSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new TbServiceBusProducerTemplate<>(transportApiAdmin, serviceBusSettings, transportApiSettings.getResponsesTopic()); + return new TbServiceBusProducerTemplate<>(transportApiAdmin, serviceBusSettings, topicService.buildTopicName(transportApiSettings.getResponsesTopic())); } @Override @@ -198,29 +198,29 @@ public class ServiceBusMonolithQueueFactory implements TbCoreQueueFactory, TbRul @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { - return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getUsageStatsTopic(), + return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { - return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getOtaPackageTopic(), + return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getOtaPackageTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getUsageStatsTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createVersionControlMsgProducer() { - return new TbServiceBusProducerTemplate<>(vcAdmin, serviceBusSettings, vcSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(vcAdmin, serviceBusSettings, topicService.buildTopicName(vcSettings.getTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbCoreQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbCoreQueueFactory.java index b92629633d..c86efee599 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbCoreQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbCoreQueueFactory.java @@ -43,7 +43,7 @@ import org.thingsboard.server.queue.azure.servicebus.TbServiceBusSettings; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; import org.thingsboard.server.queue.settings.TbQueueRemoteJsInvokeSettings; @@ -62,7 +62,7 @@ public class ServiceBusTbCoreQueueFactory implements TbCoreQueueFactory { private final TbQueueRuleEngineSettings ruleEngineSettings; private final TbQueueCoreSettings coreSettings; private final TbQueueTransportApiSettings transportApiSettings; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRemoteJsInvokeSettings jsInvokeSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; @@ -77,7 +77,7 @@ public class ServiceBusTbCoreQueueFactory implements TbCoreQueueFactory { TbQueueCoreSettings coreSettings, TbQueueTransportApiSettings transportApiSettings, TbQueueRuleEngineSettings ruleEngineSettings, - NotificationsTopicService notificationsTopicService, + TopicService topicService, TbServiceInfoProvider serviceInfoProvider, TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings, @@ -86,7 +86,7 @@ public class ServiceBusTbCoreQueueFactory implements TbCoreQueueFactory { this.coreSettings = coreSettings; this.transportApiSettings = transportApiSettings; this.ruleEngineSettings = ruleEngineSettings; - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.serviceInfoProvider = serviceInfoProvider; this.jsInvokeSettings = jsInvokeSettings; this.transportNotificationSettings = transportNotificationSettings; @@ -100,51 +100,51 @@ public class ServiceBusTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, ruleEngineSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, coreSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { - return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getTopic(), + return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbServiceBusConsumerTemplate<>(notificationAdmin, serviceBusSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { - return new TbServiceBusConsumerTemplate<>(transportApiAdmin, serviceBusSettings, transportApiSettings.getRequestsTopic(), + return new TbServiceBusConsumerTemplate<>(transportApiAdmin, serviceBusSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new TbServiceBusProducerTemplate<>(transportApiAdmin, serviceBusSettings, transportApiSettings.getResponsesTopic()); + return new TbServiceBusProducerTemplate<>(transportApiAdmin, serviceBusSettings, topicService.buildTopicName(transportApiSettings.getResponsesTopic())); } @Override @@ -172,24 +172,24 @@ public class ServiceBusTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { - return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getUsageStatsTopic(), + return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { - return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getOtaPackageTopic(), + return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getOtaPackageTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getUsageStatsTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbRuleEngineQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbRuleEngineQueueFactory.java index a1571becc7..28e26ac080 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbRuleEngineQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbRuleEngineQueueFactory.java @@ -41,7 +41,7 @@ import org.thingsboard.server.queue.azure.servicebus.TbServiceBusSettings; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; import org.thingsboard.server.queue.settings.TbQueueRemoteJsInvokeSettings; @@ -55,7 +55,7 @@ import java.nio.charset.StandardCharsets; @ConditionalOnExpression("'${queue.type:null}'=='service-bus' && '${service.type:null}'=='tb-rule-engine'") public class ServiceBusTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbQueueCoreSettings coreSettings; private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRuleEngineSettings ruleEngineSettings; @@ -68,14 +68,14 @@ public class ServiceBusTbRuleEngineQueueFactory implements TbRuleEngineQueueFact private final TbQueueAdmin jsExecutorAdmin; private final TbQueueAdmin notificationAdmin; - public ServiceBusTbRuleEngineQueueFactory(NotificationsTopicService notificationsTopicService, TbQueueCoreSettings coreSettings, + public ServiceBusTbRuleEngineQueueFactory(TopicService topicService, TbQueueCoreSettings coreSettings, TbQueueRuleEngineSettings ruleEngineSettings, TbServiceInfoProvider serviceInfoProvider, TbServiceBusSettings serviceBusSettings, TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings, TbServiceBusQueueConfigs serviceBusQueueConfigs) { - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.coreSettings = coreSettings; this.serviceInfoProvider = serviceInfoProvider; this.ruleEngineSettings = ruleEngineSettings; @@ -91,39 +91,39 @@ public class ServiceBusTbRuleEngineQueueFactory implements TbRuleEngineQueueFact @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbServiceBusProducerTemplate<>(ruleEngineAdmin, serviceBusSettings, ruleEngineSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(ruleEngineAdmin, serviceBusSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, ruleEngineSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, coreSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { - return new TbServiceBusConsumerTemplate<>(ruleEngineAdmin, serviceBusSettings, configuration.getTopic(), + return new TbServiceBusConsumerTemplate<>(ruleEngineAdmin, serviceBusSettings, topicService.buildTopicName(configuration.getTopic()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbServiceBusConsumerTemplate<>(notificationAdmin, serviceBusSettings, - notificationsTopicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), + topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @@ -152,12 +152,12 @@ public class ServiceBusTbRuleEngineQueueFactory implements TbRuleEngineQueueFact @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getUsageStatsTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getOtaPackageTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbVersionControlQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbVersionControlQueueFactory.java index 24cb4fe8bc..76149713ce 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbVersionControlQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTbVersionControlQueueFactory.java @@ -27,6 +27,7 @@ import org.thingsboard.server.queue.azure.servicebus.TbServiceBusProducerTemplat import org.thingsboard.server.queue.azure.servicebus.TbServiceBusQueueConfigs; import org.thingsboard.server.queue.azure.servicebus.TbServiceBusSettings; import org.thingsboard.server.queue.common.TbProtoQueueMsg; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; import org.thingsboard.server.queue.settings.TbQueueVersionControlSettings; @@ -39,6 +40,7 @@ public class ServiceBusTbVersionControlQueueFactory implements TbVersionControlQ private final TbServiceBusSettings serviceBusSettings; private final TbQueueCoreSettings coreSettings; private final TbQueueVersionControlSettings vcSettings; + private final TopicService topicService; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin notificationAdmin; @@ -47,11 +49,13 @@ public class ServiceBusTbVersionControlQueueFactory implements TbVersionControlQ public ServiceBusTbVersionControlQueueFactory(TbServiceBusSettings serviceBusSettings, TbQueueCoreSettings coreSettings, TbQueueVersionControlSettings vcSettings, - TbServiceBusQueueConfigs serviceBusQueueConfigs + TbServiceBusQueueConfigs serviceBusQueueConfigs, + TopicService topicService ) { this.serviceBusSettings = serviceBusSettings; this.coreSettings = coreSettings; this.vcSettings = vcSettings; + this.topicService = topicService; this.coreAdmin = new TbServiceBusAdmin(serviceBusSettings, serviceBusQueueConfigs.getCoreConfigs()); this.notificationAdmin = new TbServiceBusAdmin(serviceBusSettings, serviceBusQueueConfigs.getNotificationsConfigs()); @@ -60,17 +64,17 @@ public class ServiceBusTbVersionControlQueueFactory implements TbVersionControlQ @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getUsageStatsTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, coreSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { - return new TbServiceBusConsumerTemplate<>(vcAdmin, serviceBusSettings, vcSettings.getTopic(), + return new TbServiceBusConsumerTemplate<>(vcAdmin, serviceBusSettings, topicService.buildTopicName(vcSettings.getTopic()), 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/ServiceBusTransportQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTransportQueueFactory.java index 0a4bb59663..f6d85577e1 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTransportQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusTransportQueueFactory.java @@ -38,6 +38,7 @@ import org.thingsboard.server.queue.azure.servicebus.TbServiceBusSettings; import org.thingsboard.server.queue.common.DefaultTbQueueRequestTemplate; import org.thingsboard.server.queue.common.TbProtoQueueMsg; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; import org.thingsboard.server.queue.settings.TbQueueRuleEngineSettings; import org.thingsboard.server.queue.settings.TbQueueTransportApiSettings; @@ -55,6 +56,7 @@ public class ServiceBusTransportQueueFactory implements TbTransportQueueFactory private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueCoreSettings coreSettings; private final TbQueueRuleEngineSettings ruleEngineSettings; + private final TopicService topicService; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin transportApiAdmin; @@ -67,13 +69,15 @@ public class ServiceBusTransportQueueFactory implements TbTransportQueueFactory TbQueueRuleEngineSettings ruleEngineSettings, TbServiceInfoProvider serviceInfoProvider, TbQueueCoreSettings coreSettings, - TbServiceBusQueueConfigs serviceBusQueueConfigs) { + TbServiceBusQueueConfigs serviceBusQueueConfigs, + TopicService topicService) { this.transportApiSettings = transportApiSettings; this.transportNotificationSettings = transportNotificationSettings; this.serviceBusSettings = serviceBusSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; this.ruleEngineSettings = ruleEngineSettings; + this.topicService = topicService; this.coreAdmin = new TbServiceBusAdmin(serviceBusSettings, serviceBusQueueConfigs.getCoreConfigs()); this.transportApiAdmin = new TbServiceBusAdmin(serviceBusSettings, serviceBusQueueConfigs.getTransportApiConfigs()); @@ -84,11 +88,11 @@ public class ServiceBusTransportQueueFactory implements TbTransportQueueFactory @Override public TbQueueRequestTemplate, TbProtoQueueMsg> createTransportApiRequestTemplate() { TbQueueProducer> producerTemplate = - new TbServiceBusProducerTemplate<>(transportApiAdmin, serviceBusSettings, transportApiSettings.getRequestsTopic()); + new TbServiceBusProducerTemplate<>(transportApiAdmin, serviceBusSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic())); TbQueueConsumer> consumerTemplate = new TbServiceBusConsumerTemplate<>(transportApiAdmin, serviceBusSettings, - transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId(), + topicService.buildTopicName(transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId()), msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiResponseMsg.parseFrom(msg.getData()), msg.getHeaders())); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder @@ -104,29 +108,29 @@ public class ServiceBusTransportQueueFactory implements TbTransportQueueFactory @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbServiceBusProducerTemplate<>(ruleEngineAdmin, serviceBusSettings, ruleEngineSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(ruleEngineAdmin, serviceBusSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, coreSettings.getTopic()); + return new TbServiceBusProducerTemplate<>(notificationAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createTransportNotificationsConsumer() { return new TbServiceBusConsumerTemplate<>(notificationAdmin, serviceBusSettings, - transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId(), + topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId()), msg -> new TbProtoQueueMsg<>(msg.getKey(), ToTransportMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getUsageStatsTopic()); + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @PreDestroy 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 bc11570fc1..cc4a1bc3df 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 @@ -53,7 +53,6 @@ import org.thingsboard.server.common.data.limit.LimitedApi; import org.thingsboard.server.common.data.notification.rule.trigger.RateLimitsTrigger; import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent; import org.thingsboard.server.common.data.msg.TbMsgType; -import org.thingsboard.server.common.data.notification.rule.trigger.RateLimitsTrigger; import org.thingsboard.server.common.data.rpc.RpcStatus; import org.thingsboard.server.common.msg.TbMsg; import org.thingsboard.server.common.msg.TbMsgMetaData; @@ -95,7 +94,7 @@ import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.TbQueueRequestTemplate; import org.thingsboard.server.queue.common.AsyncCallbackTemplate; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.PartitionService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.provider.TbQueueProducerProvider; @@ -172,7 +171,7 @@ public class DefaultTransportService implements TransportService { private final TbTransportQueueFactory queueProvider; private final TbQueueProducerProvider producerProvider; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final TbServiceInfoProvider serviceInfoProvider; private final StatsFactory statsFactory; private final TransportDeviceProfileCache deviceProfileCache; @@ -207,7 +206,7 @@ public class DefaultTransportService implements TransportService { TbServiceInfoProvider serviceInfoProvider, TbTransportQueueFactory queueProvider, TbQueueProducerProvider producerProvider, - NotificationsTopicService notificationsTopicService, + TopicService topicService, StatsFactory statsFactory, TransportDeviceProfileCache deviceProfileCache, TransportTenantProfileCache tenantProfileCache, @@ -218,7 +217,7 @@ public class DefaultTransportService implements TransportService { this.serviceInfoProvider = serviceInfoProvider; this.queueProvider = queueProvider; this.producerProvider = producerProvider; - this.notificationsTopicService = notificationsTopicService; + this.topicService = topicService; this.statsFactory = statsFactory; this.deviceProfileCache = deviceProfileCache; this.tenantProfileCache = tenantProfileCache; @@ -243,7 +242,7 @@ public class DefaultTransportService implements TransportService { ruleEngineMsgProducer = producerProvider.getRuleEngineMsgProducer(); tbCoreMsgProducer = producerProvider.getTbCoreMsgProducer(); transportNotificationsConsumer = queueProvider.createTransportNotificationsConsumer(); - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, serviceInfoProvider.getServiceId()); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_TRANSPORT, serviceInfoProvider.getServiceId()); transportNotificationsConsumer.subscribe(Collections.singleton(tpi)); transportApiRequestTemplate.init(); mainConsumerExecutor = Executors.newSingleThreadExecutor(ThingsBoardThreadFactory.forName("transport-consumer")); diff --git a/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/DefaultClusterVersionControlService.java b/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/DefaultClusterVersionControlService.java index ab2dc417ca..e98d49b1dc 100644 --- a/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/DefaultClusterVersionControlService.java +++ b/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/DefaultClusterVersionControlService.java @@ -67,7 +67,7 @@ import org.thingsboard.server.gen.transport.TransportProtos.VersionedEntityInfoP import org.thingsboard.server.queue.TbQueueConsumer; import org.thingsboard.server.queue.TbQueueProducer; import org.thingsboard.server.queue.common.TbProtoQueueMsg; -import org.thingsboard.server.queue.discovery.NotificationsTopicService; +import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.PartitionService; import org.thingsboard.server.queue.discovery.TbApplicationEventListener; import org.thingsboard.server.queue.discovery.event.PartitionChangeEvent; @@ -110,7 +110,7 @@ public class DefaultClusterVersionControlService extends TbApplicationEventListe private final TbVersionControlQueueFactory queueFactory; private final DataDecodingEncodingService encodingService; private final GitRepositoryService vcService; - private final NotificationsTopicService notificationsTopicService; + private final TopicService topicService; private final ConcurrentMap tenantRepoLocks = new ConcurrentHashMap<>(); private final Map pendingCommitMap = new HashMap<>(); @@ -520,7 +520,7 @@ public class DefaultClusterVersionControlService extends TbApplicationEventListe } private void reply(VersionControlRequestCtx ctx, Optional e, Function enrichFunction) { - TopicPartitionInfo tpi = notificationsTopicService.getNotificationsTopic(ServiceType.TB_CORE, ctx.getNodeId()); + TopicPartitionInfo tpi = topicService.getNotificationsTopic(ServiceType.TB_CORE, ctx.getNodeId()); VersionControlResponseMsg.Builder builder = VersionControlResponseMsg.newBuilder() .setRequestIdMSB(ctx.getRequestId().getMostSignificantBits()) .setRequestIdLSB(ctx.getRequestId().getLeastSignificantBits()); 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 2a35ee73fd..889b2cd976 100644 --- a/msa/vc-executor/src/main/resources/tb-vc-executor.yml +++ b/msa/vc-executor/src/main/resources/tb-vc-executor.yml @@ -48,6 +48,7 @@ zk: # Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default in_memory: stats: # For debug lvl diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index 825b197e1d..44ba6cf31c 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -194,6 +194,7 @@ transport: # Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default kafka: # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index 315b138bfa..1d7904142c 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -177,6 +177,7 @@ transport: # Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default kafka: # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index db4870e40b..f348489e12 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -273,6 +273,7 @@ transport: # Queue configuration properties queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default kafka: # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index ff26bb6e38..356694d3e9 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -210,6 +210,7 @@ transport: # Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default kafka: # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index db883dcd30..16516c3194 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -156,6 +156,7 @@ transport: # Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default kafka: # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" From dd5319337140209808dd6c5e788e39b5d2d672a9 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Wed, 18 Oct 2023 11:43:21 +0300 Subject: [PATCH 02/56] fixed unit tests --- .../server/queue/discovery/HashPartitionServiceTest.java | 2 ++ .../org/thingsboard/server/queue/discovery/TopicService.java | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java b/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java index 511faa6a2b..44c21a54d2 100644 --- a/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java @@ -62,6 +62,7 @@ import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -88,6 +89,7 @@ public class HashPartitionServiceTest { routingInfoService = mock(TenantRoutingInfoService.class); queueRoutingInfoService = mock(QueueRoutingInfoService.class); topicService = mock(TopicService.class); + when(topicService.buildTopicName(Mockito.any())).thenAnswer(i -> i.getArguments()[0]); clusterRoutingService = createPartitionService(); ServiceInfo currentServer = ServiceInfo.newBuilder() .setServiceId("tb-core-0") diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java index 27023f1619..bab0afbb23 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java @@ -15,7 +15,6 @@ */ package org.thingsboard.server.queue.discovery; -import lombok.Getter; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.id.TenantId; @@ -28,7 +27,6 @@ import java.util.Map; @Service public class TopicService { - @Getter @Value("${queue.prefix}") private String prefix; From cc3c05f6e98c811337e2162e2a43838279652c2b Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Wed, 18 Oct 2023 15:09:24 +0300 Subject: [PATCH 03/56] updated yml parameter description --- 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 3454be5ade..8a6426c4e1 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) - prefix: "${TB_QUEUE_PREFIX:}" # Global queue prefix. Used for all topics and consumer groups Empty by default + 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: # For debug level 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 889b2cd976..4ffa1ab702 100644 --- a/msa/vc-executor/src/main/resources/tb-vc-executor.yml +++ b/msa/vc-executor/src/main/resources/tb-vc-executor.yml @@ -48,7 +48,7 @@ zk: # Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default + 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: # For debug lvl diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index 44ba6cf31c..437f551690 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -194,7 +194,7 @@ transport: # Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default + 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) kafka: # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index 1d7904142c..8d4d6fadf0 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -177,7 +177,7 @@ transport: # Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default + 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) kafka: # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index f348489e12..8fd1c11e6e 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -273,7 +273,7 @@ transport: # Queue configuration properties queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default + 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) kafka: # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index 356694d3e9..6c51d18ab7 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -210,7 +210,7 @@ transport: # Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default + 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) kafka: # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index 16516c3194..eeb6807714 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -156,7 +156,7 @@ transport: # Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # 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. Used for all topics and consumer groups Empty by default + 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) kafka: # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" From ca70310e6de688513ccd81de4756dd76a3f3c1ac Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Tue, 12 Sep 2023 15:07:33 +0300 Subject: [PATCH 04/56] UI: Liquid level widget implementation --- .../system/widget_bundles/liquid_level.json | 22 + .../horizontal_2_1_elliptical_tank.json | 24 + .../widget_types/horizontal_capsule_tank.json | 24 + .../horizontal_cylinder_tank.json | 24 + .../horizontal_dish_ends_tank.json | 24 + .../widget_types/horizontal_ellipse_tank.json | 24 + .../widget_types/horizontal_oval_tank.json | 24 + .../system/widget_types/rectangle_tank.json | 24 + .../widget_types/vertical_capsule_tank.json | 24 + .../widget_types/vertical_cylinder_tank.json | 24 + .../widget_types/vertical_oval_tank.json | 24 + ui-ngx/src/app/core/http/attribute.service.ts | 10 +- .../basic/basic-widget-config.module.ts | 12 +- ...uid-level-card-basic-config.component.html | 347 +++++++++ ...iquid-level-card-basic-config.component.ts | 671 ++++++++++++++++++ .../config/widget-config.component.models.ts | 1 - .../indicator/liquid-level-widget.models.ts | 442 ++++++++++++ .../lib/indicator/liquid-level-widget.ts | 524 ++++++++++++++ ...-level-card-widget-settings.component.html | 279 ++++++++ ...id-level-card-widget-settings.component.ts | 531 ++++++++++++++ .../common/image-cards-select.component.html | 2 +- .../lib/settings/widget-settings.module.ts | 12 +- .../widget/widget-components.module.ts | 7 +- .../string-autocomplete.component.html | 60 ++ .../string-autocomplete.component.scss | 47 ++ .../string-autocomplete.component.ts | 175 +++++ .../components/unit-input.component.html | 9 +- .../shared/components/unit-input.component.ts | 46 +- ui-ngx/src/app/shared/models/unit.models.ts | 9 + .../shared/models/widget-settings.models.ts | 27 + ui-ngx/src/app/shared/shared.module.ts | 6 + .../lib/indicator/shape_attribute_fn.md | 69 ++ .../assets/locale/locale.constant-en_US.json | 57 +- ui-ngx/src/assets/metadata/units.json | 4 +- .../shapes/horizontal-2_1-elliptical.svg | 50 ++ .../shapes/horizontal-capsule.svg | 49 ++ .../shapes/horizontal-cylinder.svg | 56 ++ .../shapes/horizontal-dish-ends.svg | 50 ++ .../shapes/horizontal-ellipse.svg | 61 ++ .../liquid-level/shapes/horizontal-oval.svg | 61 ++ .../widget/liquid-level/shapes/rectangle.svg | 49 ++ .../liquid-level/shapes/vertical-capsule.svg | 49 ++ .../liquid-level/shapes/vertical-cylinder.svg | 58 ++ .../liquid-level/shapes/vertical-oval.svg | 56 ++ ui-ngx/src/form.scss | 12 +- ui-ngx/src/styles.scss | 13 + 46 files changed, 4139 insertions(+), 34 deletions(-) create mode 100644 application/src/main/data/json/system/widget_bundles/liquid_level.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_oval_tank.json create mode 100644 application/src/main/data/json/system/widget_types/rectangle_tank.json create mode 100644 application/src/main/data/json/system/widget_types/vertical_capsule_tank.json create mode 100644 application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json create mode 100644 application/src/main/data/json/system/widget_types/vertical_oval_tank.json create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts create mode 100644 ui-ngx/src/app/shared/components/string-autocomplete.component.html create mode 100644 ui-ngx/src/app/shared/components/string-autocomplete.component.scss create mode 100644 ui-ngx/src/app/shared/components/string-autocomplete.component.ts create mode 100644 ui-ngx/src/assets/help/en_US/widget/lib/indicator/shape_attribute_fn.md create mode 100644 ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg create mode 100644 ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg create mode 100644 ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg create mode 100644 ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg create mode 100644 ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg create mode 100644 ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg create mode 100644 ui-ngx/src/assets/widget/liquid-level/shapes/rectangle.svg create mode 100644 ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg create mode 100644 ui-ngx/src/assets/widget/liquid-level/shapes/vertical-cylinder.svg create mode 100644 ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg diff --git a/application/src/main/data/json/system/widget_bundles/liquid_level.json b/application/src/main/data/json/system/widget_bundles/liquid_level.json new file mode 100644 index 0000000000..116d569f60 --- /dev/null +++ b/application/src/main/data/json/system/widget_bundles/liquid_level.json @@ -0,0 +1,22 @@ +{ + "widgetsBundle": { + "alias": "liquid_level_widgets", + "title": "Liquid level widgets", + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu8AAAHYCAYAAAD9FAbZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAbGVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAAh2kABAAAAAEAAABOAAAAAAAB35sAAAaqAAHpjAAABs0AAqACAAQAAAABAAAC76ADAAQAAAABAAAB2AAAAAA2ZqW8AAAACXBIWXMAAAsRAAALEgFUSQxSAABAAElEQVR4Ae3dB5wkZZnH8Wc2ssvmZXOCzeyyLBlE8UBQwgEid6IiIncKnuH0EAH1VFA4Do4DA+IZzjMAomAARDKCLDkvbM5szjmwce55auYdqmu6p1N1d73Vv/rQ212hq976vkX3f95+q6qhUQdhQAABBBBAAAEEEEAAgcQLtEt8CSkgAggggAACCCCAAAIIBAKEdw4EBBBAAAEEEEAAAQQ8ESC8e1JRFBMBBBBAAAEEEEAAAcI7xwACCCCAAAIIIIAAAp4IEN49qSiKiQACCCCAAAIIIIAA4Z1jAAEEEEAAAQQQQAABTwQI755UFMVEAAEEEEAAAQQQQIDwzjGAAAIIIIAAAggggIAnAoR3TyqKYiKAAAIIIIAAAgggQHjnGEAAAQQQQAABBBBAwBMBwrsnFUUxEUAAAQQQQAABBBAgvHMMIIAAAggggAACCCDgiQDh3ZOKopgIIIAAAggggAACCBDeOQYQQAABBBBAAAEEEPBEgPDuSUVRTAQQQAABBBBAAAEECO8cAwgggAACCCCAAAIIeCJAePekoigmAggggAACCCCAAAKEd44BBBBAAAEEEEAAAQQ8ESC8e1JRFBMBBBBAAAEEEEAAAcI7xwACCCCAAAIIIIAAAp4IEN49qSiKiQACCCCAAAIIIIAA4Z1jAAEEEEAAAQQQQAABTwQI755UFMVEAAEEEEAAAQQQQIDwzjGAAAIIIIAAAggggIAnAoR3TyqKYiKAAAIIIIAAAgggQHjnGEAAAQQQQAABBBBAwBMBwrsnFUUxEUAAAQQQQAABBBAgvHMMIIAAAggggAACCCDgiQDh3ZOKopgIIIAAAggggAACCBDeOQYQQAABBBBAAAEEEPBEgPDuSUVRTAQQQAABBBBAAAEECO8cAwgggAACCCCAAAIIeCJAePekoigmAggggAACCCCAAAIdIEAAAQQQSJbAY49PbynQlCnvvLaJL744u2WevXhz6tyM8bhGJk0ek7GqY44ZlzFuIyecMFFOOXliq+mVnmA+tdhupfeL9SOAAAKFCDQ06lDIgiyDAAIIIBCPgAvnFszDYbxSQTyeUudfiwv84aAfd8C/6uq7avZHQ34BlkAAAQQqL0B4r7wxW0AAgToVyBbSfQ/opValBfs4Qv3QIRfKL399JS3vpVYE70MAAe8F6DbjfRWyAwggkBQBF9ZvuumPFevOkpR9LbYc9kdL+A+Xn//s/mAVn7r4zOC5kBZ6a3VnQAABBOpdgJb3ej8C2H8EEChLwAI7Yb0swow3uzD/7avPy5huwd0FflreM2gYQQCBOhOg5b3OKpzdRQCB8gWqEdhd/3ErbbS7SXQP4j550/2C4LYTPWnWpru++uHWdLd8Oc8uoNtzOMi77ZWzbt6LAAIIpEGAlvc01CL7gAACVRGIM7S7cG7B3LqMuCHuIO7WW41n8wkHfQvccYR7swqvh5b3atQm20AAgaQK0PKe1JqhXAggkBgBF0pdq3AxBXMh/bLLzg3e5nM4z7fftm+59s8Z2jqKDfXh4J6vDMxHAAEE0i5AeE97DbN/CCBQtoC1Jhca3C2su9b0XEG27AJ5uIJswd4F+mLDvIe7T5ERQACB2AToNhMbJStCAIE0CoRPlLT9c+E8HOZtmrWsE9bLOwLc1WTCttnWaH3hoye0ZluOaQgggEAaBdqlcafYJwQQQCAugR499s9YlXXhuPOOxzOm2Ui4r3ermUzIK2Ct8Nb3v5ATU5cuXZt3fSyAAAIIpFWAbjNprVn2CwEEYhGYPPnAVuvZvn1HxjQL9PZwLcbhq6RkLMhIi4CFdRvsMps2FNOvfcKEEcF7+AcBBBCoRwHCez3WOvuMAAIVFXAh3j27rja20UJuRlTRwtVg5eUE9RoUl00igAACiRYgvCe6eigcAgikQcC1zNu+uEBvr8Oh3sbdJSN96zvvwrntg3Ufcl1fimlNt/cyIIAAAgjkFyC85zdiCQQQQCBDwIXucBDPWKDAkXCot7dE12fbcUP4Rk1umgv7bjz63NYfAeHAHX2fG4/243eh3M2vZDi3fbeTgL999e2ycMEyt0meEUAAgboXILzX/SEAAAIIlCJgVzuxh4Vg19ocd5gNry/82pU3GvbddF+f3R8r4Sv33HRTV193h3IjgAACFREgvFeElZUigEC9CESvX17JMJ82U/cLRj2eB5C2umR/EECgegKE9+pZsyUEEKgDgVxh3u16Pd6QyLWou5tXmUVbXXqcFc8IIIAAAq0FCO+tTZiCAAJ1LhBn63k0zDta1+c83K/c12Dvwrntm+ub7/rjVyKkf/em38ljj73KnWzdwcQzAgjUlQB3WK2r6mZnEUAgm4AF6WKuN25h9cEHvpltVbFOcwHfVhoO+W4j0RNI3XR7ztZHPjzfXodDd3SeG3dh3MZdIHfzKhHM3brt2fb/ogtvCE/K+dr2xZWVu6/mZGIGAgikQIDwnoJKZBcQQKBwAReIiwnrudbOzZhyyZQ33f0xVcgfILm2RJjPJcN0BBDwXYDw7nsNUn4EEGhTIM6w3taGXFjk5Mu2lLLPC9dROYE9+9rfmer+2KKO3jHhFQII+CdAePevzigxAgi0IVCtINhGEYJZLszbCGHxHa1w/djUSob1d7aa/RVhPrsLUxFAINkChPdk1w+lQwCBPALhMBhXELTgbYNdb9wG69tt2ym0/3Xwphz/uHW7/tnhfuSV7kOeo0ixTXZ1YSt01753Ky+3bszNXf/dtuPOAYjzWveEeVdbPCOAQJIFCO9Jrh3KhgACrQRcQLQ+6+UGQrdyF6jDYd3Niz5fdfVdre6EGl0mjnFXJhfyo+sMh/7ovGL/CHCm0fW4cReU3Xj0RNm46sGtP/wcDu3h6dHXVi82EOajMowjgEDaBAjvaatR9geBlAm4YFmrsJ6LsxJhMde26m26+8PFtbSXsv+ufuK8/CYt86XUBO9BAIG4BQjvcYuyPgQQKEug0mG92FbpQnbGyuy6iVSyFbqQsvi6jGtht/JXoo4qGea5NKWvRx3lRsBPAcK7n/VGqRFIlYCF3zgu3ehQLAhad5NanijqAr2VKc7WX7ePvj67VvWk1E+cdeNa5gnzvh6dlBsBPwQI737UE6VEIFUCaQzrhVZQONTbe1z/8bS02LtwbvvmArq9rkRruq03rsHVS1xh3v0BaeUjzMdVS6wHAQRMgPDOcYAAAhUXqFQwqmXLeiXRzMsN0ZNFbboL/G6Z8HOpfwSEQ3d4ffY6etJs9GTZpAfz6P4UMs4xW4gSyyCAQC0ECO+1UGebCKRcwIXPuE4ydcGynBMYU07O7lVYIO4+83SxqXCFsXoEUixAeE9x5bJrCFRTwAJ7XP3WCevVrDm2VYqAC/NxXZqSMF9KLfAeBOpTgPBen/XOXiNQtkCcrevhsG4FS2M3jHzgO3ftzrdIq/k7397TalrcEzrv16GoVXbu1LGo5dOycJxh3v5/cOcL1OP/C2k5JtgPBColQHivlCzrRSCFAq51vdR+1WESCyiF3BQp/J5av84WsMMBOtv8cJl3VSFsh7eXtNed2vhDIFvoj/7hkG2ZpO2jlcf+P3HnKsTRMk+rfBJrmTIhUDsBwnvt7NkyAokXcCEkjitwJCWshwN2vuBd72E76Qdo9I+BaLgPh//ovGruW9z/H9EqX83aY1sIJE+A8J68OqFECNRUIK7W9XBXmEr+9B8O4wbnAnl4OiG8podU4jbuQn800Fcr7MfZxYZW+cQdXhQIgYoLEN4rTswGEEi2gIV1G+K4MkzcrevhAG6hPDxOIE/2cZWW0mUL+i7kR8N/KfvsWuXtveV2sSHIl1IDvAcB/wQI7/7VGSVGoGwB17puKyqn/3o5revhIE4wb6pSFxSLreA4QmR0m+H6ic7LNV6vf1C5egvXQ6kBP65Weft/k+41uY5UpiPgtwDh3e/6o/QIFCzgAns5Yd02VkzruguAaQnnLqSF0cOBzaa70BZeJvw6unx4Xtpfu+Mh23667k7heeHlff/DwI4dV/fuGHHj4X2Ovo4rzNMqH5VlHAF/BQjv/tYdJUcgr0AcgT1f67oLWL4E9GgADwcoF6ocbHiem8ZzcgTcsedKFP0DwM1PevAPB3vbFzsOsx17rotNuSeQE+TdEcMzAn4KEN79rDdKjUBWAftyt6Hc/uvZWtddEAqH9KSEonAgd6GHIJ71EGGiCoSP5TCIm56U49rKFg720VAfR6s8QT58BPAaAT8ECO9+1BOlRCCnQNyB/YQTxgbbSkJIbyuUu5CeE4YZCMQg4AJ9uFXfptU64EdD/XXX/SnY23JOenX95L999XkxyLEKBBColADhvVKyrBeBCgrEEdjti3rfvka59NIPypFHHhSUttqBxIVzF8TDreVuWgUZWTUCsQgkKeB379FF/vP6e4L9uu1XD5a8fwT5kul4IwIVFyC8V5yYDSAQj0AcgX3iIaNlX2OjXPypD8i73z0unoLlWUs4oLtwTjDPg8bsVAlYuK9Vy/0zz8yWl1+dL1NfXyDTp80ryZUgXxIbb0KgYgKE94rRsmIE4hGw0F5OH/aDJ44KwrqVplKBnYAeT12zlvoTiLbaV7pLzne/d7+8rkF+1swFJWET5Eti400IxCpAeI+Vk5UhEI9AuYF9/MEj5ZKLT401rBPQ46lb1oJAoQKVbrG3IG/Db+98rNAiZSzHya4ZHIwgUDUBwnvVqNkQAm0LJCmwu6DeQ/vP2kA3l7brjrkIVFMgHOrjaqknyFezBtkWAuUJEN7L8+PdCJQlUOvA7kK6hXP6o5dVlbwZgZoLxBXq4wjyJ5wwUU45eWLNTSgAAmkUILynsVbZp8QLlBPaS+0S44I6remJPzwoIAKxCmzevCNYXymt9OUEefrHx1qNrAyBFgHCewsFLxCorEA1A7sL6q5FnW4vla1b1o6ATwKlttCXE+TpH+/TEUJZky5AeE96DVE+rwUssE+ZMl1KuZ15MS3sFtYJ6l4fKhQegZoKFBvoyw3y3AiqptXNxj0XILx7XoEUP5kCpbayu8Bue5Xrso6uVZ3uL8mse0qFQFoEXKDP193Ggnwpl5+kNT4tRwr7UW0Bwnu1xdleqgVKCe0W2G3IdWlHwnqqDxl2DgFvBPKFebsh1IsvzS3p0pMW5GmN9+ZQoKA1FiC817gC2Lz/AqUEdttr18oebWEnrPt/TLAHCNSDQFthvtRuNYT4ejhy2MdyBQjv5Qry/roVKCW0txXY6QZTt4cSO45AKgRyhflSutXQpSYVhwQ7USEBwnuFYFltegUstN944x9k+pvzCt7JaGgPt65zJZiCGVkQAQQ8EnCXqNzSfKnKUrvV0BrvUaVT1KoIEN6rwsxG0iBQbGjPFthpXU/DkcA+IIBAsQLRIF9Ka/wnPnm6/Od1Hyt20yyPQOoECO+pq1J2KG6Bhx6eKjfddI/MnD6/oFWHQ7u1sFtgp3W9IDoWQgCBOhAId695Qn/JLPYkV0J8HRwk7GKbAoT3NnmYWc8CxYR2C+yHHTZSLv23M4XAXs9HDfuOAALFClirvHWtsdb43975WMFvJ8QXTMWCKRMgvKesQtmd8gWKDe12iceTTp5IC3v59KwBAQTqWMC1yH/nO3cHCoUGeQvxX/vqOcFncB3zset1JEB4r6PKZlfbFig2tH/u82fIKSdPks7Ndzdte+3MRQABBBAoVMBa4//z+ntk967dBbXGf/Rjp0jHTh0J8YUCs5zXAoR3r6uPwschUEpo//u/P5x+7HHgsw4EEEAgj4AFeWuNL6Ql3kL8t7714WCN7gIBeVbPbAS8EyC8e1dlFDguAfuJ9pvf/J385vZH8q7y4Imj5ItfPFPOOvPIvMuyAAIIIIBA/AKuNf62Xz2Yd+UuxBPg81KxgIcChHcPK40ilydgof0vf3lNfnTrAzJr5oI2V2ah/bLLzpHTTp3c5nLMRAABBBCojoB9hl999e+FEF8db7aSPAHCe/LqhBJVUKDQn18J7RWsBFaNAAIIxCTwta/fmTfEu1Z4zk+KCZ3V1FyA8F7zKqAA1RAotLWd0F6N2mAbCCCAQLwC+UK8u//GaacfxlVp4qVnbTUQILzXAJ1NVlegkNZ2Qnt164StIYAAAnELXHX1XfLzn93f5mqtFf5KvaxkvwN6tLkcMxFIsgDhPcm1Q9nKFigkuHOjj7KZWQECCCCQGIF8rfAE+MRUFQUpUYDwXiIcb0u+wJq1m+VjH70550mp1tp+5ZX/qNdqn5j8naGECCCAAAJFCbQV4q0bzZ2//TI31ytKlIWTIkB4T0pNUI5YBf74pxfbvJrMRf98hlx7zUdj3SYrQwABBBBIlkBbXWlcP/gPfugo7tuRrGqjNHkECO95gJjtn4C1uB8++QtZC05re1YWJiKAAAKpFXjs8ely0YU35Ny/m2/+rBDgc/IwI4EC7RJYJoqEQFkC1lUm2zDxkNHy6CNX0U0mGw7TEEAAgZQKWNfIpct+LXZ+U7bhpz97WOz8KAYEfBEgvPtSU5SzIAH7AM524yX70H744W8VtA4WQgABBBBIn8B/XvcxsS6T0cG+M6zRhwAflWE8qQKE96TWDOUqSeA737m71fu4mkwrEiYggAACdSlg5zrlCvDZvj/qEomdTrwA4T3xVUQBCxWwVpPf3vlYxuIE9wwORhBAAIG6F7AAn60LjX1/2MUOGBBIugDhPek1RPkKFsjWamI/kzIggAACCCAQFrDvBjsPKjr86NYHxO7IzYBAkgUI70muHcpWsEC2VvdPXXxmwe9nQQQQQACB+hK4/Ip/aLXD1v/9iSdmtJrOBASSJEB4T1JtUJaSBa79jz9kvNd+Ev321edlTGMEAQQQQAABJ2BXobHLB0eHm266JzqJcQQSJUB4T1R1UJhSBV59ZV6pb+V9CCCAAAJ1KnDZZefU6Z6z2z4LcJMmn2uPsrcIDB1yYctre2HX9GVAAAEEEEAgn0D0+8OW5zsknxrzaylAy3st9dk2AggggAACCCCAAAJFCBDei8BiUQQQQAABBBBAAAEEailAeK+lPtuumMBjj0+v2LpZMQIIIIBAOgT4rkhHPdbbXhDe663G2V8EEEAAAQQQCASmTKGhh0PBPwHCu391RokLELjppj8WsBSLIIAAAggggAACfgkQ3v2qL0pboMCbU+cWuCSLIYAAAgjUq8DPf3Z/ve46++2xAOHd48qj6G0LXHX1XW0vwFwEEEAAgboV4Duibqve+x0nvHtfhexALgFaVHLJMB0BBBBAgO8IjgFfBQjvvtYc5S5IgJaVgphYCAEEEKgrAb4b6qq6U7ezhPfUVSk7FBawlhUuBRYW4TUCCCBQ3wL2nUCre30fA77vPeHd9xqk/HkFLrrwBgJ8XiUWQAABBOpDwL4TGBDwWYDw7nPtUfaCBbh0ZMFULIgAAgikVuD0M65J7b6xY/UjQHivn7qu6z21S0fyoV3XhwA7jwACdS5g/dy5jHCdHwQp2X3Ce0oqkt3IL2Af2pyklN+JJRBAAIG0CVjjDf3c01ar9bs/hPf6rftU7/mnLj4z6/7Zhzct8FlpmIgAAgikTsBOTrXP/Fwt7rm+K1IHwQ6lSoDwnqrqZGecwLevPk9yfSjbh/jQIRdyEqvD4hkBBBBIoYAFdzs5ta3gbt8VDAj4JkB4963GKG/BAm0FeFuJfajTjaZgThZEAAEEvBGwz/a2riozafIYIbh7U50UNCLQITLOKAKpEnAfzrn6OrrpbrlU7Tw7gwACCNShQFvdZIzDfpXlM78OD4wU7TIt7ymqTHYlu4B9SOfqQmPvsABv3Whohc/ux1QEEEDABwH7DLfP8lzdZGwfCO4+1CRlzCdAy3s+IeanQsC1sriW9mw75eadcMJEOeXkidkWYRoCCCCAQMIErG+73cujrdBuRf7lr6/ksz1hdUdxShNoaNShtLfyLgSSI2CtLeFh6bJfh0dbXhf6IU/rTAsZLxBAAIHEClhru2t4yVVI699+2WXn5gzu0e8PW0+u75Bc22A6AtUUoNtMNbXZVs0FrEX9wQe+2WY3GiskXWlqXlUUAAEEEMgp4C4BWUhwt898fk3NSckMDwXoNuNhpVHk8gVcN5oXX5zd5k+t9sVgD1riyzdnDQgggEC5AoX+epqvtb3ccvB+BGopQLeZWuqz7dgEoj97FvOTZyE/u7qCEuKdBM8IIIBA9QTsczpfY4srTbGf09HvD1tPMd8hbrs8I1AtAcJ7taTZTkUFoh++pXzwEuIrWkWsHAEEEChaoJjP5VJb26PfH1bIUr5Dit453oBAiQJ0mykRjrelT8B1pcnXh9L2nO406at/9ggBBJIhUGjXGFfaUkO7ez/PCPgmQMu7bzVGebMKRFtOym01Kaa1xwpkXx7HHDOOG39krR0mIoAAAvkFahXao98fVtJyv0Py7y1LIFC6AOG9dDvemSCB6IdvXB+8FuJtKKQ13nFYf0sbXEu+m84zAggggECmQLGB3d4dd0t79PvDthHXd4itiwGBuAXoNhO3KOtLlUA0gBcS4t0y9lzsiVOpwmNnEEAAgSwCFtinTJle8AmobhVxh3a3Xp4R8E2A8O5bjVHemgiUEuKtoBbg7UG3mppUGxtFAIGECFhgt6GQO6FGi0xoj4owXu8CdJup9yMgJfsf/dmzGj95Ftsv3lG7IH/CCRO5cYhD4RkBBFIn4LrE2I69OXVuUftXzc/J6PeHFbQa3yFFgbAwAiEBwnsIg5f+CkQ/fKv5wVtKv/iwNH3kwxq8RgABnwXKCey237VoZY9+f1g5qvkdYttjQKAYAcJ7MVosm1iB6IdvrT54LcgXeiORbJgE+WwqTEMAgaQKlNMdxu1TLQK727Y9R78/bFqtvkNs2wwI5BMgvOcTYr4XAtEP3yR88JbarSYMTpgPa/AaAQRqLRAO61aWYrvDuPJbYLfhssvOrXn3wej3h5UrCd8hVg4GBLIJEN6zqTDNO4Hoh2+SPnjty66UKytkqwTCfDYVpiGAQKUE4grrVr5q9mMvxiP6/WHvTdJ3SDH7wrL1IUB4r496Tv1eRj98k/zBW24f+XBlEubDGrxGAIFyBeIM61YW1yXGXp9y8kR7StwQ/f6wAib5OyRxgBSo6gKE96qTs8FKCEQ/fH354I0zyJurC/NcyaYSRxnrRCB9AuFfBm3vSu0GE5ZxgT2pYT1cVnsd/f6wab58h1hZGepPgPBef3Weyj2Ofvj6+MHrgnw5J7xmq1wCfTYVpiFQfwKVCOqmmKT+66XUavT7w9bh43dIKfvOe/wUILz7WW+UOiIQ/fBNwwdvpcK80RHoIwcQowikSMB1fXHn2tiuxdGi7oh8D+tuP9xz9PvDpqfhO8TtH8/pEyC8p69O63KPoh++afzgrWSYt4PGvpCPOWZccPzQ7aYu/zdipz0UiAb1OEO640hbWHf75Z6j3x82PY3fIW5/efZfgPDufx2yByoQ/fCthw/eSod5d2CFQ71NI9g7GZ4RqI5ANKDbVisR0t3epD2su/10z9HvD5teD98hbv959k+A8O5fnVHiLALRD996/OB1/VmNJ+5+81nIg0nhYE+oz6XEdAQKE6h2SLdShYO6jftykqmVNa4h+v1h663H75C4PFlP5QUI75U3ZgtVEIh++PLB24Rei0Dvqjsc7G2ahXsb6jEcBDvOP3Ut4IK5IYT7ott4JVvRbf1uIKg7iczn6PeHzeU7JNOIsWQJEN6TVR+UpkSB6IcvH7y5IWsZ6MOlckHC9bO3ebTeh4V47YtANJhbue3XLxuqFcyDjYX+cf9/2R1MbeCP5hBO5GX0+8Nm8x0SQWI0UQKE90RVB4UpVSD64csHb3GS4UBv76xWt5t8pXQBJBzw7T2uFd9eE0pMgSFugXAgt3Vba7kNLpTb61oFc9u2G8L/j7j/L/h/wukU9hz9/rB38R1SmB1L1UaA8F4bd7Yas0D0w5cP3viAw8E+KaE+196Fg0x4GRdq3DTCjZOoj+doELe9TmoYz1Uj4WPbHc8cx7m0ipse/f6wd/MdUpwhS1dXgPBeXW+2ViGB6IcvH7wVgg6tNhzqbXLSg32o6K1eumDkZkRb+m26C0xuGXsmPIU14n/dVuh2Wwu3hLtpSWgRd2Up5tkdh3b8ueONY6wYwdKWjX5/2Fr4DinNkndVR4DwXh1ntlJhgeiHLx+8FQbPs3oXulzrpi3uc7jPs7s5Z7swlm2BbH8gZFsuOs2Fuuj0So+H67LQbWUL1uH3+hqyw/tQ6OvwsRAO5/Z+AnqhipVZLvr9YVvhO6Qy1qw1HgHCezyOrKXGAtEPXz54a1whBWw+W8u9va2eAl0BTCziiQDh3JOKylLM6PeHLcJ3SBYoJiVGoENiSkJBEECgrgSstTFfi2O2FnxDci26BP26OmSqurPhMG4bdr+URH/5yHcMV7XQbAwBBOpCgPBeF9XMTiLgp4ALRu65rb1wQd+WiXbxcGHf5hH4TaG+hmgQt70njNfXMcDeIpAmAcJ7mmqTfUGgjgXCAT/8uhCScPC35aPh36aF/wCwcf4IMIXKDtlCt23RBW97HW0Jt2nF1r+9hwEBBBDwRYDw7ktNUU4EEKiYQDTsRcdL2XD0D4LoOrL9gRBdJjoe/QMiOr8a4+HgXMj2soXr8PvisA6vj9cIIIBA2gUI72mvYfYPAQRqIpAvlOabX5NCs1EEEEAAgcQLtEt8CSkgAggggAACCCCAAAIIBAKEdw4EBBBAAAEEEEAAAQQ8ESC8e1JRFBMBBBBAAAEEEEAAAcI7xwACCCCAAAIIIIAAAp4IEN49qSiKiQACCCCAAAIIIIAA4Z1jAAEEEEAAAQQQQAABTwQI755UFMVEAAEEEEAAAQQQQIDwzjGAAAIIIIAAAggggIAnAoR3TyqKYiKAAAIIIIAAAgggQHjnGEAAAQQQQAABBBBAwBMBwrsnFUUxEUAAAQQQQAABBBAgvHMMIIAAAggggAACCCDgiQDh3ZOKopgIIIAAAggggAACCBDeOQYQQAABBBBAAAEEEPBEgPDuSUVRTAQQQAABBBBAAAEECO8cAwgggAACCCCAAAIIeCJAePekoigmAggggAACCCCAAAKEd44BBBBAAAEEEEAAAQQ8ESC8e1JRFBMBBBBAAAEEEEAAAcI7xwACCCCAAAIIIIAAAp4IEN49qSiKiQACCCCAAAIIIIAA4Z1jAAEEEEAAAQQQQAABTwQI755UFMVEAAEEEEAAAQQQQIDwzjGAAAIIIIAAAggggIAnAoR3TyqKYiKAAAIIIIAAAgggQHjnGEAAAQQQQAABBBBAwBMBwrsnFUUxEUAAAQQQQAABBBAgvHMMIIAAAggggAACCCDgiQDh3ZOKopgIIIAAAggggAACCBDeOQYQQAABBBBAAAEEEPBEgPDuSUVRTAQQQAABBBBAAAEECO8cAwgggAACCCCAAAIIeCJAePekoigmAggggAACCCCAAAKEd44BBBBAAAEEEEAAAQQ8ESC8e1JRFBMBBBBAAAEEEEAAAcI7xwACCCCAAAIIIIAAAp4IEN49qSiKiQACCCCAAAIIIIAA4Z1jAAEEEEAAAQQQQAABTwQI755UFMVEAAEEEEAAAQQQQIDwzjGAAAIIIIAAAggggIAnAoR3TyqKYiKAAAIIIIAAAgggQHjnGEAAAQQQQAABBBBAwBMBwrsnFUUxEUAAAQQQQAABBBAgvHMMIIAAAggggAACCCDgiQDh3ZOKopgIIIAAAggggAACCBDeOQYQQAABBBBAAAEEEPBEgPDuSUVRTAQQQAABBBBAAAEECO8cAwgggAACCCCAAAIIeCJAePekoigmAggggAACCCCAAAKEd44BBBBAAAEEEEAAAQQ8ESC8e1JRFBMBBBBAAAEEEEAAAcI7xwACCCCAAAIIIIAAAp4IEN49qSiKiQACCCCAAAIIIIAA4Z1jAAEEEEAAAQQQQAABTwQI755UFMVEAAEEEEAAAQQQQIDwzjGAAAIIIIAAAggggIAnAoR3TyqKYiKAAAIIIIAAAgggQHjnGEAAAQQQQAABBBBAwBMBwrsnFUUxEUAAAQQQQAABBBAgvHMMIIAAAggggAACCCDgiQDh3ZOKopgIIIAAAggggAACCBDeOQYQQAABBBBAAAEEEPBEgPDuSUVRTAQQQAABBBBAAAEECO8cAwgggAACCCCAAAIIeCJAePekoigmAggggAACCCCAAAKEd44BBBBAAAEEEEAAAQQ8ESC8e1JRFBMBBBBAAAEEEEAAAcI7xwACCCCAAAIIIIAAAp4IEN49qSiKiQACCCCAAAIIIIAA4Z1jAAEEEEAAAQQQQAABTwQI755UFMVEAAEEEEAAAQQQQIDwzjGAAAIIIIAAAggggIAnAoR3TyqKYiKAAAIIIIAAAgggQHjnGEAAAQQQQAABBBBAwBMBwrsnFUUxEUAAAQQQQAABBBAgvHMMIIAAAggggAACCCDgiQDh3ZOKopgIIIAAAggggAACCBDeOQYQQAABBBBAAAEEEPBEgPDuSUVRTAQQQAABBBBAAAEECO8cAwgggAACCCCAAAIIeCJAePekoigmAggggAACCCCAAAKEd44BBBBAAAEEEEAAAQQ8ESC8e1JRFBMBBBBAAAEEEEAAAcI7xwACCCCAAAIIIIAAAp4IEN49qSiKiQACCCCAAAIIIIAA4Z1jAAEEEEAAAQQQQAABTwQI755UFMVEAAEEEEAAAQQQQIDwzjGAAAIIIIAAAggggIAnAoR3TyqKYiKAAAIIIIAAAgggQHjnGEAAAQQQQAABBBBAwBMBwrsnFUUxEUAAAQQQQAABBBAgvHMMIIAAAggggAACCCDgiQDh3ZOKopgIIIAAAggggAACCBDeOQYQQAABBBBAAAEEEPBEgPDuSUVRTAQQQAABBBBAAAEECO8cAwgggAACCCCAAAIIeCJAePekoigmAggggAACCCCAAAKEd44BBBBAAAEEEEAAAQQ8EejgSTkpJgIIIJBYgV27dsnSpUuDx7Jly6R79+4yatQoGT16tHTs2DGx5aZgCCCAAAL+CRDe/aszSowAAgkQeOutt+SOO+6Q++67T5YsWSKNjY2tStWuXTs54IADZOjQoTJp0iT58pe/LP369Wu1XKUnzJgxQ2677TZ56KGH5Mwzz5Rrrrmm0ptk/QgggAACFRIgvFcIltUigEA6BSwIX3HFFfLaa69lDezhvd63b5+sXr06eLz66qty9913y8UXXyxf+tKXZL/99gsvGvvrtWvXyp133il//OMfZfbs2S3rf/vtt1te8wIBBBBAwD8Bwrt/dUaJEUCgRgI/+tGP5MYbb5SdO3eWVILt27fL97//ffnNb34jV155pZx//vklrSfXm3bv3i333nuv3HXXXfLcc8/J3r17cy3KdAQQQAABTwUI755WHMVGAIHqCViXmAsuuECeeOKJWDa6Zs0a+cpXviJbtmyRz3zmM2Wv8/nnnw+68DzyyCPBOsteIStAAAEEEEisAOE9sVVDwRBAICkC3/rWt2IL7uF9sr7nI0aMkNNOOy08uaDX1uf+9ttvl3vuuUfsJFkGBBBAAIH6ECC810c9s5cIIFCigJ2Q+n//939tvrtz584yduxYGTNmjIwbN042bdokM2fOlDfeeEPWrVuX873WJ/6qq66SU045RTp0yP9xvG3bNvnd734nv//972Xq1Kl5+9zn3DAzEEAAAQS8Fcj/beHtrlFwBBBAoDwBO7nz8ssvbzMkH3HEEWJ94YcPH95qY9bH3fq2/+EPf2g1z02wK9X86le/kk996lNuUtZn62Jz6KGHltzfPutKmYgAAggg4J0AN2nyrsooMAIIVEvAWrktNOcaLHD/+c9/zhrc7T1du3aVW265Jbg6Ta512PS//OUvbc0O5u3Zs4fgnleJBRBAAIH0CxDe01/H7CECCJQoYNdxzzVYS7t1eWloaMi1SMt0uzTkyJEjW8ajL+yyk3ajpzgG+4PBri3PgAACCCCQTgHCezrrlb1CAIEyBebNmyfTpk3LuRYL7oX0U7cVWMC3q8vkGuzSk3YCaqmD9bm3fvO33nqr2HXoTzzxxFJXxfsQQAABBBIuQJ/3hFcQxUMAgdoIWAjONXTv3l1OP/30XLOzTj/66KOzTncTV61aFZzw6sbzPXfq1EmOO+44Oeecc+Tss88Ouujkew/zEUAAAQT8FyC8+1+H7AECCFRAYPHixTnXOmTIkJzzcs2w93Tp0kV27NiRdZGtW7dmnR6e2L59e7E/Aj74wQ/KueeeK/ZHBAMCCCCAQH0JEN7rq77ZWwQQKFBg6dKlOZfMdmWZnAuHZrQV3u16720NFtTt0pO9e/duazHmIYAAAgikXIDwnvIKZvcQQKA0gQsvvFBOOumkrG9u6+TTrG/QiXbZyA0bNmSd3a5dOxk1alTWeW6i9a8nuDsNnhFAAIH6FSC812/ds+cIINCGwIQJE8QecQ3Wat7Y2Jh1df369RPrw5624U9/+pPYY+7cuUF3Ifuj59hjj5VLL700lfubtvpjfxBAIJkChPdk1gulQgCBlAn88pe/zLlHp556as55Ps6wO8F+9rOflcceeyyj+KtXr5bnn39e7rnnHvnJT34S3HQqYwFGEEAAAQTyCnCpyLxELIAAAgiUJ7Bu3Tp5+OGHs67ELiOZ7+6qWd+Y4Inf+MY3WoK7XXP+Ix/5SLCP48ePD0ptl8W85JJLZPfu3QneC4qGAAIIJFOAlvdk1gulQgCBFAlcccUVOe+OOnny5KIuEZl0Frvh1F133RUU88ADDwzuQNu3b99g3LoNfeELXwi60tjVfL773e/mvPvso48+KsuXL5dPfvKTSd9lyocAAghUVYCW96pyszEEEKg3Aevz/eCDD+bc7csuuyznPB9nPPHEEy19+y+//HJxwd32xX5luO6668RuKmXD008/HTxH/7GTe+0Pnq997Wty0UUXRWczjgACCNS1AOG9rqufnUcAgUoKLFu2TP793/895ybOOOMMOfnkk3PO93HGrFmzWoptN5GKDj179hR3WcyFCxdGZwfj11xzjdhNq2x4//vfHzzzDwIIIIBAkwDhnSMBAQQQqICAtR6ff/75snHjxqxr79Gjh1x//fVZ5/k80fr3u2HgwIHuZcaz7bsN2Wzsqjy33357MP+oo46Sj3/848Fr/kEAAQQQaBIgvHMkIIAAAjELWN/uT3/608ElEnOt+pvf/KbYyZxpG/bbb7+WXXr77bdbXodf7Nq1Kxi1a9eHB3Ozy0ju3bs3uJTkzTffHJ7NawQQQAABFSC8cxgggAACMQvY1VaefPLJnGv90Ic+lNoW5bFjx7bs95w5c1peh1/Yiag2DBkyJDxZfvzjH8vMmTODaXY1mtGjR2fMZwQBBBBAgPDOMYAAAgjEKvCDH/xAfvGLX+Rc5xFHHCHf+973cs73fcbEiRNbdsGu5R4d7r//flm7dm0wedy4cS2zV6xYITfddFMwPnz4cLGTXRkQQAABBFoLZP5m2Xo+UxBAAAEEChS444475IYbbsi59ODBg+W2226Tjh075lzGzXA3Y23cJ6L/iejNWfW/d57tZTDBJuprXciN7tmbOa9piaZ/9+wR2d7cm6UhPENf23hD6PdYvThMMARP+o97tkXccm6ZpiVFzjnnHLnllluCLkP33ntvcGWZiy++WHr37h1c696uNmODdZkJX2nnyiuvFDtPwK5Ic+ONNxZk5LbJMwIIIFBPAoT3eqpt9hUBBMoSsHDcqMF4r77YZ6HaArO91sfDDz2glzf8qk5rzAjVboP7d+smN333Ng3OvWXbiqb32Xv1v+Afe3brCyYFM+xV8YPe4DQoU7Z3bt0usnxltjmlTXPh3Z7baapvkA7ytW/cIp+95FzZsWO73Hnn74JHeO0W0D998b/JgEETZL2ez/vXvz4kjz7adDfW0884S4486gTZoX9g2Prs0d7+cLB1B389hNfEawQQQKD+BAjv9Vfn7DECdStgYdlapS0k6zmRQcB1ITyYZoG8udXaArmbZ+/b2xzU7XV0eO3VZ+XLX/q8rlvfnGXo2LGTXHPtT2XIsINlx84sC3g8yXnYs3nZMHrMoXL7nX+T6669VF55+Rn9A+UdtP4DBstXLr9O3v2eD8iGTaI3r9ohV3/ra0Fd9OjRSz73r9fJ8qarRDatrPlfC+72aN8c4l2wb9c8vV37pnkt0y342/I63aZ10GfCfwYpIwgg4KkA4d3TiqPYCCDwThC3riAWti07B4/mEG6B28J40FKuz7aMC5tx+c2d86Zc+ZV/kl27s6fy9poqr776FjnmuBPj2qQX6xkwcIh8/4d3aVeYbTJvzjTZvGWjjBt3qPTrPyij/D/8wXdkzdqmtP7Zz39devbskzHfjVi9hf9AcNMLfbbgbmE+CPnu2QJ+c+i3kB8EfZ1nF8Fxgb/Q9bMcAgggUC0Bwnu1pNkOAggUJGABbbeGcRfCg2Cuwdu1mLtnm28tvbp4zYZly96SS794vmzbviVrGRq0E8nlX71BTjz5rKzz62Fi1677y6GHHZt1V+fMfkPu/dPtwbxJk46Ssz94Qdbl4phox5X9EWd/0O0uYIWa4Zu67IRa7i3Qu5BvAd9+BbDxjvqaVv0CUFkEAQRiESC8x8LIShBAoBCBXZqa1m/Qm/No1t2kXSY2bm5q5ZyoVxe0UG7ByoXyQtZXy2XWr18jX/z8h2XDxnduShQtz+f/9Rty1tnnRyczrgJ2Tffrrr1M63yvnpzaSb72701XmkkKjv1RGByPekzmGyzUr9Xj+vmXRLp3E+nRXaTb/iK99F5UekNZ6aXjfXqLdMp/nnK+TTEfAQQQ0DOLGBBAAIGYBLbvaNQTEBuCkxAtmNvNRTfryZOb9fWWrSJb9bEz0rtkkPaiGDE0pgJUaTXbtm2RL37uw7Jy5dKcW7zon74kH/v4Z3POr/cZv7vzJ3pFmukBw0c/eomMOHBMC8mjj/xJpvztYVm0aK7+MbdHRhw0Ro7TbkeVbJlv2XgJL+wXILsf1dJlud/cubMGeg32QbjXUN/Dwn2vpoDfR5/79GqUrl2svZ8BAQQQaFuA8N62D3MRQCAisFkDuF0hxC7VvU6fLaS7VvQtWxpahfPI270f3b17l3aV+ZgsXJT9BkS2gx8690K5+DNXer+vldqBNatXyM9/9t/B6gcPHi6f/kzTNd23aL/4q7/5eXn++ScyNm0h/m9PPCAP/uVu+c61P27Vbz5j4YSO2B+t9liX44eazp0bpLu20Le01mvA76uh3m7Ca+G+hwZ/BgQQQMAECO8cBwgg0Epg565GWb22Qdaubwrq1tVlnT42aVC3VvTdhXQabrVW/ydYV48rv3KRTJ/+as6def8HPiRfueL6nPOZIXLjDXpNd72MpJ0TcOXXbtQTRJv6k1z7nX9rCe69evaVI448Xtpr5/LX9Wo+dlLrG2+8JN/6xr/I//z03tQxunDffP+qjP2z2wL00DDf0wK9dr+xLjgW6A/oI9L/gEbp3IkW+wwwRhBIuQDhPeUVzO4h0JbAzl0iq9aIrNbHGg3qFtDX6fMm7fpi1wNnyBT49lVfkBdeeDJzYmjsXe96n1z17R+GpvAyKvDU3x6UZ555LJj8Pj2R96ijTwhePz3lYXl6yiPB65Ejx8sP/+f3LVeesSvWXPZv5wfh3QL8n+/7TV2dS2B/LFuLvT0WLMwU7da1QXpqkO+rQd6CfT8L9P1EBuijc6fMZRlDAIF0CBDe01GP7AUCeQUspK+0kK4BYLV2eVmvIX39xkbth06rXV48XeB7N39TrC92rmHyYcfJ9Tf+Qq86gmcuI7um+803fj2Y3b17T7nsiqa7rdqEZ55uCvT2+stfubYluNu4XbHmq1//bzn/o39no/Lss4/XVXgPdjrHP/ZHtj2WLc9coFu3Rm2db5A+Qeu8hvq+IgObQ33mkowhgIBvAoR332qM8iKQR8AuibdM76C5bGWjrFnTIKs1rFtg37Cx6ZrnmW8naGZ6ZB/79S+/L3ff9fPsM3XquPGT9O6pt7d0/8i5YJ3PuPWWa1uu6f65L/x7RkBftLDpHIIOeu3FyZOPaSVlJ7TaTZw2b94oSxbNbzWfCZkC9ke5nSC+eOk70+2a9r21ld6CfH999OvXKEMGNuiDS12+o8QrBJIvQHhPfh1RQgTaFFi5Wq9yoa1uK/Q5COrNrer6ddzm+5hZmMB9994uP/3xf+VceMSI0fIDvRlRly5dcy7DDBG7pvs9f/x1QJHtmu4bN+pPQTrsv38PvXFS9q+mbt16BOF9wwb9a5ShaAG7YZnrfjMreHfTZ4S1zvfTE2Mt0A/qLzJ0sLbS6zMDAggkUyD7J2Qyy0qpEKh7gW07tCVNL0e3XFvWV+hNKVfqY42GdWttZ4hf4Cm9wsl/3/A1vRFUbmA72fIKvcNqHIO1Ov/g1rvjWFWi1lHINd07ddJrKeqwx+7KlWPYo5eNtKGd3R2JITaBoAud/u00u3mN1vPLwvzAARrm9TFYW+aHD9E/rLrEtklWhAACZQgQ3svA460IVFrATiB9a6l2gVnRFNRXaVC3q70wVEfgJz+5IbiJUFtbmz9/Zluzi5pn4T2NQ/ia7ud95NMZ13R3+zt46AiZN29GcLfarVs36TXRe7pZwbP9AbBhnZ60ocOgQcOCZ/6pjIA1BthJ7PZ4Y1rTNuxqNwOaA/2Q5nsz2AmyDAggUH0Bwnv1zdkiAjkF7JrpCxeLLNFuMEFg1xb2HXrzFwYEfBb48313BsW3a7pf8i9XZt2V0aPGy1NPPhjMu/t3/yv/9KnLMpb78313yO49TdcoPWjk2Ix5jFRewBoN7DF3QdO2uuynLfPaIm9Bfph2szloeNM16itfEraAAAKEd44BBGooYMF84ZJGPamsQZZoC/uK1Vz9pYbVwaYrJPC/v3hQbr3lO3LiSX+f86Tef/jwP8vv7/5F0Kf9V7+8RTp37iJnn/Nxad++o/z1sfvklu9/Jyidda+54MIvVKikrLZQgeCza5F+funDBru6zaD+DTJsqHaxGdooBw1rEAv4DAggEL8A4T1+U9aIQJsCdrnGBdq6vvAtO9G0UU8gazpprOlN4ddtroaZCHgjYCfz5rtxVa9efeXSy66Va67+ot4EbJfc+sNr5Uc//I/g0pv7Gve17OvFl1wuw4aNbBnnRTIE7Oo2c7e6lvkG6du3UU98bZCDRoiM1FZ5u0wlAwIIxCNAeI/HkbUg0KbAfA3qFtgX6fNy7RJjJ542DYR1J8EzAh849Vw9SXKI/Mc1l8rSZYuCE4Wtr7sNffr007ux/pe854RTgfJAwBol7Mo2U9+0Kwg1nfR6YHOQH6XPDAggULpAg34wNn0ylr4O3olAzQWGDrkwowxLl/06Y7wWI/MWNbVCLdDnpXqFmL3vNB7WojiJ3eYg7TN71gcSWzwKVgMB+1pa/NY8mT37Tdm1a6eMP3iyjDxobM5LSNagiK02uVyv/HT/Q60mMyEiYBcKGqpXrhl5oMiYkSKj9bnWQ/T7w8qThO+QWruw/eQK0PKe3LqhZB4K2MmmcxZoK7u2sC9e2ih799Cy7mE1UuQaC9hdau2mTPZgSJeANWK8taTp8dRzjdo/vkFGakv8WA3ydtIrAwII5BcgvOc3YgkE2hTYsLlRps9qkDl600frx75zp1uc4O4keEYAAQSiAta4YSe82uPp5zW8W4gfJTJxfKP07sHnZ9SLcQScAOHdSfCMQJECM+aKzJqnXWPmN/XtLPLtLI4AAggg0CxgjR6z5jQ9nnmxQcZoiB8/WmQCP75wjCDQSoDw3oqECQjkFrDLo70+XWSGfsnMnd8o+/bSOpRbizkIIIBA8QJ2oqs9XnylUUN8g0zQy/ofNlG49GTxlLwjpQKE95RWLLsVr8AavXX4GzNEZs62vuxu3QR3J8EzAgggELeANY7M1oYSe7zyusjB40QOnSDSr0/cW2J9CPglQHj3q74obZUF1m8QeVkvdTZtlsjKFVXeOJtDAAEEEAgErNHEHlO1EeWQ8SJHTdLLh/YGB4H6FCC812e9s9d5BDbrzUZe1paeN2eKLNPrsjMggAACCNRewBpR7GG/gk46WEP8YSI9utW+XJQAgWoKEN6rqc22vBB4aar+RKuPBQu9KC6FRAABBOpOwBpV7GGX5j1yssjR+mBAoF4ECO/1UtPsZ16BxXojpedf0b7tekLqrl15F2cBBBBAAIEaC1gji90Ezy7Te9yRIsP1BlAMCKRdgPCe9hpm/woSeE5DuwX3FfRrL8iLhRBAAIGkCFhjy8uvaUv8yqYA/y4N8QwIpFmA8J7m2mXf8gps2tIoTz3XIC++Gr65Ut63sQACCCCAQMIErPHlgUdF1q4Tee+7GqVnd64IlrAqojgxCRDeY4JkNf4JrFoj8uhTDfLGNP/KTokRQAABBFoL2M2epjwnsmlLg7z/vSID+rVehikI+C5AePe9Bil/SQLWv/2xp5ru5lfSCngTAggggEBiBaxRxrrTnKIBnn7wia0mClaiQLsS38fbEPBWYK3ecOlRgru39UfBEUAAgUIEZunNneyz3j7zGRBIkwDhPU21yb7kFdi9R+SvTzfdsS/vwiyAAAIIIOC1gN2d1T7z7bOfAYG0CBDe01KT7EdBAs+93HRVgoIWZiEEEEAAAe8F7Eo09tnPgEBaBAjvaalJ9iOvgJ2g+sobeRdjAQQQQACBlAnYZ799BzAgkAYBwnsaapF9KEhght5Om+u4F0TFQggggECqBOyz374DGBBIgwDhPQ21yD4UJDB/UUGLsVCVBfbtrfIG2RwCFRDYt68CK2WVsQrwHRArJyuroQDhvYb4bLq6Akv08pAMyRPYtr0xeYWiRAgUKbB5S5FvYPGqC/AdUHVyNlghAcJ7hWBZbfIEdrydvDJRIpGtWxtky1YkEPBbYNVqv8tfD6XnO6Aeark+9pHwXh/1zF4ikGgBfs5OdPVQuAIEFi8tYCEWQQABBGIQILzHgMgq/BCgT2py62nmHLrOJLd2KFk+gTdmiuzcmW8p5tdagO+AWtcA249LgPAelyTrSbzAXm7Skdg62rKlQZ5/NbHFo2AI5BSwLl+v6HXEGZIvwHdA8uuIEhYmQHgvzImlUiCwh6uaJLoW33hT73w7P9FFpHAIZAjY70VPPKN379ydMZmRhArwHZDQiqFYRQt0KPodvAEBTwX2aMu7PTpw1Ce2Bv+mtzHfpUFo0vjEFpGCIRAIbNUW979qcF+5EhAfBNznvw9lpYwI5BMgxuQTYn5qBBq1mcyCYfv2Ig0Nqdmt1O3Icy/ozbRWiRwxSeSAPqnbPXYoBQJvzhJ59XX6uftSle6z354ZEEiDAOE9DbXIPhQssEfD+y7tLNa5c8FvYcEaCCxaJGKPwYNEhg4W6aMhfj+tM/7mqkFlsEnZq13u7DruK9eIvLWkUXZs50j06bDYtUt/daVrk09VRlnzCBDe8wAxO30CdlUI++rtRIBPfOUuXyFiDwYEkiNAcE9OXeQvyS79vOdKQPmdWMIvAU5Y9au+KG1MAju1JcY+1BkQQAABBNIpEAR3/axnQCBtArS8p61G2Z+CBKzv49sa3q0LZOdO+g+NaQW5sRACCCCQeAH9YLcGGlrcE19TFLBEAcJ7iXC8LR0C9uG+Tz/oO3VsOpE1HXvFXiCAAAL1KWDnJ9iFCXbT4l6fB0Cd7DXhvU4qmt3MLWAf8nbnvU7aAt+R/yNyQzEHAQQQSLDAbr0UsJ2cys2YElxJFC0WAaJKLIysxHcB+7B/W1ts9moLfEda4X2vTsqPAAJ1JGCt7XajLHtwOcg6qvg63lXCex1XPrueKRBcC9habfSLwAK8PbgefKYRYwgggEBSBOwz24V2+9xmQKBeBAjvWOzOkwAAIiBJREFU9VLT7GfBAvYlYA+7I591o+lAiC/YjgURQACBSgtYaLfrtls3GfucZkCg3gQI7/VW4+xvwQLudtodmkO8tcRzVZqC+VgQAQQQiFfAtbQT2uN1ZW3eCRDevasyClxtARfirZWng7XE66Mdd0iodjWwPQQQqFMBu6CA+xympb1ODwJ2O0OA8J7BwQgCuQXcl0f79u+EeHvNgAACCCAQv4DrvmifvfRpj9+XNforQHj3t+4oeY0EXJ94uyRZ0BKv3Wk6aIjn5NYaVQibRQCB1AgE/dmbzzmyfu02zoAAApkChPdMD8YQKFggfKWD9vp/kgV4C/O0xhdMyIIIIIBAINDSym4XDNCWdgYEEMgtQHjPbcMcBAoWsC8be+zSO7a6IG/PBPmCCVkQAQTqTCD4FVM/N/c0B3Ya2evsAGB3SxYgvJdMxxsRaC1gXz6ub3yDdqsJgrye3EqQb23FFAQQqD+BlsCuJ6FagwfdYurvGGCPyxcgvJdvyBoQyCoQ9N3UPpv6/SRBkNduNdYS7wI9l53MysZEBBBIk4C2aOxpDurufCECe5oqmH2phQDhvRbqbLPuBIIgbz8PW5K3rjWhIN9eW+a59GTdHRLsMAKpFbBLO+6NBPbU7iw7hkANBAjvNUBnkwi4FijRrjV2lZqWMN8c6rlyDccIAgj4ImCNE+4zzT3Tuu5L7VFOHwUI7z7WGmVOlUBGq7zuWTsL8/p/prXGB33l9Zkwn6oqZ2cQ8FogCOvNLetBK7v+oriPs029rlMK75cA4d2v+qK0dSBgX4L7tK98MGgXm3baGh8EeQvzza/pZlMHBwK7iEBCBCygByHdrgrT/HqfvmZAAIHaCBDea+POVhEoWMC+JO1h3eVtsFZ4C/TWVz7oL9/8mhNgm3z4FwEEyhCwLjAW0JuDuntNN5gyTHkrAjELEN5jBmV1CFRaIPjJWpN8uOEr3Drf8lpDPoG+0rXB+hHwWMCCuv3SFwrr7rXHe0XREUi9AOE99VXMDtaDQLR13vY5HOKtm40bp/98PRwR7CMCmQL2R78L5kEXmNB45pKMIYBA0gUI70mvIcqHQIkC2QK9BfeWfvPN3W+CYK/hngEBBNIhEIT05tb04BwafW1XgaHrSzrql71AgPDOMYBAHQnYl3dwrfnIPget8hbmrYU+/KDrTUSKUQQSImAt56713IK6e9i0cJ+6hBSXYiCAQHwChPf4LFkTAt4KBK30WUpvl61ssCvcuGBvzzoenDRLa30WMSYhEK+AhfKgy4sG8pawrgG9sXk83q2xNgQQ8EGA8O5DLVFGBGokYGHBLnOTrSEvCPShIJ8R9Gmxr1GNsVnvBKylvPnhAnk0sHu3TxQYAQQqKkB4rygvK0cgvQJB4HDXr4zspmuZb7AuONZ6by329tzcim/j9mBAIO0C1moetJzbc3Nrect4c1cXG2dAAAEEChUgvBcqxXIIIFCwgIURO0Eua5O9TrbcbkG+JdTrBBfuw9MI+AWTs2ANBOw4bwni2cJ58zR9YkAAAQRiEyC8x0bJihBAoFABCzPWCmlDti45TXOaA7223luIdw/Xkm+t+m6ae3bv4xmBUgVcIG95dn3OLYiHH9ZqTiovlZn3IYBAGQKE9zLweCsCCFRWIAhHbaX70OYtwNuVclyQb3nWZYLX0Xn2XvsJgCG9Aha2de+ioTsYj07XBV1f8/SCsGcIIJAGAcJ7GmqRfUAAgSCgBV11irBoCfX6Hhf2LdBbpg/GbV02bsG/eVowyabZBB3cc9MY/8YlYAHbBhe8W17bNG31tlTeEsyDme8sG0xvbjG3WQwIIIBAmgQI72mqTfYFAQSKEgiCYYEt+7lWHGR4C/O2QJaQb5NdwM9YNhjJfJ8tG/yxELxo+se9NzSpZX0Z09xI83rdaMHPLixneYML0uFZ4WnBW8Pvt+DsFtYXbr6b5t4bfg7mufe597h18IwAAggg0CJAeG+h4AUCCCBQvEBGMC3zD4Hit847EEAAAQTqTUDbiRgQQAABBBBAAAEEEEDABwHCuw+1RBkRQAABBBBAAAEEEFABwjuHAQIIIIAAAggggAACnggQ3j2pKIqJAAIIIIAAAggggADhnWMAAQQQQAABBBBAAAFPBAjvnlQUxUQAAQQQQAABBBBAgPDOMYAAAggggAACCCCAgCcChHdPKopiIoAAAggggAACCCBAeOcYQAABBBBAAAEEEEDAEwHCuycVRTERQAABBBBAAAEEECC8cwwggAACCCCAAAIIIOCJAOHdk4qimAgggAACCCCAAAIIEN45BhBAAAEEEEAAAQQQ8ESA8O5JRVFMBBBAAAEEEEAAAQQI7xwDCCCAAAIIIIAAAgh4IkB496SiKCYCCCCAAAIIIIAAAoR3jgEEEEAAAQQQQAABBDwRILx7UlEUs3yBkQeVvw7WgAACCCDgp8CA/n6Wm1IjEBUgvEdFGE+twJjRqd01dgwBBBBAII/AwIF5FmA2Ap4IEN49qSiK2bZAz57d215A544ckXcRFkAAAQQQSKnAuDGF7Vgh3yeFrYmlEKiMAOG9Mq6stcoCPXtnhvelS9e3KsEY7TbTs2eryUxAAAEEEEi5wCETRd53fOudnD9/dauJ0e+TVgswAYEaCxDea1wBbD4egZEjh2Ss6Kc/eyxj3Ea67idy2imtJjMBAQQQQCDFAl30s/+sD2TfwVt/9FCrGSNG0L+mFQoTEiVAeE9UdVCYUgXOO+/dGW/97W8el5dfWZgxzUZO0paXIw5rNZkJCCCAAAIpFOjYSeSj/ygyYmjrnbPviPvve6bVjLPPOqbVNCYgkCQBwnuSaoOylCxw9llHyICBB7S8f/v2HXLD9X9oGQ+/uOQTdJ8Je/AaAQQQSKNAd+1N+ekLRY49PPve2XeEfVeEh379+sjHPpalf014IV4jUGMBwnuNK4DNxyfwwXMyW9+fe/YN+e+b78+6gRu+JdK3b9ZZTEQAAQQQ8FzgAG3LueSTIpMPzr4j9t1g3xHR4UP/cEJ0EuMIJE6goVGHxJWKAiFQgsCmTdvl1A9cJUuXrmp5d9euXeQ3v/2qHHVk9ou83/FHkSmtfzVteT8vEEAAAQT8Epg4QeTDZ4kMzHFdd+suc/5Hr2/V6j506AB5+JFv64UNuvq1w5S27gRoea+7Kk/vDtsH7gWfyDwj1X4S/aeLbpYHH5yadcc/fm5Tf8isM5mIAAIIIOCNQLsGkTNOFfnXT+UO7n++/zW56MKbWgV320n7/iC4e1PddV1QWt7ruvrTufNDh2gnxyzDt676pFxyyclZ5oi8MVPkd38SWbcu62wmIoAAAggkWGCoXnDs7NNFDs3RTcaK/sNbH5Hrr7s9616ccea75ac/+UzWeUxEIGkChPek1QjlKVsgV3i3Ff/zp8+U73z7vKzbWLdB5JEnRZ57UWTXrqyLMBEBBBBAIEEC+3UWeddxTZeCtMsB5xq+/o3fyq9/8UCu2TJn7v9K1656aRoGBDwQILx7UEkUsTiBp6bM1v6M/5HzTaee8S75rxs+IX37dMu6zOJlIo89JfLiy1lnMxEBBBBAIAECx+kVHU95r8jQQbkLs279Vrniitvk4Qefy7nQbXd8VU46UTvKMyDgiQDh3ZOKopjFCSxfsUHed9LXZeuWbVnfOGz4IPn8v54tF5yfeYWa8MIz54n8VUP8m9PDU3mNAAIIIFBLgUmTNLTrRWHGjWq7FLf/5hm59Zb7ZMniFVkX7KzN9g8+cI2MHcdNmbICMTGxAoT3xFYNBStXYMeOXXLeR26S117RDu05htP+/nj56hUfktGjB+RYQuTVN/WKNM+LzJyVcxFmIIAAAghUWODg8SInaBeZIzS8tzXMm7dKrv+vP8lDf3k252LDRwyWhx++Srp375JzGWYgkFQBwntSa4ZyxSbw2c/9r/z5Xm1CzzH0PaCXfOZfzpLPffb9OZZomjx7vvaH1640r+ulgd9+u81FmYkAAgggEINAh44ihx+q/dqPFpkwJv8Kf/Q/j8pPfvxnWbd2Y86Fjz1+kvzh7stzzmcGAkkXILwnvYYoXywCV175G7nj9ofaXNe7Tzhcvnzp2XLssW3/FrtmvcjTelLrq6+LrFnT5iqZiQACCCBQgkDPniJHHibynmNFBuf+YbRlzS+8MF9u/u598syU11qmZXvxj+e9T7733YuyzWIaAt4IEN69qSoKWq7AbbdPkR//+AF5a6GekdrGYF1pLrzgRHnve/U32jaGfXp7s7/pOVAv63fF/AVtLMgsBBBAAIGCBIboJR8ttL9Xu8d0K+BeSU89NUt+ffuTbXaRsQ2POGiI/Mu/nCGfuIA7qBZUESyUaAHCe6Krh8LFLbBlyw7tC3mf3P6rh2Tv3r1trv7kDxwjF3z8JHn/KRPbXM5mWpeaqTO0X/xskRXZz43Kuw4WQAABBOpRoE8fEevPfrh+1B7SdptJC8+jj02X2+94Qh5/RH8GbWNo3769XPDJ0/TcprPp396GE7P8EiC8+1VflDYmgWefnSvf+/798uzTbf/Eaps74e+OkAu0Jf7vz9DmoAKG6RrgLcjP0ufVdKspQIxFEECg3gS67NcU2A/VwH7M4SJ2d9RChr888Lrcri3tU/72at7Fj3/P4fJvXzpTjj++gM7yedfGAggkR4Dwnpy6oCQ1EPjZz/8q//uTB2XZslV5t37c8YdqS/yJcs45R+Vd1i0wVS9084ZeanLWHO7e6kx4RgCB+hUYP05kkl5S/ajJIj27F+5wzz0va0v7k/L8s3rFgDzDkCED5NOfOV0u/tT78izJbAT8FCC8+1lvlDpGgTVrN8v/6BUK7rv3WVm5In9T+dChA7Q1frKcdvoRcvJJ+i1U4PDaNJE5eu34+YtEFi8p8E0shgACCHgsYHdAHTlSZPxYkUO1S8zA/oXvzONPzJCHHnxVW9mnytKl+RtYBg7qJ2d/8Hj5rF45rN8BPQrfEEsi4JkA4d2zCqO4lRPYtn2n/OL/npQ//uEZmTNnUUEbGjl6mJx44mQ5Q4P8cceNLug9ttD6jSLTZonM1RNdF72lV61ZW/BbWRABBBBItIBdKWaMBvaDNbBbK3uPboUX9/nn58kDGtiffHKqLJhXWCvH2LEHyrn/8G75p38+Ufbvqn8tMCCQcgHCe8ormN0rTeC2O56W39/9tLzyknZeL3CYeMhoOel9k7Vv/JEyadLQAt/VtNhybVSapn3kZ88VWbhIZPv2ot7OwggggEBNBQZoi/pY7Vo+QQP7ZO3HXmgfdiv0m28ulb888Io88depMn2a/jxZ4HDk0RPkHz/8HvnEx99T4DtYDIF0CBDe01GP7EWFBOzkqN/+boo88dhLRW3BvlTe856JcsrJk+Twww8s6r228ILF2sVGr2CzQFvllyxtlA0bCjybq+gt8QYEEECgeAFrXR+ubRQHjhAZfaDIuLZvj9FqA6+9tkgee/xNefrp6UU1ktiKTjrlaPnoR04o+CICrTbOBAQ8FyC8e16BFL86AvZT7j33viRPPP5qQSe3hks1fvxB8q53T5ST3zdJu9gcHJ5V8OsNm7VVXhukrL/8Wxrsly4VsevMMyCAAALVELCwPuogkYM0rI86UPuxDy9+q08+OVMe/+ub8twz02XWrIVFrcBOQj3p5CPknA8eXVQXxaI2wsIIeCJAePekoihmcgTu+v0L8uADL8uUp16Xt3fsLKpgQ4cNlOPeNUFOOukQOf20w6RTpw5FvT+8sF1bft4ibZ3XxxIN85s14DMggAACcQi4sD5GW9THaGgfOqj4te7atUcefOh1eeKJafL8czNk6ZKVRa1kvy6d5YT3Hiann3GUnPePeqtVBgQQCAQI7xwICJQosHjJevnTPS/Kww+9Im+8rh3Wixz6HNBLjj7mYPm7Ew6Rv3vvwTLiwAOKXEPm4us3NHWzWahBfqneRHbZcpGtWzOXYQwBBBCICuyn11wfpOF86GC9E6ne4dRONh3QL7pUYeOLF6/Vk01nyt+mTJOXXpwp69fq2flFDoceNk5OPe1I+dA5x8jwYXoHJwYEEMgQILxncDCCQGkCdtOn+/78ckndatwWx+gVEw6dPFKOOmqUnHTiRBk6tPwvrXCgX6KBfjmB3nHzjEBdCnTtKjLYgrqG9OH6sO4vxVy+MYq2YuVGmfL0bHnxhTky9fUFMnOG/iRYwuC6xZx91lHcVKkEP95SXwKE9/qqb/a2CgKPPPKGPPnUDHnxuZlF9+sMF2/kqKEy6dBR+kU2Xt5/8iHSf4B2Oo1hiAb6NatFNhTfOBZDSVgFAghUUqCbXqJxsLamBy3qenLpQcNE+pf3A59e1nazTJkyW154fq68/NJsmT27uL7r4f2184GOedfBcuJ7J8gHPnBoeBavEUCgDQHCexs4zEKgXIGpbyyRv+oJWs8+M0Nef32O7Nj+dsmrHH7gYG2VHyfvOWGCvP+UQ6R3r/1LXlf0jfv2alcb7Y66TB8r9T5VqzTQr9Vrz69dJ/J26UWOboZxBBCogEAf/ZHuAA3l1tVloD4GDRQZoo9i7mCaq1gbNm7Tz7AZ8swzM+WVV+bI/Ll6xnyJQ5eu+8lhh42V4989Qd6nJ/BPPlT/mmBAAIGiBQjvRZPxBgRKE7AWq8cenaY/Mc/QvqCzZMVyTchlDHY3wfHjR8ghk0bo5SgP0mA/Uvr2KeJuKAVue6OeCLtsRVOoX6lFthtK2WOdBnsGBBCojkCnTk0BvZ+FdH0MHNAU0IdpF5h27eMpw7r1W+XllxfIa68tlGlvvqW/HL5V0F2n29r6oMH99dye8XLCeybIKe8/hDuftoXFPAQKFCC8FwjFYgjELfDEkzOCqzC89tp8mTF9gex8e2fZm+jfv6+MGTdcDjnkQG3hOlCOPuogGTiwV9nrzbWCVdpKv0ZD/Jr12kqvjw160qzdPdaeN23K9S6mI4BANgEL6L31f9fevUX66HM/a0XXkK4XqdI/zLO9o/RpK7Wv+ksvL9RfBBfJtGmLZO7sxbJ6dfl/kVvr+oSJI2Wynr9jV9U66cQJpReSdyKAQFYBwntWFiYiUF2BzZt3yJN/mynP60lfr706T2bNWCi7d++OpRB2VZsxY4cFgf7wyQfJYZNHyIEHlXgpiSJLRLgvEozFUy3QXlvIe1k410cfDegWyA/oq/3Q7aGt6XF0c8kGuGjhGnl96lvy2lRtUbegPmdJSVeBybbuTp06yqHaFeaII0bLMceMlncfP1a6d++SbVGmIYBATAKE95ggWQ0CcQrs2LFLb2YyQ+8+OFNefWWuzJq5QPbt2xfbJrp27aIBfoiG+iFy8MHDZNIhw4I7wfboUd0v3XXNLfVBa/3GptZ6uyHVli1N16235xh+kIjNjRUh0JZAF73kop0kur8+rOW8rwX05mBuXV1svJKDNQLYnUvfnLZEZs5coiF9mSxauEy2b98R22bbtWsXhPV3HXewHHvcWA3rY6RLF/3JgAEBBKomQHivGjUbQqB0gT179ulJY9Zffpa8pFd4mDv7Ldm5c1fpK8zxzn79+sjI0UNk7LghMnHiCDl00nB91PakMttNC/nWLWfjJu2Sow973tQc8rdtFw0nnFibo0qZXKZAVz0vvFvXd0J5Dw3m3bs3tZLb6549tCVdH3ZTow4x9T0vpMhvvLlE3nhzsUyf/pbMmb1MFsxbJmus/1rMQ+fOnbQr3ggN6uPlxL+bqH3Xx0uHDu1i3gqrQwCBYgQI78VosSwCCRKwL++XXpqvfVYXyPQ39afwuW9JY2Nj7CW0lrbhIwbJ6DFDg1A/8sABGvAHyFh99IrxijflFnzPHg302lJvj81b9aHPW/R5qz1ruN+2remmVUHY19e06Jcr7t/7rU95F/1xyVrIu2ggt2e77rn+ECXdNaS7UG6BvJeFcg3kDQ2128+NeqWXOfNWaTDXx6JVQUifN3epLH5rRay/xLk9bNCdHTNmhEycZOfMjJSjjx5V8z/eXdl4RgCBdwQI7+9Y8AoB7wVeeGG+vPxKc6CfvkgWL1pe0X3q1mN/GazXphsyvJ8MH95fDjywn4weNVDGjB4Yy02mKln4cNjfomF+h/Ys2KGXxbRLY1qwt9c7m593aeu/TbPxlodO2xPPaQmV3M3UrduurBKE72gI13EL4vs3P6y13F53s5ZzfeihGttVWeJEXbp0vcydt1LmzV8pixatkcWLV8uyxWtkuV6zdetmPTArONjlZydObArqRx05So49dlQFt8aqEUAgLgHCe1ySrAeBBAq8/fZueeGFefKSBvqperLa3NlLZNnSVRVpoY/ufseOHWXAwL4yZJgG+2Ea7A8aIAcd2F+G6Z1jh+otz/sdoE2bng/2B4Bdut+C/zZ9WMDfpYF+r053z7v1Gvq23B593qvzgnGbpq+Dae61ntJgy+1tXt6e7WGnOtgPKvawcXve1zxu8/bphH17tXm4eXowz97nlmt+f3DKhE5r0PBrjckN2vPBWpXb6cOeW423TG/UZRpalrU3h9/T8totr88dOoho9YudoGnPHW1cHx3stRvXZ+tmYq3hnZqXD8+z13ouZNPDlrH32UOX9WmwS8QuXbJelmhIX7hotfZBXyWLl2hAX7JGVq1cF9uJ6W2ZWIv6kKEDtPvLML0KzEFydBDUR8t++ykoAwIIeCdAePeuyigwAuULzJi+TKbPWiZz7KF9ZRcuWCFLF6+SXdbEXKWhvSa3PtovoW9fffTrJf3799RrV/eW/gN76u3b++ijV2pCfpVI2UwVBVwoX75ioyxfsV5Wr9wkK1dt0MstbpJ1azbqfRA2yXo9QWOv/YVWpaGT/iU0dLj+kTxykHZr03NXxuu5K/qYMHFIlUrAZhBAoBoChPdqKLMNBDwRWLhgtUybsUxveb5M+9DrSXD6U/6SxStk61btNF6jIVvI79+/t95Rsrsc0K+HXmKvu/S3Zw39lbhJVY12m83WQMBuUmQhfPWazbJ67RZZq89r9Xn16tqG8ihFN+0TNGz4IBlpXdTGDJFxeoL5IROGaGjvH12UcQQQSKEA4T2FlcouIRC3wAq9ocu0aRbol8u8eStk4UIL9avKvvti3OW0k2t76CVAevTsJj17d9eW/W7Sp48+9+0u/fr20MCvDwv6/XvIQH30H6BnJDKkVmD1Km0NX61BXB9NQXyz3lRss6xft0XWr9fHhq2yacMW2bxpq2zWs5zjvBxrHKh2F+Vh1pJ+0EAZPXqQBvXBer+GITKogjdei6PcrAMBBCorQHivrC9rRyDVAvv2Nsp0a6mfs1xPulsh8+ev0JNkV8mSJatki13yxYPBrnlvLZnd9MYy++slR3p076p/AHTRS//p6x5d9W6X3fSqOl2D8d6999frd+vjgG56o5396TNc4fq1czY26BVX1q/dqnfu3aZ37t2md+7dJhs3btfXFri3B+N2ffPNekmhbXrm8dYtO4JfiuK8tnkld7O7/rE5bNgAGa5XcRo1SgO6hvRxY/VEUm1Jb9deTyBgQAABBCIChPcICKMIIBCPgHVBmKHBfs6cFXoljeXaBWeVrFixVjas3ywb9dFoZ1h6Plgf4/27aejfv4teZnB/6dS5o56A2UFPquzQ9NypfdOznmkZTO/YXjrrMnYyb+fOupyO2/RO+rpzME3n6XtsGbtzZYcODdJef03ooOcHtG/fTtrr9bXb6xmi1pWoQ/N0C3gddF4HXZfN76Bnibpptpwtb9flbm+XadFh7769emLsPn1uDPpj79m7T094bdSTZ/fq+D49kVbnu2naX3uPnulq/babltfXOm9PMG7PjXqexG69As9u2b1rb/C8U+8MvGvnHp2+R0/GtGn23LyMjjdN12Vsvr4neNYzde15l65niwbwbXr277atO3Ra9c7BqNShqKf6Sq8+PaS3PgYNOkC7ugzQKzINlrFjB8kEDeh09aqUPOtFIL0ChPf01i17hkCiBZav2CBLl22QFcvXa6jfqCf7bQxO9lujJ/2t0yt0rNPbrlrQT1pXhkSjUriqCVgXLQvkffVWqn21O1Y/O9k6OOm6l4Z0fQzWqyoN6a0nXlf4tqpV22M2hAACSREgvCelJigHAghkFbB+yxby7aoeK1Y2XdVjrYV77au8Qfstb9qoD+uzrN0prIWXAYFSBewXkR7aXaqnnTPRq7uG8+7SV8+dsHMl7IToQQObr4KkoZzzJUpV5n0IIFCuAOG9XEHejwACiRHYov2dV63SkxLXbBG7lN+a4GohdoLiVg37m5vCvvaV3qCBf4veAMeXftGJAfasIHY+Q3e9O1NvDeI99dyFpjDeQ09g7hYE8n568rLdb6Bfv+4yYEAP7fqkd3piQAABBBIuQHhPeAVRPAQQqJyA9f22K49s2LBdu+lYqNeTIvWxUU+MtJMhN9pJkXoi5KZN27UvdtNjq50YGfTJ3l6Vm11Vbu+Tv2a7udD+ejKxnVPQTU8k7t786NlTTyrW1700kNtJxb30RGI7gdge1oe8d++uwRWGrK8/AwIIIJA2AcJ72mqU/UEAgaoJWKi3Vv31GvbX6x8A4ZM3d2kXnrebT+TctdtOxrQTNPfITj3Bc5eeqGldfJpO3mw+WTOY1nRyp53ouVvfsy84cbT55FI90TQY1xNNm55tup1sqo9GfTRP36uvG/UE1GCazbMTU/Vk1EZ9tqHBTni1k1r1uZ2e6NpOb63aoCe9ttfnYNymN7+2k2Wtb3fLdDtpVk98tZNgg2k63lFveWon3lqXE3vdqeUk3eaTdnW6TeusJ+B2bD45t5O9R6ftZyfm2vtCJ+n2seBtV/XR1nEL6QwIIIAAApkChPdMD8YQQAABBBBAAAEEEEisAL8pJrZqKBgCCCCAAAIIIIAAApkChPdMD8YQQAABBBBAAAEEEEisAOE9sVVDwRBAAAEEEEAAAQQQyBQgvGd6MIYAAggggAACCCCAQGIFCO+JrRoKhgACCCCAAAIIIIBApgDhPdODMQQQQAABBBBAAAEEEitAeE9s1VAwBBBAAAEEEEAAAQQyBQjvmR6MIYAAAggggAACCCCQWAHCe2KrhoIhgAACCCCAAAIIIJApQHjP9GAMAQQQQAABBBBAAIHEChDeE1s1FAwBBBBAAAEEEEAAgUwBwnumB2MIIIAAAggggAACCCRWgPCe2KqhYAgggAACCCCAAAIIZAoQ3jM9GEMAAQQQQAABBBBAILEChPfEVg0FQwABBBBAAAEEEEAgU4DwnunBGAIIIIAAAggggAACiRUgvCe2aigYAggggAACCCCAAAKZAoT3TA/GEEAAAQQQQAABBBBIrADhPbFVQ8EQQAABBBBAAAEEEMgUILxnejCGAAIIIIAAAggggEBiBQjvia0aCoYAAggggAACCCCAQKYA4T3TgzEEEEAAAQQQQAABBBIrQHhPbNVQMAQQQAABBBBAAAEEMgUI75kejCGAAAIIIIAAAgggkFgBwntiq4aCIYAAAggggAACCCCQKUB4z/RgDAEEEEAAAQQQQACBxAoQ3hNbNRQMAQQQQAABBBBAAIFMAcJ7pgdjCCCAAAIIIIAAAggkVoDwntiqoWAIIIAAAggggAACCGQKEN4zPRhDAAEEEEAAAQQQQCCxAoT3xFYNBUMAAQQQQAABBBBAIFOA8J7pwRgCCCCAAAIIIIAAAokV+H8TV0jnhMZT7QAAAABJRU5ErkJggg==", + "description": "By visually representing the liquid's volume, these widgets help in monitoring, optimizing storage, and ensuring efficient operations. Suitable for a variety of storage setups, they are essential for industries requiring precise liquid management.", + "externalId": null, + "name": "Liquid level widgets" + }, + "widgetTypeFqns": [ + "vertical_oval_tank", + "horizontal_2_1_elliptical", + "horizontal_capsule_tank", + "horizontal_cylinder_tank", + "horizontal_dish_ends", + "horizontal_ellipse_tank", + "horizontal_oval_tank", + "rectangle_tank", + "vertical_capsule_tank", + "vertical_cylinder_tank" + ] +} \ No newline at end of file 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 new file mode 100644 index 0000000000..d97129d861 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_2_1_elliptical", + "name": "Horizontal 2:1 Elliptical tank", + "deprecated": false, + "image": "data:image/png;base64,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BBKBKt5PBwY+iudfeDMOHDgUx44Ox8yzc6FlbXtLHHxub+x7tGehEtsJVFLAN2CVPO3VHfSPpyeir++deP21d2sTaixtRo22a66O9mtbY11nS7S1zf9/xFaS6PDw1/H5Z9/WfeTW1ubYvmNT3TYrBAgQILC4wHz305kjHtm7ev6w9ty583H6zESM//RLnPu5NhvVEpY1DQ3x0MPbYv/+++O6dS1LOEIJgWoJCGDVOt9GOysw+ukP8fJLR+PtI/XTsgMiQIAAAQIEli/Qu31zPP7EfdF9S9fymziSwCoXEMBW+Qk2vMUFhoa+qE3AcSxOvD+6eKG9BAgQIECAwIICm7d0x2P77o2eHq+zL4hkB4FZAQHMpUCgJjATxAYHT8bQ8ZGYmppmQoAAAQIECCQCjU1XxgO9d8SDvRtj69b1SbXdBAhcEhDALkn4SWBW4NCr78XA4RNxauQrJgQIECBAgMAcgdvvvDn27Lk7du+6bc4eqwQILEVAAFuKkppKCvz518UYO/NrjI1PxvjY+Rg/OxmTk74dq+TFYNAECBCoqEBz8xXRvrY52jsao6O9OTo6m+LyNQ0V1TBsAmUEBLAyjroQIECAAAECBAgQIEAgFbgsrVBAgAABAgQIECBAgAABAkUEBLAijJoQIECAAAECBAgQIEAgFxDAciMVBAgQIECAAAECBAgQKCIggBVh1IQAAQIECBAgQIAAAQK5gACWG6kgQIAAAQIECBAgQIBAEQEBrAijJgQIECBAgAABAgQIEMgFBLDcSAUBAgQIECBAgAABAgSKCAhgRRg1IUCAAAECBAgQIECAQC4ggOVGKggQIECAAAECBAgQIFBEQAArwqgJAQIECBAgQIAAAQIEcgEBLDdSQYAAAQIECBAgQIAAgSICAlgRRk0IECBAgAABAgQIECCQCwhguZEKAgQIECBAgAABAgQIFBEQwIowakKAAAECBAgQIECAAIFcQADLjVQQIECAAAECBAgQIECgiIAAVoRREwIECBAgQIAAAQIECOQCAlhupIIAAQIECBAgQIAAAQJFBASwIoyaECBAgAABAgQIECBAIBcQwHIjFQQIECBAgAABAgQIECgiIIAVYdSEAAECBAgQIECAAAECuYAAlhupIECAAAECBAgQIECAQBEBAawIoyYECBAgQIAAAQIECBDIBQSw3EgFAQIECBAgQIAAAQIEiggIYEUYNSFAgAABAgQIECBAgEAuIIDlRioIECBAgAABAgQIECBQREAAK8KoCQECBAgQIECAAAECBHIBASw3UkGAAAECBAgQIECAAIEiAgJYEUZNCBAgQIAAAQIECBAgkAsIYLmRCgIECBAgQIAAAQIECBQREMCKMGpCgAABAgQIECBAgACBXEAAy41UECBAgAABAgQIECBAoIiAAFaEURMCBAgQIECAAAECBAjkAgJYbqSCAAECBAgQIECAAAECRQQEsCKMmhAgQIAAAQIECBAgQCAXEMByIxUECBAgQIAAAQIECBAoIiCAFWHUhAABAgQIECBAgAABArmAAJYbqSBAgAABAgQIECBAgEARAQGsCKMmBAgQIECAAAECBAgQyAUEsNxIBQECBAgQIECAAAECBIoICGBFGDUhQIAAAQIECBAgQIBALiCA5UYqCBAgQIAAAQIECBAgUERAACvCqAkBAgQIECBAgAABAgRygX8AcPGBYpoywJwAAAAASUVORK5CYII=", + "description": "Widget indicates the level of liquid in Horizontal 2:1 Elliptical tank.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal 2:1 Elliptical tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 new file mode 100644 index 0000000000..b15e34a0b0 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_capsule_tank", + "name": "Horizontal Capsule tank", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Horizontal Capsule tank.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal Capsule tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 new file mode 100644 index 0000000000..2ca6913435 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_cylinder_tank", + "name": "Horizontal Cylinder tank", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Horizontal Cylinder tank.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal Cylinder tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 new file mode 100644 index 0000000000..b947e3404c --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_dish_ends", + "name": "Horizontal Dish Ends tank", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Horizontal Dish Ends tank.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal Dish Ends tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + }, + "externalId": null, + "tags": null +} \ 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 new file mode 100644 index 0000000000..869d3be02d --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_ellipse_tank", + "name": "Horizontal Ellipse tank", + "deprecated": false, + "image": "data:image/png;base64,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YeZJKEABClCAAhSgAAUoQAEK2F6AAaDt7wF7QAEKUIACFKAABShAAQpQwCoCDACtwsyTUIACFKAABShAAQpQgAIUsL0AA0Db3wP2gAIUoAAFKEABClCAAhSggFUEGABahZknoQAFKEABClCAAhSgAAUoYHsBBoC2vwfsAQUoQAEKUIACFKAABShAAasIMAC0CjNPQgEKUIACFKAABShAAQpQwPYCDABtfw/YAwpQgAIUoAAFKEABClCAAlYRYABoFWaehAIUoAAFKEABClCAAhSggO0FGADa/h6wBxSgAAUoQAEKUIACFKAABawiwADQKsw8CQUoQAEKUIACFKAABShAAdsLMAC0/T1gDyhAAQpQgAIUoAAFKEABClhFgAGgVZh5EgpQgAIUoAAFKEABClCAArYXYABo+3vAHlCAAhSgAAUoQAEKUIACFLCKAANAqzDzJBSgAAUoQAEKUIACFKAABWwvwADQ9veAPaAABShAAQpQgAIUoAAFKGAVAQaAVmHmSShAAQpQgAIUoAAFKEABCthegAGg7e8Be0ABClCAAhSgAAUoQAEKUMAqAgwArcLMk1CAAhSgAAUoQAEKUIACFLC9AANA298D9oACFKAABShAAQpQgAIUoIBVBBgAWoWZJ6EABShAAQpQgAIUoAAFKGB7AQaAtr8H7AEFKEABClCAAhSgAAUoQAGrCDAAtAozT0IBClCAAhSgAAUoQAEKUMD2AgwAbX8P2AMKUIACFKAABShAAQpQgAJWEWAAaBVmnoQCFKAABShAAQpQgAIUoIDtBRgA2v4esAcUoAAFKEABClCAAhSgAAWsIsAA0CrMPAkFKEABClCAAhSgAAUoQAHbCzAAtP09YA8oQAEKUIACFKAABShAAQpYRYABoFWYeRIKUIACFKAABShAAQpQgAK2F2AAaPt7wB5QgAIUoAAFKEABClCAAhSwigADQKsw8yQUoAAFKEABClCAAhSgAAVsL8AA0Pb3gD2gAAUoQAEKUIACFKAABShgFQEGgFZh5kkoQAEKUIACFKAABShAAQrYXoABoO3vAXtAAQpQgAIUoAAFKEABClDAKgIMAK3CzJNQgAIUoAAFKEABClCAAhSwvQADQNvfA/aAAhSgAAUoQAEKUIACFKCAVQQYAFqFmSehAAUoQAEKUIACFKAABShgewEGgLa/B+wBBShAAQpQgAIUoAAFKEABqwgwALQKM09CAQpQgAIUoAAFKEABClDA9gIMAG1/D9gDClCAAhSgAAUoQAEKUIACVhFgAGgVZp6EAhSgAAUoQAEKUIACFKCA7QUYANr+HrAHFKAABShAAQpQgAIUoAAFrCLAANAqzDwJBShAAQpQgAIUoAAFKEAB2wswALT9PWAPKEABClCAAhSgAAUoQAEKWEWAAaBVmHkSClCAAhSgAAUoQAEKUIACthdgAGj7e8AeUIACFKAABShAAQpQgAIUsIoAA0CrMPMkFKAABShAAQpQgAIUoAAFbC/AAND294A9oAAFKEABClCAAhSgAAUoYBUBBoBWYeZJKEABClCAAhSgAAUoQAEK2F6AAaDt7wF7QAEKUIACFKAABShAAQpQwCoCDACtwsyTUIACFKAABShAAQpQgAIUsL0AA0Db3wP2gAIUoAAFKEABClCAAhSggFUEGABahZknoQAFKEABClCAAhSgAAUoYHuB/wf5OUg8kdckQQAAAABJRU5ErkJggg==", + "description": "Widget indicates the level of liquid in Horizontal Ellipse tank.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal Ellipse tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 new file mode 100644 index 0000000000..1d452cb8db --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_oval_tank.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_oval_tank", + "name": "Horizontal Oval tank", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Horizontal Oval tank.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal Oval tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 new file mode 100644 index 0000000000..ffe611aab7 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/rectangle_tank.json @@ -0,0 +1,24 @@ +{ + "fqn": "rectangle_tank", + "name": "Rectangle tank", + "deprecated": false, + "image": "data:image/png;base64,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AIEiCwijRa6uuREgQIAAAQIECBAgQCCjAsJoRgtjWAQIECBAgAABAgQIECiygDBa5OqaGwECBAgQIECAAAECBDIqIIxmtDCGRYAAAQIECBAgQIAAgSILCKNFrq65ESBAgAABAgQIECBAIKMCwmhGC2NYBAgQIECAAAECBAgQKLKAMFrk6pobAQIECBAgQIAAAQIEMiogjGa0MIZFgAABAgQIECBAgACBIgsIo0WurrkRIECAAAECBAgQIEAgowLCaEYLY1gECBAgQIAAAQIECBAosoAwWuTqmhsBAgQIECBAgAABAgQyKiCMZrQwhkWAAAECBAgQIECAAIEiCwijRa6uuREgQIAAAQIECBAgQCCjAsJoRgtjWAQIECBAgAABAgQIECiygDBa5OqaGwECBAgQIECAAAECBDIqIIxmtDCGRYAAAQIECBAgQIAAgSILCKNFrq65ESBAgAABAgQIECBAIKMCwmhGC2NYBAgQIECAAAECBAgQKLKAMFrk6pobAQIECBAgQIAAAQIEMiogjGa0MIZFgAABAgQIECBAgACBIgsIo0WurrkRIECAAAECBAgQIEAgowLCaEYLY1gECBAgQIAAAQIECBAosoAwWuTqmhsBAgQIECBAgAABAgQyKiCMZrQwhkWAAAECBAgQIECAAIEiCwijRa6uuREgQIAAAQIECBAgQCCjAsJoRgtjWAQIECBAgAABAgQIECiygDBa5OqaGwECBAgQIECAAAECBDIqIIxmtDCGRYAAAQIECBAgQIAAgSILCKNFrq65ESBAgAABAgQIECBAIKMCwmhGC2NYBAgQIECAAAECBAgQKLKAMFrk6pobAQIECBAgQIAAAQIEMiogjGa0MIZFgAABAgQIECBAgACBIgsIo0WurrkRIECAAAECBAgQIEAgowLCaEYLY1gECBAgQIAAAQIECBAosoAwWuTqmhsBAgQIECBAgAABAgQyKiCMZrQwhkWAAAECBAgQIECAAIEiCwijRa6uuREgQIAAAQIECKQn0C29rvREoAgCwmgRqmgOBAgQIECAAAECBAgQyJmAMJqzghkuAQIECBAgQIAAAQIEiiAgjBahiuZAgAABAgQIECBAgACBnAkIozkrmOESIECAAAECBAgQIECgCALCaBGqaA4ECBAgQIAAAQIECBDImYAwmrOCGS4BAgQIECBAgAABAgSKICCMFqGK5kCAAAECBAgQIECAAIGcCQijOSuY4RIgQIAAAQIECBAgQKAIAsJoEapoDgQIECBAgAABAgQIEMiZgDCas4IZLgECBAgQIECAAAECBIogIIwWoYrmQIAAAQIECBAgQIAAgZwJCKM5K5jhEiBAgAABAgQIECBAoAgCwmgRqmgOBAgQIECAAAECBAgQyJmAMJqzghkuAQIECBAgQIAAAQIEiiAgjBahiuZAgAABAgQIECBAgACBnAkIozkrmOESIECAAAECBAgQIECgCALCaBGqaA4ECBAgQIAAAQIECBDImYAwmrOCGS4BAgQIECBAgAABAgSKICCMFqGK5kCAAAECBAgQIECAAIGcCQijOSuY4RIgQIAAAQIECBAgQKAIAsJoEapoDgQIECBAgAABAgQIEMiZgDCas4IZLgECBAgQIECAAAECBIogIIwWoYrmQIAAAQIECBAgQIAAgZwJCKM5K5jhEiBAgAABAgQIECBAoAgCwmgRqmgOBAgQIECAAAECBAgQyJmAMJqzghkuAQIECBAgQIAAAQIEiiAgjBahiuZAgAABAgQIECBAgACBnAkIozkrmOESIECAAAECBAgQIECgCALCaBGqaA4ECBAgQIAAAQIECBDImYAwmrOCGS4BAgQIECBAgAABAgSKICCMFqGK5kCAAAECBAgQIECAAIGcCQijOSuY4RIgQIAAAQIECBAgQKAIAsJoEapoDgQIECBAgAABAgQIEMiZgDCas4IZLgECBAgQIECAAAECBIogIIwWoYrmQIAAAQIECBAgQIAAgZwJCKM5K5jhEiBAgAABAgQIECBAoAgCwmgRqmgOBAgQIECAAAECBAgQyJmAMJqzghkuAQIECBAgQIAAAQIEiiAgjBahiuZAgAABAgQIECBAgACBnAkIozkrmOESIECAAAECBAgQIECgCALCaBGqaA4ECBAgQIAAAQIECBDImYAwmrOCGS4BAgQIECBAgAABAgSKICCMFqGK5kCAAAECBAgQIECAAIGcCfTM2XgNlwABAgSWo8C0adNi0qRJMWHChJgyZUr0798/Bg0aFIMHD46NN944evXqtRx7d2gCBAgQIECgkQSE0UaqtrkSIECghsATTzwR11xzTfzlL3+JyZMn19jj3029e/eO9ddfP3bcccf4whe+ECNHjqy77/LaMGvWrPjjH/8Yv//97+PJJ5+MZOxJYLYQIECAAAEC+RMQRvNXMyMmQIBApwgkQe5//ud/4plnnunQ8ebOnRvjxo0rf1166aWx6667xplnnhnDhg3r0PuXZad77rknfvOb38Qdd9wRM2fOXHyoRYsWLV63QoAAAQIECORLQBjNV72MlgABAsssMG/evPjBD34QSaBcsGDBUh0ved9tt90WDz74YJx11lmx7777LtVx2nrT888/H1dddVVcf/318dprr7W1q20ECBAgQIBADgWE0RwWzZAJECCwtALJmcTDDz887rzzzqU9RIv3JZ8xPfLII2P+/Pmx3377tdi2NC/eeeed+N3vfhd/+MMfymdgl+YY3kOAAAECBAjkQ0AYzUedjJIAAQKdInD88cd3WhCtDCg5S/q1r30thg8fHmPHjq00d/h7EmRvvvnmcgi97777IjlzayFAgAABAgSKLyCMFr/GZkiAAIGywHXXXRdXXHFFmxo9e/aMrbfeOtZZZ51Ye+21IzlT+dJLL8Wzzz5b/l7vzcnnSZc06D7yyCPlz4EmQTQ5w2ohQIAAAQIEGktAGG2sepstAQINLHDeeee1OfvkrOYZZ5xRvmNurR0vv/zyOP300+Pdd9+ttbkcWK+99tr45Cc/WXN788bvfOc7cdlllzVvsk6AAAECBAg0mED3Bpuv6RIgQKAhBW6//fZIbghUb9lrr73Kj0xJHt1Sbzn00EMjObvao0ePeruUt9fd2GzDe++91+yVVQIECBAgQKARBYTRRqy6ORMg0HACyU2B6i0jRoyIc889t97mFu0bbbRRHHzwwS3amr946KGHyjczat62LOtrrrnmsrzdewkQIECAAIEMCwijGS6OoREgQKCzBF599dW6h0rugjtw4MC621tv+OIXv9i6afHr5BmgbZ2BXbxjGytJAD366KPj7rvvLj/WpY1dbSJAgAABAgRyLOAzozkunqETIECgowKTJk2qu+sWW2xRd1utDWuttVb5Ut16zyhNngk6ZsyYWm+t2zZy5MjYe++946CDDork7GtlefPNNyurvhMgQIAAAQIFExBGC1ZQ0yFAgEAtgRNOOCEWLlxYa1PsvPPONdvrNSZ33F111VVj8uTJNXfpaIBMjrHnnnvGAQccUL6Db82DaSRAgAABAgQKKyCMFra0JkaAAIEmgUMOOaTpRSestXUDoiRktreceOKJHf6canvHsp0AAQIECBDIp4DPjOazbkZNgACBLhP417/+FW2F0U022aTdsQ0dOrTdfexAgAABAgQIFFvAmdFi19fsCBAg0OkCf//73+sec9iwYbHKKqvU3Z7XDY8//nj8/Oc/j+eeey5ef/31GD16dPlzsd/4xjdi+PDheZ2WcRMgQIAAgS4VEEa7lF/nBAgQyJfAtGnT4pRTTqk76LbutFv3TRnfcPrpp8fPfvazaH7DpqlTp8Zjjz0WN954Y5x22mnxyU9+MuOzMDwCBAgQIJA9AZfpZq8mRkSAAIFMCiSPbTnqqKPKZwZrDTD5rOgRRxxRa1Nu26677rq44IILykG0T58+se+++8aRRx4Z73//+6Nbt27ly5WTs6PL+jib3AIZOAECBAgQWAYBYXQZ8LyVAAECjSAwe/bs+MUvfhFjx46Nu+66q+aUkzvsnnnmmdGrV6+a2/PYOHfu3PjOd75THnoSRP/4xz/GxRdfXG67+uqry/NNNib7ffOb36w7xeQztieffHLMmjWr7j42ECBAgACBRhRwmW4jVt2cCRAg0Erg4YcfjnPOOadFa3JJ7oQJEyJ5VMuiRYtabGv+okePHuU74+6+++7Nm3O//sQTT8Tbb79dnsf+++8frZ/Hmtyh+PLLL49x48bFP/7xj7JRcra09XLcccfFHXfcETfccEPcfffdMWDAgNa7eE2AAAECBBpSQBhtyLKbNAECBFoKTJkype5Zz5Z7tnw1cODA+P73vx9JWCvakoTMyrL11ltXVlt833zzzcthNDk7+sILL8R6663XYvstt9xSDqJJ43bbbSeIttDxggABAgQaXcBluo3+E2D+BAgQWAqB5AzgRz/60bj//vvjgAMOWIojZP8tb7zxxuJBDh48ePF685Xmdw5OLsdtviSX5Z5wwgnlppVXXrl8o6Pm260TIECAAIFGFxBGG/0nwPwJECCwFALdu3eP5PLcGTNmLMW78/GW5pfTzps3r+agm7f37t27xT7JXYdfe+21ctuJJ55YyEfetJiwFwQIECBAYAkFhNElBLM7AQIECET57rLJDX123nnn+NKXvhTJnXaLtmy44YaLp/Tiiy8uXm++Mn78+MUvx4wZs3g9+bzpVVddVX69zTbbRPL5UgsBAgQIECDQUkAYbenhFQECBBpWIDnb2fyrIxDz58+P5PEnyXM2ixZIN9tss/LjWxKH3/72t5HMtfmSXJZ77733lpuGDh0aK620Unk9udnTMcccUw7sydnSH//4x83fZp0AAQIECBD4j4Aw6keBAAECBMrPz5w4cWI0/3rqqafi+uuvL99lNzmzlzzepN7y2GOPlW9iVKTHlwwZMiQOPPDA8pRfffXV2G+//eKBBx4o31349ttvbzHfL3/5y4tpLrzwwnj66afLr7/4xS/Guuuuu3ibFQIECBAgQKBJQBhtsrBGgAABAs0EkpvzJJeYHnTQQXHWWWfFfffdFx/+8Ieb7dFyNbk09YILLmjZmPNXyZ2C11xzzfIsHn300XIATc6YHnroofHKK6+U23faaaf4whe+UF5PzpaeffbZ5fXRo0fHscceW173DwIECBAgQKBaQBitNtFCgAABAjUERo4cGb/4xS8iCV/1luS5m0U6O5rcxOjOO+8sh89evXq1mHb//v3j+OOPj9/97neL25NniiaXKyd3G04CfOv3LN7RCgECBAgQIBDCqB8CAgQIEFgigfPOOy+S54vWWt5+++345S9/WWtTbtv69u0bp59+eiQ3Mbrtttvikksuibvvvjuef/75SC7PTYJnsjR/puhHPvKR8s2dcjtpAydAgAABAikICKMpIOuCAAECRRIYPnx4m5frJpezFnHp2bNnbLLJJrHPPvvEeuuttziEJnNt/UzRJLxaCBAgQIAAgbYFhNG2fWwlQIAAgRoCG2ywQY3WfzdNmDCh7raibkg+W+qZokWtrnkRIECAwPIS6Lm8Duy4BAgQIFBcgY022qju5CZPnlx3WxE3JDduuuKKK8pTa/1M0X/84x/lbc8991wklzCvtdZasfnmm5cv7+3Xr18ROcyJAAECBAh0WEAY7TCVHQkQIJBPgYcffjiSR5HUWkaNGhWf/exna21qs61Hjx51t8+dO7futqJtaP1M0cqddJN5nnzyyXHppZeWnzdamffLL78cd911V1xzzTVx/vnnxw477FDZ5DsBAgQIEGg4AWG04UpuwgQINJpAclau3iNXBg0atFRhtPIczVqWySNhGmW5+OKLWzxTNPksabIkNzm66KKLyuvJ81l33HHHGDp0aDz++OPx7LPPRnL2+Igjjig/LqeRvMog/kGAAAECBP4j4DOjfhQIECBQcIHVVlut7gynTp0ab7zxRt3t9TYkAbfeMmTIkHqbCtWePFM0eXxLsjR/puibb74ZZ5xxRrk9efzLDTfcEFdddVWcc8455cfEfP7zny9vSy7b/fa3v11e9w8CBAgQINCIAsJoI1bdnAkQaCiBTTfdNLp3r/9/98nZvSVZkvB68803133L2LFj624r0oZ6zxR94IEHys8aTeaaBM/kDrzNl+9+97ux6qqrlpvuv//+5pusEyBAgACBhhKo/18nDcVgsgQIECiuQHJ56MYbb1x3ghdeeGEknyvt6PL1r389pk2bVnf3fffdt+62omxo65miTz755OJpbr/99ovXKyu9evWKyg2gkmA/Y8aMyibfCRAgQIBAQwkIow1VbpMlQKBRBfbff/+6U1+wYEEceuih8etf/7ruPsmG5LLU5EzfHXfcUXe/5JEvW265Zd3tRdiQPFP0xBNPLE9lpZVWitbPFE0u060slTOgldeV75XPiSY3QJo0aVKl2XcCBAgQINBQAm5g1FDlNlkCBBpVIAmRyeNHxo8fX5Mg+fziscceG5dffnnstttusf7665e/kmCVfD70mWeeiT/96U+RBLF6S7du3eK0006rt7kw7ckzRadMmVKezwknnBCVYFmZYO/evSurMW/evMXrzVfmz5+/+GVbdyZevJMVAgQIECBQQAFhtIBFNSUCBAi0FujZs2f5Zjuf+tSn6gak5D3jxo0rf7V+f0deH3jggYV/VEnrZ4rWeixO5Y66idlLL70Um222WRXfxIkTy21JcF177bWrtmsgQIAAAQKNIOAy3UaosjkSIECgJJA80/KnP/1pLI8zcXvssUf8+Mc/LrxzcnY5uaw5CZHNnynafOLNw2etS5+TgJqE2mRJ7sKbnFG2ECBAgACBRhQQRhux6uZMgEDDCiQ3F0runtv60tKlBUmCVHJ2MHmuZiOEqh/96EeRXKZ7zDHHRPMzoM39ttlmm0i+kiW5W+5XvvKV8nNFk0tzkzvtHnLIIVG5TPfoo49u/lbrBAgQIECgoQRcpttQ5TZZAgQIROy1116x7bbbRnJX3ORmRMlNdJZmSc7q/eAHP4gPfehDS/P23L7nc5/7XLtjP//88yM5Wzx9+vS49tpry1/JGenkrGplSdwOOuigykvfCRAgQIBAwwk4M9pwJTdhAgQIRAwZMqR8s6J77rknPv3pT0fy+JeOLP369YvkcSWXXXZZ+SxfowXRjhgl+6y55prx17/+NXbaaafFb6kE0T59+sQ3v/nNuPLKKxdvs0KAAAECBBpRwJnRRqy6ORMgQOA/Auuss04kl54myyuvvBJ/+9vfyo9wmTp1arz33nuRhM/kkt7BgweXH9my1VZbpXo5bhKaJ0+e/J/R5uvbiBEj4pprril7Jp8RTR6NM2bMmNh0002jf//++ZqM0RIgQIAAgeUgIIwuB1SHJECAQB4F1lhjjUi+LJ0rMHz48Ei+LAQIECBAgEBLAZfptvTwigABAgQIECBAgAABAgRSEBBGU0DWBQECBAgQIECAAAECBAi0FBBGW3p4RYAAAQIECBAgQIAAAQIpCAijKSDrggABAgQIECBAgAABAgRaCgijLT28IkCAAAECBAgQIECAAIEUBITRFJB1QYAAAQIECBAgQIAAAQItBYTRlh5eESBAgAABAgQIECBAgEAKAsJoCsi6IECAAAECBAgQIECAAIGWAsJoSw+vCBAgQIAAAQIECBAgQCAFAWE0BWRdECBAgAABAgQIECBAgEBLAWG0pYdXBAgQIECAAAECBAgQIJCCgDCaArIuCBAgQIAAAQIECBAgQKClgDDa0sMrAgQIECBAgAABAgQIEEhBQBhNAVkXBAgQIECAAAECBAgQINBSQBht6eEVAQIECBAgQIAAAQIECKQgIIymgKwLAgQIECBAgAABAgQIEGgpIIy29PCKAAECBAgQIECAAAECBFIQEEZTQNYFAQIECBAgQIAAAQIECLQUEEZbenhFgAABAgQIECBAgAABAikICKMpIOuCAAECBAgQIECAAAECBFoKCKMtPbwiQIAAAQIECBAgQIAAgRQEhNEUkHVBgAABAgQIECBAgAABAi0FhNGWHl4RIECAAAECBAgQIECAQAoCwmgKyLogQIAAAQIECBAgQIAAgZYCwmhLD68IECBAgAABAgQIECBAIAUBYTQFZF0QIECAAAECBAgQIECAQEsBYbSlh1cECBAgQIAAAQIECBAgkIKAMJoCsi4IECBAgAABAgQIECBAoKWAMNrSwysCBAgQIECAAAECBAgQSEFAGE0BWRcECBAgQIAAAQIECBAg0FJAGG3p4RUBAgQIECBAgAABAgQIpCDQM4U+dEGgEAIXXRnx4ktFmMqA0iSSLwsBAgQIEOg8gVmzqo91xvndYoWB1e15a/nWVyIGrZK3URsvgewLODOa/RoZIQECBAgQIEAgpwILczpuwyZAIA0BZ0bTUNZHIQS6d4uYO7cQUzEJAgQIECDQ+QKLqg85b143vzurWbQQIPAfAWHUjwKBDgr07Rcxe3YHd7YbAQIECBBoMIEaWTTmzInoUYD/2uzTp8GKaboEUhJwmW5K0LohQIAAAQIECBAgQIAAgSYBYbTJwhoBAgQIECBAgAABAgQIpCQgjKYErRsCBAgQIECAAAECBAgQaBIQRpssrBEgQIAAAQIECBAgQIBASgLCaErQuiFAgAABAgQIECBAgACBJgFhtMnCGgECBAgQIECAAAECBAikJCCMpgStGwIECBAgQIAAAQIECBBoEhBGmyysESBAgAABAgQIECBAgEBKAsJoStC6IUCAAAECBAgQIECAAIEmAWG0ycIaAQIECBAgQIAAAQIECKQkIIymBK0bAgQIECBAgAABAgQIEGgSEEabLKwRIECAAAECBAgQIECAQEoCwmhK0LohQIAAAQIECBAgQIAAgSYBYbTJwhoBAgQIECBAgAABAgQIpCQgjKYErRsCBAgQIECAAAECBAgQaBIQRpssrBEgQIAAAQIECBAgQIBASgLCaErQuiFAgAABAgQIECBAgACBJgFhtMnCGgECBAgQIECAAAECBAikJCCMpgStGwIECBAgQIAAAQIECBBoEhBGmyysESBAgAABAgQIECBAgEBKAsJoStC6IUCAAAECBAgQIECAAIEmAWG0ycIaAQIECBAgQIAAAQIECKQkIIymBK0bAgQIECBAgAABAgQIEGgSEEabLKwRIECAAAECBAgQIECAQEoCwmhK0LohQIAAAQIECBAgQIAAgSYBYbTJwhoBAgQIECBAgAABAgQIpCQgjKYErRsCBAgQIECAAAECBAgQaBIQRpssrBEgQIAAAQIECBAgQIBASgLCaErQuiFAgAABAgQIECBAgACBJgFhtMnCGgECBAgQIECAAAECBAikJCCMpgStGwIECBAgQIAAAQIECBBoEhBGmyysESBAgAABAgQIECBAgEBKAsJoStC6IUCAAAECBAgQIECAAIEmAWG0ycIaAQIECBAgQIAAAQIECKQkIIymBK0bAgQIECBAgAABAgQIEGgSEEabLKwRIECAAAECBAgQIECAQEoCwmhK0LohQIAAAQIECBAgQIAAgSYBYbTJwhoBAgQIECBAgAABAgQIpCQgjKYErRsCBAgQ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gAABAgQIZFpAGM10eQyOAAECBAgQIECAAAECxRQQRotZV7MiQIAAAQIECBAgQIBApgWE0UyXx+AIECBAgAABAgQIECBQTAFhtJh1NSsCBAgQIECAAAECBAhkWkAYzXR5DI4AAQIECBAgQIAAAQLFFBBGi1lXsyJAgAABAgQIECBAgECmBYTRTJfH4AgQIECAAAECBAgQIFBMAWG0mHU1KwIECBAgQIAAAQIECGRaQBjNdHkMjgABAgQIECBAgAABAsUUEEaLWVezIkCAAAECBAgQIECAQKYFhNFMl8fgCBAgQIAAAQIECBAgUEwBYbSYdTUrAgQIECBAgAABAgQIZFpAGM10eQyOAAECBAgQIECAAAECxRQQRotZV7MiQIAAAQIECBAgQIBApgWE0UyXx+AIECBAgAABAgQIECBQTAFhtJh1NSsCBAgQIECAAAECBAhkWkAYzXR5DI4AAQIECBAgQIAAAQLFFBBGi1lXsyJAgAABAgQIECBAgECmBYTRTJfH4AgQIECAAAECBAgQIFBMAWG0mHU1KwIECBAgQIAAAQIECGRaQBjNdHkMjgABAgQIECBAgAABAsUUEEaLWVezIkCAAAECBAgQIECAQKYFhNFMl8fgCBAgQIAAAQIECBAgUEwBYbSYdTUrAgQIECBAgAABAgQIZFpAGM10eQyOAAECBAgQIECAAAECxRQQRotZV7MiQIAAAQIECBAgQIBApgWE0UyXx+AIECBAgAABAgQIECBQTAFhtJh1NSsCBAgQIECAAAECBAhkWkAYzXR5DI4AAQIECBAgQIAAAQLFFBBGi1lXsyJAgAABAgQIECBAgECmBYTRTJfH4AgQIECAAAECBAgQIFBMgf8PznqjffXnTmoAAAAASUVORK5CYII=", + "description": "Widget indicates the level of liquid in Rectangle tank.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Rectangle tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 new file mode 100644 index 0000000000..74d6ae5d73 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/vertical_capsule_tank.json @@ -0,0 +1,24 @@ +{ + "fqn": "vertical_capsule_tank", + "name": "Vertical Capsule tank", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Vertical Capsule tank.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Vertical Capsule tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 new file mode 100644 index 0000000000..e11080654f --- /dev/null +++ b/application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json @@ -0,0 +1,24 @@ +{ + "fqn": "vertical_cylinder_tank", + "name": "Vertical Cylinder tank", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Vertical Cylinder tank.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Vertical Cylinder tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 new file mode 100644 index 0000000000..162c8cf552 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/vertical_oval_tank.json @@ -0,0 +1,24 @@ +{ + "fqn": "vertical_oval_tank", + "name": "Vertical Oval tank", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Vertical Oval tank.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Vertical Oval tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file diff --git a/ui-ngx/src/app/core/http/attribute.service.ts b/ui-ngx/src/app/core/http/attribute.service.ts index 9022a47eef..3ca29e425e 100644 --- a/ui-ngx/src/app/core/http/attribute.service.ts +++ b/ui-ngx/src/app/core/http/attribute.service.ts @@ -32,12 +32,18 @@ export class AttributeService { private http: HttpClient ) { } - public getEntityAttributes(entityId: EntityId, attributeScope: AttributeScope, + public getEntityAttributes(entityId: EntityId, attributeScope?: AttributeScope, keys?: Array, config?: RequestConfig): Observable> { - let url = `/api/plugins/telemetry/${entityId.entityType}/${entityId.id}/values/attributes/${attributeScope}`; + let url = `/api/plugins/telemetry/${entityId.entityType}/${entityId.id}/values/attributes`; + + if (attributeScope) { + url += `/${attributeScope}`; + } + if (keys && keys.length) { url += `?keys=${keys.join(',')}`; } + return this.http.get>(url, defaultHttpOptionsFromConfig(config)); } 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 c26cf43542..f2e90279ee 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 @@ -70,6 +70,9 @@ import { import { ProgressBarBasicConfigComponent } from '@home/components/widget/config/basic/cards/progress-bar-basic-config.component'; +import { + LiquidLevelCardBasicConfigComponent +} from '@home/components/widget/config/basic/cards/liquid-level-card-basic-config.component'; @NgModule({ declarations: [ @@ -91,7 +94,8 @@ import { WindSpeedDirectionBasicConfigComponent, SignalStrengthBasicConfigComponent, ValueChartCardBasicConfigComponent, - ProgressBarBasicConfigComponent + ProgressBarBasicConfigComponent, + LiquidLevelCardBasicConfigComponent ], imports: [ CommonModule, @@ -117,7 +121,8 @@ import { WindSpeedDirectionBasicConfigComponent, SignalStrengthBasicConfigComponent, ValueChartCardBasicConfigComponent, - ProgressBarBasicConfigComponent + ProgressBarBasicConfigComponent, + LiquidLevelCardBasicConfigComponent ] }) export class BasicWidgetConfigModule { @@ -137,5 +142,6 @@ export const basicWidgetConfigComponentsMap: {[key: string]: Type + + + + + +
+
widget-config.appearance
+
+ + {{ 'widgets.liquid-level-card.title' | translate }} + +
+ + + + + + + +
+
+
+ + {{ 'widgets.liquid-level-card.icon' | translate }} + +
+ + + + + + + + +
+
+
+
+
widgets.liquid-level-card.shape
+ + + {{ 'widgets.liquid-level-card.static' | translate }} + + + {{ 'widgets.liquid-level-card.attribute' | translate }} + + +
+ + + {{ shapesTranslationMap.get(shape) | translate }} + + +
+
widgets.liquid-level-card.shape-attribute-name
+ + +
+
+
widgets.liquid-level-card.shape-by-attribute
+
+
+
+
+ + + {{ levelCardLayoutTranslationMap.get(layout) | translate }} + + +
+
+
widgets.liquid-level-card.units
+
+
widgets.liquid-level-card.datasource-units
+ + +
+
+
widgets.liquid-level-card.widget-units
+
+ + + + {{ option }} + + + + + + + +
+
+
+
widgets.liquid-level-card.total-volume
+
+ + + + {{ option }} + + + + + + + warning + + + + + + +
+
+
+
+
widgets.liquid-level-card.color-and-font
+
+
widgets.liquid-level-card.tank-color
+ + +
+
+
widgets.liquid-level-card.liquid-color
+ + +
+
+
widgets.liquid-level-card.value
+
+ + + + + + + +
+
+
+
widgets.liquid-level-card.total-volume
+
+ + + + +
+
+
+ + {{ 'widgets.liquid-level-card.background-overlay' | translate }} + + + +
+
+
+ + + + + {{ 'widget-config.tooltip' | translate }} + + + + +
+ + {{ 'widgets.liquid-level-card.level' | translate }} + +
+ + + + +
widget-config.decimals-suffix
+
+ + + + +
+
+
+ + {{ 'widgets.value-card.date' | translate }} + +
+ + + + + +
+
+
+
widgets.liquid-level-card.tooltip-background
+ + +
+
+
widgets.liquid-level-card.background-blur
+ + +
px
+
+
+
+
+
+
+
widget-config.card-appearance
+
+
{{ 'widgets.background.background' | translate }}
+ + +
+
+
widget-config.show-card-buttons
+ + {{ 'widget-config.data-export' | translate }} + {{ 'fullscreen.fullscreen' | translate }} + +
+
+
{{ 'widget-config.card-border-radius' | translate }}
+ + + +
+
+ + +
diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts new file mode 100644 index 0000000000..47852514e8 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts @@ -0,0 +1,671 @@ +/// +/// ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL +/// +/// Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. +/// +/// NOTICE: All information contained herein is, and remains +/// the property of ThingsBoard, Inc. and its suppliers, +/// if any. The intellectual and technical concepts contained +/// herein are proprietary to ThingsBoard, Inc. +/// and its suppliers and may be covered by U.S. and Foreign Patents, +/// patents in process, and are protected by trade secret or copyright law. +/// +/// Dissemination of this information or reproduction of this material is strictly forbidden +/// unless prior written permission is obtained from COMPANY. +/// +/// Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, +/// managers or contractors who have executed Confidentiality and Non-disclosure agreements +/// explicitly covering such access. +/// +/// The copyright notice above does not evidence any actual or intended publication +/// or disclosure of this source code, which includes +/// information that is confidential and/or proprietary, and is a trade secret, of COMPANY. +/// ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, +/// OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT +/// THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, +/// AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. +/// THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION +/// DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, +/// OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. +/// + +import { ChangeDetectorRef, Component, Injector, ViewChild } from '@angular/core'; +import { AbstractControl, 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, + Datasource, + datasourcesHasAggregation, + datasourcesHasOnlyComparisonAggregation, + DatasourceType, + 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, isDefined, isUndefined } from '@core/utils'; +import { + cssSizeToStrSize, + DateFormatProcessor, + DateFormatSettings, + resolveCssSize +} from '@shared/models/widget-settings.models'; +import { + CapacityUnits, + createAbsoluteLayout, + createPercentLayout, + levelCardDefaultSettings, + LevelCardLayout, + levelCardLayoutTranslations, + LevelCardWidgetSettings, + LevelSelectOptions, + optionsFilter, + Shapes, + shapesTranslations, + svgMapping +} from '@home/components/widget/lib/indicator/liquid-level-widget.models'; +import { UnitsType } from '@shared/models/unit.models'; +import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; +import { ImageCardsSelectComponent } from '@home/components/widget/lib/settings/common/image-cards-select.component'; +import { map, publishReplay, refCount, tap } from 'rxjs/operators'; +import { forkJoin, Observable, of } from 'rxjs'; +import { ResourcesService } from '@core/services/resources.service'; +import { UnitInputComponent } from '@shared/components/unit-input.component'; +import { UtilsService } from '@core/services/utils.service'; + +@Component({ + selector: 'liquid-level-card-basic-config', + templateUrl: './liquid-level-card-basic-config.component.html', + styleUrls: ['../basic-config.scss'] +}) +export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigComponent { + + @ViewChild('layoutsImageCardsSelect', { static: false }) layoutsImageCardsSelect: ImageCardsSelectComponent; + + @ViewChild('shapesImageCardsSelect', { static: false }) shapesImageCardsSelect: ImageCardsSelectComponent; + + @ViewChild('widgetUnits', { static: false }) widgetUnits: UnitInputComponent; + + public get datasource(): Datasource { + if (this.widgetConfig.config.datasources && this.widgetConfig.config.datasources) { + return this.widgetConfig.config.datasources[0]; + } else { + return null; + } + } + + public get volumeInput(): boolean { + const datasourceUnits = this.levelCardWidgetConfigForm.get('datasourceUnits').value; + const layout: LevelCardLayout = this.levelCardWidgetConfigForm.get('layout').value; + const units = this.levelCardWidgetConfigForm.get('units').value; + return !(datasourceUnits === CapacityUnits.percent && layout !== LevelCardLayout.absolute + || (datasourceUnits === CapacityUnits.percent && units === CapacityUnits.percent)); + } + + public get widgetUnitsInput(): boolean { + const layout: LevelCardLayout = this.levelCardWidgetConfigForm.get('layout').value; + + if (layout === LevelCardLayout.absolute) { + const datasourceUnits = this.levelCardWidgetConfigForm.get('datasourceUnits').value; + return !(datasourceUnits === CapacityUnits.percent); + } + return false; + } + + public get displayTimewindowConfig(): boolean { + const datasources = this.levelCardWidgetConfigForm.get('datasources').value; + return datasourcesHasAggregation(datasources); + } + + public onlyHistoryTimewindow(): boolean { + const datasources = this.levelCardWidgetConfigForm.get('datasources').value; + return datasourcesHasOnlyComparisonAggregation(datasources); + } + + levelCardLayouts = LevelCardLayout; + + shapes: Shapes[] = []; + + levelOptions = LevelSelectOptions; + + shapeSelectOptions = LevelSelectOptions; + + levelCardLayoutTranslationMap = levelCardLayoutTranslations; + + shapesTranslationMap = shapesTranslations; + shapesImageMap: Map = new Map(); + + unitsType = UnitsType; + + levelCardWidgetConfigForm: UntypedFormGroup; + + valuePreviewFn = this._valuePreviewFn.bind(this); + + tooltipValuePreviewFn = this._tooltipValuePreviewFn.bind(this); + + totalVolumeValuePreviewFn = this._totalVolumeValuePreviewFn.bind(this); + + datePreviewFn = this._datePreviewFn.bind(this); + + keySearchText: string; + + latestKeySearchTextResult: Array; + + datasources: Array; + + functionTypeKeys: Array = []; + + lastKeysId: string; + + lastFetchedKeys: Array; + + constructor(protected store: Store, + protected widgetConfigComponent: WidgetConfigComponent, + private cd: ChangeDetectorRef, + private $injector: Injector, + private fb: UntypedFormBuilder, + private resourcesService: ResourcesService, + private sanitizer: DomSanitizer, + private utils: UtilsService) { + super(store, widgetConfigComponent); + } + + protected configForm(): UntypedFormGroup { + return this.levelCardWidgetConfigForm; + } + + protected setupConfig(widgetConfig: WidgetConfigComponentData) { + this.shapes = Object.values(Shapes); + this.createSvgShapesMapping(); + + for (const type of this.utils.getPredefinedFunctionsList()) { + this.functionTypeKeys.push({ + name: type, + type: DataKeyType.function + }); + } + super.setupConfig(widgetConfig); + } + + protected setupDefaults(configData: WidgetConfigComponentData) { + this.setupDefaultDatasource(configData, [{ name: 'fuelLevel', label: 'Fuel Level', type: DataKeyType.timeseries }]); + } + + protected onConfigSet(configData: WidgetConfigComponentData) { + const settings: LevelCardWidgetSettings = {...configData.config, ...levelCardDefaultSettings(), ...(configData.config.settings || {})}; + const iconSize = resolveCssSize(configData.config.iconSize); + + this.levelCardWidgetConfigForm = this.fb.group({ + timewindowConfig: [getTimewindowConfig(configData.config), []], + datasources: [configData.config.datasources, []], + + tankSelectionType: [settings.tankSelectionType, []], + selectedShape: [settings.selectedShape, [Validators.required]], + shapeAttributeName: [settings.shapeAttributeName, [Validators.required]], + tankColor: [settings.tankColor, []], + datasourceUnits: [settings.datasourceUnits, [Validators.required]], + + layout: [settings.layout, []], + showTitle: [configData.config.showTitle, []], + title: [settings.title, []], + titleFont: [settings.titleFont, []], + titleColor: [settings.titleColor, []], + showTitleIcon: [configData.config.showTitleIcon, []], + iconSize: [iconSize[0], [Validators.min(0)]], + iconSizeUnit: [iconSize[1], []], + titleIcon: [settings.titleIcon, []], + iconColor: [settings.iconColor, []], + volumeSource: [settings.volumeSource, []], + volumeConstant: [settings.volumeConstant, [Validators.required]], + volumeAttributeName: [settings.volumeAttributeName, [Validators.required]], + volumeUnits: [settings.volumeUnits, [Validators.required]], + volumeFont: [settings.volumeFont, []], + volumeColor: [settings.volumeColor, []], + units: [settings.units, [Validators.required]], + widgetUnitsSource: [settings.widgetUnitsSource, [Validators.required]], + widgetUnitsAttributeName: [settings.widgetUnitsAttributeName, [Validators.required]], + decimals: [settings.decimals, []], + liquidColor: [settings.liquidColor, []], + valueFont: [settings.valueFont, []], + valueColor: [settings.valueColor, []], + showBackgroundOverlay: [settings.showBackgroundOverlay, []], + backgroundOverlayColor: [settings.backgroundOverlayColor, []], + + showTooltip: [settings.showTooltip, []], + showTooltipLevel: [settings.showTooltipLevel, []], + tooltipUnits: [settings.tooltipUnits, []], + tooltipLevelDecimals: [settings.tooltipLevelDecimals, []], + tooltipLevelFont: [settings.tooltipLevelFont, []], + tooltipLevelColor: [settings.tooltipLevelColor, []], + showTooltipDate: [settings.showTooltipDate, []], + tooltipDateFormat: [settings.tooltipDateFormat, []], + tooltipDateFont: [settings.tooltipDateFont, []], + tooltipDateColor: [settings.tooltipDateColor, []], + tooltipBackgroundColor: [settings.tooltipBackgroundColor, []], + tooltipBackgroundBlur: [settings.tooltipBackgroundBlur, []], + + backgroundColor: [settings.backgroundColor, []], + cardButtons: [this.getCardButtons(configData.config), []], + borderRadius: [configData.config.borderRadius, []], + + actions: [configData.config.actions || {}, []] + }); + + this.levelCardWidgetConfigForm.get('selectedShape').valueChanges.subscribe((shape) => { + this.cd.detectChanges(); + this.layoutsImageCardsSelect?.imageCardsSelectOptions.notifyOnChanges(); + }); + } + + protected prepareOutputConfig(config: any): WidgetConfigComponentData { + setTimewindowConfig(this.widgetConfig.config, config.timewindowConfig); + this.widgetConfig.config.datasources = config.datasources; + + this.widgetConfig.config.settings = this.widgetConfig.config.settings || {}; + + this.widgetConfig.config.settings.tankSelectionType = config.tankSelectionType; + this.widgetConfig.config.settings.selectedShape = config.selectedShape; + this.widgetConfig.config.settings.shapeAttributeName = config.shapeAttributeName; + this.widgetConfig.config.settings.tankColor = config.tankColor; + this.widgetConfig.config.settings.datasourceUnits = config.datasourceUnits; + + this.widgetConfig.config.settings.layout = config.layout; + 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.showTitleIcon; + this.widgetConfig.config.iconSize = cssSizeToStrSize(config.iconSize, config.iconSizeUnit); + this.widgetConfig.config.titleIcon = config.titleIcon; + this.widgetConfig.config.iconColor = config.iconColor; + this.widgetConfig.config.settings.volumeSource = config.volumeSource; + this.widgetConfig.config.settings.volumeConstant = config.volumeConstant; + this.widgetConfig.config.settings.volumeAttributeName = config.volumeAttributeName; + this.widgetConfig.config.settings.volumeUnits = config.volumeUnits; + this.widgetConfig.config.settings.volumeFont = config.volumeFont; + this.widgetConfig.config.settings.volumeColor = config.volumeColor; + this.widgetConfig.config.settings.units = config.units; + this.widgetConfig.config.settings.widgetUnitsSource = config.widgetUnitsSource; + this.widgetConfig.config.settings.widgetUnitsAttributeName = config.widgetUnitsAttributeName; + this.widgetConfig.config.decimals = config.decimals; + this.widgetConfig.config.settings.liquidColor = config.liquidColor; + this.widgetConfig.config.settings.valueFont = config.valueFont; + this.widgetConfig.config.settings.valueColor = config.valueColor; + this.widgetConfig.config.settings.showBackgroundOverlay = config.showBackgroundOverlay; + this.widgetConfig.config.settings.backgroundOverlayColor = config.backgroundOverlayColor; + + this.widgetConfig.config.settings.showTooltip = config.showTooltip; + this.widgetConfig.config.settings.showTooltipLevel = config.showTooltipLevel; + this.widgetConfig.config.settings.tooltipUnits = config.tooltipUnits; + this.widgetConfig.config.settings.tooltipLevelDecimals = config.tooltipLevelDecimals; + this.widgetConfig.config.settings.tooltipLevelFont = config.tooltipLevelFont; + this.widgetConfig.config.settings.tooltipLevelColor = config.tooltipLevelColor; + this.widgetConfig.config.settings.showTooltipDate = config.showTooltipDate; + 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.backgroundColor = config.backgroundColor; + 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 [ + 'showBackgroundOverlay', 'showTooltip', 'showTooltipLevel', + 'tankSelectionType', 'datasourceUnits', + 'showTitleIcon', 'volumeSource', + 'showTooltipDate', 'units', + 'layout', 'showTitle', + 'widgetUnitsSource' + ]; + } + + protected updateValidators(emitEvent: boolean, trigger?: string) { + const emitEventFields = []; + + const datasourceUnits: string = this.levelCardWidgetConfigForm.get('datasourceUnits').value; + const layout: LevelCardLayout = this.levelCardWidgetConfigForm.get('layout').value; + const showTitleIcon: AbstractControl = this.levelCardWidgetConfigForm.get('showTitleIcon'); + const volumeSource: AbstractControl = this.levelCardWidgetConfigForm.get('volumeSource'); + const units: AbstractControl = this.levelCardWidgetConfigForm.get('units'); + const tooltipUnits: AbstractControl = this.levelCardWidgetConfigForm.get('tooltipUnits'); + const widgetUnitsSource: AbstractControl = this.levelCardWidgetConfigForm.get('widgetUnitsSource'); + const showTooltipLevel: AbstractControl = this.levelCardWidgetConfigForm.get('showTooltipLevel'); + const showTooltipDate: AbstractControl = this.levelCardWidgetConfigForm.get('showTooltipDate'); + const showTooltip: boolean = this.levelCardWidgetConfigForm.get('showTooltip').value; + + if (trigger === 'tankSelectionType') { + const tankSelectionType: LevelSelectOptions = this.levelCardWidgetConfigForm.get('tankSelectionType').value; + if (tankSelectionType === LevelSelectOptions.static) { + this.levelCardWidgetConfigForm.get('selectedShape').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('shapeAttributeName').disable({emitEvent: false}); + } else { + this.levelCardWidgetConfigForm.get('selectedShape').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('shapeAttributeName').enable({emitEvent: false}); + } + emitEventFields.push('selectedShape', 'shapeAttributeName'); + } + + if (trigger === 'datasourceUnits' || trigger === 'layout' || trigger === 'units') { + if (datasourceUnits === CapacityUnits.percent && (layout !== LevelCardLayout.absolute) + || (datasourceUnits === CapacityUnits.percent && units?.value === CapacityUnits.percent) + ) { + volumeSource.disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeConstant').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeAttributeName').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeUnits').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeFont').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeColor').disable({emitEvent: false}); + } else { + volumeSource.enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeConstant').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeAttributeName').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeUnits').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeFont').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeColor').enable({emitEvent: false}); + } + emitEventFields.push('volumeSource', 'volumeConstant', 'volumeAttributeName', 'volumeFont', 'volumeColor', 'volumeUnits'); + } else if (trigger === 'volumeSource') { + if((datasourceUnits !== CapacityUnits.percent) || + (layout === LevelCardLayout.absolute && units?.value !== CapacityUnits.percent)) { + if (volumeSource.value === LevelSelectOptions.static) { + this.levelCardWidgetConfigForm.get('volumeConstant').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeAttributeName').disable({emitEvent: false}); + } else { + this.levelCardWidgetConfigForm.get('volumeConstant').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('volumeAttributeName').enable({emitEvent: false}); + } + emitEventFields.push('volumeConstant', 'volumeAttributeName'); + } + } + + if (trigger === 'showTitle') { + const showTitle: boolean = this.levelCardWidgetConfigForm.get('showTitle').value; + if (showTitle) { + this.levelCardWidgetConfigForm.get('title').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('titleFont').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('titleColor').enable({emitEvent: false}); + showTitleIcon.enable({emitEvent: false}); + } else { + this.levelCardWidgetConfigForm.get('title').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('titleFont').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('titleColor').disable({emitEvent: false}); + showTitleIcon.disable({emitEvent: false}); + } + emitEventFields.push('title', 'titleFont', 'titleColor', 'showTitleIcon'); + } + + if (showTitleIcon?.value) { + this.levelCardWidgetConfigForm.get('titleIcon').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconColor').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconSize').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconSizeUnit').enable({emitEvent: false}); + } else { + this.levelCardWidgetConfigForm.get('titleIcon').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconColor').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconSize').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconSizeUnit').disable({emitEvent: false}); + } + emitEventFields.push('titleIcon', 'iconColor', 'iconSize', 'iconSizeUnit'); + + if (trigger === 'showBackgroundOverlay') { + const showBackgroundOverlay: boolean = this.levelCardWidgetConfigForm.get('showBackgroundOverlay').value; + if (showBackgroundOverlay) { + this.levelCardWidgetConfigForm.get('backgroundOverlayColor').enable({emitEvent: false}); + } else { + this.levelCardWidgetConfigForm.get('backgroundOverlayColor').disable({emitEvent: false}); + } + emitEventFields.push('backgroundOverlayColor'); + } + + if (trigger === 'showTooltip') { + if (showTooltip) { + showTooltipLevel.enable({emitEvent: false}); + showTooltipDate.enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipBackgroundColor').enable(); + this.levelCardWidgetConfigForm.get('tooltipBackgroundBlur').enable(); + } else { + showTooltipLevel.disable({emitEvent: false}); + showTooltipDate.disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipBackgroundColor').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipBackgroundBlur').disable({emitEvent: false}); + } + emitEventFields.push('showTooltipLevel', 'showTooltipDate', 'tooltipBackgroundColor', 'tooltipBackgroundBlur'); + } + + if (trigger === 'showTooltipLevel') { + if (showTooltipLevel?.value && !showTooltipLevel.disabled) { + tooltipUnits.enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipLevelDecimals').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipLevelFont').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipLevelColor').enable({emitEvent: false}); + } else { + tooltipUnits.disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipLevelDecimals').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipLevelFont').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipLevelColor').disable({emitEvent: false}); + } + emitEventFields.push('tooltipUnits', 'tooltipLevelDecimals', 'tooltipLevelFont', 'tooltipLevelColor'); + } + + if (trigger === 'showTooltipDate') { + if (showTooltipDate?.value && !showTooltipDate.disabled) { + this.levelCardWidgetConfigForm.get('tooltipDateFormat').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipDateFont').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipDateColor').enable({emitEvent: false}); + } else { + this.levelCardWidgetConfigForm.get('tooltipDateFormat').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipDateFont').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('tooltipDateColor').disable({emitEvent: false}); + } + emitEventFields.push('tooltipDateFormat', 'tooltipDateFont', 'tooltipDateColor'); + } + + if (trigger === 'layout' || trigger === 'datasourceUnits') { + if (layout === LevelCardLayout.simple) { + units.disable({emitEvent: false}); + tooltipUnits.disable({emitEvent: false}); + widgetUnitsSource.setValue(LevelSelectOptions.static, {emitEvent: false}); + widgetUnitsSource.disable({emitEvent: false}); + + this.levelCardWidgetConfigForm.get('decimals').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('valueFont').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('valueColor').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); + } else if (layout === LevelCardLayout.percentage) { + if (units.value !== CapacityUnits.percent) { + units.setValue(CapacityUnits.percent, {emitEvent: false}); + } + widgetUnitsSource.setValue(LevelSelectOptions.static, {emitEvent: false}); + units.disable({emitEvent: false}); + widgetUnitsSource.disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); + + if (tooltipUnits.value !== CapacityUnits.percent) { + tooltipUnits.setValue(CapacityUnits.percent, {emitEvent: false}); + } + tooltipUnits.disable({emitEvent: false}); + } else { + units.enable({emitEvent: false}); + tooltipUnits.enable({emitEvent: false}); + widgetUnitsSource.enable({emitEvent: false}); + + this.levelCardWidgetConfigForm.get('decimals').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('valueFont').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('valueColor').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('widgetUnitsAttributeName').enable({emitEvent: false}); + } + emitEventFields.push('units', 'tooltipUnits', 'decimals', 'valueFont', 'valueColor', 'widgetUnitsSource', 'widgetUnitsAttributeName'); + } else if (trigger === 'widgetUnitsSource') { + if (layout !== LevelCardLayout.percentage) { + if (widgetUnitsSource.value === LevelSelectOptions.static) { + units.enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); + } else { + units.disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('widgetUnitsAttributeName').enable({emitEvent: false}); + } + emitEventFields.push('units', 'widgetUnitsAttributeName'); + } + } + + for (const controlKey in this.levelCardWidgetConfigForm.controls) { + if (emitEventFields.includes(controlKey)) { + this.levelCardWidgetConfigForm.controls[controlKey].updateValueAndValidity({emitEvent}); + } + } + } + + private getCardButtons(config: WidgetConfig): string[] { + const buttons: string[] = []; + if (isUndefined(config.enableDataExport) || config.enableDataExport) { + buttons.push('dataExport'); + } + if (isUndefined(config.enableFullscreen) || config.enableFullscreen) { + buttons.push('fullscreen'); + } + return buttons; + } + + private setCardButtons(buttons: string[], config: WidgetConfig) { + config.enableDataExport = buttons.includes('dataExport'); + config.enableFullscreen = buttons.includes('fullscreen'); + } + + private _valuePreviewFn(): string { + const units: string = this.levelCardWidgetConfigForm.get('units').value; + const decimals: number = this.levelCardWidgetConfigForm.get('decimals').value; + return formatValue(22, decimals, units, true); + } + + private _tooltipValuePreviewFn() { + const units: string = this.levelCardWidgetConfigForm.get('tooltipUnits').value; + const decimals: number = this.levelCardWidgetConfigForm.get('tooltipLevelDecimals').value; + return formatValue(32, decimals, units, true); + } + + private _totalVolumeValuePreviewFn() { + const value = this.levelCardWidgetConfigForm.get('volumeConstant').value; + const datasourceUnits = this.levelCardWidgetConfigForm.get('datasourceUnits').value; + const decimals: number = this.widgetConfig.config.decimals; + let units: string = this.widgetConfig.config.units; + + if (datasourceUnits !== CapacityUnits.percent) { + units = datasourceUnits; + } + + return formatValue((isDefined(value) ? value : 500), decimals, units, true); + } + + private _datePreviewFn(): string { + const dateFormat: DateFormatSettings = this.levelCardWidgetConfigForm.get('tooltipDateFormat').value; + const processor = DateFormatProcessor.fromSettings(this.$injector, dateFormat); + processor.update(Date.now()); + return processor.formatted; + } + + private createSvgShapesMapping(): void { + const obsArray: Array> = []; + for (const shape of this.shapes) { + const svgUrl = svgMapping.get(shape).svg; + + const obs = this.resourcesService.loadJsonResource(svgUrl).pipe( + map((svg) => ({svg, shape})) + ); + + obsArray.push(obs); + } + + forkJoin(obsArray).subscribe((svgData) => { + for (const data of svgData) { + this.shapesImageMap.set(data.shape, data.svg); + } + + this.cd.detectChanges(); + this.layoutsImageCardsSelect?.imageCardsSelectOptions.notifyOnChanges(); + this.shapesImageCardsSelect?.imageCardsSelectOptions.notifyOnChanges(); + }); + } + + public createShapeLayout(svg: string, layout: LevelCardLayout): SafeUrl { + if (svg && layout) { + const parser = new DOMParser(); + const svgImage = parser.parseFromString(svg, 'image/svg+xml'); + + if (layout === this.levelCardLayouts.simple) { + svgImage.querySelector('.container-overlay').remove(); + } else if (layout === this.levelCardLayouts.percentage) { + svgImage.querySelector('.absolute-overlay').remove(); + svgImage.querySelector('.percentage-value-container').innerHTML = createPercentLayout(); + } else { + svgImage.querySelector('.absolute-value-container').innerHTML = createAbsoluteLayout(); + svgImage.querySelector('.percentage-overlay').remove(); + } + + const encodedSvg = encodeURIComponent(svgImage.documentElement.outerHTML); + + return this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/svg+xml,${encodedSvg}`); + } + } + + public isRequired(formControlName: string): boolean { + return this.levelCardWidgetConfigForm.get(formControlName)?.hasValidator(Validators.required); + } + + public fetchOptions(searchText: string): Observable> { + if (this.keySearchText !== searchText || !this.lastFetchedKeys) { + this.keySearchText = searchText; + const dataKeyFilter = optionsFilter(this.keySearchText); + return this.getKeys().pipe( + tap(res => this.lastFetchedKeys !== res ? this.lastFetchedKeys = res : []), + map(name => name?.filter(dataKeyFilter).map(key => key.name)), + tap(res => this.latestKeySearchTextResult = res) + ); + } + return of(this.latestKeySearchTextResult); + } + + private getKeys(): Observable> { + let fetchObservable: Observable>; + const callbacks = this.widgetConfigComponent.widgetConfigCallbacks; + if (this.datasource?.type === DatasourceType.function) { + fetchObservable = of(this.functionTypeKeys); + } else if (this.datasource?.type === DatasourceType.entity && this.datasource?.entityAliasId || + this.datasource?.type === DatasourceType.device && this.datasource?.deviceId) { + if (this.datasource?.type === DatasourceType.device) { + if (this.lastKeysId !== this.datasource?.deviceId || !this.lastFetchedKeys) { + this.lastKeysId = this.datasource.deviceId; + fetchObservable = callbacks.fetchEntityKeysForDevice(this.datasource?.deviceId, [DataKeyType.attribute]); + } else { + fetchObservable = of(this.lastFetchedKeys); + } + } else { + if (this.lastKeysId !== this.datasource?.entityAliasId || !this.lastFetchedKeys) { + this.lastKeysId = this.datasource.entityAliasId; + fetchObservable = callbacks.fetchEntityKeys(this.datasource?.entityAliasId, [DataKeyType.attribute]); + } else { + fetchObservable = of(this.lastFetchedKeys); + } + } + } else { + this.lastKeysId = null; + fetchObservable = of([]); + } + return fetchObservable.pipe( + publishReplay(1), + refCount() + ); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts b/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts index cfa0cedbee..160331de3a 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts @@ -25,7 +25,6 @@ import { AppState } from '@core/core.state'; import { AbstractControl, UntypedFormGroup } from '@angular/forms'; import { DataKey, DatasourceType, KeyInfo, WidgetConfigMode } from '@shared/models/widget.models'; import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; -import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; import { isDefinedAndNotNull } from '@core/utils'; export type WidgetConfigCallbacks = DatasourceCallbacks & WidgetActionCallbacks; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts new file mode 100644 index 0000000000..0c4b34ca6c --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -0,0 +1,442 @@ +/// +/// ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL +/// +/// Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. +/// +/// NOTICE: All information contained herein is, and remains +/// the property of ThingsBoard, Inc. and its suppliers, +/// if any. The intellectual and technical concepts contained +/// herein are proprietary to ThingsBoard, Inc. +/// and its suppliers and may be covered by U.S. and Foreign Patents, +/// patents in process, and are protected by trade secret or copyright law. +/// +/// Dissemination of this information or reproduction of this material is strictly forbidden +/// unless prior written permission is obtained from COMPANY. +/// +/// Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, +/// managers or contractors who have executed Confidentiality and Non-disclosure agreements +/// explicitly covering such access. +/// +/// The copyright notice above does not evidence any actual or intended publication +/// or disclosure of this source code, which includes +/// information that is confidential and/or proprietary, and is a trade secret, of COMPANY. +/// ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, +/// OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT +/// THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, +/// AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. +/// THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION +/// DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, +/// OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. +/// + +import { + ColorSettings, + constantColor, cssTextFromInlineStyle, + DateFormatSettings, + Font, + lastUpdateAgoDateFormat +} from '@shared/models/widget-settings.models'; +import { DataKey, WidgetConfig } from '@shared/models/widget.models'; +import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; +import { Observable, of } from 'rxjs'; +import { singleEntityFilterFromDeviceId } from '@shared/models/query/query.models'; +import { EntityType } from '@shared/models/entity-type.models'; +import { catchError, mergeMap } from 'rxjs/operators'; +import { EntityService } from '@core/http/entity.service'; +import { IAliasController } from '@core/api/widget-api.models'; + +export interface SvgInfo { + svg: string; + limits: SvgLimits; +} + +export interface SvgLimits { + min: number; + max: number; +} + +export interface LevelCardWidgetSettings extends WidgetConfig { + tankSelectionType: LevelSelectOptions; + selectedShape: Shapes; + shapeAttributeName: string; + tankColor: ColorSettings; + datasourceUnits: CapacityUnits; + layout: LevelCardLayout; + volumeSource: LevelSelectOptions; + volumeConstant: number; + volumeAttributeName: string; + volumeUnits: CapacityUnits; + volumeFont: Font; + volumeColor: ColorSettings; + liquidColor: ColorSettings; + valueFont: Font; + widgetUnitsSource: LevelSelectOptions; + widgetUnitsAttributeName: string; + valueColor: ColorSettings; + showBackgroundOverlay: boolean; + backgroundOverlayColor: ColorSettings; + showTooltip: boolean; + showTooltipLevel: boolean; + tooltipUnits: CapacityUnits; + tooltipLevelDecimals: number; + tooltipLevelFont: Font; + tooltipLevelColor: ColorSettings; + showTooltipDate: boolean; + tooltipDateFormat: DateFormatSettings; + tooltipDateFont: Font; + tooltipDateColor: ColorSettings; + tooltipBackgroundColor: ColorSettings; + tooltipBackgroundBlur: number; +} + +export enum Shapes { + vOval = 'Vertical Oval', + vCylinder = 'Vertical Cylinder', + vCapsule = 'Vertical Capsule', + rectangle = 'Rectangle', + hOval = 'Horizontal Oval', + hEllipse = 'Horizontal Ellipse', + hDishEnds = 'Horizontal Dish Ends', + hCylinder = 'Horizontal Cylinder', + hCapsule = 'Horizontal Capsule', + hElliptical_2_1 = 'Horizontal 2:1 Elliptical' +} + +export enum CapacityUnits { + percent = '%', + liters = 'L', + cubicMillimeter = 'mm³', + cubicCentimeter = 'cm³', + cubicMeter = 'm³', + cubicKilometer = 'km³', + milliliter = 'mL', + hectoliter = 'hl', + cubicInch = 'in³', + cubicFoot = 'ft³', + cubicYard = 'yd³', + fluidOunce = 'fl-oz', + pint = 'pt', + quart = 'qt', + gallon = 'gal', + oilBarrels = 'bbl' +} + +export enum LevelCardLayout { + simple = 'simple', + percentage = 'percentage', + absolute = 'absolute' +} + +export enum LevelSelectOptions { + attribute = 'Attribute', + static = 'Static' +} + +export enum ConversionType { + to = 'to', + from = 'from', +} + +export const svgMapping = new Map( + [ + [ + Shapes.vOval, + { + svg: 'assets/widget/liquid-level/shapes/vertical-oval.svg', + limits: { min: 170, max: 50 } + } + ], + [ + Shapes.vCylinder, + { + svg: 'assets/widget/liquid-level/shapes/vertical-cylinder.svg', + limits: { min: 161, max: 55 } + } + ], + [ + Shapes.vCapsule, + { + svg: 'assets/widget/liquid-level/shapes/vertical-capsule.svg', + limits: { min: 195, max: 25 } + } + ], + [ + Shapes.rectangle, + { + svg: 'assets/widget/liquid-level/shapes/rectangle.svg', + limits: { min: 168, max: 52 } + } + ], + [ + Shapes.hOval, + { + svg: 'assets/widget/liquid-level/shapes/horizontal-oval.svg', + limits: { min: 160, max: 63 } + } + ], + [ + Shapes.hEllipse, + { + svg: 'assets/widget/liquid-level/shapes/horizontal-ellipse.svg', + limits: { min: 160, max: 65 } + } + ], + [ + Shapes.hDishEnds, + { + svg: 'assets/widget/liquid-level/shapes/horizontal-dish-ends.svg', + limits: { min: 172, max: 50 } + } + ], + [ + Shapes.hCylinder, + { + svg: 'assets/widget/liquid-level/shapes/horizontal-cylinder.svg', + limits: { min: 165, max: 55 } + } + ], + [ + Shapes.hCapsule, + { + svg: 'assets/widget/liquid-level/shapes/horizontal-capsule.svg', + limits: { min: 158, max: 52 } + } + ], + [ + Shapes.hElliptical_2_1, + { + svg: 'assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg', + limits: { min: 172, max: 50 } + } + ] + ] +); + +export const levelCardLayoutTranslations = new Map( + [ + [LevelCardLayout.simple, 'widgets.liquid-level-card.layout-simple'], + [LevelCardLayout.percentage, 'widgets.liquid-level-card.layout-percentage'], + [LevelCardLayout.absolute, 'widgets.liquid-level-card.layout-absolute'] + ] +); + +export const shapesTranslations = new Map( + [ + [Shapes.vOval, 'widgets.liquid-level-card.v-oval'], + [Shapes.vCylinder, 'widgets.liquid-level-card.v-cylinder'], + [Shapes.vCapsule, 'widgets.liquid-level-card.v-capsule'], + [Shapes.rectangle, 'widgets.liquid-level-card.rectangle'], + [Shapes.hOval, 'widgets.liquid-level-card.h-oval'], + [Shapes.hEllipse, 'widgets.liquid-level-card.h-ellipse'], + [Shapes.hDishEnds, 'widgets.liquid-level-card.h-dish-ends'], + [Shapes.hCylinder, 'widgets.liquid-level-card.h-cylinder'], + [Shapes.hCapsule, 'widgets.liquid-level-card.h-capsule'], + [Shapes.hElliptical_2_1, 'widgets.liquid-level-card.h-elliptical_2_1'] + ] +); + +export const levelCardDefaultSettings = (): LevelCardWidgetSettings => ({ + tankSelectionType: LevelSelectOptions.static, + selectedShape: Shapes.vCylinder, + shapeAttributeName: 'tankShape', + tankColor: constantColor('#242770'), + datasourceUnits: CapacityUnits.percent, + layout: LevelCardLayout.percentage, + showTitle: false, + title: 'Liquid level', + titleFont: { + family: 'Roboto', + size: 16, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '1.5' + }, + titleColor: 'rgba(0, 0, 0, 0.87)', + showTitleIcon: false, + titleIcon: 'water_drop', + iconColor: '#5469FF', + volumeSource: LevelSelectOptions.static, + volumeConstant: 500, + volumeUnits: CapacityUnits.liters, + volumeAttributeName: 'volume', + volumeFont: { + family: 'Roboto', + size: 14, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '100%' + }, + volumeColor: constantColor('rgba(0, 0, 0, 0.18)'), + units: CapacityUnits.percent as string, + widgetUnitsSource: LevelSelectOptions.static, + widgetUnitsAttributeName: 'units', + decimals: 0, + liquidColor: constantColor('#7A8BFF'), + valueFont: { + family: 'Roboto', + size: 24, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '100%' + }, + valueColor: constantColor('rgba(0, 0, 0, 0.87)'), + showBackgroundOverlay: true, + backgroundOverlayColor: constantColor('rgba(255, 255, 255, 0.76)'), + showTooltip: true, + showTooltipLevel: true, + tooltipUnits: CapacityUnits.percent, + tooltipLevelDecimals: 0, + tooltipLevelFont: { + family: 'Roboto', + size: 13, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '100%' + }, + tooltipLevelColor: constantColor('rgba(0, 0, 0, 0.76)'), + showTooltipDate: true, + tooltipDateFormat: lastUpdateAgoDateFormat(), + tooltipDateFont: { + family: 'Roboto', + size: 13, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '100%' + }, + tooltipDateColor: constantColor('rgba(0, 0, 0, 0.76)'), + tooltipBackgroundColor: constantColor('rgba(255, 255, 255, 0.76)'), + tooltipBackgroundBlur: 3 +}); + +export const convertLiters = (value: number, units: CapacityUnits, conversionType: ConversionType): number => { + let factor: number; + + switch (units) { + case CapacityUnits.liters: + return value; + case CapacityUnits.cubicMillimeter: + factor = 1e6; + break; + case CapacityUnits.cubicCentimeter: + case CapacityUnits.milliliter: + factor = 1e3; + break; + case CapacityUnits.cubicMeter: + factor = 1e-3; + break; + case CapacityUnits.cubicKilometer: + factor = 1e-15; + break; + case CapacityUnits.hectoliter: + factor = 0.01; + break; + case CapacityUnits.cubicInch: + factor = 61.0237; + break; + case CapacityUnits.cubicFoot: + factor = 1 / 28.3168; + break; + case CapacityUnits.cubicYard: + factor = 1 / 764.555; + break; + case CapacityUnits.fluidOunce: + factor = 33.814; + break; + case CapacityUnits.pint: + factor = 1 / 0.473176; + break; + case CapacityUnits.quart: + factor = 1 / 0.946353; + break; + case CapacityUnits.gallon: + factor = 1 / 3.78541; + break; + case CapacityUnits.oilBarrels: + factor = 1 / 158.987; + break; + default: + return value; + // throw new Error(`Unknown unit: ${units}`); + } + + return conversionType === ConversionType.to ? value / factor : value * factor; +}; + +export const extractValue = (attributes: any[], attributeName: string, defaultValue: any): any => { + const index = attributes.findIndex(attr => attr.key === attributeName); + return index !== -1 ? attributes[index].value : defaultValue; +}; + +export const valueContainerStyleDefaults = cssTextFromInlineStyle({ + width: '100%', + height: '100%', + display: 'flex', + gap: '8px', + 'text-align': 'center', + 'align-items': 'center', + 'align-content': 'center', + 'justify-content': 'center', +}); + +export const valueTextStyleDefaults = 'letterSpacing: normal; font-style: normal; font-weight: 500; line-height: 100%;' + + ' font-size: 24px; font-family: Roboto; color: #000000DE'; + +export const volumeTextStyleDefaults = 'letterSpacing: normal; font-style: normal; font-weight: 500;' + + ' line-height: 100%; font-size: 14px; font-family: Roboto; color: rgba(0, 0, 0, 0.18)'; + +export const createAbsoluteLayout = (values?: {inputValue: number | string; volume: number | string}, + styles?: {valueStyle: string; volumeStyle: string}, + units?: string): string => { + const inputValue = values?.inputValue ? values?.inputValue : 500; + const valueTextStyle = styles?.valueStyle ? styles?.valueStyle : valueTextStyleDefaults; + const volume = values?.volume ? values?.volume : 1000; + const volumeTextStyle = styles?.volumeStyle ? styles?.volumeStyle : volumeTextStyleDefaults; + const displayUnits = units ? units : CapacityUnits.liters; + + return `
+
+ +
+ +
+ +
`; +}; + +export const createPercentLayout = (value: number | string = 50, valueTextStyle: string = valueTextStyleDefaults): string => + `
+ +
`; + +export const optionsFilter = (searchText: string): ((key: DataKey) => boolean) => + key => key?.name.toUpperCase().includes(searchText?.toUpperCase()); + +export const fetchEntityKeysForDevice = (deviceId: string, dataKeyTypes: Array, + entityService: EntityService): Observable> => { + const entityFilter = singleEntityFilterFromDeviceId(deviceId); + return entityService.getEntityKeysByEntityFilter( + entityFilter, + dataKeyTypes, [EntityType.DEVICE], + {ignoreLoading: true, ignoreErrors: true} + ).pipe( + catchError(() => of([])) + ); +}; + +export const fetchEntityKeys = (entityAliasId: string, dataKeyTypes: Array, + entityService: EntityService, aliasController: IAliasController): Observable> => + aliasController.getAliasInfo(entityAliasId).pipe( + mergeMap((aliasInfo) => entityService.getEntityKeysByEntityFilter( + aliasInfo.entityFilter, + dataKeyTypes, [], + {ignoreLoading: true, ignoreErrors: true} + ).pipe( + catchError(() => of([])) + )), + catchError(() => of([] as Array)) + ); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts new file mode 100644 index 0000000000..1790495b54 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts @@ -0,0 +1,524 @@ +/// +/// ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL +/// +/// Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. +/// +/// NOTICE: All information contained herein is, and remains +/// the property of ThingsBoard, Inc. and its suppliers, +/// if any. The intellectual and technical concepts contained +/// herein are proprietary to ThingsBoard, Inc. +/// and its suppliers and may be covered by U.S. and Foreign Patents, +/// patents in process, and are protected by trade secret or copyright law. +/// +/// Dissemination of this information or reproduction of this material is strictly forbidden +/// unless prior written permission is obtained from COMPANY. +/// +/// Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, +/// managers or contractors who have executed Confidentiality and Non-disclosure agreements +/// explicitly covering such access. +/// +/// The copyright notice above does not evidence any actual or intended publication +/// or disclosure of this source code, which includes +/// information that is confidential and/or proprietary, and is a trade secret, of COMPANY. +/// ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, +/// OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT +/// THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, +/// AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. +/// THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION +/// DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, +/// OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. +/// + + +import { WidgetContext } from '@home/models/widget-component.models'; +import { isDefined, isDefinedAndNotNull, isNumber, isString } from '@core/utils'; +import { + CapacityUnits, + ConversionType, + convertLiters, createAbsoluteLayout, createPercentLayout, + extractValue, + levelCardDefaultSettings, + LevelCardLayout, + LevelCardWidgetSettings, + LevelSelectOptions, + Shapes, + SvgInfo, + SvgLimits, + svgMapping +} from '@home/components/widget/lib/indicator/liquid-level-widget.models'; +import { Observable, of } from 'rxjs'; +import { map, switchMap } from 'rxjs/operators'; +import { EntityId } from '@shared/models/id/entity-id'; +import { + ColorProcessor, + cssTextFromInlineStyle, + DateFormatProcessor, + inlineTextStyle +} from '@shared/models/widget-settings.models'; +import ITooltipsterInstance = JQueryTooltipster.ITooltipsterInstance; +import { ResourcesService } from '@core/services/resources.service'; +import { NULL_UUID } from '@shared/models/id/has-uuid'; +import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core'; + +@Component({ + selector: 'tb-liquid-level-widget', + template: '', + styleUrls: [], + encapsulation: ViewEncapsulation.None +}) +export class LiquidLevelWidgetComponent implements OnInit { + + @Input() + ctx: WidgetContext; + + svgParams: SvgInfo; + + svg: JQuery; + + tooltip: ITooltipsterInstance; + + overlayContainer: JQuery; + + shape: Shapes; + + settings: LevelCardWidgetSettings; + + tankColor: ColorProcessor; + + volumeColor: ColorProcessor; + + valueColor: ColorProcessor; + + liquidColor: ColorProcessor; + + backgroundOverlayColor: ColorProcessor; + + tooltipLevelColor: ColorProcessor; + + tooltipDateFormat: DateFormatProcessor; + + tooltipDateColor: ColorProcessor; + + tooltipBackgroundColor: ColorProcessor; + + volume: number; + + tooltipContent: string; + + widgetUnits: string; + + constructor() { + } + + ngOnInit(): void { + this.ctx.$scope.liquidLevelWidget = this; + this.settings = {...levelCardDefaultSettings(), ...this.ctx.widgetConfig, ...this.ctx.settings}; + + this.tankColor = ColorProcessor.fromSettings(this.settings.tankColor); + this.volumeColor = ColorProcessor.fromSettings(this.settings.volumeColor); + this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); + this.liquidColor = ColorProcessor.fromSettings(this.settings.liquidColor); + this.backgroundOverlayColor = ColorProcessor.fromSettings(this.settings.backgroundOverlayColor); + this.tooltipLevelColor = ColorProcessor.fromSettings(this.settings.tooltipLevelColor); + this.tooltipDateColor = ColorProcessor.fromSettings(this.settings.tooltipDateColor); + this.tooltipBackgroundColor = ColorProcessor.fromSettings(this.settings.tooltipBackgroundColor); + + this.tooltipDateFormat = DateFormatProcessor.fromSettings(this.ctx.$injector, this.settings.tooltipDateFormat); + } + + public onInit() { + this.getData().subscribe(data => { + if (data) { + const { svg, volume, units } = data; + if (svg && isString(svg) && this.ctx.$container) { + this.ctx.$container.html(svg); + this.svg = this.ctx.$container.find('svg'); + this.svg.on('click', this.cardClick.bind(this)); + this.createSVG(); + this.createValueElement(); + + if (this.settings.showTooltip) { + this.createTooltip(); + } + } + + if (isDefined(volume) && isNumber(volume)) { + this.volume = volume; + } + + if (units) { + this.widgetUnits = units; + } + + this.update(); + } + }); + } + + private getData(): Observable<{ svg: string; volume: number; units: string }> { + const entityId: EntityId = { + entityType: this.ctx.datasources[0].entityType, + id: this.ctx.datasources[0].entityId + }; + + return this.getShape(entityId).pipe( + switchMap(shape => { + this.shape = shape; + this.svgParams = svgMapping.get(shape); + if (this.svgParams) { + return this.loadSVG(this.svgParams.svg).pipe( + switchMap( svg => + this.getSecondaryResources(entityId).pipe( + map(({ volume, units }) => + ({ svg, volume, units }) + ) + ) + ) + ); + } + + return of(null); + }) + ); + } + + public update() { + if (this.svg) { + this.updateData(); + } + } + + public destroy() { + + } + + private createSVG() { + if (this.svg) { + this.svg.css('display', 'block') + .css('overflow', 'hidden') + .css('width', '100%') + .css('height', '100%'); + } + } + + private updateData() { + const data = this.ctx.data[0]?.data[0]?.map(value => Number(value)); + if (isDefinedAndNotNull(data) && data.length && typeof Number(data[1]) === 'number') { + const percentage = this.convertInputData(Number(data[1])); + this.updateSvg(percentage); + this.updateValueElement(this.convertOutputData(percentage)); + + if (this.settings.showTooltip) { + this.updateTooltip(data); + } + } + } + + private createTooltip(): void { + this.tooltipContent = this.getTooltipContent(); + + import('tooltipster').then(() => { + if ($.tooltipster && this.tooltip) { + this.tooltip.destroy(); + this.tooltip = null; + } + this.tooltip = this.svg.tooltipster({ + contentAsHTML: true, + theme: 'tooltipster-shadow', + side: 'top', + delay: 10, + distance: -33, + triggerClose: { + click: true, + tap: true, + scroll: true, + mouseleave: true + }, + animation: 'grow', + updateAnimation: null, + trackOrigin: true, + functionBefore: (instance, helper) => { + instance.content(this.tooltipContent); + }, + functionReady: (instance, helper) => { + const tooltipsterBoxStyles: JQuery.PlainObject = { + backgroundColor: this.getTooltipBackground(), + backdropFilter: `blur(${this.settings.tooltipBackgroundBlur}px)`, + width: '100%' + }; + + $(helper.tooltip).css('max-width', this.svg.width() + 'px'); + $(helper.tooltip).find('.tooltipster-box').css(tooltipsterBoxStyles); + $(helper.tooltip).find('.tooltipster-arrow').empty(); + + instance.reposition(); + } + }).tooltipster('instance'); + }); + } + + private createValueElement(): void { + const containerOverlay = this.ctx.$container.find('.container-overlay'); + const percentageOverlay = this.ctx.$container.find('.percentage-overlay'); + const absoluteOverlay = this.ctx.$container.find('.absolute-overlay'); + + if (this.settings.layout === LevelCardLayout.absolute) { + this.overlayContainer = absoluteOverlay; + percentageOverlay.css('visibility', 'hidden'); + if (!this.settings.showBackgroundOverlay) { + absoluteOverlay.css('visibility', 'hidden'); + } + } else if (this.settings.layout === LevelCardLayout.percentage) { + this.overlayContainer = percentageOverlay; + absoluteOverlay.css('visibility', 'hidden'); + if (!this.settings.showBackgroundOverlay) { + percentageOverlay.css('visibility', 'hidden'); + } + } else { + containerOverlay.css('visibility', 'hidden'); + } + + if (this.overlayContainer) { + this.overlayContainer.attr('fill', this.backgroundOverlayColor.color); + this.overlayContainer.removeAttr('fill-opacity'); + } + } + + private loadSVG(url: string): Observable { + const resourcesService = this.ctx.$injector.get(ResourcesService); + return resourcesService.loadJsonResource(url); + } + + private getShape(entityId: EntityId): Observable { + if (this.settings.tankSelectionType === LevelSelectOptions.attribute && entityId.id !== NULL_UUID) { + return this.ctx.attributeService.getEntityAttributes(entityId, null, + [this.settings.shapeAttributeName]).pipe( + map(attributes => + extractValue(attributes, this.settings.shapeAttributeName, this.settings.selectedShape) + ) + ); + } + + return of(this.settings.selectedShape); + } + + private getSecondaryResources(entityId: EntityId): Observable<{ volume: number; units: string }> { + const attributeNames = this.prepareAttributeNames(); + + if (!attributeNames.length || entityId.id === NULL_UUID) { + return of({ + volume: this.settings.volumeConstant, + units: this.settings.units + }); + } + + return this.ctx.attributeService.getEntityAttributes(entityId, null, attributeNames).pipe( + map(attributes => ({ + volume: extractValue(attributes, this.settings.volumeAttributeName, this.settings.volumeConstant), + units: extractValue(attributes, this.settings.widgetUnitsAttributeName, this.settings.units) + })) + ); + } + + private prepareAttributeNames(): string[] { + const names = []; + if (this.settings.volumeSource !== LevelSelectOptions.static) { + names.push(this.settings.volumeAttributeName); + } + if (this.settings.widgetUnitsSource !== LevelSelectOptions.static) { + names.push(this.settings.widgetUnitsAttributeName); + } + return names; + } + + private updateSvg(percentage: number) { + const yLimits: SvgLimits = { + min: this.svgParams.limits.min, + max: this.svgParams.limits.max + }; + + const newYPos = this.calculatePosition(percentage, yLimits); + this.updateShapeColor(percentage); + this.updateLevel(newYPos, percentage); + } + + private calculatePosition(percentage, limits): number { + return limits.min + (percentage / 100) * (limits.max - limits.min); + } + + private updateTooltip(value: number[]): void { + this.tooltipContent = this.getTooltipContent(value); + + if (this.tooltip) { + this.tooltip.content(this.tooltipContent); + } + } + + private updateLevel(newY: number, percentage: number): void { + this.liquidColor.update(percentage); + const fill = this.ctx.$container.find('.tb-liquid-fill'); + const surfaces = this.ctx.$container.find('.tb-liquid-surface'); + const surfacePositionAttr = this.shape !== Shapes.vCylinder ? 'y' : 'cy'; + const animationSpeed = 500; + + if (percentage > 1) { + fill.css('visibility', 'visible'); + fill.animate({y : newY}, animationSpeed); + fill.attr('fill', this.liquidColor.color); + + surfaces.each((index, element) => { + const $element = $(element); + $element.css('visibility', 'visible'); + $element.animate({[surfacePositionAttr]: newY}, animationSpeed); + if ($element.hasClass('tb-liquid')) { + $element.attr('fill', this.liquidColor.color); + } + }); + } else { + fill.css('visibility', 'hidden').stop().clearQueue(); + surfaces.each((index, element) => { + $(element).css('visibility', 'hidden').stop().clearQueue(); + }); + } + } + + private updateShapeColor(value): void { + const shapeStrokes = this.ctx.$container.find('.tb-shape-stroke'); + const shapeFill = this.ctx.$container.find('.tb-shape-fill'); + this.tankColor.update(value); + + shapeStrokes.each((index, element) => { + $(element).attr('stroke', this.tankColor.color); + }); + + shapeFill.each((index, element) => { + $(element).attr('fill', this.tankColor.color); + }); + } + + private updateValueElement(data: number): void { + let content: string; + let container: JQuery; + + const value = convertLiters(data, this.widgetUnits as CapacityUnits, ConversionType.from) + .toFixed(this.settings.decimals || 0); + const valueTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.valueFont), + color: this.valueColor.color}); + this.backgroundOverlayColor.update(data); + if (this.overlayContainer) { + this.overlayContainer.attr('fill', this.backgroundOverlayColor.color); + } + + if (this.settings.layout === LevelCardLayout.absolute) { + this.volumeColor.update(data); + + const volumeInLiters: number = convertLiters(this.volume, this.settings.volumeUnits as CapacityUnits, ConversionType.to); + const volume = convertLiters(volumeInLiters, this.widgetUnits as CapacityUnits, ConversionType.from) + .toFixed(this.settings.decimals || 0); + const volumeTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.volumeFont), + color: this.volumeColor.color}); + + container = this.ctx.$container.find('.absolute-value-container'); + content = createAbsoluteLayout({inputValue: value, volume}, + {valueStyle: valueTextStyle, volumeStyle: volumeTextStyle}, this.widgetUnits); + + } else if (this.settings.layout === LevelCardLayout.percentage) { + container = this.ctx.$container.find('.percentage-value-container'); + content = createPercentLayout(value, valueTextStyle); + } + + if (content && container) { + container.html(content); + } + } + + private getTooltipContent(value?: number[]): string { + const contentValue = value || [0, 0]; + + if (contentValue[1]) { + contentValue[1] = this.convertTooltipData(contentValue[1]); + } + + this.tooltipLevelColor.update(contentValue[1]); + this.tooltipDateColor.update(contentValue[0]); + this.tooltipDateFormat.update(contentValue[0]); + this.tooltipBackgroundColor.update(contentValue); + + const levelTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.tooltipLevelFont), + color: this.tooltipLevelColor.color}); + + const dateTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.tooltipDateFont), + color: this.tooltipDateColor.color, overflow: 'hidden', 'text-overflow': 'ellipsis', 'white-space': 'nowrap'}); + + let content = `
`; + + if (this.settings.showTooltipLevel) { + const levelValue = contentValue[1]?.toFixed(this.settings.tooltipLevelDecimals) + this.settings.tooltipUnits; + content += this.createTooltipContent( + this.ctx.translate.instant('widgets.liquid-level-card.level'), + levelValue, + levelTextStyle + ); + } + + if (this.settings.showTooltipDate) { + content += this.createTooltipContent( + this.ctx.translate.instant('widgets.liquid-level-card.last-update'), + this.tooltipDateFormat.formatted, + dateTextStyle + ); + } + + content += '
'; + + return content; + } + + private createTooltipContent(labelText: string, contentValue: string, textStyle: string): string { + return `
+ + +
`; + } + + private getTooltipBackground(): string { + return this.tooltipBackgroundColor.color; + } + + private convertInputData(value: number): number { + if (this.settings.datasourceUnits !== CapacityUnits.percent) { + return (convertLiters(value, this.settings.datasourceUnits, ConversionType.to) / + convertLiters(this.volume, this.settings.volumeUnits, ConversionType.to)) * 100; + } + + return value; + } + + private convertOutputData(value: number): number { + if (this.widgetUnits !== CapacityUnits.percent) { + return convertLiters(this.volume * (value / 100), this.settings.volumeUnits, ConversionType.to); + } + + return value; + } + + private convertTooltipData(value: number): number { + const percentage = this.convertInputData(value); + if (this.settings.tooltipUnits !== CapacityUnits.percent) { + const liters = this.convertOutputData(percentage); + + return convertLiters(liters, this.settings.tooltipUnits, ConversionType.from); + } else { + return percentage; + } + } + + public cardClick($event) { + this.ctx.actionsApi.cardClick($event); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html new file mode 100644 index 0000000000..1d54765bcc --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html @@ -0,0 +1,279 @@ + + +
+
+
+
+
widgets.liquid-level-card.shape
+ + + {{ 'widgets.liquid-level-card.static' | translate }} + + + {{ 'widgets.liquid-level-card.attribute' | translate }} + + +
+ + + {{ shapesTranslationMap.get(shape) | translate }} + + +
+
widgets.liquid-level-card.shape-attribute-name
+ + +
+
+
widgets.liquid-level-card.shape-by-attribute
+
+
+
+
+
+
+
widgets.liquid-level-card.layout
+ + + {{ levelCardLayoutTranslationMap.get(layout) | translate }} + + +
+
+
widgets.liquid-level-card.units
+
+
widgets.liquid-level-card.datasource-units
+ + +
+
+
widgets.liquid-level-card.widget-units
+
+ + + + {{ option }} + + + + + + + +
+
+
+
widgets.liquid-level-card.total-volume
+
+ + + + {{ option }} + + + + + + + warning + + + + + + +
+
+
+
+
widgets.liquid-level-card.color-and-font
+
+
widgets.liquid-level-card.tank-color
+ + +
+
+
widgets.liquid-level-card.liquid-color
+ + +
+
+
widgets.liquid-level-card.value
+
+ + + + +
+
+
+
widgets.liquid-level-card.total-volume
+
+ + + + +
+
+
+ + {{ 'widgets.liquid-level-card.background-overlay' | translate }} + + + +
+
+
+ + + + + {{ 'widget-config.tooltip' | translate }} + + + + +
+ + {{ 'widgets.liquid-level-card.level' | translate }} + +
+ + + + +
widget-config.decimals-suffix
+
+ + + + +
+
+
+ + {{ 'widgets.value-card.date' | translate }} + +
+ + + + + +
+
+
+
widgets.liquid-level-card.tooltip-background
+ + +
+
+
widgets.liquid-level-card.background-blur
+ + +
px
+
+
+
+
+
+
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts new file mode 100644 index 0000000000..1565fa5a92 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts @@ -0,0 +1,531 @@ +/// +/// ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL +/// +/// Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. +/// +/// NOTICE: All information contained herein is, and remains +/// the property of ThingsBoard, Inc. and its suppliers, +/// if any. The intellectual and technical concepts contained +/// herein are proprietary to ThingsBoard, Inc. +/// and its suppliers and may be covered by U.S. and Foreign Patents, +/// patents in process, and are protected by trade secret or copyright law. +/// +/// Dissemination of this information or reproduction of this material is strictly forbidden +/// unless prior written permission is obtained from COMPANY. +/// +/// Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, +/// managers or contractors who have executed Confidentiality and Non-disclosure agreements +/// explicitly covering such access. +/// +/// The copyright notice above does not evidence any actual or intended publication +/// or disclosure of this source code, which includes +/// information that is confidential and/or proprietary, and is a trade secret, of COMPANY. +/// ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, +/// OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT +/// THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, +/// AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. +/// THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION +/// DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, +/// OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. +/// + +import { ChangeDetectorRef, Component, Injector, ViewChild } from '@angular/core'; +import { + DataKey, + Datasource, + DatasourceType, + WidgetSettings, + WidgetSettingsComponent +} from '@shared/models/widget.models'; +import { AbstractControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { formatValue, isDefined } from '@core/utils'; +import { WidgetConfigComponentData } from '@home/models/widget-component.models'; +import { + DateFormatProcessor, + DateFormatSettings +} from '@shared/models/widget-settings.models'; +import { + levelCardDefaultSettings, + LevelCardLayout, + levelCardLayoutTranslations, + Shapes, + shapesTranslations, + svgMapping, + CapacityUnits, + LevelSelectOptions, + createPercentLayout, + createAbsoluteLayout, + optionsFilter, + fetchEntityKeysForDevice, + fetchEntityKeys +} from '@home/components/widget/lib/indicator/liquid-level-widget.models'; +import { UnitsType } from '@shared/models/unit.models'; +import { ImageCardsSelectComponent } from '@home/components/widget/lib/settings/common/image-cards-select.component'; +import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; +import { forkJoin, Observable, of } from 'rxjs'; +import { map, publishReplay, refCount, tap } from 'rxjs/operators'; +import { ResourcesService } from '@core/services/resources.service'; +import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; +import { UtilsService } from '@core/services/utils.service'; +import { EntityService } from '@core/http/entity.service'; + +@Component({ + selector: 'liquid-level-card-widget-settings', + templateUrl: './liquid-level-card-widget-settings.component.html', + styleUrls: [] +}) +export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsComponent { + + @ViewChild('layoutsImageCardsSelect', { static: false }) layoutsImageCardsSelect: ImageCardsSelectComponent; + + @ViewChild('shapesImageCardsSelect', { static: false }) shapesImageCardsSelect: ImageCardsSelectComponent; + + public get volumeInput(): boolean { + const datasourceUnits = this.levelCardWidgetSettingsForm.get('datasourceUnits').value; + const layout: LevelCardLayout = this.levelCardWidgetSettingsForm.get('layout').value; + const widgetUnits = this.levelCardWidgetSettingsForm.get('units').value; + return !(datasourceUnits === CapacityUnits.percent && layout !== LevelCardLayout.absolute + || (datasourceUnits === CapacityUnits.percent && widgetUnits === CapacityUnits.percent)); + } + + public get widgetUnitsInput(): boolean { + const layout: LevelCardLayout = this.levelCardWidgetSettingsForm.get('layout').value; + + if (layout === LevelCardLayout.absolute) { + const datasourceUnits = this.levelCardWidgetSettingsForm.get('datasourceUnits').value; + return !(datasourceUnits === CapacityUnits.percent); + } + return false; + } + + public get datasource(): Datasource { + if (this.widgetConfig.config.datasources && this.widgetConfig.config.datasources) { + return this.widgetConfig.config.datasources[0]; + } else { + return null; + } + } + + shapeSelectOptions = LevelSelectOptions; + + shapes: Shapes[] = []; + + shapesTranslationMap = shapesTranslations; + + unitsType = UnitsType; + + levelCardLayouts = LevelCardLayout; + + levelCardLayoutTranslationMap = levelCardLayoutTranslations; + shapesImageMap: Map = new Map(); + + volumeOptions = LevelSelectOptions; + + levelCardWidgetSettingsForm: UntypedFormGroup; + + valuePreviewFn = this._valuePreviewFn.bind(this); + + tooltipValuePreviewFn = this._tooltipValuePreviewFn.bind(this); + + totalVolumeValuePreviewFn = this._totalVolumeValuePreviewFn.bind(this); + + datePreviewFn = this._datePreviewFn.bind(this); + + keySearchText: string; + + latestKeySearchTextResult: Array; + + datasources: Array; + + functionTypeKeys: Array = []; + + lastKeysId: string; + + lastFetchedKeys: Array; + + constructor(protected store: Store, + private $injector: Injector, + private fb: UntypedFormBuilder, + private resourcesService: ResourcesService, + private sanitizer: DomSanitizer, + private cd: ChangeDetectorRef, + private utils: UtilsService, + private entityService: EntityService) { + super(store); + } + + protected settingsForm(): UntypedFormGroup { + return this.levelCardWidgetSettingsForm; + } + + protected onWidgetConfigSet(widgetConfig: WidgetConfigComponentData) { + this.shapes = Object.values(Shapes); + this.createSvgShapesMapping(); + + for (const type of this.utils.getPredefinedFunctionsList()) { + this.functionTypeKeys.push({ + name: type, + type: DataKeyType.function + }); + } + } + + protected defaultSettings(): WidgetSettings { + return levelCardDefaultSettings(); + } + + protected onSettingsSet(settings: WidgetSettings) { + this.levelCardWidgetSettingsForm = this.fb.group({ + tankSelectionType: [settings.tankSelectionType, []], + selectedShape: [settings.selectedShape, [Validators.required]], + shapeAttributeName: [settings.shapeAttributeName, [Validators.required]], + tankColor: [settings.tankColor, []], + datasourceUnits: [settings.datasourceUnits, [Validators.required]], + + layout: [settings.layout, []], + + volumeSource: [settings.volumeSource, []], + volumeConstant: [settings.volumeConstant, [Validators.required]], + volumeAttributeName: [settings.volumeAttributeName, [Validators.required]], + volumeUnits: [settings.volumeUnits, [Validators.required]], + volumeFont: [settings.volumeFont, []], + volumeColor: [settings.volumeColor, []], + valueFont: [settings.valueFont, []], + valueColor: [settings.valueColor, []], + units: [settings.units, [Validators.required]], + widgetUnitsSource: [settings.widgetUnitsSource, [Validators.required]], + widgetUnitsAttributeName: [settings.widgetUnitsAttributeName, [Validators.required]], + showBackgroundOverlay: [settings.showBackgroundOverlay, []], + backgroundOverlayColor: [settings.backgroundOverlayColor, []], + + liquidColor: [settings.liquidColor, []], + + showTooltip: [settings.showTooltip, []], + showTooltipLevel: [settings.showTooltipLevel, []], + tooltipUnits: [settings.tooltipUnits, []], + tooltipLevelDecimals: [settings.tooltipLevelDecimals, []], + tooltipLevelFont: [settings.tooltipLevelFont, []], + tooltipLevelColor: [settings.tooltipLevelColor, []], + showTooltipDate: [settings.showTooltipDate, []], + tooltipDateFormat: [settings.tooltipDateFormat, []], + tooltipDateFont: [settings.tooltipDateFont, []], + tooltipDateColor: [settings.tooltipDateColor, []], + tooltipBackgroundColor: [settings.tooltipBackgroundColor, []], + tooltipBackgroundBlur: [settings.tooltipBackgroundBlur, []], + }); + + this.levelCardWidgetSettingsForm.get('selectedShape').valueChanges.subscribe((shape) => { + this.cd.detectChanges(); + this.layoutsImageCardsSelect?.imageCardsSelectOptions.notifyOnChanges(); + }); + } + + protected validatorTriggers(): string[] { + return [ + 'showBackgroundOverlay', 'showTooltip', 'showTooltipLevel', + 'tankSelectionType', 'datasourceUnits', + 'showTooltipDate', 'units', + 'layout', 'volumeSource', + 'widgetUnitsSource' + ]; + } + + protected updateValidators(emitEvent: boolean, trigger?: string) { + const emitEventFields = []; + + const datasourceUnits: string = this.levelCardWidgetSettingsForm.get('datasourceUnits').value; + const layout: LevelCardLayout = this.levelCardWidgetSettingsForm.get('layout').value; + const volumeSource: AbstractControl = this.levelCardWidgetSettingsForm.get('volumeSource'); + const widgetUnits: AbstractControl = this.levelCardWidgetSettingsForm.get('units'); + const tooltipUnits: AbstractControl = this.levelCardWidgetSettingsForm.get('tooltipUnits'); + const widgetUnitsSource: AbstractControl = this.levelCardWidgetSettingsForm.get('widgetUnitsSource'); + const showTooltipLevel: AbstractControl = this.levelCardWidgetSettingsForm.get('showTooltipLevel'); + const showTooltipDate: AbstractControl = this.levelCardWidgetSettingsForm.get('showTooltipDate'); + const showTooltip: boolean = this.levelCardWidgetSettingsForm.get('showTooltip').value; + + if (trigger === 'tankSelectionType') { + const tankSelectionType: LevelSelectOptions = this.levelCardWidgetSettingsForm.get('tankSelectionType').value; + if (tankSelectionType === LevelSelectOptions.static) { + this.levelCardWidgetSettingsForm.get('selectedShape').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('shapeAttributeName').disable({emitEvent: false}); + } else { + this.levelCardWidgetSettingsForm.get('selectedShape').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('shapeAttributeName').enable({emitEvent: false}); + } + emitEventFields.push('selectedShape', 'shapeAttributeName'); + } + + if (trigger === 'datasourceUnits' || trigger === 'layout' || trigger === 'units') { + if (datasourceUnits === CapacityUnits.percent && (layout !== LevelCardLayout.absolute) + || (datasourceUnits === CapacityUnits.percent && widgetUnits?.value === CapacityUnits.percent) + ) { + volumeSource.disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeConstant').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeAttributeName').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeUnits').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeFont').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeColor').disable({emitEvent: false}); + } else { + volumeSource.enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeConstant').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeAttributeName').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeUnits').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeFont').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeColor').enable({emitEvent: false}); + } + + if (layout === LevelCardLayout.simple && datasourceUnits === CapacityUnits.percent) { + this.levelCardWidgetSettingsForm.get('valueFont').disable(); + this.levelCardWidgetSettingsForm.get('valueColor').disable(); + } else { + this.levelCardWidgetSettingsForm.get('valueFont').enable(); + this.levelCardWidgetSettingsForm.get('valueColor').enable(); + } + emitEventFields.push('volumeSource', 'volumeConstant', 'volumeAttributeName', 'volumeFont', 'volumeColor', 'volumeUnits'); + } else if (trigger === 'volumeSource') { + if((datasourceUnits !== CapacityUnits.percent) || + (layout === LevelCardLayout.absolute && widgetUnits?.value !== CapacityUnits.percent)) { + if (volumeSource.value === LevelSelectOptions.static) { + this.levelCardWidgetSettingsForm.get('volumeConstant').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeAttributeName').disable({emitEvent: false}); + } else { + this.levelCardWidgetSettingsForm.get('volumeConstant').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('volumeAttributeName').enable({emitEvent: false}); + } + emitEventFields.push('volumeConstant', 'volumeAttributeName'); + } + } + + if (trigger === 'showBackgroundOverlay') { + const showBackgroundOverlay: boolean = this.levelCardWidgetSettingsForm.get('showBackgroundOverlay').value; + if (showBackgroundOverlay) { + this.levelCardWidgetSettingsForm.get('backgroundOverlayColor').enable({emitEvent: false}); + } else { + this.levelCardWidgetSettingsForm.get('backgroundOverlayColor').disable({emitEvent: false}); + } + emitEventFields.push('backgroundOverlayColor'); + } + + if (trigger === 'showTooltip') { + if (showTooltip) { + showTooltipLevel.enable({emitEvent: false}); + showTooltipDate.enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipBackgroundColor').enable(); + this.levelCardWidgetSettingsForm.get('tooltipBackgroundBlur').enable(); + } else { + showTooltipLevel.disable({emitEvent: false}); + showTooltipDate.disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipBackgroundColor').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipBackgroundBlur').disable({emitEvent: false}); + } + emitEventFields.push('showTooltipLevel', 'showTooltipDate', 'tooltipBackgroundColor', 'tooltipBackgroundBlur'); + } + + if (trigger === 'showTooltipLevel') { + if (showTooltipLevel?.value && !showTooltipLevel.disabled) { + this.levelCardWidgetSettingsForm.get('tooltipUnits').enable(); + this.levelCardWidgetSettingsForm.get('tooltipLevelDecimals').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipLevelFont').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipLevelColor').enable({emitEvent: false}); + } else { + this.levelCardWidgetSettingsForm.get('tooltipUnits').disable(); + this.levelCardWidgetSettingsForm.get('tooltipLevelDecimals').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipLevelFont').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipLevelColor').disable({emitEvent: false}); + } + emitEventFields.push('tooltipUnits', 'tooltipLevelDecimals', 'tooltipLevelFont', 'tooltipLevelColor'); + } + + if (trigger === 'showTooltipDate') { + if (showTooltipDate?.value && !showTooltipDate.disabled) { + this.levelCardWidgetSettingsForm.get('tooltipDateFormat').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipDateFont').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipDateColor').enable({emitEvent: false}); + } else { + this.levelCardWidgetSettingsForm.get('tooltipDateFormat').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipDateFont').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('tooltipDateColor').disable({emitEvent: false}); + } + emitEventFields.push('tooltipDateFormat', 'tooltipDateFont', 'tooltipDateColor'); + } + + if (trigger === 'layout' || trigger === 'datasourceUnits') { + if (layout === LevelCardLayout.simple) { + widgetUnits.disable({emitEvent: false}); + tooltipUnits.disable({emitEvent: false}); + widgetUnitsSource.setValue(LevelSelectOptions.static, {emitEvent: false}); + widgetUnitsSource.disable({emitEvent: false}); + + this.levelCardWidgetSettingsForm.get('valueFont').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('valueColor').disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); + } else if (layout === LevelCardLayout.percentage) { + if (widgetUnits.value !== CapacityUnits.percent) { + widgetUnits.setValue(CapacityUnits.percent, {emitEvent: false}); + widgetUnitsSource.setValue(LevelSelectOptions.static, {emitEvent: false}); + } + widgetUnits.disable({emitEvent: false}); + widgetUnitsSource.disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); + + if (tooltipUnits.value !== CapacityUnits.percent) { + tooltipUnits.setValue(CapacityUnits.percent, {emitEvent: false}); + } + tooltipUnits.disable({emitEvent: false}); + } else { + widgetUnits.enable({emitEvent: false}); + tooltipUnits.enable({emitEvent: false}); + widgetUnitsSource.enable({emitEvent: false}); + + this.levelCardWidgetSettingsForm.get('valueFont').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('valueColor').enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('widgetUnitsAttributeName').enable({emitEvent: false}); + } + emitEventFields.push('units', 'tooltipUnits', 'valueFont', 'valueColor', 'widgetUnitsSource', 'widgetUnitsAttributeName'); + } else if (trigger === 'widgetUnitsSource') { + if (layout !== LevelCardLayout.percentage) { + if (widgetUnitsSource.value === LevelSelectOptions.static) { + widgetUnits.enable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); + } else { + widgetUnits.disable({emitEvent: false}); + this.levelCardWidgetSettingsForm.get('widgetUnitsAttributeName').enable({emitEvent: false}); + } + emitEventFields.push('units', 'widgetUnitsAttributeName'); + } + } + + for (const controlKey in this.levelCardWidgetSettingsForm.controls) { + if (emitEventFields.includes(controlKey)) { + this.levelCardWidgetSettingsForm.controls[controlKey].updateValueAndValidity({emitEvent}); + } + } + } + + private createSvgShapesMapping(): void { + const obsArray: Array> = []; + for (const shape of this.shapes) { + const svgUrl = svgMapping.get(shape).svg; + + const obs = this.resourcesService.loadJsonResource(svgUrl).pipe( + map((svg) => ({svg, shape})) + ); + + obsArray.push(obs); + } + + forkJoin(obsArray).subscribe((svgData) => { + for (const data of svgData) { + this.shapesImageMap.set(data.shape, data.svg); + } + + this.cd.detectChanges(); + this.layoutsImageCardsSelect?.imageCardsSelectOptions.notifyOnChanges(); + this.shapesImageCardsSelect?.imageCardsSelectOptions.notifyOnChanges(); + }); + } + + public createShapeLayout(svg: string, layout: LevelCardLayout): SafeUrl { + if (svg && layout) { + const parser = new DOMParser(); + const svgImage = parser.parseFromString(svg, 'image/svg+xml'); + + if (layout === this.levelCardLayouts.simple) { + svgImage.querySelector('.container-overlay').remove(); + } else if (layout === this.levelCardLayouts.percentage) { + svgImage.querySelector('.absolute-overlay').remove(); + svgImage.querySelector('.percentage-value-container').innerHTML = createPercentLayout(); + } else { + svgImage.querySelector('.absolute-value-container').innerHTML = createAbsoluteLayout(); + svgImage.querySelector('.percentage-overlay').remove(); + } + + const encodedSvg = encodeURIComponent(svgImage.documentElement.outerHTML); + + return this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/svg+xml,${encodedSvg}`); + } + } + + public isRequired(formControlName: string): boolean { + return this.levelCardWidgetSettingsForm.get(formControlName)?.hasValidator(Validators.required); + } + + private _valuePreviewFn(): string { + const units: string = this.widgetConfig.config.units; + const decimals: number = this.widgetConfig.config.decimals; + return formatValue(32, decimals, units, true); + } + + private _tooltipValuePreviewFn() { + const units: string = this.levelCardWidgetSettingsForm.get('tooltipUnits').value; + const decimals: number = this.levelCardWidgetSettingsForm.get('tooltipLevelDecimals').value; + return formatValue(32, decimals, units, true); + } + + private _totalVolumeValuePreviewFn() { + const value = this.levelCardWidgetSettingsForm.get('volumeConstant').value; + const datasourceUnits = this.levelCardWidgetSettingsForm.get('datasourceUnits').value; + const decimals: number = this.widgetConfig.config.decimals; + let units: string = this.widgetConfig.config.units; + + if (datasourceUnits !== CapacityUnits.percent) { + units = datasourceUnits; + } + + return formatValue((isDefined(value) ? value : 500), decimals, units, true); + } + + private _datePreviewFn(): string { + const dateFormat: DateFormatSettings = this.levelCardWidgetSettingsForm.get('tooltipDateFormat').value; + const processor = DateFormatProcessor.fromSettings(this.$injector, dateFormat); + processor.update(Date.now()); + return processor.formatted; + } + + public fetchOptions(searchText: string): Observable> { + if (this.keySearchText !== searchText) { + this.keySearchText = searchText; + const dataKeyFilter = optionsFilter(this.keySearchText); + return this.getKeys().pipe( + tap(res => this.lastFetchedKeys !== res ? this.lastFetchedKeys = res : []), + map(name => name?.filter(dataKeyFilter).map(key => key.name)), + tap(res => this.latestKeySearchTextResult = res) + ); + } + return of(this.latestKeySearchTextResult); + } + + private getKeys(): Observable> { + let fetchObservable: Observable>; + if (this.datasource?.type === DatasourceType.function) { + fetchObservable = of(this.functionTypeKeys); + } else if (this.datasource?.type === DatasourceType.entity && this.datasource?.entityAliasId || + this.datasource?.type === DatasourceType.device && this.datasource?.deviceId) { + if (this.datasource?.type === DatasourceType.device) { + if (this.lastKeysId !== this.datasource?.deviceId || !this.lastFetchedKeys) { + this.lastKeysId = this.datasource.deviceId; + fetchObservable = fetchEntityKeysForDevice(this.datasource?.deviceId, [DataKeyType.attribute], + this.entityService); + } else { + fetchObservable = of(this.lastFetchedKeys); + } + } else { + if (this.lastKeysId !== this.datasource?.entityAliasId || !this.lastFetchedKeys) { + this.lastKeysId = this.datasource.entityAliasId; + fetchObservable = fetchEntityKeys(this.datasource?.entityAliasId, [DataKeyType.attribute], + this.entityService, this.aliasController); + } else { + fetchObservable = of(this.lastFetchedKeys); + } + } + } else { + fetchObservable = of([]); + } + return fetchObservable.pipe( + publishReplay(1), + refCount() + ); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.html index 52bd5907bd..35d7157fb4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.html @@ -33,7 +33,7 @@
{{ option.name }}
- +
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 33b4323fdf..7048c15c86 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 @@ -300,6 +300,9 @@ import { import { ProgressBarWidgetSettingsComponent } from '@home/components/widget/lib/settings/cards/progress-bar-widget-settings.component'; +import { + LiquidLevelCardWidgetSettingsComponent +} from '@home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component'; @NgModule({ declarations: [ @@ -410,7 +413,8 @@ import { WindSpeedDirectionWidgetSettingsComponent, SignalStrengthWidgetSettingsComponent, ValueChartCardWidgetSettingsComponent, - ProgressBarWidgetSettingsComponent + ProgressBarWidgetSettingsComponent, + LiquidLevelCardWidgetSettingsComponent ], imports: [ CommonModule, @@ -526,7 +530,8 @@ import { WindSpeedDirectionWidgetSettingsComponent, SignalStrengthWidgetSettingsComponent, ValueChartCardWidgetSettingsComponent, - ProgressBarWidgetSettingsComponent + ProgressBarWidgetSettingsComponent, + LiquidLevelCardWidgetSettingsComponent, ] }) export class WidgetSettingsModule { @@ -607,5 +612,6 @@ export const widgetSettingsComponentsMap: {[key: string]: Type + + + + + warning + + + + + + + diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.scss b/ui-ngx/src/app/shared/components/string-autocomplete.component.scss new file mode 100644 index 0000000000..a514186a25 --- /dev/null +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.scss @@ -0,0 +1,47 @@ +/** + * ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL + * + * Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of ThingsBoard, Inc. and its suppliers, + * if any. The intellectual and technical concepts contained + * herein are proprietary to ThingsBoard, Inc. + * and its suppliers and may be covered by U.S. and Foreign Patents, + * patents in process, and are protected by trade secret or copyright law. + * + * Dissemination of this information or reproduction of this material is strictly forbidden + * unless prior written permission is obtained from COMPANY. + * + * Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, + * managers or contractors who have executed Confidentiality and Non-disclosure agreements + * explicitly covering such access. + * + * The copyright notice above does not evidence any actual or intended publication + * or disclosure of this source code, which includes + * information that is confidential and/or proprietary, and is a trade secret, of COMPANY. + * ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, + * OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT + * THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, + * AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. + * THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION + * DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, + * OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. + */ +.tb-autocomplete.tb-option-input-autocomplete { + .mat-mdc-option { + border-bottom: none; + .mdc-list-item__primary-text { + flex: 1; + display: flex; + flex-direction: row; + gap: 8px; + .tb-option { + font-size: 14px; + font-weight: 400; + line-height: 20px; + letter-spacing: 0.2px; + } + } + } +} diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.ts b/ui-ngx/src/app/shared/components/string-autocomplete.component.ts new file mode 100644 index 0000000000..91a9ee2652 --- /dev/null +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.ts @@ -0,0 +1,175 @@ +/// +/// ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL +/// +/// Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. +/// +/// NOTICE: All information contained herein is, and remains +/// the property of ThingsBoard, Inc. and its suppliers, +/// if any. The intellectual and technical concepts contained +/// herein are proprietary to ThingsBoard, Inc. +/// and its suppliers and may be covered by U.S. and Foreign Patents, +/// patents in process, and are protected by trade secret or copyright law. +/// +/// Dissemination of this information or reproduction of this material is strictly forbidden +/// unless prior written permission is obtained from COMPANY. +/// +/// Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, +/// managers or contractors who have executed Confidentiality and Non-disclosure agreements +/// explicitly covering such access. +/// +/// The copyright notice above does not evidence any actual or intended publication +/// or disclosure of this source code, which includes +/// information that is confidential and/or proprietary, and is a trade secret, of COMPANY. +/// ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, +/// OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT +/// THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, +/// AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. +/// THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION +/// DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, +/// OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. +/// + +import { + Component, + Input, + forwardRef, + OnInit, + AfterViewInit, + HostBinding, + ViewChild, + ElementRef, + Injector +} from '@angular/core'; +import { + ControlValueAccessor, + NG_VALUE_ACCESSOR, + FormControl, + Validators, + FormBuilder +} from '@angular/forms'; +import { Observable, of } from 'rxjs'; +import { tap, map, switchMap } from 'rxjs/operators'; + +@Component({ + selector: 'tb-string-autocomplete', + templateUrl: './string-autocomplete.component.html', + styleUrls: ['./string-autocomplete.component.scss'], + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => StringAutocompleteComponent), + multi: true + } + ] +}) +export class StringAutocompleteComponent implements ControlValueAccessor, OnInit, AfterViewInit { + + @HostBinding('style.display') get hostDisplay() {return 'flex';}; + + @Input() + disabled: boolean; + + @Input() + required: boolean; + + @Input() fetchOptionsFn: (searchText?: string) => Observable>; + + @ViewChild('nameInput', {static: true}) nameInput: ElementRef; + + selectionFormControl: FormControl; + + modelValue: string | null; + + filteredOptions: Observable>; + + searchText = ''; + + private dirty = false; + + private propagateChange = (_val: any) => {}; + + constructor(private injector: Injector, + private fb: FormBuilder) { + } + + ngOnInit() { + this.selectionFormControl = this.fb.control('', []); + this.filteredOptions = this.selectionFormControl.valueChanges + .pipe( + tap(value => this.updateView(value)), + map(value => value ? value : ''), + switchMap(value => this.fetchOptionsFn ? this.fetchOptionsFn(value) : of([])) + ); + } + + ngAfterViewInit() { + if (this.required) { + this.selectionFormControl.setValidators([Validators.required]); + } + } + + writeValue(option?: string): void { + this.searchText = ''; + this.modelValue = option ? option : null; + + if (this.fetchOptionsFn) { + this.fetchOptionsFn(option) + .pipe( + map(options => { + if (options) { + const foundOption = options.find(opt => opt === option); + return foundOption ? foundOption : option; + } + + return option; + }) + ) + .subscribe(result => { + this.selectionFormControl.patchValue(result, { emitEvent: false }); + this.dirty = true; + }); + } else { + this.selectionFormControl.patchValue(null, { emitEvent: false }); + this.dirty = true; + } + } + + onFocus() { + if (this.dirty) { + this.selectionFormControl.updateValueAndValidity({onlySelf: true, emitEvent: true}); + this.dirty = false; + } + } + + updateView(value: string) { + this.searchText = value ? value : ''; + if (this.modelValue !== value) { + this.modelValue = value; + this.propagateChange(this.modelValue); + } + } + + registerOnChange(fn: any): void { + this.propagateChange = fn; + } + + registerOnTouched(fn: any): void { + } + + setDisabledState(isDisabled: boolean): void { + this.disabled = isDisabled; + if (this.disabled) { + this.selectionFormControl.disable({emitEvent: false}); + } else { + this.selectionFormControl.enable({emitEvent: false}); + } + } + + clear() { + this.selectionFormControl.patchValue(null, {emitEvent: true}); + setTimeout(() => { + this.nameInput.nativeElement.blur(); + this.nameInput.nativeElement.focus(); + }, 0); + } +} diff --git a/ui-ngx/src/app/shared/components/unit-input.component.html b/ui-ngx/src/app/shared/components/unit-input.component.html index c15b232444..b0f3625eb0 100644 --- a/ui-ngx/src/app/shared/components/unit-input.component.html +++ b/ui-ngx/src/app/shared/components/unit-input.component.html @@ -20,13 +20,20 @@ placeholder="{{ 'widget-config.set' | translate }}" (focusin)="onFocus()" [matAutocomplete]="unitsAutocomplete"> - + + warning + >; @@ -67,7 +81,8 @@ export class UnitInputComponent implements ControlValueAccessor, OnInit { private propagateChange = (_val: any) => {}; - constructor(private fb: FormBuilder, + constructor(private injector: Injector, + private fb: FormBuilder, private resourcesService: ResourcesService, private translate: TranslateService) { } @@ -84,6 +99,12 @@ export class UnitInputComponent implements ControlValueAccessor, OnInit { ); } + ngAfterViewInit() { + if (this.required) { + this.unitsFormControl.setValidators([Validators.required]); + } + } + writeValue(symbol?: string): void { this.searchText = ''; this.modelValue = symbol; @@ -157,11 +178,16 @@ export class UnitInputComponent implements ControlValueAccessor, OnInit { private unitsConstant(): Observable> { if (this.fetchUnits$ === null) { this.fetchUnits$ = getUnits(this.resourcesService).pipe( - map(units => units.map(u => ({ - symbol: u.symbol, - name: this.translate.instant(u.name), - tags: u.tags - }))), + map((units) => { + if (this.tagFilter) { + units = units.filter(u => u.tags.includes(this.tagFilter)); + } + return units.map(u => ({ + symbol: u.symbol, + name: this.translate.instant(u.name), + tags: u.tags + })); + }), shareReplay(1) ); } diff --git a/ui-ngx/src/app/shared/models/unit.models.ts b/ui-ngx/src/app/shared/models/unit.models.ts index 7d9f88a068..408c0b23b9 100644 --- a/ui-ngx/src/app/shared/models/unit.models.ts +++ b/ui-ngx/src/app/shared/models/unit.models.ts @@ -23,6 +23,15 @@ export interface Unit { tags: string[]; } +export enum UnitsType { + capacity = 'capacity' +} + +export enum Units { + percent = '%', + liters = 'L' +} + export const unitBySymbol = (_units: Array, symbol: string): Unit => _units.find(u => u.symbol === symbol); const searchUnitTags = (unit: Unit, searchText: string): boolean => diff --git a/ui-ngx/src/app/shared/models/widget-settings.models.ts b/ui-ngx/src/app/shared/models/widget-settings.models.ts index 056738f396..71c47f1cd2 100644 --- a/ui-ngx/src/app/shared/models/widget-settings.models.ts +++ b/ui-ngx/src/app/shared/models/widget-settings.models.ts @@ -393,6 +393,33 @@ export const textStyle = (font?: Font, letterSpacing = 'normal'): ComponentStyle return style; }; +export const inlineTextStyle = (font?: Font, letterSpacing = 'normal'): ComponentStyle => { + const style: ComponentStyle = { + letterSpacing + }; + if (font?.style) { + style['font-style'] = font.style; + } + if (font?.weight) { + style['font-weight'] = font.weight; + } + if (font?.lineHeight) { + style['line-height'] = font.lineHeight; + } + if (font?.size) { + style['font-size'] = (font.size + (font.sizeUnit || 'px')); + } + if (font?.family) { + style['font-family'] = font.family + + (font.family !== 'Roboto' ? ', Roboto' : ''); + } + return style; +}; + +export const cssTextFromInlineStyle = (styleObj: { [key: string]: string | number }): string => Object.entries(styleObj) + .map(([key, value]) => `${key}: ${value}`) + .join('; '); + export const isFontSet = (font: Font): boolean => (!!font && !!font.style && !!font.weight && !!font.size && !!font.family); export const isFontPartiallySet = (font: Font): boolean => (!!font && (!!font.style || !!font.weight || !!font.size || !!font.family)); diff --git a/ui-ngx/src/app/shared/shared.module.ts b/ui-ngx/src/app/shared/shared.module.ts index 2211f2e0e1..fb6a1a086e 100644 --- a/ui-ngx/src/app/shared/shared.module.ts +++ b/ui-ngx/src/app/shared/shared.module.ts @@ -199,6 +199,8 @@ import { MaterialIconsComponent } from '@shared/components/material-icons.compon import { ColorPickerPanelComponent } from '@shared/components/color-picker/color-picker-panel.component'; 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 { MatFormFieldModule } from '@angular/material/form-field'; export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) { return markedOptionsService; @@ -374,6 +376,7 @@ export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) ToggleOption, ToggleSelectComponent, UnitInputComponent, + StringAutocompleteComponent, MaterialIconsComponent, RuleChainSelectComponent, TbIconComponent, @@ -398,6 +401,7 @@ export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) MatGridListModule, MatDialogModule, MatSelectModule, + MatFormFieldModule, MatTooltipModule, MatTableModule, MatPaginatorModule, @@ -513,6 +517,7 @@ export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) MatGridListModule, MatDialogModule, MatSelectModule, + MatFormFieldModule, MatTooltipModule, MatTableModule, MatPaginatorModule, @@ -609,6 +614,7 @@ export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) ToggleOption, ToggleSelectComponent, UnitInputComponent, + StringAutocompleteComponent, MaterialIconsComponent, RuleChainSelectComponent, TbIconComponent, diff --git a/ui-ngx/src/assets/help/en_US/widget/lib/indicator/shape_attribute_fn.md b/ui-ngx/src/assets/help/en_US/widget/lib/indicator/shape_attribute_fn.md new file mode 100644 index 0000000000..94ef69521e --- /dev/null +++ b/ui-ngx/src/assets/help/en_US/widget/lib/indicator/shape_attribute_fn.md @@ -0,0 +1,69 @@ +#### Shape attribute name + +A string expression value that allows you dynamically select shape image depending on attribute name. + +**Attribute values that could be used to add the image:** + +Alt text + +``` +Vertical Oval +{:copy-code} +``` +Alt text + +``` +Vertical Cylinder +{:copy-code} +``` +Alt text + +``` +Vertical Capsule +{:copy-code} +``` +Alt text + +``` +Rectangle +{:copy-code} +``` +Alt text + +``` +Horizontal Oval +{:copy-code} +``` +Alt text + +``` +Horizontal Ellipse +{:copy-code} +``` +Alt text + +``` +Horizontal Dish Ends +{:copy-code} +``` +Alt text + +``` +Horizontal Cylinder +{:copy-code} +``` +Alt text + +``` +Horizontal Capsule +{:copy-code} +``` +Alt text + +``` +Horizontal 2:1 Elliptical +{:copy-code} +``` + +
+
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 b4c0f07c85..2a2cb4f147 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -4229,20 +4229,20 @@ "carat": "Carat", "cubic-millimeter": "Cubic Millimeter", "cubic-centimeter": "Cubic Centimeter", - "cubic-meter": "Cubic Meter/s", - "cubic-kilometer": "Cubic Kilometers", + "cubic-meter": "Cubic Meter", + "cubic-kilometer": "Cubic Kilometer", "microliter": "Microliter", "milliliter": "Milliliter", "liter": "Liter", "hectoliter": "Hectolitre", "cubic-inch": "Cubic Inch", "cubic-foot": "Cubic Foot", - "cubic-yard": "Cubic Yards", + "cubic-yard": "Cubic Yard", "fluid-ounce": "Fluid Ounce", "pint": "Pint", "quart": "Quart", "gallon": "Gallon", - "oil-barrels": "Oil Barrels", + "oil-barrels": "Oil Barrel", "cubic-meter-per-kilogram": "Cubic Meter per Kilogram", "gill": "Gill", "hogshead": "Hogshead", @@ -4286,7 +4286,6 @@ "ton-force-per-square-inch": "Ton-force per Square Inch", "kilonewton-per-square-meter": "Kilonewton per Square Meter", "newton-per-square-millimeter": "Newton per Square Millimeter", - "microjoule": "Microjoule", "millijoule": "Millijoule", "joule": "Joule", @@ -5031,7 +5030,9 @@ "show-card-buttons": "Show card buttons", "card-border-radius": "Card border radius", "card-appearance": "Card appearance", - "color": "Color" + "color": "Color", + "tooltip": "Tooltip", + "units-required": "Unit is required." }, "widget-type": { "import": "Import widget type", @@ -6069,6 +6070,50 @@ "value-card-style": "Value card style", "auto-scale": "Auto scale" }, + "liquid-level-card": { + "layout-simple": "Simple", + "layout-percentage": "Percentage", + "layout-absolute": "Absolute", + "layout": "Layout", + "background-overlay": "Value background overlay", + "total-volume": "Total volume", + "tank": "Tank", + "shape": "Shape", + "datasource-units": "Source units", + "widget-units": "Widget units", + "decimals": "Decimals", + "liquid": "Liquid", + "liquid-color": "Liquid color", + "value": "Value", + "value-font": "Value font", + "level": "Level", + "last-update": "Last update", + "shape-by-attribute": "Set tank shape by attribute name", + "tooltip-background": "Background color", + "background-blur": "Background blur", + "tank-color": "Tank color", + "static": "Static", + "see-examples": "See examples", + "attribute": "Attribute", + "shape-type": "Type", + "v-oval": "Vertical Oval", + "v-cylinder": "Vertical Cylinder", + "v-capsule": "Vertical Capsule", + "rectangle": "Rectangle", + "h-oval": "Horizontal Oval", + "h-ellipse": "Horizontal Ellipse", + "h-dish-ends": "Horizontal Dish Ends", + "h-cylinder": "Horizontal Cylinder", + "h-capsule": "Horizontal Capsule", + "h-elliptical_2_1": "Horizontal 2:1 Elliptical", + "icon": "Card icon", + "title": "Card title", + "units": "Units", + "color-and-font": "Color and font", + "shape-attribute-name": "Attribute name", + "total-volume-required": "Total volume is required.", + "attribute-name-required": "Attribute name is required." + }, "aggregated-value-card": { "subtitle": "Subtitle", "chart": "Chart", diff --git a/ui-ngx/src/assets/metadata/units.json b/ui-ngx/src/assets/metadata/units.json index 988c3f34ce..5e1b0839e8 100644 --- a/ui-ngx/src/assets/metadata/units.json +++ b/ui-ngx/src/assets/metadata/units.json @@ -249,7 +249,7 @@ }, { "name": "unit.liter", - "symbol": "l", + "symbol": "L", "tags": ["volume","capacity","extent","liter","liters","l"] }, { @@ -1108,7 +1108,7 @@ "symbol": "%", "tags": ["power source","state of charge (SoC)","battery","battery level","level","humidity","moisture","percentage", "relative humidity","water content","soil moisture","irrigation","water in soil","soil water content","VWC", - "Volumetric Water Content","Total Harmonic Distortion","THD","power quality","UV Transmittance","%"] + "Volumetric Water Content","Total Harmonic Distortion","THD","power quality","UV Transmittance","%", "capacity"] }, { "name": "unit.rssi", diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg new file mode 100644 index 0000000000..ee436787ce --- /dev/null +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg new file mode 100644 index 0000000000..3f587b065d --- /dev/null +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg new file mode 100644 index 0000000000..b766e3e619 --- /dev/null +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg new file mode 100644 index 0000000000..d0366e4d64 --- /dev/null +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg new file mode 100644 index 0000000000..40f76dc505 --- /dev/null +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg new file mode 100644 index 0000000000..81430aa60a --- /dev/null +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/rectangle.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/rectangle.svg new file mode 100644 index 0000000000..8be992be46 --- /dev/null +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/rectangle.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg new file mode 100644 index 0000000000..92af4943cd --- /dev/null +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-cylinder.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-cylinder.svg new file mode 100644 index 0000000000..a62467e02a --- /dev/null +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-cylinder.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg new file mode 100644 index 0000000000..ec8176a51f --- /dev/null +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/form.scss b/ui-ngx/src/form.scss index 93272af3ca..3b29fe986c 100644 --- a/ui-ngx/src/form.scss +++ b/ui-ngx/src/form.scss @@ -368,14 +368,20 @@ .mat-mdc-text-field-wrapper { .mat-mdc-form-field-icon-suffix { padding: 0; - display: none; + display: flex; + align-items: center; + + > *:not(.tb-suffix-show-always) { + display: none; + } } } &:hover { .mat-mdc-text-field-wrapper { .mat-mdc-form-field-icon-suffix { - display: flex; - align-items: center; + > * { + display: block; + } } } } diff --git a/ui-ngx/src/styles.scss b/ui-ngx/src/styles.scss index 0ee154cf7d..ee6f6374cf 100644 --- a/ui-ngx/src/styles.scss +++ b/ui-ngx/src/styles.scss @@ -342,6 +342,12 @@ mat-label { } } +mat-icon { + &.tb-error { + color: rgb(221, 44, 0); + } +} + .tb-error-messages { height: 24px; //30px margin-top: -6px; @@ -356,6 +362,13 @@ mat-label { color: rgb(221, 44, 0); } +.mat-mdc-tooltip.tb-error-tooltip { + .mdc-tooltip__surface { + background-color: rgba(209, 39, 48, 0.12); + color: rgba(209, 39, 48, 1); + } +} + .tb-autocomplete { .mat-mdc-option { border-bottom: 1px solid #eee; From d3db5ad024d0fafa72116f132a1cc3f19ff4ba53 Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Thu, 19 Oct 2023 17:30:02 +0300 Subject: [PATCH 05/56] merging w/ master --- ...uid-level-card-basic-config.component.html | 35 ++++++------------- ...iquid-level-card-basic-config.component.ts | 35 ++++++------------- .../indicator/liquid-level-widget.models.ts | 35 ++++++------------- .../lib/indicator/liquid-level-widget.ts | 35 ++++++------------- ...-level-card-widget-settings.component.html | 35 ++++++------------- ...id-level-card-widget-settings.component.ts | 35 ++++++------------- .../string-autocomplete.component.html | 35 ++++++------------- .../string-autocomplete.component.scss | 35 ++++++------------- .../string-autocomplete.component.ts | 35 ++++++------------- 9 files changed, 90 insertions(+), 225 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html index b23f14e9ae..03cc7894c6 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html @@ -1,33 +1,18 @@ diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts index 47852514e8..abbc0d5102 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts @@ -1,32 +1,17 @@ /// -/// ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL +/// Copyright © 2016-2023 The Thingsboard Authors /// -/// Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. +/// 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 /// -/// NOTICE: All information contained herein is, and remains -/// the property of ThingsBoard, Inc. and its suppliers, -/// if any. The intellectual and technical concepts contained -/// herein are proprietary to ThingsBoard, Inc. -/// and its suppliers and may be covered by U.S. and Foreign Patents, -/// patents in process, and are protected by trade secret or copyright law. +/// http://www.apache.org/licenses/LICENSE-2.0 /// -/// Dissemination of this information or reproduction of this material is strictly forbidden -/// unless prior written permission is obtained from COMPANY. -/// -/// Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, -/// managers or contractors who have executed Confidentiality and Non-disclosure agreements -/// explicitly covering such access. -/// -/// The copyright notice above does not evidence any actual or intended publication -/// or disclosure of this source code, which includes -/// information that is confidential and/or proprietary, and is a trade secret, of COMPANY. -/// ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, -/// OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT -/// THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, -/// AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. -/// THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION -/// DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, -/// OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. +/// 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, ViewChild } from '@angular/core'; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index 0c4b34ca6c..fabe986b9f 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -1,32 +1,17 @@ /// -/// ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL +/// Copyright © 2016-2023 The Thingsboard Authors /// -/// Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. +/// 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 /// -/// NOTICE: All information contained herein is, and remains -/// the property of ThingsBoard, Inc. and its suppliers, -/// if any. The intellectual and technical concepts contained -/// herein are proprietary to ThingsBoard, Inc. -/// and its suppliers and may be covered by U.S. and Foreign Patents, -/// patents in process, and are protected by trade secret or copyright law. +/// http://www.apache.org/licenses/LICENSE-2.0 /// -/// Dissemination of this information or reproduction of this material is strictly forbidden -/// unless prior written permission is obtained from COMPANY. -/// -/// Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, -/// managers or contractors who have executed Confidentiality and Non-disclosure agreements -/// explicitly covering such access. -/// -/// The copyright notice above does not evidence any actual or intended publication -/// or disclosure of this source code, which includes -/// information that is confidential and/or proprietary, and is a trade secret, of COMPANY. -/// ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, -/// OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT -/// THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, -/// AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. -/// THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION -/// DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, -/// OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. +/// 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 { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts index 1790495b54..7c86989f31 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts @@ -1,32 +1,17 @@ /// -/// ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL +/// Copyright © 2016-2023 The Thingsboard Authors /// -/// Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. +/// 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 /// -/// NOTICE: All information contained herein is, and remains -/// the property of ThingsBoard, Inc. and its suppliers, -/// if any. The intellectual and technical concepts contained -/// herein are proprietary to ThingsBoard, Inc. -/// and its suppliers and may be covered by U.S. and Foreign Patents, -/// patents in process, and are protected by trade secret or copyright law. +/// http://www.apache.org/licenses/LICENSE-2.0 /// -/// Dissemination of this information or reproduction of this material is strictly forbidden -/// unless prior written permission is obtained from COMPANY. -/// -/// Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, -/// managers or contractors who have executed Confidentiality and Non-disclosure agreements -/// explicitly covering such access. -/// -/// The copyright notice above does not evidence any actual or intended publication -/// or disclosure of this source code, which includes -/// information that is confidential and/or proprietary, and is a trade secret, of COMPANY. -/// ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, -/// OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT -/// THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, -/// AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. -/// THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION -/// DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, -/// OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. +/// 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. /// diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html index 1d54765bcc..7137226fdc 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html @@ -1,33 +1,18 @@ diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts index 1565fa5a92..50a1bec81f 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts @@ -1,32 +1,17 @@ /// -/// ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL +/// Copyright © 2016-2023 The Thingsboard Authors /// -/// Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. +/// 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 /// -/// NOTICE: All information contained herein is, and remains -/// the property of ThingsBoard, Inc. and its suppliers, -/// if any. The intellectual and technical concepts contained -/// herein are proprietary to ThingsBoard, Inc. -/// and its suppliers and may be covered by U.S. and Foreign Patents, -/// patents in process, and are protected by trade secret or copyright law. +/// http://www.apache.org/licenses/LICENSE-2.0 /// -/// Dissemination of this information or reproduction of this material is strictly forbidden -/// unless prior written permission is obtained from COMPANY. -/// -/// Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, -/// managers or contractors who have executed Confidentiality and Non-disclosure agreements -/// explicitly covering such access. -/// -/// The copyright notice above does not evidence any actual or intended publication -/// or disclosure of this source code, which includes -/// information that is confidential and/or proprietary, and is a trade secret, of COMPANY. -/// ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, -/// OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT -/// THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, -/// AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. -/// THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION -/// DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, -/// OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. +/// 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, ViewChild } from '@angular/core'; diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.html b/ui-ngx/src/app/shared/components/string-autocomplete.component.html index 49a9f716e3..f021b57618 100644 --- a/ui-ngx/src/app/shared/components/string-autocomplete.component.html +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.html @@ -1,33 +1,18 @@ diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.scss b/ui-ngx/src/app/shared/components/string-autocomplete.component.scss index a514186a25..950fca110d 100644 --- a/ui-ngx/src/app/shared/components/string-autocomplete.component.scss +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.scss @@ -1,32 +1,17 @@ /** - * ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL + * Copyright © 2016-2023 The Thingsboard Authors * - * Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. + * 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 * - * NOTICE: All information contained herein is, and remains - * the property of ThingsBoard, Inc. and its suppliers, - * if any. The intellectual and technical concepts contained - * herein are proprietary to ThingsBoard, Inc. - * and its suppliers and may be covered by U.S. and Foreign Patents, - * patents in process, and are protected by trade secret or copyright law. + * http://www.apache.org/licenses/LICENSE-2.0 * - * Dissemination of this information or reproduction of this material is strictly forbidden - * unless prior written permission is obtained from COMPANY. - * - * Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, - * managers or contractors who have executed Confidentiality and Non-disclosure agreements - * explicitly covering such access. - * - * The copyright notice above does not evidence any actual or intended publication - * or disclosure of this source code, which includes - * information that is confidential and/or proprietary, and is a trade secret, of COMPANY. - * ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, - * OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT - * THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, - * AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. - * THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION - * DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, - * OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. + * 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-autocomplete.tb-option-input-autocomplete { .mat-mdc-option { diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.ts b/ui-ngx/src/app/shared/components/string-autocomplete.component.ts index 91a9ee2652..b2e03db797 100644 --- a/ui-ngx/src/app/shared/components/string-autocomplete.component.ts +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.ts @@ -1,32 +1,17 @@ /// -/// ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL +/// Copyright © 2016-2023 The Thingsboard Authors /// -/// Copyright © 2016-2023 ThingsBoard, Inc. All Rights Reserved. +/// 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 /// -/// NOTICE: All information contained herein is, and remains -/// the property of ThingsBoard, Inc. and its suppliers, -/// if any. The intellectual and technical concepts contained -/// herein are proprietary to ThingsBoard, Inc. -/// and its suppliers and may be covered by U.S. and Foreign Patents, -/// patents in process, and are protected by trade secret or copyright law. +/// http://www.apache.org/licenses/LICENSE-2.0 /// -/// Dissemination of this information or reproduction of this material is strictly forbidden -/// unless prior written permission is obtained from COMPANY. -/// -/// Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, -/// managers or contractors who have executed Confidentiality and Non-disclosure agreements -/// explicitly covering such access. -/// -/// The copyright notice above does not evidence any actual or intended publication -/// or disclosure of this source code, which includes -/// information that is confidential and/or proprietary, and is a trade secret, of COMPANY. -/// ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE, -/// OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT -/// THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, -/// AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. -/// THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION -/// DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, -/// OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART. +/// 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 { From c20098088d0c58d5cf0dc20754a040b5104d1bb1 Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Fri, 20 Oct 2023 15:09:40 +0300 Subject: [PATCH 06/56] UI: Liquid level widget improvements, string autocomplete improvements --- .../app/core/services/resources.service.ts | 4 +- ...uid-level-card-basic-config.component.html | 4 +- .../indicator/liquid-level-widget.models.ts | 3 +- .../lib/indicator/liquid-level-widget.ts | 31 +++++----- ...-level-card-widget-settings.component.html | 3 + .../string-autocomplete.component.html | 22 ++++--- .../string-autocomplete.component.scss | 33 ++++++----- .../string-autocomplete.component.ts | 58 ++++++++++++------- ui-ngx/src/app/shared/shared.module.ts | 3 - 9 files changed, 99 insertions(+), 62 deletions(-) diff --git a/ui-ngx/src/app/core/services/resources.service.ts b/ui-ngx/src/app/core/services/resources.service.ts index 29d86fc2fb..f7a34c9ef5 100644 --- a/ui-ngx/src/app/core/services/resources.service.ts +++ b/ui-ngx/src/app/core/services/resources.service.ts @@ -68,7 +68,9 @@ export class ResourcesService { } const subject = new ReplaySubject(); this.loadedJsonResources[url] = subject; - this.http.get(url).subscribe( + const req$ = (url.endsWith('.raw') || url.endsWith('.svg') ? + this.http.get(url, {responseType: 'text'}) : this.http.get(url)) as Observable; + req$.subscribe( { next: (o) => { if (postProcess) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html index 03cc7894c6..82dcb21c81 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html @@ -93,6 +93,7 @@
widgets.liquid-level-card.shape-attribute-name
@@ -151,6 +152,7 @@ @@ -183,6 +185,7 @@
widget-config.show-card-buttons
- {{ 'widget-config.data-export' | translate }} {{ 'fullscreen.fullscreen' | translate }} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index fabe986b9f..7602a97dfe 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -16,7 +16,8 @@ import { ColorSettings, - constantColor, cssTextFromInlineStyle, + constantColor, + cssTextFromInlineStyle, DateFormatSettings, Font, lastUpdateAgoDateFormat diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts index 7c86989f31..eab8c16bef 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts @@ -43,13 +43,11 @@ import { import ITooltipsterInstance = JQueryTooltipster.ITooltipsterInstance; import { ResourcesService } from '@core/services/resources.service'; import { NULL_UUID } from '@shared/models/id/has-uuid'; -import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core'; +import { Component, Input, OnInit } from '@angular/core'; @Component({ selector: 'tb-liquid-level-widget', - template: '', - styleUrls: [], - encapsulation: ViewEncapsulation.None + template: '' }) export class LiquidLevelWidgetComponent implements OnInit { @@ -98,17 +96,7 @@ export class LiquidLevelWidgetComponent implements OnInit { ngOnInit(): void { this.ctx.$scope.liquidLevelWidget = this; this.settings = {...levelCardDefaultSettings(), ...this.ctx.widgetConfig, ...this.ctx.settings}; - - this.tankColor = ColorProcessor.fromSettings(this.settings.tankColor); - this.volumeColor = ColorProcessor.fromSettings(this.settings.volumeColor); - this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); - this.liquidColor = ColorProcessor.fromSettings(this.settings.liquidColor); - this.backgroundOverlayColor = ColorProcessor.fromSettings(this.settings.backgroundOverlayColor); - this.tooltipLevelColor = ColorProcessor.fromSettings(this.settings.tooltipLevelColor); - this.tooltipDateColor = ColorProcessor.fromSettings(this.settings.tooltipDateColor); - this.tooltipBackgroundColor = ColorProcessor.fromSettings(this.settings.tooltipBackgroundColor); - - this.tooltipDateFormat = DateFormatProcessor.fromSettings(this.ctx.$injector, this.settings.tooltipDateFormat); + this.declareStyles(); } public onInit() { @@ -140,6 +128,19 @@ export class LiquidLevelWidgetComponent implements OnInit { }); } + private declareStyles():void { + this.tankColor = ColorProcessor.fromSettings(this.settings.tankColor); + this.volumeColor = ColorProcessor.fromSettings(this.settings.volumeColor); + this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); + this.liquidColor = ColorProcessor.fromSettings(this.settings.liquidColor); + this.backgroundOverlayColor = ColorProcessor.fromSettings(this.settings.backgroundOverlayColor); + this.tooltipLevelColor = ColorProcessor.fromSettings(this.settings.tooltipLevelColor); + this.tooltipDateColor = ColorProcessor.fromSettings(this.settings.tooltipDateColor); + this.tooltipBackgroundColor = ColorProcessor.fromSettings(this.settings.tooltipBackgroundColor); + + this.tooltipDateFormat = DateFormatProcessor.fromSettings(this.ctx.$injector, this.settings.tooltipDateFormat); + } + private getData(): Observable<{ svg: string; volume: number; units: string }> { const entityId: EntityId = { entityType: this.ctx.datasources[0].entityType, diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html index 7137226fdc..0f3f943cc4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html @@ -48,6 +48,7 @@
widgets.liquid-level-card.shape-attribute-name
@@ -110,6 +111,7 @@ @@ -143,6 +145,7 @@ [fxShow]="levelCardWidgetSettingsForm.get('volumeSource')?.value === volumeOptions.attribute" [fetchOptionsFn]="fetchOptions.bind(this)" [required]="isRequired('volumeAttributeName')" + [errorText]="'widgets.liquid-level-card.attribute-name-required' | translate" style="flex: 1; width: auto;" asBoxInput colorClearButton class="flex" formControlName="volumeAttributeName"> diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.html b/ui-ngx/src/app/shared/components/string-autocomplete.component.html index f021b57618..b2380ba239 100644 --- a/ui-ngx/src/app/shared/components/string-autocomplete.component.html +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.html @@ -15,30 +15,36 @@ limitations under the License. --> - + + {{label}} - - + [matTooltipClass]="tooltipClass" + class="material-icons tb-suffix-show-always tb-error"> warning + + {{errorText}} + - + diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.scss b/ui-ngx/src/app/shared/components/string-autocomplete.component.scss index 950fca110d..d97c3f8987 100644 --- a/ui-ngx/src/app/shared/components/string-autocomplete.component.scss +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.scss @@ -13,19 +13,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -.tb-autocomplete.tb-option-input-autocomplete { - .mat-mdc-option { - border-bottom: none; - .mdc-list-item__primary-text { - flex: 1; - display: flex; - flex-direction: row; - gap: 8px; - .tb-option { - font-size: 14px; - font-weight: 400; - line-height: 20px; - letter-spacing: 0.2px; +:host { + display: flex; + flex: 1 1 0%; + max-width: 100%; + box-sizing: border-box; + + .tb-autocomplete.tb-option-input-autocomplete { + .mat-mdc-option { + border-bottom: none; + .mdc-list-item__primary-text { + flex: 1; + display: flex; + flex-direction: row; + gap: 8px; + .tb-option { + font-size: 14px; + font-weight: 400; + line-height: 20px; + letter-spacing: 0.2px; + } } } } diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.ts b/ui-ngx/src/app/shared/components/string-autocomplete.component.ts index b2e03db797..9f6d238d3e 100644 --- a/ui-ngx/src/app/shared/components/string-autocomplete.component.ts +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.ts @@ -19,11 +19,8 @@ import { Input, forwardRef, OnInit, - AfterViewInit, - HostBinding, ViewChild, - ElementRef, - Injector + ElementRef } from '@angular/core'; import { ControlValueAccessor, @@ -33,7 +30,9 @@ import { FormBuilder } from '@angular/forms'; import { Observable, of } from 'rxjs'; -import { tap, map, switchMap } from 'rxjs/operators'; +import { tap, map, switchMap, take } from 'rxjs/operators'; +import { TranslateService } from '@ngx-translate/core'; +import { coerceBoolean } from '@shared/decorators/coercion'; @Component({ selector: 'tb-string-autocomplete', @@ -47,13 +46,12 @@ import { tap, map, switchMap } from 'rxjs/operators'; } ] }) -export class StringAutocompleteComponent implements ControlValueAccessor, OnInit, AfterViewInit { - - @HostBinding('style.display') get hostDisplay() {return 'flex';}; +export class StringAutocompleteComponent implements ControlValueAccessor, OnInit { @Input() disabled: boolean; + @coerceBoolean() @Input() required: boolean; @@ -61,11 +59,36 @@ export class StringAutocompleteComponent implements ControlValueAccessor, OnInit @ViewChild('nameInput', {static: true}) nameInput: ElementRef; + @Input() + placeholderText: string = this.translate.instant('widget-config.set'); + + @Input() + subscriptSizing: string = 'dynamic'; + + @Input() + ngClass: string | string[] | Set | { [klass: string]: any; } = 'tb-inline-field tb-suffix-show-on-hover'; + + @Input() + appearance: string = 'outline'; + + @Input() + label: string; + + @Input() + tooltipClass: string = 'tb-error-tooltip'; + + @Input() + errorText: string; + + @coerceBoolean() + @Input() + showInlineError: boolean = false; + selectionFormControl: FormControl; modelValue: string | null; - filteredOptions: Observable>; + filteredOptions$: Observable>; searchText = ''; @@ -73,13 +96,13 @@ export class StringAutocompleteComponent implements ControlValueAccessor, OnInit private propagateChange = (_val: any) => {}; - constructor(private injector: Injector, - private fb: FormBuilder) { + constructor(private fb: FormBuilder, + private translate: TranslateService) { } ngOnInit() { - this.selectionFormControl = this.fb.control('', []); - this.filteredOptions = this.selectionFormControl.valueChanges + this.selectionFormControl = this.fb.control('', this.required ? [Validators.required] : []); + this.filteredOptions$ = this.selectionFormControl.valueChanges .pipe( tap(value => this.updateView(value)), map(value => value ? value : ''), @@ -87,12 +110,6 @@ export class StringAutocompleteComponent implements ControlValueAccessor, OnInit ); } - ngAfterViewInit() { - if (this.required) { - this.selectionFormControl.setValidators([Validators.required]); - } - } - writeValue(option?: string): void { this.searchText = ''; this.modelValue = option ? option : null; @@ -107,7 +124,8 @@ export class StringAutocompleteComponent implements ControlValueAccessor, OnInit } return option; - }) + }), + take(1) ) .subscribe(result => { this.selectionFormControl.patchValue(result, { emitEvent: false }); diff --git a/ui-ngx/src/app/shared/shared.module.ts b/ui-ngx/src/app/shared/shared.module.ts index fb6a1a086e..042e453fe1 100644 --- a/ui-ngx/src/app/shared/shared.module.ts +++ b/ui-ngx/src/app/shared/shared.module.ts @@ -200,7 +200,6 @@ 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 { MatFormFieldModule } from '@angular/material/form-field'; export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) { return markedOptionsService; @@ -401,7 +400,6 @@ export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) MatGridListModule, MatDialogModule, MatSelectModule, - MatFormFieldModule, MatTooltipModule, MatTableModule, MatPaginatorModule, @@ -517,7 +515,6 @@ export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) MatGridListModule, MatDialogModule, MatSelectModule, - MatFormFieldModule, MatTooltipModule, MatTableModule, MatPaginatorModule, From 23e0df065ed62fabddffc690e2e6f4e24c91dbb8 Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Fri, 20 Oct 2023 15:16:51 +0300 Subject: [PATCH 07/56] UI: Liquid level widget minor improvement --- .../app/shared/components/unit-input.component.ts | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/ui-ngx/src/app/shared/components/unit-input.component.ts b/ui-ngx/src/app/shared/components/unit-input.component.ts index 35ec683cc6..533df34cc9 100644 --- a/ui-ngx/src/app/shared/components/unit-input.component.ts +++ b/ui-ngx/src/app/shared/components/unit-input.component.ts @@ -23,8 +23,7 @@ import { OnInit, ViewChild, ViewEncapsulation, - Injector, - AfterViewInit + Injector } from '@angular/core'; import { ControlValueAccessor, @@ -52,7 +51,7 @@ import { ResourcesService } from '@core/services/resources.service'; ], encapsulation: ViewEncapsulation.None }) -export class UnitInputComponent implements ControlValueAccessor, OnInit, AfterViewInit { +export class UnitInputComponent implements ControlValueAccessor, OnInit { @HostBinding('style.display') get hostDisplay() {return 'flex';}; @@ -88,7 +87,7 @@ export class UnitInputComponent implements ControlValueAccessor, OnInit, AfterVi } ngOnInit() { - this.unitsFormControl = this.fb.control('', []); + this.unitsFormControl = this.fb.control('', this.required ? [Validators.required] : []); this.filteredUnits = this.unitsFormControl.valueChanges .pipe( tap(value => { @@ -99,12 +98,6 @@ export class UnitInputComponent implements ControlValueAccessor, OnInit, AfterVi ); } - ngAfterViewInit() { - if (this.required) { - this.unitsFormControl.setValidators([Validators.required]); - } - } - writeValue(symbol?: string): void { this.searchText = ''; this.modelValue = symbol; From 8b9f9cc4f9e474beb4264fa5f7c21ee80da5358d Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Fri, 20 Oct 2023 15:19:10 +0300 Subject: [PATCH 08/56] UI: Liquid level widget minor edition --- ui-ngx/src/app/shared/components/unit-input.component.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ui-ngx/src/app/shared/components/unit-input.component.ts b/ui-ngx/src/app/shared/components/unit-input.component.ts index 533df34cc9..cbdd1a3799 100644 --- a/ui-ngx/src/app/shared/components/unit-input.component.ts +++ b/ui-ngx/src/app/shared/components/unit-input.component.ts @@ -22,8 +22,7 @@ import { Input, OnInit, ViewChild, - ViewEncapsulation, - Injector + ViewEncapsulation } from '@angular/core'; import { ControlValueAccessor, @@ -80,8 +79,7 @@ export class UnitInputComponent implements ControlValueAccessor, OnInit { private propagateChange = (_val: any) => {}; - constructor(private injector: Injector, - private fb: FormBuilder, + constructor(private fb: FormBuilder, private resourcesService: ResourcesService, private translate: TranslateService) { } From 384c5db08415ac93915204cbfb8a4086ad442677 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Fri, 20 Oct 2023 15:34:58 +0300 Subject: [PATCH 09/56] UI: Basic settings for gauge --- .../basic/basic-widget-config.module.ts | 30 ++- .../analog-gauge-basic-config.component.html | 183 +++++++++++++++ .../analog-gauge-basic-config.component.ts | 213 ++++++++++++++++++ .../compass-gauge-basic-config.component.html | 154 +++++++++++++ .../compass-gauge-basic-config.component.ts | 188 ++++++++++++++++ .../radial-gauge-basic-config.component.ts | 54 +++++ .../speed-gauge-basic-config.component.ts | 54 +++++ ...eter-scale-gauge-basic-config.component.ts | 68 ++++++ .../assets/locale/locale.constant-en_US.json | 16 +- 9 files changed, 956 insertions(+), 4 deletions(-) create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/radial-gauge-basic-config.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/speed-gauge-basic-config.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/thermometer-scale-gauge-basic-config.component.ts 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 c26cf43542..a3d5b27610 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 @@ -70,6 +70,18 @@ import { import { ProgressBarBasicConfigComponent } from '@home/components/widget/config/basic/cards/progress-bar-basic-config.component'; +import { + RadialGaugeBasicConfigComponent +} from '@home/components/widget/config/basic/gauge/radial-gauge-basic-config.component'; +import { + SpeedGaugeBasicConfigComponent +} from '@home/components/widget/config/basic/gauge/speed-gauge-basic-config.component'; +import { + ThermometerScaleGaugeBasicConfigComponent +} from '@home/components/widget/config/basic/gauge/thermometer-scale-gauge-basic-config.component'; +import { + CompassGaugeBasicConfigComponent +} from '@home/components/widget/config/basic/gauge/compass-gauge-basic-config.component'; @NgModule({ declarations: [ @@ -91,7 +103,11 @@ import { WindSpeedDirectionBasicConfigComponent, SignalStrengthBasicConfigComponent, ValueChartCardBasicConfigComponent, - ProgressBarBasicConfigComponent + ProgressBarBasicConfigComponent, + RadialGaugeBasicConfigComponent, + SpeedGaugeBasicConfigComponent, + ThermometerScaleGaugeBasicConfigComponent, + CompassGaugeBasicConfigComponent ], imports: [ CommonModule, @@ -117,7 +133,11 @@ import { WindSpeedDirectionBasicConfigComponent, SignalStrengthBasicConfigComponent, ValueChartCardBasicConfigComponent, - ProgressBarBasicConfigComponent + ProgressBarBasicConfigComponent, + RadialGaugeBasicConfigComponent, + SpeedGaugeBasicConfigComponent, + ThermometerScaleGaugeBasicConfigComponent, + CompassGaugeBasicConfigComponent ] }) export class BasicWidgetConfigModule { @@ -137,5 +157,9 @@ export const basicWidgetConfigComponentsMap: {[key: string]: Type + + + + + +
+
widgets.gauge.gauge-appearance
+
+ + {{ 'widgets.gauge.units-title' | translate }} + +
+ + + + + + + +
+
+ +
+
widget-config.units-short
+
+ + + + + + +
+
+ +
+ + {{ 'widgets.gauge.value' | translate }} + +
+ + +
widget-config.decimals-suffix
+
+ + + + +
+
+ +
+
widgets.gauge.ticks
+
+
widgets.gauge.min-value-short
+ + + +
widgets.gauge.max-value-short
+ + + + + + + +
+
+ +
+
widgets.gauge.arrow-and-scale-color
+ + +
+
+
widgets.gauge.plate-color
+ + +
+
+
widgets.gauge.scale-color
+ + + +
+ +
+
widgets.gauge.progress-bar
+
+
widgets.gauge.progress-bar-color-start
+ + +
+
+
widgets.gauge.progress-bar-color-end
+ + +
+
+
widgets.gauge.bar-stroke-color
+ + +
+
+ +
+
+
widget-config.card-appearance
+
+
{{ 'widget-config.background-color' | 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/gauge/analog-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts new file mode 100644 index 0000000000..bd82ab253a --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts @@ -0,0 +1,213 @@ +/// +/// 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, + datasourcesHasAggregation, + datasourcesHasOnlyComparisonAggregation, + 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, isDefinedAndNotNull, isUndefined } from '@core/utils'; +import { + ColorType, + DateFormatProcessor, + DateFormatSettings, + getLabel, + setLabel +} from '@shared/models/widget-settings.models'; +import { + valueCardDefaultSettings, + ValueCardLayout, + valueCardLayoutImages, + valueCardLayouts, + valueCardLayoutTranslations, + ValueCardWidgetSettings +} from '@home/components/widget/lib/cards/value-card-widget.models'; + +// @Component({ +// selector: 'tb-radial-gauge-basic-config', +// templateUrl: './analog-gauge-basic-config.component.html', +// styleUrls: ['../basic-config.scss'] +// }) +export class GaugeBasicConfigComponent extends BasicWidgetConfigComponent { + + public get displayTimewindowConfig(): boolean { + const datasources = this.radialGaugeWidgetConfigForm.get('datasources').value; + return datasourcesHasAggregation(datasources); + } + + public onlyHistoryTimewindow(): boolean { + const datasources = this.radialGaugeWidgetConfigForm.get('datasources').value; + return datasourcesHasOnlyComparisonAggregation(datasources); + } + + colorType = ColorType; + + radialGaugeWidgetConfigForm: UntypedFormGroup; + + valuePreviewFn = this._valuePreviewFn.bind(this); + + constructor(protected store: Store, + protected widgetConfigComponent: WidgetConfigComponent, + protected fb: UntypedFormBuilder) { + super(store, widgetConfigComponent); + } + + protected configForm(): UntypedFormGroup { + return this.radialGaugeWidgetConfigForm; + } + + protected setupDefaults(configData: WidgetConfigComponentData, key?: DataKey[]) { + this.setupDefaultDatasource(configData, key); + } + + protected onConfigSet(configData: WidgetConfigComponentData) { + this.radialGaugeWidgetConfigForm = this.fb.group({ + timewindowConfig: [getTimewindowConfig(configData.config), []], + datasources: [configData.config.datasources, []], + + showUnitTitle: [configData.config.settings?.showUnitTitle, []], + unitTitle: [configData.config.settings?.unitTitle, []], + titleFont: [configData.config.settings?.titleFont, []], + titleColor: [configData.config.settings?.titleFont.color, []], + + units: [configData.config.units, []], + unitsFont: [configData.config.settings?.unitsFont, []], + unitsColor: [configData.config.settings?.unitsFont.color, []], + + valueBox: [configData.config.settings?.valueBox, []], + valueInt: [configData.config.settings?.valueInt, []], + valueFont: [configData.config.settings?.valueFont, []], + valueColor: [configData.config.settings?.valueFont.color, []], + + minValue: [configData.config.settings?.minValue, []], + maxValue: [configData.config.settings?.maxValue, []], + numbersFont: [configData.config.settings?.numbersFont, []], + numbersColor: [configData.config.settings?.numbersFont.color, []], + + colorBarStroke: [configData.config.settings?.colorBarStroke, []], + + defaultColor: [configData.config.settings?.defaultColor, []], + colorPlate: [configData.config.settings?.colorPlate, []], + highlights: [{ + type: 'range', + rangeList: configData.config.settings?.highlights + }, []], + + cardButtons: [this.getCardButtons(configData.config), []], + borderRadius: [configData.config.borderRadius, []], + backgroundColor: [configData.config.backgroundColor, []], + actions: [configData.config.actions || {}, []] + }); + } + + protected prepareOutputConfig(config: any): WidgetConfigComponentData { + setTimewindowConfig(this.widgetConfig.config, config.timewindowConfig); + this.widgetConfig.config.datasources = config.datasources; + // setLabel(config.label, this.widgetConfig.config.datasources); + this.widgetConfig.config.actions = config.actions; + + this.widgetConfig.config.settings = this.widgetConfig.config.settings || {}; + this.setCardButtons(config.cardButtons, this.widgetConfig.config); + this.widgetConfig.config.backgroundColor = config.backgroundColor; + + this.widgetConfig.config.settings.showUnitTitle = config.showUnitTitle; + this.widgetConfig.config.settings.unitTitle = config.unitTitle; + this.widgetConfig.config.settings.titleFont = config.titleFont; + this.widgetConfig.config.settings.titleFont.color = config.titleColor; + + this.widgetConfig.config.units = config.units; + this.widgetConfig.config.settings.unitsFont = config.unitsFont; + this.widgetConfig.config.settings.unitsFont.color = config.unitsColor; + + this.widgetConfig.config.settings.valueBox = config.valueBox; + this.widgetConfig.config.settings.valueInt = config.valueInt; + this.widgetConfig.config.settings.valueFont = config.valueFont; + this.widgetConfig.config.settings.valueFont.color = config.valueColor; + + this.widgetConfig.config.settings.minValue = config.minValue; + this.widgetConfig.config.settings.maxValue = config.maxValue; + this.widgetConfig.config.settings.numbersFont = config.numbersFont; + this.widgetConfig.config.settings.numbersFont.color = config.numbersColor; + + this.widgetConfig.config.settings.defaultColor = config.defaultColor; + this.widgetConfig.config.settings.colorPlate = config.colorPlate; + this.widgetConfig.config.settings.highlights = config.highlights.rangeList; + return this.widgetConfig; + } + + protected validatorTriggers(): string[] { + return ['showUnitTitle', 'valueBox']; + } + + protected updateValidators(emitEvent: boolean, trigger?: string) { + const showUnitTitle: boolean = this.radialGaugeWidgetConfigForm.get('showUnitTitle').value; + const valueBox: boolean = this.radialGaugeWidgetConfigForm.get('valueBox').value; + if (showUnitTitle) { + this.radialGaugeWidgetConfigForm.get('unitTitle').enable(); + this.radialGaugeWidgetConfigForm.get('titleFont').enable(); + this.radialGaugeWidgetConfigForm.get('titleColor').enable(); + } else { + this.radialGaugeWidgetConfigForm.get('unitTitle').disable(); + this.radialGaugeWidgetConfigForm.get('titleFont').disable(); + this.radialGaugeWidgetConfigForm.get('titleColor').disable(); + } + if (valueBox) { + this.radialGaugeWidgetConfigForm.get('valueInt').enable(); + this.radialGaugeWidgetConfigForm.get('valueFont').enable(); + this.radialGaugeWidgetConfigForm.get('valueColor').enable(); + } else { + this.radialGaugeWidgetConfigForm.get('valueInt').disable(); + this.radialGaugeWidgetConfigForm.get('valueFont').disable(); + this.radialGaugeWidgetConfigForm.get('valueColor').disable(); + } + this.radialGaugeWidgetConfigForm.get('unitTitle').updateValueAndValidity({emitEvent}); + this.radialGaugeWidgetConfigForm.get('titleFont').updateValueAndValidity({emitEvent}); + this.radialGaugeWidgetConfigForm.get('titleColor').updateValueAndValidity({emitEvent}); + this.radialGaugeWidgetConfigForm.get('valueInt').updateValueAndValidity({emitEvent}); + this.radialGaugeWidgetConfigForm.get('valueFont').updateValueAndValidity({emitEvent}); + this.radialGaugeWidgetConfigForm.get('valueColor').updateValueAndValidity({emitEvent}); + } + + 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 _valuePreviewFn(): string { + const units: string = this.radialGaugeWidgetConfigForm.get('units').value; + return formatValue(22, 0, units, true); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.html new file mode 100644 index 0000000000..fec518cc8d --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.html @@ -0,0 +1,154 @@ + + + + + + + +
+
widget-config.appearance
+
+ + {{ 'widget-config.title' | translate }} + +
+ + + + + + + +
+
+
+ + {{ 'widget-config.icon' | translate }} + +
+ + + + +
+
+
+ +
+
widgets.gauge.compass-appearance
+
+
widgets.gauge.labels
+
+ + +
+
+
+
widgets.gauge.label-style
+
+ + + + +
+
+ +
+
widgets.gauge.major-ticks-color
+ + +
+
+
widgets.gauge.minor-ticks-color
+ + +
+
+
widgets.gauge.needle-color
+ + +
+
+
widgets.gauge.plate-color
+ + +
+
+ +
+
widget-config.card-appearance
+
+
{{ 'widget-config.background-color' | 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/gauge/compass-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.ts new file mode 100644 index 0000000000..633e3c28f2 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.ts @@ -0,0 +1,188 @@ +/// +/// 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, + datasourcesHasAggregation, + datasourcesHasOnlyComparisonAggregation, + 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, isDefinedAndNotNull, isUndefined } from '@core/utils'; +import { + ColorType, + DateFormatProcessor, + DateFormatSettings, + getLabel, + setLabel +} from '@shared/models/widget-settings.models'; +import { + valueCardDefaultSettings, + ValueCardLayout, + valueCardLayoutImages, + valueCardLayouts, + valueCardLayoutTranslations, + ValueCardWidgetSettings +} from '@home/components/widget/lib/cards/value-card-widget.models'; + +@Component({ + selector: 'tb-compass-gauge-basic-config', + templateUrl: './compass-gauge-basic-config.component.html', + styleUrls: ['../basic-config.scss'] +}) +export class CompassGaugeBasicConfigComponent extends BasicWidgetConfigComponent { + + public get displayTimewindowConfig(): boolean { + const datasources = this.compassGaugeWidgetConfigForm.get('datasources').value; + return datasourcesHasAggregation(datasources); + } + + public onlyHistoryTimewindow(): boolean { + const datasources = this.compassGaugeWidgetConfigForm.get('datasources').value; + return datasourcesHasOnlyComparisonAggregation(datasources); + } + + compassGaugeWidgetConfigForm: UntypedFormGroup; + + constructor(protected store: Store, + protected widgetConfigComponent: WidgetConfigComponent, + protected fb: UntypedFormBuilder) { + super(store, widgetConfigComponent); + } + + protected configForm(): UntypedFormGroup { + return this.compassGaugeWidgetConfigForm; + } + + protected setupDefaults(configData: WidgetConfigComponentData) { + this.setupDefaultDatasource(configData, [{ name: 'direction', label: 'Direction', type: DataKeyType.timeseries }]); + } + + protected onConfigSet(configData: WidgetConfigComponentData) { + this.compassGaugeWidgetConfigForm = 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, []], + showTitleIcon: [configData.config.showTitleIcon, []], + titleIcon: [configData.config.titleIcon, []], + iconColor: [configData.config.iconColor, []], + + majorTicks: [configData.config.settings?.majorTicks, []], + majorTickFont: [configData.config.settings?.majorTickFont, []], + majorTickColor: [configData.config.settings?.majorTickFont.color, []], + colorMajorTicks: [configData.config.settings?.colorMajorTicks, []], + colorMinorTicks: [configData.config.settings?.colorMinorTicks, []], + colorPlate: [configData.config.settings?.colorPlate, []], + colorNeedle: [configData.config.settings?.colorNeedle, []], + + cardButtons: [this.getCardButtons(configData.config), []], + borderRadius: [configData.config.borderRadius, []], + backgroundColor: [configData.config.backgroundColor, []], + actions: [configData.config.actions || {}, []] + }); + } + + protected prepareOutputConfig(config: any): WidgetConfigComponentData { + setTimewindowConfig(this.widgetConfig.config, config.timewindowConfig); + this.widgetConfig.config.datasources = config.datasources; + this.widgetConfig.config.actions = config.actions; + + 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.showTitleIcon; + this.widgetConfig.config.titleIcon = config.titleIcon; + this.widgetConfig.config.iconColor = config.iconColor; + + this.widgetConfig.config.settings = this.widgetConfig.config.settings || {}; + this.setCardButtons(config.cardButtons, this.widgetConfig.config); + this.widgetConfig.config.backgroundColor = config.backgroundColor; + + this.widgetConfig.config.settings.majorTicks = config.majorTicks; + this.widgetConfig.config.settings.majorTickFont = config.majorTickFont; + this.widgetConfig.config.settings.majorTickFont.color = config.majorTickColor; + this.widgetConfig.config.settings.colorMajorTicks = config.colorMajorTicks; + this.widgetConfig.config.settings.colorMinorTicks = config.colorMinorTicks; + this.widgetConfig.config.settings.colorPlate = config.colorPlate; + this.widgetConfig.config.settings.colorNeedle = config.colorNeedle; + + return this.widgetConfig; + } + + protected validatorTriggers(): string[] { + return ['showTitle', 'showTitleIcon']; + } + + protected updateValidators(emitEvent: boolean, trigger?: string) { + const showTitle: boolean = this.compassGaugeWidgetConfigForm.get('showTitle').value; + const showTitleIcon: boolean = this.compassGaugeWidgetConfigForm.get('showTitleIcon').value; + if (showTitle) { + this.compassGaugeWidgetConfigForm.get('title').enable(); + this.compassGaugeWidgetConfigForm.get('titleFont').enable(); + this.compassGaugeWidgetConfigForm.get('titleColor').enable(); + this.compassGaugeWidgetConfigForm.get('showTitleIcon').enable({emitEvent: false}); + if (showTitleIcon) { + this.compassGaugeWidgetConfigForm.get('titleIcon').enable(); + this.compassGaugeWidgetConfigForm.get('iconColor').enable(); + } else { + this.compassGaugeWidgetConfigForm.get('titleIcon').disable(); + this.compassGaugeWidgetConfigForm.get('iconColor').disable(); + } + } else { + this.compassGaugeWidgetConfigForm.get('title').disable(); + this.compassGaugeWidgetConfigForm.get('titleFont').disable(); + this.compassGaugeWidgetConfigForm.get('titleColor').disable(); + this.compassGaugeWidgetConfigForm.get('showTitleIcon').disable({emitEvent: false}); + this.compassGaugeWidgetConfigForm.get('titleIcon').disable(); + this.compassGaugeWidgetConfigForm.get('iconColor').disable(); + } + this.compassGaugeWidgetConfigForm.get('title').updateValueAndValidity({emitEvent}); + this.compassGaugeWidgetConfigForm.get('titleFont').updateValueAndValidity({emitEvent}); + this.compassGaugeWidgetConfigForm.get('titleColor').updateValueAndValidity({emitEvent}); + this.compassGaugeWidgetConfigForm.get('showTitleIcon').updateValueAndValidity({emitEvent: false}); + this.compassGaugeWidgetConfigForm.get('titleIcon').updateValueAndValidity({emitEvent}); + this.compassGaugeWidgetConfigForm.get('iconColor').updateValueAndValidity({emitEvent}); + } + + + 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'); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/radial-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/radial-gauge-basic-config.component.ts new file mode 100644 index 0000000000..0abc0ad327 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/radial-gauge-basic-config.component.ts @@ -0,0 +1,54 @@ +/// +/// 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 } from '@angular/core'; +import { WidgetSettings } from '@shared/models/widget.models'; +import { UntypedFormBuilder, Validators } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { + AnalogueGaugeWidgetSettingsComponent +} from '@home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component'; +import { + GaugeBasicConfigComponent +} from '@home/components/widget/config/basic/gauge/analog-gauge-basic-config.component'; +import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; +import { WidgetConfigComponentData } from '@home/models/widget-component.models'; +import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; + +@Component({ + selector: 'tb-radial-gauge-basic-config', + templateUrl: './analog-gauge-basic-config.component.html', + styleUrls: ['../basic-config.scss'] +}) +export class RadialGaugeBasicConfigComponent extends GaugeBasicConfigComponent { + + gaugeType = 'radial'; + + constructor(protected store: Store, + protected widgetConfigComponent: WidgetConfigComponent, + protected fb: UntypedFormBuilder) { + super(store, widgetConfigComponent, fb); + } + + protected setupDefaults(configData: WidgetConfigComponentData) { + return super.setupDefaults(configData, [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries }]); + } + + protected onConfigSet(configData: WidgetConfigComponentData) { + super.onConfigSet(configData); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/speed-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/speed-gauge-basic-config.component.ts new file mode 100644 index 0000000000..d0df11fcba --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/speed-gauge-basic-config.component.ts @@ -0,0 +1,54 @@ +/// +/// 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 } from '@angular/core'; +import { WidgetSettings } from '@shared/models/widget.models'; +import { UntypedFormBuilder, Validators } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { + AnalogueGaugeWidgetSettingsComponent +} from '@home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component'; +import { + GaugeBasicConfigComponent +} from '@home/components/widget/config/basic/gauge/analog-gauge-basic-config.component'; +import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; +import { WidgetConfigComponentData } from '@home/models/widget-component.models'; +import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; + +@Component({ + selector: 'tb-speed-gauge-basic-config', + templateUrl: './analog-gauge-basic-config.component.html', + styleUrls: ['../basic-config.scss'] +}) +export class SpeedGaugeBasicConfigComponent extends GaugeBasicConfigComponent { + + gaugeType = 'speed'; + + constructor(protected store: Store, + protected widgetConfigComponent: WidgetConfigComponent, + protected fb: UntypedFormBuilder) { + super(store, widgetConfigComponent, fb); + } + + protected setupDefaults(configData: WidgetConfigComponentData) { + return super.setupDefaults(configData, [{ name: 'speed', label: 'Speed', type: DataKeyType.timeseries }]); + } + + protected onConfigSet(configData: WidgetConfigComponentData) { + super.onConfigSet(configData); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/thermometer-scale-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/thermometer-scale-gauge-basic-config.component.ts new file mode 100644 index 0000000000..d8d796f6fb --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/thermometer-scale-gauge-basic-config.component.ts @@ -0,0 +1,68 @@ +/// +/// 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 } from '@angular/core'; +import { WidgetSettings } from '@shared/models/widget.models'; +import { UntypedFormBuilder, Validators } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { + AnalogueGaugeWidgetSettingsComponent +} from '@home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component'; +import { + GaugeBasicConfigComponent +} from '@home/components/widget/config/basic/gauge/analog-gauge-basic-config.component'; +import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; +import { WidgetConfigComponentData } from '@home/models/widget-component.models'; +import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; + +@Component({ + selector: 'tb-thermometer-scale-gauge-basic-config', + templateUrl: './analog-gauge-basic-config.component.html', + styleUrls: ['../basic-config.scss'] +}) +export class ThermometerScaleGaugeBasicConfigComponent extends GaugeBasicConfigComponent { + + gaugeType = 'thermometer'; + + constructor(protected store: Store, + protected widgetConfigComponent: WidgetConfigComponent, + protected fb: UntypedFormBuilder) { + super(store, widgetConfigComponent, fb); + } + + protected setupDefaults(configData: WidgetConfigComponentData) { + return super.setupDefaults(configData, [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries }]); + } + + protected onConfigSet(configData: WidgetConfigComponentData) { + super.onConfigSet(configData); + this.radialGaugeWidgetConfigForm.addControl('colorBarStroke', + this.fb.control(configData.config.settings?.colorBarStroke, [])); + this.radialGaugeWidgetConfigForm.addControl('colorBarProgress', + this.fb.control(configData.config.settings?.colorBarProgress, [])); + this.radialGaugeWidgetConfigForm.addControl('colorBarProgressEnd', + this.fb.control(configData.config.settings?.colorBarProgressEnd, [])); + } + + protected prepareOutputConfig(config): WidgetConfigComponentData { + const outputConfig = super.prepareOutputConfig(config); + this.widgetConfig.config.settings.colorBarStroke = config.colorBarStroke; + this.widgetConfig.config.settings.colorBarProgress = config.colorBarProgress; + this.widgetConfig.config.settings.colorBarProgressEnd = config.colorBarProgressEnd; + return outputConfig; + } +} 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 b4c0f07c85..6605b31a47 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -5011,6 +5011,7 @@ "title-icon": "Title icon", "display-icon": "Display title icon", "card-icon": "Card icon", + "icon": "Icon", "icon-color": "Icon color", "icon-size": "Icon size", "advanced-settings": "Advanced settings", @@ -5357,6 +5358,8 @@ "ticks-settings": "Ticks settings", "min-value": "Minimum value", "max-value": "Maximum value", + "min-value-short": "min", + "max-value-short": "max", "start-ticks-angle": "Start ticks angle", "ticks-angle": "Ticks angle", "major-ticks-count": "Major ticks count", @@ -5416,6 +5419,8 @@ "bar-background-color": "Gauge bar background color", "bar-background-color-end": "Bar background color - end gradient", "progress-bar-color": "Progress bar color", + "progress-bar": "Progress bar", + "progress-bar-color-start": "Progress bar color - start gradient", "progress-bar-color-end": "Progress bar color - end gradient", "major-ticks-names": "Major ticks names", "show-stroke-ticks": "Show ticks stroke", @@ -5465,7 +5470,16 @@ "tick-color": "Tick color", "tick-values": "Tick values", "no-tick-values": "No tick values configured", - "add-tick-value": "Add tick value" + "add-tick-value": "Add tick value", + "gauge-appearance": "Gauge appearance", + "units-title": "Units title", + "value": "Value", + "ticks": "Ticks", + "arrow-and-scale-color": "Arrow and scale default color", + "scale-color": "Scale colors", + "compass-appearance": "Compass appearance", + "labels": "Labels", + "label-style": "Label style" }, "gpio": { "pin": "Pin", From f3a0d3a7e8a900397268359e0ae21784a4bd13a8 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 23 Oct 2023 11:54:45 +0300 Subject: [PATCH 10/56] fixed HashPartitionService --- .../server/queue/discovery/HashPartitionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java index 22bbb48871..f0635250be 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java @@ -107,7 +107,7 @@ public class HashPartitionService implements PartitionService { QueueKey vcKey = new QueueKey(ServiceType.TB_VC_EXECUTOR); partitionSizesMap.put(vcKey, vcPartitions); - partitionTopicsMap.put(vcKey, topicService.buildTopicName(topicService.buildTopicName(vcTopic))); + partitionTopicsMap.put(vcKey, topicService.buildTopicName(vcTopic)); if (!isTransport(serviceInfoProvider.getServiceType())) { doInitRuleEnginePartitions(); From 603be29f1bc001fafa73fb9954986d95faec8623 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 23 Oct 2023 12:35:38 +0300 Subject: [PATCH 11/56] fixed topic naming --- .../server/queue/provider/KafkaMonolithQueueFactory.java | 4 ++-- .../server/queue/provider/KafkaTbCoreQueueFactory.java | 2 +- .../server/queue/provider/KafkaTbRuleEngineQueueFactory.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaMonolithQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaMonolithQueueFactory.java index 01a1c11656..1d18b0ad6f 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaMonolithQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaMonolithQueueFactory.java @@ -198,7 +198,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(topicService.buildTopicName(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName())); + consumerBuilder.topic(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName()); consumerBuilder.clientId("monolith-rule-engine-notifications-consumer-" + serviceInfoProvider.getServiceId()); consumerBuilder.groupId(topicService.buildTopicName("monolith-rule-engine-notifications-consumer-" + serviceInfoProvider.getServiceId())); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); @@ -224,7 +224,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(topicService.buildTopicName(topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName())); + consumerBuilder.topic(topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName()); consumerBuilder.clientId("monolith-core-notifications-consumer-" + serviceInfoProvider.getServiceId()); consumerBuilder.groupId(topicService.buildTopicName("monolith-core-notifications-consumer-" + serviceInfoProvider.getServiceId())); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbCoreQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbCoreQueueFactory.java index ed546fc8aa..09dd7d8820 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbCoreQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbCoreQueueFactory.java @@ -181,7 +181,7 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(topicService.buildTopicName(topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName())); + consumerBuilder.topic(topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName()); consumerBuilder.clientId("tb-core-notifications-consumer-" + serviceInfoProvider.getServiceId()); consumerBuilder.groupId(topicService.buildTopicName("tb-core-notifications-node-" + serviceInfoProvider.getServiceId())); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbRuleEngineQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbRuleEngineQueueFactory.java index 202b209a26..441e60c36a 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbRuleEngineQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/KafkaTbRuleEngineQueueFactory.java @@ -177,7 +177,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder> consumerBuilder = TbKafkaConsumerTemplate.builder(); consumerBuilder.settings(kafkaSettings); - consumerBuilder.topic(topicService.buildTopicName(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName())); + consumerBuilder.topic(topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName()); consumerBuilder.clientId("tb-rule-engine-notifications-consumer-" + serviceInfoProvider.getServiceId()); consumerBuilder.groupId("tb-rule-engine-notifications-node-" + serviceInfoProvider.getServiceId()); consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); From c9e684ef6456c640ca9f0d74b9ac4f267d7e51cf Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Mon, 23 Oct 2023 12:47:43 +0300 Subject: [PATCH 12/56] UI: string autocomplete style addition and liquid level widget minor improvement --- .../lib/indicator/liquid-level-widget.ts | 8 ++-- .../string-autocomplete.component.scss | 38 ++++++++++--------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts index eab8c16bef..de106810f0 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts @@ -192,7 +192,7 @@ export class LiquidLevelWidgetComponent implements OnInit { if (isDefinedAndNotNull(data) && data.length && typeof Number(data[1]) === 'number') { const percentage = this.convertInputData(Number(data[1])); this.updateSvg(percentage); - this.updateValueElement(this.convertOutputData(percentage)); + this.updateValueElement(this.convertOutputData(percentage), percentage); if (this.settings.showTooltip) { this.updateTooltip(data); @@ -382,7 +382,7 @@ export class LiquidLevelWidgetComponent implements OnInit { }); } - private updateValueElement(data: number): void { + private updateValueElement(data: number, percentage: number): void { let content: string; let container: JQuery; @@ -390,13 +390,13 @@ export class LiquidLevelWidgetComponent implements OnInit { .toFixed(this.settings.decimals || 0); const valueTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.valueFont), color: this.valueColor.color}); - this.backgroundOverlayColor.update(data); + this.backgroundOverlayColor.update(percentage); if (this.overlayContainer) { this.overlayContainer.attr('fill', this.backgroundOverlayColor.color); } if (this.settings.layout === LevelCardLayout.absolute) { - this.volumeColor.update(data); + this.volumeColor.update(percentage); const volumeInLiters: number = convertLiters(this.volume, this.settings.volumeUnits as CapacityUnits, ConversionType.to); const volume = convertLiters(volumeInLiters, this.widgetUnits as CapacityUnits, ConversionType.from) diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.scss b/ui-ngx/src/app/shared/components/string-autocomplete.component.scss index d97c3f8987..db7a08fac8 100644 --- a/ui-ngx/src/app/shared/components/string-autocomplete.component.scss +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.scss @@ -14,24 +14,28 @@ * limitations under the License. */ :host { - display: flex; - flex: 1 1 0%; - max-width: 100%; - box-sizing: border-box; + mat-form-field { + display: flex; + flex: 1 1 0%; + max-width: 100%; + box-sizing: border-box; - .tb-autocomplete.tb-option-input-autocomplete { - .mat-mdc-option { - border-bottom: none; - .mdc-list-item__primary-text { - flex: 1; - display: flex; - flex-direction: row; - gap: 8px; - .tb-option { - font-size: 14px; - font-weight: 400; - line-height: 20px; - letter-spacing: 0.2px; + .tb-autocomplete.tb-option-input-autocomplete { + .mat-mdc-option { + border-bottom: none; + + .mdc-list-item__primary-text { + flex: 1; + display: flex; + flex-direction: row; + gap: 8px; + + .tb-option { + font-size: 14px; + font-weight: 400; + line-height: 20px; + letter-spacing: 0.2px; + } } } } From 052c87f8bde80a57cb3f130158308cec765caa95 Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Mon, 23 Oct 2023 12:56:19 +0300 Subject: [PATCH 13/56] UI: additions to units and string autocomplete generic components --- .../app/shared/components/string-autocomplete.component.ts | 2 +- ui-ngx/src/app/shared/components/unit-input.component.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.ts b/ui-ngx/src/app/shared/components/string-autocomplete.component.ts index 9f6d238d3e..cf0e2b6253 100644 --- a/ui-ngx/src/app/shared/components/string-autocomplete.component.ts +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.ts @@ -53,7 +53,7 @@ export class StringAutocompleteComponent implements ControlValueAccessor, OnInit @coerceBoolean() @Input() - required: boolean; + required: boolean = false; @Input() fetchOptionsFn: (searchText?: string) => Observable>; diff --git a/ui-ngx/src/app/shared/components/unit-input.component.ts b/ui-ngx/src/app/shared/components/unit-input.component.ts index cbdd1a3799..a0779b490f 100644 --- a/ui-ngx/src/app/shared/components/unit-input.component.ts +++ b/ui-ngx/src/app/shared/components/unit-input.component.ts @@ -36,6 +36,7 @@ import { getUnits, searchUnits, Unit, unitBySymbol, UnitsType } from '@shared/mo import { map, mergeMap, tap } from 'rxjs/operators'; import { TranslateService } from '@ngx-translate/core'; import { ResourcesService } from '@core/services/resources.service'; +import { coerceBoolean } from '@shared/decorators/coercion'; @Component({ selector: 'tb-unit-input', @@ -61,8 +62,9 @@ export class UnitInputComponent implements ControlValueAccessor, OnInit { @Input() disabled: boolean; + @coerceBoolean() @Input() - required: boolean; + required: boolean = false; @Input() tagFilter: UnitsType; From 15e6190a9d62a35c9008a0e3c6ec88f0ecf3ad0f Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 23 Oct 2023 17:40:39 +0300 Subject: [PATCH 14/56] optimized topicName creation in HashPartitionService --- .../server/queue/discovery/HashPartitionService.java | 8 ++++---- .../thingsboard/server/queue/discovery/TopicService.java | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java index f0635250be..ad55334030 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/HashPartitionService.java @@ -103,11 +103,11 @@ public class HashPartitionService implements PartitionService { this.hashFunction = forName(hashFunctionName); QueueKey coreKey = new QueueKey(ServiceType.TB_CORE); partitionSizesMap.put(coreKey, corePartitions); - partitionTopicsMap.put(coreKey, topicService.buildTopicName(coreTopic)); + partitionTopicsMap.put(coreKey, coreTopic); QueueKey vcKey = new QueueKey(ServiceType.TB_VC_EXECUTOR); partitionSizesMap.put(vcKey, vcPartitions); - partitionTopicsMap.put(vcKey, topicService.buildTopicName(vcTopic)); + partitionTopicsMap.put(vcKey, vcTopic); if (!isTransport(serviceInfoProvider.getServiceType())) { doInitRuleEnginePartitions(); @@ -125,7 +125,7 @@ public class HashPartitionService implements PartitionService { List queueRoutingInfoList = getQueueRoutingInfos(); queueRoutingInfoList.forEach(queue -> { QueueKey queueKey = new QueueKey(ServiceType.TB_RULE_ENGINE, queue); - partitionTopicsMap.put(queueKey, topicService.buildTopicName(queue.getQueueTopic())); + partitionTopicsMap.put(queueKey, queue.getQueueTopic()); partitionSizesMap.put(queueKey, queue.getPartitions()); }); } @@ -423,7 +423,7 @@ public class HashPartitionService implements PartitionService { private TopicPartitionInfo buildTopicPartitionInfo(QueueKey queueKey, int partition) { TopicPartitionInfo.TopicPartitionInfoBuilder tpi = TopicPartitionInfo.builder(); - tpi.topic(partitionTopicsMap.get(queueKey)); + tpi.topic(topicService.buildTopicName(partitionTopicsMap.get(queueKey))); tpi.partition(partition); tpi.tenantId(queueKey.getTenantId()); diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java index bab0afbb23..40e19519b0 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/TopicService.java @@ -27,7 +27,7 @@ import java.util.Map; @Service public class TopicService { - @Value("${queue.prefix}") + @Value("${queue.prefix:}") private String prefix; private Map tbCoreNotificationTopics = new HashMap<>(); @@ -57,8 +57,8 @@ public class TopicService { return buildTopicPartitionInfo(serviceType.name().toLowerCase() + ".notifications." + serviceId, null, null, false); } - public TopicPartitionInfo buildTopicPartitionInfo(String topic, TenantId tenantId, Integer partition, boolean myPartiotion) { - return new TopicPartitionInfo(buildTopicName(topic), tenantId, partition, myPartiotion); + public TopicPartitionInfo buildTopicPartitionInfo(String topic, TenantId tenantId, Integer partition, boolean myPartition) { + return new TopicPartitionInfo(buildTopicName(topic), tenantId, partition, myPartition); } public String buildTopicName(String topic) { From ef8f47267c6faf4d1fdca1c96b480550ab754093 Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Mon, 23 Oct 2023 18:54:22 +0300 Subject: [PATCH 15/56] UI: fixed HTML/markdown changes detection on parsing invalid html string --- ui-ngx/src/app/shared/components/markdown.component.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/ui-ngx/src/app/shared/components/markdown.component.ts b/ui-ngx/src/app/shared/components/markdown.component.ts index 7936d2f51a..168242da0f 100644 --- a/ui-ngx/src/app/shared/components/markdown.component.ts +++ b/ui-ngx/src/app/shared/components/markdown.component.ts @@ -179,6 +179,7 @@ export class TbMarkdownComponent implements OnChanges { this.error = null; } catch (error) { readyObservable = this.handleError(template, error, styles); + this.cd.detectChanges(); } readyObservable.subscribe(() => { this.ready.emit(); From e70530e4cac4c6b93bc3ddbb86254b1af9de45e8 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Tue, 24 Oct 2023 10:16:17 +0300 Subject: [PATCH 16/56] UI: Advanced gauge settings --- .../analog-gauge-basic-config.component.ts | 38 +- .../compass-gauge-basic-config.component.html | 78 +-- ...gue-compass-widget-settings.component.html | 291 +++++---- ...logue-compass-widget-settings.component.ts | 42 +- ...logue-gauge-widget-settings.component.html | 615 ++++++++++-------- ...nalogue-gauge-widget-settings.component.ts | 69 +- .../assets/locale/locale.constant-en_US.json | 23 +- 7 files changed, 584 insertions(+), 572 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts index bd82ab253a..953626b226 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts @@ -14,8 +14,7 @@ /// limitations under the License. /// -import { ChangeDetectorRef, Component, Injector } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } 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'; @@ -27,33 +26,13 @@ import { 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, isDefinedAndNotNull, isUndefined } from '@core/utils'; -import { - ColorType, - DateFormatProcessor, - DateFormatSettings, - getLabel, - setLabel -} from '@shared/models/widget-settings.models'; -import { - valueCardDefaultSettings, - ValueCardLayout, - valueCardLayoutImages, - valueCardLayouts, - valueCardLayoutTranslations, - ValueCardWidgetSettings -} from '@home/components/widget/lib/cards/value-card-widget.models'; - -// @Component({ -// selector: 'tb-radial-gauge-basic-config', -// templateUrl: './analog-gauge-basic-config.component.html', -// styleUrls: ['../basic-config.scss'] -// }) +import { formatValue, isUndefined } from '@core/utils'; +import { ColorType } from '@shared/models/widget-settings.models'; + export class GaugeBasicConfigComponent extends BasicWidgetConfigComponent { public get displayTimewindowConfig(): boolean { @@ -94,21 +73,21 @@ export class GaugeBasicConfigComponent extends BasicWidgetConfigComponent { showUnitTitle: [configData.config.settings?.showUnitTitle, []], unitTitle: [configData.config.settings?.unitTitle, []], titleFont: [configData.config.settings?.titleFont, []], - titleColor: [configData.config.settings?.titleFont.color, []], + titleColor: [configData.config.settings?.titleFont?.color, []], units: [configData.config.units, []], unitsFont: [configData.config.settings?.unitsFont, []], - unitsColor: [configData.config.settings?.unitsFont.color, []], + unitsColor: [configData.config.settings?.unitsFont?.color, []], valueBox: [configData.config.settings?.valueBox, []], valueInt: [configData.config.settings?.valueInt, []], valueFont: [configData.config.settings?.valueFont, []], - valueColor: [configData.config.settings?.valueFont.color, []], + valueColor: [configData.config.settings?.valueFont?.color, []], minValue: [configData.config.settings?.minValue, []], maxValue: [configData.config.settings?.maxValue, []], numbersFont: [configData.config.settings?.numbersFont, []], - numbersColor: [configData.config.settings?.numbersFont.color, []], + numbersColor: [configData.config.settings?.numbersFont?.color, []], colorBarStroke: [configData.config.settings?.colorBarStroke, []], @@ -129,7 +108,6 @@ export class GaugeBasicConfigComponent extends BasicWidgetConfigComponent { protected prepareOutputConfig(config: any): WidgetConfigComponentData { setTimewindowConfig(this.widgetConfig.config, config.timewindowConfig); this.widgetConfig.config.datasources = config.datasources; - // setLabel(config.label, this.widgetConfig.config.datasources); this.widgetConfig.config.actions = config.actions; this.widgetConfig.config.settings = this.widgetConfig.config.settings || {}; diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.html index fec518cc8d..a3a2636876 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.html @@ -83,47 +83,47 @@ -
-
widgets.gauge.label-style
-
- - - - -
+
+
widgets.gauge.label-style
+
+ + + +
+
-
-
widgets.gauge.major-ticks-color
- - -
-
-
widgets.gauge.minor-ticks-color
- - -
-
-
widgets.gauge.needle-color
- - -
-
-
widgets.gauge.plate-color
- - -
+
+
widgets.gauge.major-ticks-color
+ + +
+
+
widgets.gauge.minor-ticks-color
+ + +
+
+
widgets.gauge.needle-color
+ + +
+
+
widgets.gauge.plate-color
+ + +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-compass-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-compass-widget-settings.component.html index bbb7874523..96c16c0359 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-compass-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-compass-widget-settings.component.html @@ -15,153 +15,127 @@ limitations under the License. --> -
-
- widgets.gauge.ticks-settings - - widgets.gauge.major-ticks-names - - - {{tickName}} - cancel - - - - - - -
- - widgets.gauge.minor-ticks-count - - - - -
- - {{ 'widgets.gauge.show-stroke-ticks' | translate }} - -
- widgets.gauge.major-ticks-font - -
-
-
- widgets.gauge.plate-settings - - - - {{ 'widgets.gauge.show-plate-border' | translate }} - -
- + +
+
widgets.gauge.ticks-settings
+
+
widgets.gauge.labels
+
+ + +
+
+
+
widgets.gauge.label-style
+
+ + + + +
+
+ +
+
widgets.gauge.major-ticks
+ - - widgets.gauge.border-width - - -
-
-
- widgets.gauge.needle-settings - - widgets.gauge.needle-circle-size - - -
- +
+
+
widgets.gauge.minor-ticks
+
+ + + + + +
+
+ +
+ + {{ 'widgets.gauge.show-stroke-ticks' | translate }} + +
+ + +
+
widgets.gauge.plate-settings
+
+
widgets.gauge.plate-color
+ - +
+
+ + {{ 'widgets.gauge.show-plate-border' | translate }} + +
+ + + + + +
+
+
+ +
+
widgets.gauge.needle-settings
+
+
widgets.gauge.needle-circle
+
+ + + + + +
+
+
+
widgets.gauge.needle-color
+ - - -
- widgets.gauge.animation-settings +
+
+ +
- {{ 'widgets.gauge.enable-animation' | translate }} - + widget-config.advanced-settings -
- - widgets.gauge.animation-duration - - - - widgets.gauge.animation-rule - - - {{ 'widgets.gauge.animation-linear' | translate }} - - - {{ 'widgets.gauge.animation-quad' | translate }} - - - {{ 'widgets.gauge.animation-quint' | translate }} - - - {{ 'widgets.gauge.animation-cycle' | translate }} - - - {{ 'widgets.gauge.animation-bounce' | translate }} - - - {{ 'widgets.gauge.animation-elastic' | translate }} - - - {{ 'widgets.gauge.animation-dequad' | translate }} - - - {{ 'widgets.gauge.animation-dequint' | translate }} - - - {{ 'widgets.gauge.animation-decycle' | translate }} - - - {{ 'widgets.gauge.animation-debounce' | translate }} - - - {{ 'widgets.gauge.animation-delastic' | translate }} - - - - - widgets.gauge.animation-target +
+
widgets.gauge.animation-target
+ {{ 'widgets.gauge.animation-target-needle' | translate }} @@ -171,8 +145,53 @@ -
+
+
+
widgets.gauge.animation-duration-rule
+
+ + + + + + + {{ 'widgets.gauge.animation-linear' | translate }} + + + {{ 'widgets.gauge.animation-quad' | translate }} + + + {{ 'widgets.gauge.animation-quint' | translate }} + + + {{ 'widgets.gauge.animation-cycle' | translate }} + + + {{ 'widgets.gauge.animation-bounce' | translate }} + + + {{ 'widgets.gauge.animation-elastic' | translate }} + + + {{ 'widgets.gauge.animation-dequad' | translate }} + + + {{ 'widgets.gauge.animation-dequint' | translate }} + + + {{ 'widgets.gauge.animation-decycle' | translate }} + + + {{ 'widgets.gauge.animation-debounce' | translate }} + + + {{ 'widgets.gauge.animation-delastic' | translate }} + + + +
+
- - + +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-compass-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-compass-widget-settings.component.ts index 5a2a2b2678..6ae485c49b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-compass-widget-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-compass-widget-settings.component.ts @@ -19,9 +19,7 @@ import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { Component } from '@angular/core'; -import { MatChipInputEvent } from '@angular/material/chips'; import { COMMA, ENTER, SEMICOLON } from '@angular/cdk/keycodes'; -import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'; @Component({ selector: 'tb-analogue-compass-widget-settings', @@ -81,6 +79,7 @@ export class AnalogueCompassWidgetSettingsComponent extends WidgetSettingsCompon colorMinorTicks: [settings.colorMinorTicks, []], showStrokeTicks: [settings.showStrokeTicks, []], majorTickFont: [settings.majorTickFont, []], + majorTickColor: [settings.majorTickFont.color, []], // Plate settings colorPlate: [settings.colorPlate, []], @@ -131,41 +130,8 @@ export class AnalogueCompassWidgetSettingsComponent extends WidgetSettingsCompon this.analogueCompassWidgetSettingsForm.get('animationTarget').updateValueAndValidity({emitEvent}); } - majorTicksNamesList(): string[] { - return this.analogueCompassWidgetSettingsForm.get('majorTicks').value; - } - - removeMajorTickName(tickName: string): void { - const tickNames: string[] = this.analogueCompassWidgetSettingsForm.get('majorTicks').value; - const index = tickNames.indexOf(tickName); - if (index >= 0) { - tickNames.splice(index, 1); - this.analogueCompassWidgetSettingsForm.get('majorTicks').setValue(tickNames); - this.analogueCompassWidgetSettingsForm.get('majorTicks').markAsDirty(); - } - } - - addMajorTickName(event: MatChipInputEvent): void { - const input = event.chipInput.inputElement; - const value = event.value; - - const tickNames: string[] = this.analogueCompassWidgetSettingsForm.get('majorTicks').value; - - if ((value || '').trim()) { - tickNames.push(value.trim()); - this.analogueCompassWidgetSettingsForm.get('majorTicks').setValue(tickNames); - this.analogueCompassWidgetSettingsForm.get('majorTicks').markAsDirty(); - } - - if (input) { - input.value = ''; - } - } - - majorTickNameDrop(event: CdkDragDrop): void { - const tickNames: string[] = this.analogueCompassWidgetSettingsForm.get('majorTicks').value; - moveItemInArray(tickNames, event.previousIndex, event.currentIndex); - this.analogueCompassWidgetSettingsForm.get('majorTicks').setValue(tickNames); - this.analogueCompassWidgetSettingsForm.get('majorTicks').markAsDirty(); + protected prepareOutputSettings(settings) { + settings.majorTickFont.color = this.analogueCompassWidgetSettingsForm.get('majorTickColor').value; + return settings; } } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.html index c2264d7aca..442a431e33 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.html @@ -15,7 +15,7 @@ limitations under the License. --> -
+ @@ -24,330 +24,383 @@ - - -
- widgets.gauge.ticks-settings -
- - widgets.gauge.min-value - - - - widgets.gauge.max-value - - -
-
- - widgets.gauge.major-ticks-count - - - - -
-
- - widgets.gauge.minor-ticks-count - - - - -
-
- widgets.gauge.tick-numbers-font - -
-
-
- widgets.gauge.unit-title-settings - - - - - {{ 'widgets.gauge.show-unit-title' | translate }} - - - - widget-config.advanced-settings - - - -
- - widgets.gauge.unit-title - - -
- widgets.gauge.title-font - -
-
-
-
-
-
- widgets.gauge.units-settings -
- widgets.gauge.units-font - -
-
-
- widgets.gauge.value-box-settings + +
+
widgets.gauge.ticks-settings
+
+
widgets.gauge.ticks
+
+
widgets.gauge.min-value-short
+ + + +
widgets.gauge.max-value-short
+ + + + + + + +
+
+ +
+
widgets.gauge.major-ticks-count
+
+ + + + + +
+
+ +
+
widgets.gauge.minor-ticks-count
+
+ + + + + +
+
+
+ +
+
widgets.gauge.units-settings
+
+ + {{ 'widgets.gauge.units-title' | translate }} + +
+ + + + + + + +
+
+ +
+
widget-config.units-short
+
+ + + + +
+
+
+ +
- - {{ 'widgets.gauge.show-value-box' | translate }} + {{ 'widgets.gauge.value-box' | translate }} - + widget-config.advanced-settings -
- - widgets.gauge.value-int - +
+
widgets.gauge.value-int
+ + -
- widgets.gauge.value-font - -
-
- +
+
+
widgets.gauge.value-text
+
+
widgets.gauge.value-text
+
+ + + + +
+
+
+
widgets.gauge.value-text-shadow
+ - +
+
+
+
widgets.gauge.value-box
+
+
widgets.gauge.rect-stroke-color-start
+ + +
+ +
+
widgets.gauge.rect-stroke-color-end
+ -
-
- +
+ +
+
widgets.gauge.background-color
+ - +
+ +
+
widgets.gauge.shadow-color
+ -
- + + - -
- widgets.gauge.plate-settings - - - - {{ 'widgets.gauge.show-plate-border' | translate }} - -
-
- widgets.gauge.needle-settings -
- + + +
+
widgets.gauge.plate-settings
+
+
widgets.gauge.plate-color
+ - +
+
+ + {{ 'widgets.gauge.show-plate-border' | translate }} + +
+
+ +
+
widgets.gauge.needle-settings
+
+
widgets.gauge.needle-color-start
+ -
-
- + + +
+
widgets.gauge.needle-color-end
+ - +
+ +
+
widgets.gauge.needle-color-shadow-up
+ -
-
-
- widgets.gauge.highlights-settings - - widgets.gauge.highlights-width - - -
- widgets.gauge.highlights -
-
-
- - -
-
-
- widgets.gauge.no-highlights -
-
- -
+
+ +
+
widgets.gauge.needle-color-shadow-down
+ + +
+ + +
+
widgets.gauge.scale-settings
+
+
widgets.gauge.scale
+
+ + + + + +
-
-
-
- widgets.gauge.animation-settings + + + +
- {{ 'widgets.gauge.enable-animation' | translate }} - + widget-config.advanced-settings -
- - widgets.gauge.animation-duration - - - - widgets.gauge.animation-rule - - - {{ 'widgets.gauge.animation-linear' | translate }} - - - {{ 'widgets.gauge.animation-quad' | translate }} - - - {{ 'widgets.gauge.animation-quint' | translate }} - - - {{ 'widgets.gauge.animation-cycle' | translate }} - - - {{ 'widgets.gauge.animation-bounce' | translate }} - - - {{ 'widgets.gauge.animation-elastic' | translate }} - - - {{ 'widgets.gauge.animation-dequad' | translate }} - - - {{ 'widgets.gauge.animation-dequint' | translate }} - - - {{ 'widgets.gauge.animation-decycle' | translate }} - - - {{ 'widgets.gauge.animation-debounce' | translate }} - - - {{ 'widgets.gauge.animation-delastic' | translate }} - - - -
+
+
widgets.gauge.animation-duration-rule
+
+ + + + + + + {{ 'widgets.gauge.animation-linear' | translate }} + + + {{ 'widgets.gauge.animation-quad' | translate }} + + + {{ 'widgets.gauge.animation-quint' | translate }} + + + {{ 'widgets.gauge.animation-cycle' | translate }} + + + {{ 'widgets.gauge.animation-bounce' | translate }} + + + {{ 'widgets.gauge.animation-elastic' | translate }} + + + {{ 'widgets.gauge.animation-dequad' | translate }} + + + {{ 'widgets.gauge.animation-dequint' | translate }} + + + {{ 'widgets.gauge.animation-decycle' | translate }} + + + {{ 'widgets.gauge.animation-debounce' | translate }} + + + {{ 'widgets.gauge.animation-delastic' | translate }} + + + +
+
-
- + +
-
- widgets.gauge.radial-gauge-settings -
- - widgets.gauge.start-ticks-angle - +
+
widgets.gauge.radial-gauge-settings
+
+
widgets.gauge.start-ticks-angle
+ + + +
+
+
widgets.gauge.ticks-angle
+ + - - widgets.gauge.ticks-angle - +
+
+
widgets.gauge.needle-circle-size
+ + -
- - widgets.gauge.needle-circle-size - - -
+ + + +
-
- widgets.gauge.linear-gauge-settings -
- - widgets.gauge.bar-stroke-width - - - - -
-
- +
+
widgets.gauge.linear-gauge-settings
+
+
widgets.gauge.bar-stroke
+
+ + + + + +
+
+ +
+
widgets.gauge.bar-background-color
+ - +
+
+
widgets.gauge.bar-background-color-end
+ -
-
- + + +
+
widgets.gauge.progress-bar-color-start
+ - +
+
+
widgets.gauge.progress-bar-color-end
+ -
-
+ + + + +
+ + +
+
{{ 'widgets.gauge.arrow-and-scale-color' | translate }}
+ + +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.ts index 07f2be69bd..b2bc6621a1 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.ts @@ -15,11 +15,10 @@ /// import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models'; -import { AbstractControl, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { GaugeHighlight } from '@home/components/widget/lib/settings/gauge/gauge-highlight.component'; -import { CdkDragDrop } from '@angular/cdk/drag-drop'; export class AnalogueGaugeWidgetSettingsComponent extends WidgetSettingsComponent { @@ -119,19 +118,24 @@ export class AnalogueGaugeWidgetSettingsComponent extends WidgetSettingsComponen minorTicks: [settings.majorTicksCount, [Validators.min(0)]], colorMinorTicks: [settings.colorMinorTicks, []], numbersFont: [settings.numbersFont, []], + numbersColor: [settings.numbersFont.color, []], // Unit title settings showUnitTitle: [settings.showUnitTitle, []], unitTitle: [settings.unitTitle, []], titleFont: [settings.titleFont, []], + titleColor: [settings.titleFont.color, []], // Units settings unitsFont: [settings.unitsFont, []], + unitsColor: [settings.unitsFont.color, []], // Value box settings valueBox: [settings.valueBox, []], valueInt: [settings.valueInt, [Validators.min(0)]], valueFont: [settings.valueFont, []], + valueColor: [settings.valueFont.color, []], + valueColorShadow: [settings.valueFont.shadowColor, []], colorValueBoxRect: [settings.colorValueBoxRect, []], colorValueBoxRectEnd: [settings.colorValueBoxRectEnd, []], colorValueBoxBackground: [settings.colorValueBoxBackground, []], @@ -149,7 +153,7 @@ export class AnalogueGaugeWidgetSettingsComponent extends WidgetSettingsComponen // Highlights settings highlightsWidth: [settings.highlightsWidth, [Validators.min(0)]], - highlights: this.prepareHighlightsFormArray(settings.highlights), + highlights: this.prepareHighlights(settings.highlights), // Animation settings animation: [settings.animation, []], @@ -170,13 +174,16 @@ export class AnalogueGaugeWidgetSettingsComponent extends WidgetSettingsComponen if (showUnitTitle) { this.analogueGaugeWidgetSettingsForm.get('unitTitle').enable(); this.analogueGaugeWidgetSettingsForm.get('titleFont').enable(); + this.analogueGaugeWidgetSettingsForm.get('titleColor').enable(); } else { this.analogueGaugeWidgetSettingsForm.get('unitTitle').disable(); this.analogueGaugeWidgetSettingsForm.get('titleFont').disable(); + this.analogueGaugeWidgetSettingsForm.get('titleColor').disable(); } if (valueBox) { this.analogueGaugeWidgetSettingsForm.get('valueInt').enable(); this.analogueGaugeWidgetSettingsForm.get('valueFont').enable(); + this.analogueGaugeWidgetSettingsForm.get('valueColor').enable(); this.analogueGaugeWidgetSettingsForm.get('colorValueBoxRect').enable(); this.analogueGaugeWidgetSettingsForm.get('colorValueBoxRectEnd').enable(); this.analogueGaugeWidgetSettingsForm.get('colorValueBoxBackground').enable(); @@ -184,6 +191,7 @@ export class AnalogueGaugeWidgetSettingsComponent extends WidgetSettingsComponen } else { this.analogueGaugeWidgetSettingsForm.get('valueInt').disable(); this.analogueGaugeWidgetSettingsForm.get('valueFont').disable(); + this.analogueGaugeWidgetSettingsForm.get('valueColor').disable(); this.analogueGaugeWidgetSettingsForm.get('colorValueBoxRect').disable(); this.analogueGaugeWidgetSettingsForm.get('colorValueBoxRectEnd').disable(); this.analogueGaugeWidgetSettingsForm.get('colorValueBoxBackground').disable(); @@ -198,8 +206,10 @@ export class AnalogueGaugeWidgetSettingsComponent extends WidgetSettingsComponen } this.analogueGaugeWidgetSettingsForm.get('unitTitle').updateValueAndValidity({emitEvent}); this.analogueGaugeWidgetSettingsForm.get('titleFont').updateValueAndValidity({emitEvent}); + this.analogueGaugeWidgetSettingsForm.get('titleColor').updateValueAndValidity({emitEvent}); this.analogueGaugeWidgetSettingsForm.get('valueInt').updateValueAndValidity({emitEvent}); this.analogueGaugeWidgetSettingsForm.get('valueFont').updateValueAndValidity({emitEvent}); + this.analogueGaugeWidgetSettingsForm.get('valueColor').updateValueAndValidity({emitEvent}); this.analogueGaugeWidgetSettingsForm.get('colorValueBoxRect').updateValueAndValidity({emitEvent}); this.analogueGaugeWidgetSettingsForm.get('colorValueBoxRectEnd').updateValueAndValidity({emitEvent}); this.analogueGaugeWidgetSettingsForm.get('colorValueBoxBackground').updateValueAndValidity({emitEvent}); @@ -208,50 +218,21 @@ export class AnalogueGaugeWidgetSettingsComponent extends WidgetSettingsComponen this.analogueGaugeWidgetSettingsForm.get('animationRule').updateValueAndValidity({emitEvent}); } - protected doUpdateSettings(settingsForm: UntypedFormGroup, settings: WidgetSettings) { - settingsForm.setControl('highlights', this.prepareHighlightsFormArray(settings.highlights), {emitEvent: false}); - } - - private prepareHighlightsFormArray(highlights: GaugeHighlight[] | undefined): UntypedFormArray { - const highlightsControls: Array = []; - if (highlights) { - highlights.forEach((highlight) => { - highlightsControls.push(this.fb.control(highlight, [Validators.required])); - }); + protected prepareOutputSettings(settings) { + settings.numbersFont.color = this.analogueGaugeWidgetSettingsForm.get('numbersColor').value; + if (settings.titleFont) { + settings.titleFont.color = this.analogueGaugeWidgetSettingsForm.get('titleColor').value; } - return this.fb.array(highlightsControls); - } - - highlightsFormArray(): UntypedFormArray { - return this.analogueGaugeWidgetSettingsForm.get('highlights') as UntypedFormArray; - } - - public trackByHighlightControl(index: number, highlightControl: AbstractControl): any { - return highlightControl; - } - - public removeHighlight(index: number) { - (this.analogueGaugeWidgetSettingsForm.get('highlights') as UntypedFormArray).removeAt(index); - } - - public addHighlight() { - const highlight: GaugeHighlight = { - from: null, - to: null, - color: null - }; - const highlightsArray = this.analogueGaugeWidgetSettingsForm.get('highlights') as UntypedFormArray; - const highlightControl = this.fb.control(highlight, [Validators.required]); - (highlightControl as any).new = true; - highlightsArray.push(highlightControl); - this.analogueGaugeWidgetSettingsForm.updateValueAndValidity(); + settings.unitsFont.color = this.analogueGaugeWidgetSettingsForm.get('unitsColor').value; + if (settings.valueFont) { + settings.valueFont.color = this.analogueGaugeWidgetSettingsForm.get('valueColor').value; + settings.valueFont.shadowColor = this.analogueGaugeWidgetSettingsForm.get('valueColorShadow').value; + } + return settings; } - highlightDrop(event: CdkDragDrop) { - const highlightsArray = this.analogueGaugeWidgetSettingsForm.get('highlights') as UntypedFormArray; - const highlight = highlightsArray.at(event.previousIndex); - highlightsArray.removeAt(event.previousIndex); - highlightsArray.insert(event.currentIndex, highlight); + private prepareHighlights(highlights: GaugeHighlight[] | undefined) { + return {type: 'range', rangeList: highlights}; } } 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 6605b31a47..fab1642201 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -5362,8 +5362,10 @@ "max-value-short": "max", "start-ticks-angle": "Start ticks angle", "ticks-angle": "Ticks angle", + "major-ticks": "Major ticks", "major-ticks-count": "Major ticks count", "major-ticks-color": "Major ticks color", + "minor-ticks": "Minor ticks", "minor-ticks-count": "Minor ticks count", "minor-ticks-color": "Minor ticks color", "tick-numbers-font": "Tick numbers font", @@ -5375,21 +5377,29 @@ "units-font": "Units text font", "value-box-settings": "Value box settings", "show-value-box": "Show value box", + "value-box": "Value box", "value-int": "Digits count for integer part of value", + "value-text": "Value text", + "value-text-shadow": "Value text shadow", "value-font": "Value text font", + "rect-stroke-color-start": "Rectangle stroke color - start gradient", + "rect-stroke-color-end": "Rectangle stroke color - end gradient", + "background-color": "Background color", + "shadow-color": "Shadow color", "value-box-rect-stroke-color": "Value box rectangle stroke color", "value-box-rect-stroke-color-end": "Value box rectangle stroke color - end gradient", "value-box-background-color": "Value box background color", "value-box-shadow-color": "Value box shadow color", "plate-settings": "Plate settings", - "show-plate-border": "Show plate border", + "show-plate-border": "Plate border", "plate-color": "Plate color", "needle-settings": "Needle settings", "needle-circle-size": "Needle circle size", "needle-color": "Needle color", + "needle-color-start": "Needle color - start gradient", "needle-color-end": "Needle color - end gradient", "needle-color-shadow-up": "Upper half of the needle shadow color", - "needle-color-shadow-down": "Drop shadow needle color", + "needle-color-shadow-down": "Drop shadow", "highlights-settings": "Highlights settings", "highlights-width": "Highlights width", "highlights": "Highlights", @@ -5399,7 +5409,8 @@ "no-highlights": "No highlights configured", "add-highlight": "Add highlight", "animation-settings": "Animation settings", - "enable-animation": "Enable animation", + "enable-animation": "Animation", + "animation-duration-rule": "Animation duration and rule", "animation-duration": "Animation duration", "animation-rule": "Animation rule", "animation-linear": "Linear", @@ -5414,9 +5425,10 @@ "animation-debounce": "Debounce", "animation-delastic": "Delastic", "linear-gauge-settings": "Linear gauge settings", + "bar-stroke": "Bar stroke", "bar-stroke-width": "Bar stroke width", "bar-stroke-color": "Bar stroke color", - "bar-background-color": "Gauge bar background color", + "bar-background-color": "Bar background color - start gradient", "bar-background-color-end": "Bar background color - end gradient", "progress-bar-color": "Progress bar color", "progress-bar": "Progress bar", @@ -5427,6 +5439,7 @@ "major-ticks-font": "Major ticks font", "border-color": "Border color", "border-width": "Border width", + "needle-circle": "Needle circle", "needle-circle-color": "Needle circle color", "animation-target": "Animation target", "animation-target-needle": "Needle", @@ -5476,6 +5489,8 @@ "value": "Value", "ticks": "Ticks", "arrow-and-scale-color": "Arrow and scale default color", + "scale-settings": "Scale settings", + "scale": "Scale", "scale-color": "Scale colors", "compass-appearance": "Compass appearance", "labels": "Labels", From 0bab29c8ecd4f8c5fcb97d5fd2a3e5fbcb9dddfc Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Tue, 24 Oct 2023 15:08:16 +0300 Subject: [PATCH 17/56] UI: Refactoring liquid level widgets after review --- ...uid-level-card-basic-config.component.html | 21 +++--- ...iquid-level-card-basic-config.component.ts | 59 +++++---------- .../config/widget-config.component.models.ts | 1 + ...et.ts => liquid-level-widget.component.ts} | 20 ++++-- .../indicator/liquid-level-widget.models.ts | 53 ++++++++++++-- ...-level-card-widget-settings.component.html | 23 +++--- ...id-level-card-widget-settings.component.ts | 72 ++++++------------- .../common/image-cards-select.component.ts | 5 +- .../widget/widget-components.module.ts | 2 +- .../string-autocomplete.component.html | 2 +- .../string-autocomplete.component.scss | 2 +- .../string-autocomplete.component.ts | 24 ++++--- .../shared/components/unit-input.component.ts | 4 +- 13 files changed, 138 insertions(+), 150 deletions(-) rename ui-ngx/src/app/modules/home/components/widget/lib/indicator/{liquid-level-widget.ts => liquid-level-widget.component.ts} (97%) diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html index 82dcb21c81..37463350c8 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html @@ -84,7 +84,7 @@ label="{{ 'widgets.liquid-level-card.shape-type' | translate }}" formControlName="selectedShape"> + [image]="createShape(shapesImageMap.get(shape), this.levelCardLayouts.simple)"> {{ shapesTranslationMap.get(shape) | translate }} @@ -94,8 +94,7 @@ @@ -118,7 +117,7 @@ + [image]="createShape(shapesImageMap.get(levelCardWidgetConfigForm.get('selectedShape').value), layout)"> {{ levelCardLayoutTranslationMap.get(layout) | translate }} @@ -144,7 +143,7 @@ @@ -153,8 +152,7 @@ [fetchOptionsFn]="fetchOptions.bind(this)" [required]="isRequired('widgetUnitsAttributeName')" [errorText]="'widgets.liquid-level-card.attribute-name-required' | translate" - style="flex: 1; width: auto;" - asBoxInput colorClearButton class="flex" + style="flex: 1" formControlName="widgetUnitsAttributeName"> @@ -182,17 +180,14 @@ warning - - diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts index abbc0d5102..807c3cb60a 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts @@ -43,23 +43,22 @@ import { } from '@shared/models/widget-settings.models'; import { CapacityUnits, - createAbsoluteLayout, - createPercentLayout, + createShapeLayout, levelCardDefaultSettings, LevelCardLayout, levelCardLayoutTranslations, LevelCardWidgetSettings, LevelSelectOptions, + loadSvgShapesMapping, optionsFilter, Shapes, - shapesTranslations, - svgMapping + shapesTranslations } from '@home/components/widget/lib/indicator/liquid-level-widget.models'; import { UnitsType } from '@shared/models/unit.models'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; import { ImageCardsSelectComponent } from '@home/components/widget/lib/settings/common/image-cards-select.component'; -import { map, publishReplay, refCount, tap } from 'rxjs/operators'; -import { forkJoin, Observable, of } from 'rxjs'; +import { map, share, tap } from 'rxjs/operators'; +import { Observable, of, ReplaySubject } from 'rxjs'; import { ResourcesService } from '@core/services/resources.service'; import { UnitInputComponent } from '@shared/components/unit-input.component'; import { UtilsService } from '@core/services/utils.service'; @@ -242,7 +241,7 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon actions: [configData.config.actions || {}, []] }); - this.levelCardWidgetConfigForm.get('selectedShape').valueChanges.subscribe((shape) => { + this.levelCardWidgetConfigForm.get('selectedShape').valueChanges.subscribe(() => { this.cd.detectChanges(); this.layoutsImageCardsSelect?.imageCardsSelectOptions.notifyOnChanges(); }); @@ -562,21 +561,8 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon } private createSvgShapesMapping(): void { - const obsArray: Array> = []; - for (const shape of this.shapes) { - const svgUrl = svgMapping.get(shape).svg; - - const obs = this.resourcesService.loadJsonResource(svgUrl).pipe( - map((svg) => ({svg, shape})) - ); - - obsArray.push(obs); - } - - forkJoin(obsArray).subscribe((svgData) => { - for (const data of svgData) { - this.shapesImageMap.set(data.shape, data.svg); - } + loadSvgShapesMapping(this.resourcesService).subscribe(shapeMap => { + this.shapesImageMap = shapeMap; this.cd.detectChanges(); this.layoutsImageCardsSelect?.imageCardsSelectOptions.notifyOnChanges(); @@ -584,25 +570,8 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon }); } - public createShapeLayout(svg: string, layout: LevelCardLayout): SafeUrl { - if (svg && layout) { - const parser = new DOMParser(); - const svgImage = parser.parseFromString(svg, 'image/svg+xml'); - - if (layout === this.levelCardLayouts.simple) { - svgImage.querySelector('.container-overlay').remove(); - } else if (layout === this.levelCardLayouts.percentage) { - svgImage.querySelector('.absolute-overlay').remove(); - svgImage.querySelector('.percentage-value-container').innerHTML = createPercentLayout(); - } else { - svgImage.querySelector('.absolute-value-container').innerHTML = createAbsoluteLayout(); - svgImage.querySelector('.percentage-overlay').remove(); - } - - const encodedSvg = encodeURIComponent(svgImage.documentElement.outerHTML); - - return this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/svg+xml,${encodedSvg}`); - } + createShape(svg: string, layout: LevelCardLayout): SafeUrl { + return createShapeLayout(svg, layout, this.sanitizer); } public isRequired(formControlName: string): boolean { @@ -649,8 +618,12 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon fetchObservable = of([]); } return fetchObservable.pipe( - publishReplay(1), - refCount() + share({ + connector: () => new ReplaySubject(1), + resetOnError: false, + resetOnComplete: false, + resetOnRefCountZero: false + }) ); } } diff --git a/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts b/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts index 160331de3a..cfa0cedbee 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts @@ -25,6 +25,7 @@ import { AppState } from '@core/core.state'; import { AbstractControl, UntypedFormGroup } from '@angular/forms'; import { DataKey, DatasourceType, KeyInfo, WidgetConfigMode } from '@shared/models/widget.models'; import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; +import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; import { isDefinedAndNotNull } from '@core/utils'; export type WidgetConfigCallbacks = DatasourceCallbacks & WidgetActionCallbacks; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts similarity index 97% rename from ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts rename to ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts index de106810f0..4e54e0c125 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts @@ -20,7 +20,9 @@ import { isDefined, isDefinedAndNotNull, isNumber, isString } from '@core/utils' import { CapacityUnits, ConversionType, - convertLiters, createAbsoluteLayout, createPercentLayout, + convertLiters, + createAbsoluteLayout, + createPercentLayout, extractValue, levelCardDefaultSettings, LevelCardLayout, @@ -40,11 +42,12 @@ import { DateFormatProcessor, inlineTextStyle } from '@shared/models/widget-settings.models'; -import ITooltipsterInstance = JQueryTooltipster.ITooltipsterInstance; import { ResourcesService } from '@core/services/resources.service'; import { NULL_UUID } from '@shared/models/id/has-uuid'; import { Component, Input, OnInit } from '@angular/core'; +import ITooltipsterInstance = JQueryTooltipster.ITooltipsterInstance; + @Component({ selector: 'tb-liquid-level-widget', template: '' @@ -128,7 +131,7 @@ export class LiquidLevelWidgetComponent implements OnInit { }); } - private declareStyles():void { + private declareStyles(): void { this.tankColor = ColorProcessor.fromSettings(this.settings.tankColor); this.volumeColor = ColorProcessor.fromSettings(this.settings.volumeColor); this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); @@ -328,7 +331,12 @@ export class LiquidLevelWidgetComponent implements OnInit { this.updateLevel(newYPos, percentage); } - private calculatePosition(percentage, limits): number { + private calculatePosition(percentage: number, limits: SvgLimits): number { + if (percentage > 100) { + return limits.max; + } if (percentage <= 0) { + return limits.min; + } return limits.min + (percentage / 100) * (limits.max - limits.min); } @@ -368,7 +376,7 @@ export class LiquidLevelWidgetComponent implements OnInit { } } - private updateShapeColor(value): void { + private updateShapeColor(value: number): void { const shapeStrokes = this.ctx.$container.find('.tb-shape-stroke'); const shapeFill = this.ctx.$container.find('.tb-shape-fill'); this.tankColor.update(value); @@ -504,7 +512,7 @@ export class LiquidLevelWidgetComponent implements OnInit { } } - public cardClick($event) { + public cardClick($event: Event) { this.ctx.actionsApi.cardClick($event); } } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index 7602a97dfe..5b51b2f277 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -24,12 +24,14 @@ import { } from '@shared/models/widget-settings.models'; import { DataKey, WidgetConfig } from '@shared/models/widget.models'; import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; -import { Observable, of } from 'rxjs'; +import { forkJoin, Observable, of } from 'rxjs'; import { singleEntityFilterFromDeviceId } from '@shared/models/query/query.models'; import { EntityType } from '@shared/models/entity-type.models'; -import { catchError, mergeMap } from 'rxjs/operators'; +import { catchError, map, mergeMap } from 'rxjs/operators'; import { EntityService } from '@core/http/entity.service'; import { IAliasController } from '@core/api/widget-api.models'; +import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; +import { ResourcesService } from '@core/services/resources.service'; export interface SvgInfo { svg: string; @@ -123,7 +125,7 @@ export enum ConversionType { from = 'from', } -export const svgMapping = new Map( +export const svgMapping = new Map( [ [ Shapes.vOval, @@ -421,8 +423,49 @@ export const fetchEntityKeys = (entityAliasId: string, dataKeyTypes: Array of([])) )), catchError(() => of([] as Array)) ); + + +export const createShapeLayout = (svg: string, layout: LevelCardLayout, sanitizer: DomSanitizer): SafeUrl => { + if (svg && layout) { + const parser = new DOMParser(); + const svgImage = parser.parseFromString(svg, 'image/svg+xml'); + + if (layout === LevelCardLayout.simple) { + svgImage.querySelector('.container-overlay').remove(); + } else if (layout === LevelCardLayout.percentage) { + svgImage.querySelector('.absolute-overlay').remove(); + svgImage.querySelector('.percentage-value-container').innerHTML = createPercentLayout(); + } else { + svgImage.querySelector('.absolute-value-container').innerHTML = createAbsoluteLayout(); + svgImage.querySelector('.percentage-overlay').remove(); + } + + const encodedSvg = encodeURIComponent(svgImage.documentElement.outerHTML); + + return sanitizer.bypassSecurityTrustResourceUrl(`data:image/svg+xml,${encodedSvg}`); + } +}; + +export const loadSvgShapesMapping = (resourcesService: ResourcesService): Observable> => { + const obsArray: Array> = []; + const shapesImageMap: Map = new Map(); + svgMapping.forEach((value, shape) => { + const obs = resourcesService.loadJsonResource(value.svg).pipe( + map((svg) => ({svg, shape})) + ); + + obsArray.push(obs); + }); + + return forkJoin(obsArray).pipe( + map(svgData => { + for (const data of svgData) { + shapesImageMap.set(data.shape, data.svg); + } + return shapesImageMap; + }) + ); +}; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html index 0f3f943cc4..30fd2abaea 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html @@ -16,7 +16,7 @@ --> -
+
@@ -39,7 +39,7 @@ label="{{ 'widgets.liquid-level-card.shape-type' | translate }}" formControlName="selectedShape"> + [image]="createShape(shapesImageMap.get(shape), this.levelCardLayouts.simple)"> {{ shapesTranslationMap.get(shape) | translate }} @@ -49,8 +49,7 @@
@@ -77,7 +76,7 @@ + [image]="createShape(shapesImageMap.get(levelCardWidgetSettingsForm.get('selectedShape').value), layout)"> {{ levelCardLayoutTranslationMap.get(layout) | translate }} @@ -103,7 +102,7 @@ @@ -112,8 +111,7 @@ [fetchOptionsFn]="fetchOptions.bind(this)" [required]="isRequired('widgetUnitsAttributeName')" [errorText]="'widgets.liquid-level-card.attribute-name-required' | translate" - style="flex: 1; width: auto;" - asBoxInput colorClearButton class="flex" + style="flex: 1" formControlName="widgetUnitsAttributeName">
@@ -141,17 +139,14 @@ warning - - diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts index 50a1bec81f..f90aac8205 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts @@ -27,30 +27,26 @@ import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { formatValue, isDefined } from '@core/utils'; import { WidgetConfigComponentData } from '@home/models/widget-component.models'; +import { DateFormatProcessor, DateFormatSettings } from '@shared/models/widget-settings.models'; import { - DateFormatProcessor, - DateFormatSettings -} from '@shared/models/widget-settings.models'; -import { + CapacityUnits, + createShapeLayout, + fetchEntityKeys, + fetchEntityKeysForDevice, levelCardDefaultSettings, LevelCardLayout, levelCardLayoutTranslations, - Shapes, - shapesTranslations, - svgMapping, - CapacityUnits, LevelSelectOptions, - createPercentLayout, - createAbsoluteLayout, + loadSvgShapesMapping, optionsFilter, - fetchEntityKeysForDevice, - fetchEntityKeys + Shapes, + shapesTranslations } from '@home/components/widget/lib/indicator/liquid-level-widget.models'; import { UnitsType } from '@shared/models/unit.models'; import { ImageCardsSelectComponent } from '@home/components/widget/lib/settings/common/image-cards-select.component'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; -import { forkJoin, Observable, of } from 'rxjs'; -import { map, publishReplay, refCount, tap } from 'rxjs/operators'; +import { Observable, of, ReplaySubject } from 'rxjs'; +import { map, share, tap } from 'rxjs/operators'; import { ResourcesService } from '@core/services/resources.service'; import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; import { UtilsService } from '@core/services/utils.service'; @@ -201,7 +197,7 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon tooltipBackgroundBlur: [settings.tooltipBackgroundBlur, []], }); - this.levelCardWidgetSettingsForm.get('selectedShape').valueChanges.subscribe((shape) => { + this.levelCardWidgetSettingsForm.get('selectedShape').valueChanges.subscribe(() => { this.cd.detectChanges(); this.layoutsImageCardsSelect?.imageCardsSelectOptions.notifyOnChanges(); }); @@ -390,21 +386,8 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon } private createSvgShapesMapping(): void { - const obsArray: Array> = []; - for (const shape of this.shapes) { - const svgUrl = svgMapping.get(shape).svg; - - const obs = this.resourcesService.loadJsonResource(svgUrl).pipe( - map((svg) => ({svg, shape})) - ); - - obsArray.push(obs); - } - - forkJoin(obsArray).subscribe((svgData) => { - for (const data of svgData) { - this.shapesImageMap.set(data.shape, data.svg); - } + loadSvgShapesMapping(this.resourcesService).subscribe(shapeMap => { + this.shapesImageMap = shapeMap; this.cd.detectChanges(); this.layoutsImageCardsSelect?.imageCardsSelectOptions.notifyOnChanges(); @@ -412,25 +395,8 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon }); } - public createShapeLayout(svg: string, layout: LevelCardLayout): SafeUrl { - if (svg && layout) { - const parser = new DOMParser(); - const svgImage = parser.parseFromString(svg, 'image/svg+xml'); - - if (layout === this.levelCardLayouts.simple) { - svgImage.querySelector('.container-overlay').remove(); - } else if (layout === this.levelCardLayouts.percentage) { - svgImage.querySelector('.absolute-overlay').remove(); - svgImage.querySelector('.percentage-value-container').innerHTML = createPercentLayout(); - } else { - svgImage.querySelector('.absolute-value-container').innerHTML = createAbsoluteLayout(); - svgImage.querySelector('.percentage-overlay').remove(); - } - - const encodedSvg = encodeURIComponent(svgImage.documentElement.outerHTML); - - return this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/svg+xml,${encodedSvg}`); - } + createShape(svg: string, layout: LevelCardLayout): SafeUrl { + return createShapeLayout(svg, layout, this.sanitizer); } public isRequired(formControlName: string): boolean { @@ -509,8 +475,12 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon fetchObservable = of([]); } return fetchObservable.pipe( - publishReplay(1), - refCount() + share({ + connector: () => new ReplaySubject(1), + resetOnError: false, + resetOnComplete: false, + resetOnRefCountZero: false + }) ); } } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.ts index d75c4a5fc9..4f11a51223 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.ts @@ -32,11 +32,12 @@ import { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs'; import { map, share, startWith, takeUntil } from 'rxjs/operators'; import { BreakpointObserver } from '@angular/cdk/layout'; import { MediaBreakpoints } from '@shared/models/constants'; +import { SafeUrl } from '@angular/platform-browser'; export interface ImageCardsSelectOption { name: string; value: any; - image: string; + image: string | SafeUrl; } @Directive( @@ -49,7 +50,7 @@ export class ImageCardsSelectOptionDirective { @Input() value: any; - @Input() image: string; + @Input() image: string | SafeUrl; get viewValue(): string { return (this._element?.nativeElement.textContent || '').trim(); diff --git a/ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts b/ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts index 1cd7383c19..abaec04df8 100644 --- a/ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts @@ -64,7 +64,7 @@ import { import { SignalStrengthWidgetComponent } from '@home/components/widget/lib/indicator/signal-strength-widget.component'; import { ValueChartCardWidgetComponent } from '@home/components/widget/lib/cards/value-chart-card-widget.component'; import { ProgressBarWidgetComponent } from '@home/components/widget/lib/cards/progress-bar-widget.component'; -import { LiquidLevelWidgetComponent } from '@home/components/widget/lib/indicator/liquid-level-widget'; +import { LiquidLevelWidgetComponent } from '@home/components/widget/lib/indicator/liquid-level-widget.component'; @NgModule({ declarations: diff --git a/ui-ngx/src/app/shared/components/string-autocomplete.component.html b/ui-ngx/src/app/shared/components/string-autocomplete.component.html index b2380ba239..4750f71d63 100644 --- a/ui-ngx/src/app/shared/components/string-autocomplete.component.html +++ b/ui-ngx/src/app/shared/components/string-autocomplete.component.html @@ -15,7 +15,7 @@ limitations under the License. --> - {{label}} Observable>; + @coerceBoolean() + required = false; - @ViewChild('nameInput', {static: true}) nameInput: ElementRef; + @Input() + fetchOptionsFn: (searchText?: string) => Observable>; @Input() placeholderText: string = this.translate.instant('widget-config.set'); @Input() - subscriptSizing: string = 'dynamic'; + subscriptSizing: SubscriptSizing = 'dynamic'; @Input() - ngClass: string | string[] | Set | { [klass: string]: any; } = 'tb-inline-field tb-suffix-show-on-hover'; + additionalClass: string | string[] | Record = 'tb-inline-field tb-suffix-show-on-hover'; @Input() - appearance: string = 'outline'; + appearance: MatFormFieldAppearance = 'outline'; @Input() label: string; @Input() - tooltipClass: string = 'tb-error-tooltip'; + tooltipClass = 'tb-error-tooltip'; @Input() errorText: string; - @coerceBoolean() @Input() - showInlineError: boolean = false; + @coerceBoolean() + showInlineError = false; selectionFormControl: FormControl; diff --git a/ui-ngx/src/app/shared/components/unit-input.component.ts b/ui-ngx/src/app/shared/components/unit-input.component.ts index a0779b490f..ce84aede7f 100644 --- a/ui-ngx/src/app/shared/components/unit-input.component.ts +++ b/ui-ngx/src/app/shared/components/unit-input.component.ts @@ -62,9 +62,9 @@ export class UnitInputComponent implements ControlValueAccessor, OnInit { @Input() disabled: boolean; - @coerceBoolean() @Input() - required: boolean = false; + @coerceBoolean() + required = false; @Input() tagFilter: UnitsType; From 6732fba6826cb239e1bb06d21fea92eea75f0d11 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Tue, 24 Oct 2023 16:09:30 +0300 Subject: [PATCH 18/56] UI: Color range setting --- .../common/color-range-list.component.html | 50 ++++++ .../common/color-range-list.component.ts | 131 ++++++++++++++ .../common/color-range-panel.component.html | 57 ++++++ .../common/color-range-panel.component.ts | 80 +++++++++ .../color-range-settings.component.html | 27 +++ .../common/color-range-settings.component.ts | 166 ++++++++++++++++++ .../color-settings-panel.component.html | 43 +---- .../common/color-settings-panel.component.ts | 2 +- .../common/widget-settings-common.module.ts | 20 ++- 9 files changed, 533 insertions(+), 43 deletions(-) create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-settings.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-settings.component.ts diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.html new file mode 100644 index 0000000000..8db7f074de --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.html @@ -0,0 +1,50 @@ + +
{{ panelTitle }}
+
+
+
+
+
widgets.color.from
+ + + +
widgets.color.to
+ + + + + +
+ +
+
+
+ diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.ts new file mode 100644 index 0000000000..88a13850a2 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.ts @@ -0,0 +1,131 @@ +/// +/// 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, forwardRef, Input, OnInit } from '@angular/core'; +import { + AbstractControl, + ControlValueAccessor, + FormGroup, + NG_VALUE_ACCESSOR, + UntypedFormArray, + UntypedFormBuilder, + UntypedFormGroup +} from '@angular/forms'; +import { MatDialog } from '@angular/material/dialog'; +import { ColorRange } from '@shared/models/widget-settings.models'; +import { TbPopoverComponent } from '@shared/components/popover.component'; + +@Component({ + selector: 'tb-color-range-list', + templateUrl: './color-range-list.component.html', + styleUrls: ['color-settings-panel.component.scss'], + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => ColorRangeListComponent), + multi: true + } + ] +}) +export class ColorRangeListComponent implements OnInit, ControlValueAccessor { + + @Input() disabled: boolean; + + @Input() + popover: TbPopoverComponent; + + @Input() + panelTitle: string; + + modelValue: any; + + colorRangeListFormGroup: UntypedFormGroup; + + private propagateChange = null; + + constructor(private fb: UntypedFormBuilder, + public dialog: MatDialog) { + + } + + ngOnInit(): void { + this.colorRangeListFormGroup = this.fb.group({ + rangeList: this.fb.array([]) + }); + + this.colorRangeListFormGroup.valueChanges.subscribe(() => { + this.updateModel(); + }); + } + + + registerOnChange(fn: any): void { + this.propagateChange = fn; + } + + registerOnTouched(fn: any): void { + } + + setDisabledState(isDisabled: boolean): void { + this.disabled = isDisabled; + } + + writeValue(value: any): void { + if (value && value?.length) { + value.forEach((r) => this.rangeListFormArray.push(this.colorRangeControl(r), {emitEvent: false})); + } + } + + private colorRangeControl(range: ColorRange): AbstractControl { + return this.fb.group({ + from: [range?.from, []], + to: [range?.to, []], + color: [range?.color, []] + }); + } + + get rangeListFormArray(): UntypedFormArray { + return this.colorRangeListFormGroup.get('rangeList') as UntypedFormArray; + } + + get rangeListFormGroups(): FormGroup[] { + return this.rangeListFormArray.controls as FormGroup[]; + } + + trackByRange(index: number, rangeControl: AbstractControl): any { + return rangeControl; + } + + removeRange(index: number) { + this.rangeListFormArray.removeAt(index); + this.colorRangeListFormGroup.markAsDirty(); + setTimeout(() => {this.popover?.updatePosition();}, 0); + } + + addRange() { + const newRange: ColorRange = { + color: 'rgba(0,0,0,0.87)' + }; + this.rangeListFormArray.push(this.colorRangeControl(newRange)); + this.colorRangeListFormGroup.markAsDirty(); + setTimeout(() => {this.popover?.updatePosition();}, 0); + } + + updateModel() { + this.propagateChange(this.colorRangeListFormGroup.get('rangeList').value); + } + +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.html new file mode 100644 index 0000000000..449562f184 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.html @@ -0,0 +1,57 @@ + +
+
widgets.color.color-settings
+
+ + +
+
+ + + +
+ +
+
+
+ + + +
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.ts new file mode 100644 index 0000000000..3fbc0842b0 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.ts @@ -0,0 +1,80 @@ +/// +/// 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, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core'; +import { PageComponent } from '@shared/components/page.component'; +import { ColorRange } from '@shared/models/widget-settings.models'; +import { TbPopoverComponent } from '@shared/components/popover.component'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { deepClone } from '@core/utils'; +import { + ColorRangeSettingsComponent +} from '@home/components/widget/lib/settings/common/color-range-settings.component'; + +@Component({ + selector: 'tb-color-range-panel', + templateUrl: './color-range-panel.component.html', + providers: [], + styleUrls: ['./color-settings-panel.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class ColorRangePanelComponent extends PageComponent implements OnInit { + + @Input() + colorRangeSettings: Array; + + @Input() + popover: TbPopoverComponent; + + @Input() + settingsComponents: ColorRangeSettingsComponent[]; + + @Output() + colorRangeApplied = new EventEmitter>(); + + colorRangeFormGroup: UntypedFormGroup; + + constructor(private fb: UntypedFormBuilder, + protected store: Store) { + super(store); + } + + ngOnInit(): void { + this.colorRangeFormGroup = this.fb.group( + { + rangeList: [this.colorRangeSettings, []] + } + ); + } + + copyColorSettings(comp: ColorRangeSettingsComponent) { + this.colorRangeSettings = deepClone(comp.modelValue); + this.colorRangeFormGroup.get('rangeList').patchValue(this.colorRangeSettings || [], {emitEvent: false}); + this.colorRangeFormGroup.markAsDirty(); + } + + cancel() { + this.popover?.hide(); + } + + applyColorRangeSettings() { + const colorRangeSettings = this.colorRangeFormGroup.get('rangeList').value; + this.colorRangeApplied.emit(colorRangeSettings); + } + +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-settings.component.html new file mode 100644 index 0000000000..cf0298e99a --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-settings.component.html @@ -0,0 +1,27 @@ + + 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 new file mode 100644 index 0000000000..989bdb2844 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-settings.component.ts @@ -0,0 +1,166 @@ +/// +/// 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, + forwardRef, + Injectable, + Input, + OnDestroy, + OnInit, + Renderer2, + ViewContainerRef +} from '@angular/core'; +import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; +import { ColorRange, ComponentStyle } from '@shared/models/widget-settings.models'; +import { MatButton } from '@angular/material/button'; +import { TbPopoverService } from '@shared/components/popover.service'; +import { ColorRangePanelComponent } from '@home/components/widget/lib/settings/common/color-range-panel.component'; + +@Injectable() +export class ColorRangeSettingsComponentService { + + private colorSettingsComponents = new Set(); + + constructor() {} + + public registerColorSettingsComponent(comp: ColorRangeSettingsComponent) { + this.colorSettingsComponents.add(comp); + } + + public unregisterColorSettingsComponent(comp: ColorRangeSettingsComponent) { + this.colorSettingsComponents.delete(comp); + } + + public getOtherColorSettingsComponents(comp: ColorRangeSettingsComponent): ColorRangeSettingsComponent[] { + const result: ColorRangeSettingsComponent[] = []; + for (const component of this.colorSettingsComponents.values()) { + if (component.settingsKey && component.modelValue && component !== comp) { + result.push(component); + } + } + return result; + } + +} + +@Component({ + selector: 'tb-color-range-settings', + templateUrl: './color-range-settings.component.html', + styleUrls: [], + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => ColorRangeSettingsComponent), + multi: true + } + ] +}) +export class ColorRangeSettingsComponent implements OnInit, ControlValueAccessor, OnDestroy { + + @Input() + disabled: boolean; + + @Input() + settingsKey: string; + + modelValue: Array; + + colorStyle: ComponentStyle = {}; + + private propagateChange = null; + + constructor(private popoverService: TbPopoverService, + private renderer: Renderer2, + private viewContainerRef: ViewContainerRef, + private colorSettingsComponentService: ColorRangeSettingsComponentService) {} + + ngOnInit(): void { + this.colorSettingsComponentService.registerColorSettingsComponent(this); + } + + ngOnDestroy() { + this.colorSettingsComponentService.unregisterColorSettingsComponent(this); + } + + registerOnChange(fn: any): void { + this.propagateChange = fn; + } + + registerOnTouched(fn: any): void { + } + + setDisabledState(isDisabled: boolean): void { + this.disabled = isDisabled; + this.updateColorStyle(); + } + + writeValue(value: Array): void { + this.modelValue = value; + this.updateColorStyle(); + } + + openColorRangeSettingsPopup($event: Event, matButton: MatButton) { + if ($event) { + $event.stopPropagation(); + } + const trigger = matButton._elementRef.nativeElement; + if (this.popoverService.hasPopover(trigger)) { + this.popoverService.hidePopover(trigger); + } else { + const ctx: any = { + colorRangeSettings: this.modelValue, + settingsComponents: this.colorSettingsComponentService.getOtherColorSettingsComponents(this) + }; + const colorRangeSettingsPanelPopover = this.popoverService.displayPopover(trigger, this.renderer, + this.viewContainerRef, ColorRangePanelComponent, 'left', true, null, + ctx, + {}, + {}, {}, true); + colorRangeSettingsPanelPopover.tbComponentRef.instance.popover = colorRangeSettingsPanelPopover; + colorRangeSettingsPanelPopover.tbComponentRef.instance.colorRangeApplied.subscribe((colorRangeSettings) => { + colorRangeSettingsPanelPopover.hide(); + this.modelValue = colorRangeSettings; + this.updateColorStyle(); + this.propagateChange(this.modelValue); + }); + } + } + + private updateColorStyle() { + if (!this.disabled && this.modelValue) { + let colors: string[] = []; + if (this.modelValue.length) { + const rangeColors = this.modelValue.slice(0, Math.min(3, this.modelValue.length)).map(r => r.color); + colors = colors.concat(rangeColors); + } + if (colors.length === 1) { + this.colorStyle = {backgroundColor: colors[0]}; + } else { + const gradientValues: string[] = []; + const step = 100 / colors.length; + for (let i = 0; i < colors.length; i++) { + gradientValues.push(`${colors[i]} ${step*i}%`); + gradientValues.push(`${colors[i]} ${step*(i+1)}%`); + } + this.colorStyle = {background: `linear-gradient(90deg, ${gradientValues.join(', ')})`}; + } + } else { + this.colorStyle = {}; + } + } + +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-settings-panel.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-settings-panel.component.html index 8712322d2c..1864e781dd 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-settings-panel.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-settings-panel.component.html @@ -34,7 +34,11 @@
- + +
@@ -72,43 +76,6 @@
- -
-
widgets.color.value-range
-
-
-
-
-
widgets.color.from
- - - -
widgets.color.to
- - - - - -
- -
-
-
- -
-
this.colorRangeControl(r))), + rangeList: [this.colorSettings?.rangeList, []], colorFunction: [this.colorSettings?.colorFunction, []] } ); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/widget-settings-common.module.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/widget-settings-common.module.ts index 4018549863..7c2022c5d4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/widget-settings-common.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/widget-settings-common.module.ts @@ -45,7 +45,12 @@ import { } from '@home/components/widget/lib/settings/common/background-settings-panel.component'; import { CountWidgetSettingsComponent -} from "@home/components/widget/lib/settings/common/count-widget-settings.component"; +} from '@home/components/widget/lib/settings/common/count-widget-settings.component'; +import { ColorRangeListComponent } from '@home/components/widget/lib/settings/common/color-range-list.component'; +import { ColorRangePanelComponent } from '@home/components/widget/lib/settings/common/color-range-panel.component'; +import { + ColorRangeSettingsComponent, ColorRangeSettingsComponentService +} from '@home/components/widget/lib/settings/common/color-range-settings.component'; @NgModule({ declarations: [ @@ -63,7 +68,10 @@ import { ValueSourceComponent, LegendConfigComponent, WidgetFontComponent, - CountWidgetSettingsComponent + CountWidgetSettingsComponent, + ColorRangeListComponent, + ColorRangePanelComponent, + ColorRangeSettingsComponent ], imports: [ CommonModule, @@ -85,10 +93,14 @@ import { ValueSourceComponent, LegendConfigComponent, WidgetFontComponent, - CountWidgetSettingsComponent + CountWidgetSettingsComponent, + ColorRangeListComponent, + ColorRangePanelComponent, + ColorRangeSettingsComponent ], providers: [ - ColorSettingsComponentService + ColorSettingsComponentService, + ColorRangeSettingsComponentService ] }) export class WidgetSettingsCommonModule { From fd8841a4376b70192c742f3fa2db3341d797a5fe Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Tue, 24 Oct 2023 17:58:13 +0300 Subject: [PATCH 19/56] UI: Refactoring for gauge settings --- .../json/system/widget_types/compass.json | 5 +- .../system/widget_types/radial_gauge.json | 5 +- .../json/system/widget_types/speed_gauge.json | 5 +- .../temperature_radial_gauge.json | 5 +- .../widget_types/thermometer_scale.json | 5 +- .../basic/basic-widget-config.module.ts | 6 - .../analog-gauge-basic-config.component.html | 7 +- .../analog-gauge-basic-config.component.ts | 10 +- .../compass-gauge-basic-config.component.ts | 25 +--- .../radial-gauge-basic-config.component.ts | 11 +- .../speed-gauge-basic-config.component.ts | 54 -------- ...eter-scale-gauge-basic-config.component.ts | 13 +- ...logue-gauge-widget-settings.component.html | 5 +- ...nalogue-gauge-widget-settings.component.ts | 7 +- .../gauge/gauge-highlight.component.html | 61 --------- .../gauge/gauge-highlight.component.scss | 40 ------ .../gauge/gauge-highlight.component.ts | 116 ------------------ .../lib/settings/widget-settings.module.ts | 3 - 18 files changed, 31 insertions(+), 352 deletions(-) delete mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/speed-gauge-basic-config.component.ts delete mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.html delete mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.scss delete mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.ts 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 79e92d7d57..a44887f49f 100644 --- a/application/src/main/data/json/system/widget_types/compass.json +++ b/application/src/main/data/json/system/widget_types/compass.json @@ -11,10 +11,11 @@ "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 };\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\":\"\"}" }, "externalId": null 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 7d793b2b87..dc6d04f744 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 @@ -11,10 +11,11 @@ "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 };\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\":\"\"}" }, "externalId": null 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 2c70d27cf5..9a2850bfb4 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 @@ -11,10 +11,11 @@ "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 };\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\":\"\"}" }, "externalId": null 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 d11faa7ab2..adf1ca2cae 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 @@ -11,10 +11,11 @@ "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 };\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\":\"\"}" }, "externalId": null 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 cdc4a2268a..0f496a9dee 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 @@ -11,10 +11,11 @@ "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 };\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\":\"\"}" }, "externalId": null 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 a3d5b27610..c5e0c4b95c 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 @@ -73,9 +73,6 @@ import { import { RadialGaugeBasicConfigComponent } from '@home/components/widget/config/basic/gauge/radial-gauge-basic-config.component'; -import { - SpeedGaugeBasicConfigComponent -} from '@home/components/widget/config/basic/gauge/speed-gauge-basic-config.component'; import { ThermometerScaleGaugeBasicConfigComponent } from '@home/components/widget/config/basic/gauge/thermometer-scale-gauge-basic-config.component'; @@ -105,7 +102,6 @@ import { ValueChartCardBasicConfigComponent, ProgressBarBasicConfigComponent, RadialGaugeBasicConfigComponent, - SpeedGaugeBasicConfigComponent, ThermometerScaleGaugeBasicConfigComponent, CompassGaugeBasicConfigComponent ], @@ -135,7 +131,6 @@ import { ValueChartCardBasicConfigComponent, ProgressBarBasicConfigComponent, RadialGaugeBasicConfigComponent, - SpeedGaugeBasicConfigComponent, ThermometerScaleGaugeBasicConfigComponent, CompassGaugeBasicConfigComponent ] @@ -159,7 +154,6 @@ export const basicWidgetConfigComponentsMap: {[key: string]: Type
widgets.gauge.scale-color
- - - + +
-
+
widgets.gauge.progress-bar
widgets.gauge.progress-bar-color-start
diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts index 953626b226..6e422105ec 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/analog-gauge-basic-config.component.ts @@ -20,7 +20,6 @@ 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, datasourcesHasAggregation, datasourcesHasOnlyComparisonAggregation, WidgetConfig, @@ -61,8 +60,8 @@ export class GaugeBasicConfigComponent extends BasicWidgetConfigComponent { return this.radialGaugeWidgetConfigForm; } - protected setupDefaults(configData: WidgetConfigComponentData, key?: DataKey[]) { - this.setupDefaultDatasource(configData, key); + protected setupDefaults(configData: WidgetConfigComponentData) { + super.setupDefaults(configData); } protected onConfigSet(configData: WidgetConfigComponentData) { @@ -93,10 +92,7 @@ export class GaugeBasicConfigComponent extends BasicWidgetConfigComponent { defaultColor: [configData.config.settings?.defaultColor, []], colorPlate: [configData.config.settings?.colorPlate, []], - highlights: [{ - type: 'range', - rangeList: configData.config.settings?.highlights - }, []], + highlights: [configData.config.settings?.highlights, []], cardButtons: [this.getCardButtons(configData.config), []], borderRadius: [configData.config.borderRadius, []], diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.ts index 633e3c28f2..8bf0b5ea6e 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/compass-gauge-basic-config.component.ts @@ -14,40 +14,23 @@ /// limitations under the License. /// -import { ChangeDetectorRef, Component, Injector } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { Component } from '@angular/core'; +import { UntypedFormBuilder, UntypedFormGroup } 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, datasourcesHasAggregation, datasourcesHasOnlyComparisonAggregation, 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, isDefinedAndNotNull, isUndefined } from '@core/utils'; -import { - ColorType, - DateFormatProcessor, - DateFormatSettings, - getLabel, - setLabel -} from '@shared/models/widget-settings.models'; -import { - valueCardDefaultSettings, - ValueCardLayout, - valueCardLayoutImages, - valueCardLayouts, - valueCardLayoutTranslations, - ValueCardWidgetSettings -} from '@home/components/widget/lib/cards/value-card-widget.models'; +import { isUndefined } from '@core/utils'; @Component({ selector: 'tb-compass-gauge-basic-config', @@ -79,7 +62,7 @@ export class CompassGaugeBasicConfigComponent extends BasicWidgetConfigComponent } protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, [{ name: 'direction', label: 'Direction', type: DataKeyType.timeseries }]); + super.setupDefaults(configData); } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/radial-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/radial-gauge-basic-config.component.ts index 0abc0ad327..ec756b6605 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/radial-gauge-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/radial-gauge-basic-config.component.ts @@ -15,19 +15,14 @@ /// import { Component } from '@angular/core'; -import { WidgetSettings } from '@shared/models/widget.models'; -import { UntypedFormBuilder, Validators } from '@angular/forms'; +import { UntypedFormBuilder } from '@angular/forms'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; -import { - AnalogueGaugeWidgetSettingsComponent -} from '@home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component'; import { GaugeBasicConfigComponent } from '@home/components/widget/config/basic/gauge/analog-gauge-basic-config.component'; import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; import { WidgetConfigComponentData } from '@home/models/widget-component.models'; -import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; @Component({ selector: 'tb-radial-gauge-basic-config', @@ -44,10 +39,6 @@ export class RadialGaugeBasicConfigComponent extends GaugeBasicConfigComponent { super(store, widgetConfigComponent, fb); } - protected setupDefaults(configData: WidgetConfigComponentData) { - return super.setupDefaults(configData, [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries }]); - } - protected onConfigSet(configData: WidgetConfigComponentData) { super.onConfigSet(configData); } diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/speed-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/speed-gauge-basic-config.component.ts deleted file mode 100644 index d0df11fcba..0000000000 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/speed-gauge-basic-config.component.ts +++ /dev/null @@ -1,54 +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. -/// - -import { Component } from '@angular/core'; -import { WidgetSettings } from '@shared/models/widget.models'; -import { UntypedFormBuilder, Validators } from '@angular/forms'; -import { Store } from '@ngrx/store'; -import { AppState } from '@core/core.state'; -import { - AnalogueGaugeWidgetSettingsComponent -} from '@home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component'; -import { - GaugeBasicConfigComponent -} from '@home/components/widget/config/basic/gauge/analog-gauge-basic-config.component'; -import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; -import { WidgetConfigComponentData } from '@home/models/widget-component.models'; -import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; - -@Component({ - selector: 'tb-speed-gauge-basic-config', - templateUrl: './analog-gauge-basic-config.component.html', - styleUrls: ['../basic-config.scss'] -}) -export class SpeedGaugeBasicConfigComponent extends GaugeBasicConfigComponent { - - gaugeType = 'speed'; - - constructor(protected store: Store, - protected widgetConfigComponent: WidgetConfigComponent, - protected fb: UntypedFormBuilder) { - super(store, widgetConfigComponent, fb); - } - - protected setupDefaults(configData: WidgetConfigComponentData) { - return super.setupDefaults(configData, [{ name: 'speed', label: 'Speed', type: DataKeyType.timeseries }]); - } - - protected onConfigSet(configData: WidgetConfigComponentData) { - super.onConfigSet(configData); - } -} diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/thermometer-scale-gauge-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/thermometer-scale-gauge-basic-config.component.ts index d8d796f6fb..97e3a0c69f 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/thermometer-scale-gauge-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/gauge/thermometer-scale-gauge-basic-config.component.ts @@ -15,19 +15,14 @@ /// import { Component } from '@angular/core'; -import { WidgetSettings } from '@shared/models/widget.models'; -import { UntypedFormBuilder, Validators } from '@angular/forms'; +import { UntypedFormBuilder } from '@angular/forms'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; -import { - AnalogueGaugeWidgetSettingsComponent -} from '@home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component'; import { GaugeBasicConfigComponent } from '@home/components/widget/config/basic/gauge/analog-gauge-basic-config.component'; import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; import { WidgetConfigComponentData } from '@home/models/widget-component.models'; -import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; @Component({ selector: 'tb-thermometer-scale-gauge-basic-config', @@ -36,7 +31,7 @@ import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; }) export class ThermometerScaleGaugeBasicConfigComponent extends GaugeBasicConfigComponent { - gaugeType = 'thermometer'; + gaugeType = 'linear'; constructor(protected store: Store, protected widgetConfigComponent: WidgetConfigComponent, @@ -44,10 +39,6 @@ export class ThermometerScaleGaugeBasicConfigComponent extends GaugeBasicConfigC super(store, widgetConfigComponent, fb); } - protected setupDefaults(configData: WidgetConfigComponentData) { - return super.setupDefaults(configData, [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries }]); - } - protected onConfigSet(configData: WidgetConfigComponentData) { super.onConfigSet(configData); this.radialGaugeWidgetConfigForm.addControl('colorBarStroke', diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.html index 442a431e33..7769dab6a3 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.html @@ -249,9 +249,8 @@ - - - + +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.ts index b2bc6621a1..3257987f4a 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/analogue-gauge-widget-settings.component.ts @@ -18,7 +18,6 @@ import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.m import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; -import { GaugeHighlight } from '@home/components/widget/lib/settings/gauge/gauge-highlight.component'; export class AnalogueGaugeWidgetSettingsComponent extends WidgetSettingsComponent { @@ -153,7 +152,7 @@ export class AnalogueGaugeWidgetSettingsComponent extends WidgetSettingsComponen // Highlights settings highlightsWidth: [settings.highlightsWidth, [Validators.min(0)]], - highlights: this.prepareHighlights(settings.highlights), + highlights: [settings.highlights, []], // Animation settings animation: [settings.animation, []], @@ -231,8 +230,4 @@ export class AnalogueGaugeWidgetSettingsComponent extends WidgetSettingsComponen return settings; } - private prepareHighlights(highlights: GaugeHighlight[] | undefined) { - return {type: 'range', rangeList: highlights}; - } - } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.html deleted file mode 100644 index f92edfcde5..0000000000 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -
- -
-
{{ highlightRangeText() }}
-
-
-
-
-
- - -
-
- -
- -
-
- - widgets.gauge.highlight-from - - - - widgets.gauge.highlight-to - - -
- - -
-
-
-
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.scss deleted file mode 100644 index 8b61fb7e3d..0000000000 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.scss +++ /dev/null @@ -1,40 +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. - */ -:host { - display: block; - .mat-expansion-panel { - box-shadow: none; - &.gauge-highlight { - border: 1px groove rgba(0, 0, 0, .25); - .mat-expansion-panel-header { - padding: 0 24px 0 8px; - &.mat-expanded { - height: 48px; - } - } - } - } -} - -:host ::ng-deep { - .mat-expansion-panel { - &.gauge-highlight { - .mat-expansion-panel-body { - padding: 0 8px 8px; - } - } - } -} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.ts deleted file mode 100644 index e5c1ec9fbc..0000000000 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gauge/gauge-highlight.component.ts +++ /dev/null @@ -1,116 +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. -/// - -import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core'; -import { ControlValueAccessor, UntypedFormBuilder, UntypedFormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms'; -import { PageComponent } from '@shared/components/page.component'; -import { Store } from '@ngrx/store'; -import { AppState } from '@core/core.state'; -import { TranslateService } from '@ngx-translate/core'; -import { isNumber } from '@core/utils'; - -export interface GaugeHighlight { - from: number; - to: number; - color: string; -} - -@Component({ - selector: 'tb-gauge-highlight', - templateUrl: './gauge-highlight.component.html', - styleUrls: ['./gauge-highlight.component.scss'], - providers: [ - { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => GaugeHighlightComponent), - multi: true - } - ] -}) -export class GaugeHighlightComponent extends PageComponent implements OnInit, ControlValueAccessor { - - @Input() - disabled: boolean; - - @Input() - expanded = false; - - @Output() - removeHighlight = new EventEmitter(); - - private modelValue: GaugeHighlight; - - private propagateChange = null; - - public gaugeHighlightFormGroup: UntypedFormGroup; - - constructor(protected store: Store, - private translate: TranslateService, - private fb: UntypedFormBuilder) { - super(store); - } - - ngOnInit(): void { - this.gaugeHighlightFormGroup = this.fb.group({ - from: [null, []], - to: [null, []], - color: [null, []] - }); - this.gaugeHighlightFormGroup.valueChanges.subscribe(() => { - this.updateModel(); - }); - } - - registerOnChange(fn: any): void { - this.propagateChange = fn; - } - - registerOnTouched(fn: any): void { - } - - setDisabledState(isDisabled: boolean): void { - this.disabled = isDisabled; - if (isDisabled) { - this.gaugeHighlightFormGroup.disable({emitEvent: false}); - } else { - this.gaugeHighlightFormGroup.enable({emitEvent: false}); - } - } - - writeValue(value: GaugeHighlight): void { - this.modelValue = value; - this.gaugeHighlightFormGroup.patchValue( - value, {emitEvent: false} - ); - } - - highlightRangeText(): string { - const value: GaugeHighlight = this.gaugeHighlightFormGroup.value; - const from = isNumber(value.from) ? value.from : 0; - const to = isNumber(value.to) ? value.to : 0; - return `${from} - ${to}`; - } - - private updateModel() { - const value: GaugeHighlight = this.gaugeHighlightFormGroup.value; - this.modelValue = value; - if (this.gaugeHighlightFormGroup.valid) { - this.propagateChange(this.modelValue); - } else { - this.propagateChange(null); - } - } -} 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 33b4323fdf..9ad7f62729 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 @@ -58,7 +58,6 @@ import { import { AlarmsTableKeySettingsComponent } from '@home/components/widget/lib/settings/alarm/alarms-table-key-settings.component'; -import { GaugeHighlightComponent } from '@home/components/widget/lib/settings/gauge/gauge-highlight.component'; import { AnalogueRadialGaugeWidgetSettingsComponent } from '@home/components/widget/lib/settings/gauge/analogue-radial-gauge-widget-settings.component'; @@ -318,7 +317,6 @@ import { EntitiesTableKeySettingsComponent, AlarmsTableWidgetSettingsComponent, AlarmsTableKeySettingsComponent, - GaugeHighlightComponent, AnalogueRadialGaugeWidgetSettingsComponent, AnalogueLinearGaugeWidgetSettingsComponent, AnalogueCompassWidgetSettingsComponent, @@ -434,7 +432,6 @@ import { EntitiesTableKeySettingsComponent, AlarmsTableWidgetSettingsComponent, AlarmsTableKeySettingsComponent, - GaugeHighlightComponent, AnalogueRadialGaugeWidgetSettingsComponent, AnalogueLinearGaugeWidgetSettingsComponent, AnalogueCompassWidgetSettingsComponent, From 40581d598a0e456a87604aa5d2dd18be3f6c7c3b Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Wed, 25 Oct 2023 10:01:14 +0300 Subject: [PATCH 20/56] UI: liquid level widget additions and refactoring after review --- .../horizontal_2_1_elliptical_tank.json | 2 +- .../widget_types/horizontal_capsule_tank.json | 2 +- .../horizontal_cylinder_tank.json | 2 +- .../horizontal_dish_ends_tank.json | 2 +- .../widget_types/horizontal_ellipse_tank.json | 2 +- .../widget_types/horizontal_oval_tank.json | 2 +- .../system/widget_types/rectangle_tank.json | 2 +- .../widget_types/vertical_capsule_tank.json | 2 +- .../widget_types/vertical_cylinder_tank.json | 2 +- .../widget_types/vertical_oval_tank.json | 2 +- .../basic/basic-widget-config.module.ts | 2 +- ...uid-level-card-basic-config.component.html | 16 ++++---- ...iquid-level-card-basic-config.component.ts | 23 ++++++----- .../liquid-level-widget.component.ts | 38 +++++++++++-------- .../indicator/liquid-level-widget.models.ts | 9 +++-- ...-level-card-widget-settings.component.html | 16 ++++---- ...id-level-card-widget-settings.component.ts | 20 +++++----- .../lib/settings/widget-settings.module.ts | 2 +- 18 files changed, 77 insertions(+), 69 deletions(-) rename ui-ngx/src/app/modules/home/components/widget/config/basic/{cards => indicator}/liquid-level-card-basic-config.component.html (95%) rename ui-ngx/src/app/modules/home/components/widget/config/basic/{cards => indicator}/liquid-level-card-basic-config.component.ts (97%) rename ui-ngx/src/app/modules/home/components/widget/lib/settings/{cards => indicator}/liquid-level-card-widget-settings.component.html (94%) rename ui-ngx/src/app/modules/home/components/widget/lib/settings/{cards => indicator}/liquid-level-card-widget-settings.component.ts (97%) 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 d97129d861..c582d90811 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", 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 b15e34a0b0..19f3bb6cee 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", 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 2ca6913435..44fd1603ed 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", 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 b947e3404c..f788eadb75 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", 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 869d3be02d..2b780548b6 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", 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 1d452cb8db..b175499013 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", 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 ffe611aab7..6a60de4751 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", 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 74d6ae5d73..79e77839c0 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", 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 e11080654f..7d2fbf27c3 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", 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 162c8cf552..dab3fc7eb2 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.onInit();\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.$scope.liquidLevelWidget) {\n self.ctx.$scope.liquidLevelWidget.update();\n }\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", 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 f2e90279ee..3c42ec7c15 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 @@ -72,7 +72,7 @@ import { } from '@home/components/widget/config/basic/cards/progress-bar-basic-config.component'; import { LiquidLevelCardBasicConfigComponent -} from '@home/components/widget/config/basic/cards/liquid-level-card-basic-config.component'; +} from '@home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component'; @NgModule({ declarations: [ diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html similarity index 95% rename from ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html rename to ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html index 37463350c8..8a9f8e5d26 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html @@ -199,12 +199,12 @@
widgets.liquid-level-card.color-and-font
widgets.liquid-level-card.tank-color
- +
widgets.liquid-level-card.liquid-color
- +
- +
@@ -228,7 +228,7 @@ - +
@@ -236,7 +236,7 @@ {{ 'widgets.liquid-level-card.background-overlay' | translate }} - + @@ -270,7 +270,7 @@ - + @@ -283,13 +283,13 @@ - +
widgets.liquid-level-card.tooltip-background
- +
diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts similarity index 97% rename from ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts rename to ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts index 807c3cb60a..4282d999d4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/liquid-level-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts @@ -60,7 +60,6 @@ import { ImageCardsSelectComponent } from '@home/components/widget/lib/settings/ import { map, share, tap } from 'rxjs/operators'; import { Observable, of, ReplaySubject } from 'rxjs'; import { ResourcesService } from '@core/services/resources.service'; -import { UnitInputComponent } from '@shared/components/unit-input.component'; import { UtilsService } from '@core/services/utils.service'; @Component({ @@ -74,8 +73,6 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon @ViewChild('shapesImageCardsSelect', { static: false }) shapesImageCardsSelect: ImageCardsSelectComponent; - @ViewChild('widgetUnits', { static: false }) widgetUnits: UnitInputComponent; - public get datasource(): Datasource { if (this.widgetConfig.config.datasources && this.widgetConfig.config.datasources) { return this.widgetConfig.config.datasources[0]; @@ -88,18 +85,18 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon const datasourceUnits = this.levelCardWidgetConfigForm.get('datasourceUnits').value; const layout: LevelCardLayout = this.levelCardWidgetConfigForm.get('layout').value; const units = this.levelCardWidgetConfigForm.get('units').value; - return !(datasourceUnits === CapacityUnits.percent && layout !== LevelCardLayout.absolute - || (datasourceUnits === CapacityUnits.percent && units === CapacityUnits.percent)); + + if (layout === LevelCardLayout.absolute) { + return true; + } + + return !(datasourceUnits === CapacityUnits.percent && units === CapacityUnits.percent); } public get widgetUnitsInput(): boolean { const layout: LevelCardLayout = this.levelCardWidgetConfigForm.get('layout').value; - if (layout === LevelCardLayout.absolute) { - const datasourceUnits = this.levelCardWidgetConfigForm.get('datasourceUnits').value; - return !(datasourceUnits === CapacityUnits.percent); - } - return false; + return layout === LevelCardLayout.absolute; } public get displayTimewindowConfig(): boolean { @@ -343,8 +340,10 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon } if (trigger === 'datasourceUnits' || trigger === 'layout' || trigger === 'units') { - if (datasourceUnits === CapacityUnits.percent && (layout !== LevelCardLayout.absolute) - || (datasourceUnits === CapacityUnits.percent && units?.value === CapacityUnits.percent) + if ( + datasourceUnits === CapacityUnits.percent && + layout !== LevelCardLayout.absolute && + (!units?.value || units?.value === CapacityUnits.percent) ) { volumeSource.disable({emitEvent: false}); this.levelCardWidgetConfigForm.get('volumeConstant').disable({emitEvent: false}); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts index 4e54e0c125..35266a241b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts @@ -44,7 +44,7 @@ import { } from '@shared/models/widget-settings.models'; import { ResourcesService } from '@core/services/resources.service'; import { NULL_UUID } from '@shared/models/id/has-uuid'; -import { Component, Input, OnInit } from '@angular/core'; +import { Component, ElementRef, Host, HostBinding, Input, OnInit } from '@angular/core'; import ITooltipsterInstance = JQueryTooltipster.ITooltipsterInstance; @@ -54,6 +54,9 @@ import ITooltipsterInstance = JQueryTooltipster.ITooltipsterInstance; }) export class LiquidLevelWidgetComponent implements OnInit { + @HostBinding('style.width') width = '100%'; + @HostBinding('style.height') height = '100%'; + @Input() ctx: WidgetContext; @@ -93,22 +96,21 @@ export class LiquidLevelWidgetComponent implements OnInit { widgetUnits: string; - constructor() { + constructor(@Host() private elementRef: ElementRef) { } ngOnInit(): void { this.ctx.$scope.liquidLevelWidget = this; this.settings = {...levelCardDefaultSettings(), ...this.ctx.widgetConfig, ...this.ctx.settings}; this.declareStyles(); - } - public onInit() { this.getData().subscribe(data => { if (data) { const { svg, volume, units } = data; - if (svg && isString(svg) && this.ctx.$container) { - this.ctx.$container.html(svg); - this.svg = this.ctx.$container.find('svg'); + if (svg && isString(svg) && this.elementRef.nativeElement) { + const jQueryContainerElement = $(this.elementRef.nativeElement); + jQueryContainerElement.html(svg); + this.svg = jQueryContainerElement.find('svg'); this.svg.on('click', this.cardClick.bind(this)); this.createSVG(); this.createValueElement(); @@ -247,9 +249,10 @@ export class LiquidLevelWidgetComponent implements OnInit { } private createValueElement(): void { - const containerOverlay = this.ctx.$container.find('.container-overlay'); - const percentageOverlay = this.ctx.$container.find('.percentage-overlay'); - const absoluteOverlay = this.ctx.$container.find('.absolute-overlay'); + const jQueryContainerElement = $(this.elementRef.nativeElement); + const containerOverlay = jQueryContainerElement.find('.container-overlay'); + const percentageOverlay = jQueryContainerElement.find('.percentage-overlay'); + const absoluteOverlay = jQueryContainerElement.find('.absolute-overlay'); if (this.settings.layout === LevelCardLayout.absolute) { this.overlayContainer = absoluteOverlay; @@ -350,8 +353,9 @@ export class LiquidLevelWidgetComponent implements OnInit { private updateLevel(newY: number, percentage: number): void { this.liquidColor.update(percentage); - const fill = this.ctx.$container.find('.tb-liquid-fill'); - const surfaces = this.ctx.$container.find('.tb-liquid-surface'); + const jQueryContainerElement = $(this.elementRef.nativeElement); + const fill = jQueryContainerElement.find('.tb-liquid-fill'); + const surfaces = jQueryContainerElement.find('.tb-liquid-surface'); const surfacePositionAttr = this.shape !== Shapes.vCylinder ? 'y' : 'cy'; const animationSpeed = 500; @@ -377,8 +381,9 @@ export class LiquidLevelWidgetComponent implements OnInit { } private updateShapeColor(value: number): void { - const shapeStrokes = this.ctx.$container.find('.tb-shape-stroke'); - const shapeFill = this.ctx.$container.find('.tb-shape-fill'); + const jQueryContainerElement = $(this.elementRef.nativeElement); + const shapeStrokes = jQueryContainerElement.find('.tb-shape-stroke'); + const shapeFill = jQueryContainerElement.find('.tb-shape-fill'); this.tankColor.update(value); shapeStrokes.each((index, element) => { @@ -393,6 +398,7 @@ export class LiquidLevelWidgetComponent implements OnInit { private updateValueElement(data: number, percentage: number): void { let content: string; let container: JQuery; + const jQueryContainerElement = $(this.elementRef.nativeElement); const value = convertLiters(data, this.widgetUnits as CapacityUnits, ConversionType.from) .toFixed(this.settings.decimals || 0); @@ -412,12 +418,12 @@ export class LiquidLevelWidgetComponent implements OnInit { const volumeTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.volumeFont), color: this.volumeColor.color}); - container = this.ctx.$container.find('.absolute-value-container'); + container = jQueryContainerElement.find('.absolute-value-container'); content = createAbsoluteLayout({inputValue: value, volume}, {valueStyle: valueTextStyle, volumeStyle: volumeTextStyle}, this.widgetUnits); } else if (this.settings.layout === LevelCardLayout.percentage) { - container = this.ctx.$container.find('.percentage-value-container'); + container = jQueryContainerElement.find('.percentage-value-container'); content = createPercentLayout(value, valueTextStyle); } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index 5b51b2f277..a8cc7d2a29 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -369,13 +369,14 @@ export const valueContainerStyleDefaults = cssTextFromInlineStyle({ 'align-items': 'center', 'align-content': 'center', 'justify-content': 'center', + 'font-family': 'Roboto, Helvetica Neue, sans-serif' }); -export const valueTextStyleDefaults = 'letterSpacing: normal; font-style: normal; font-weight: 500; line-height: 100%;' + - ' font-size: 24px; font-family: Roboto; color: #000000DE'; +export const valueTextStyleDefaults = 'letter-spacing: normal; font-style: normal; font-weight: 500; line-height: 100%;' + + ' font-size: 24px; font-family: Roboto, Helvetica Neue, sans-serif; color: #000000DE'; -export const volumeTextStyleDefaults = 'letterSpacing: normal; font-style: normal; font-weight: 500;' + - ' line-height: 100%; font-size: 14px; font-family: Roboto; color: rgba(0, 0, 0, 0.18)'; +export const volumeTextStyleDefaults = 'letter-spacing: normal; font-style: normal; font-weight: 500;' + + ' line-height: 100%; font-size: 14px; font-family: Roboto, Helvetica Neue, sans-serif; color: rgba(0, 0, 0, 0.18)'; export const createAbsoluteLayout = (values?: {inputValue: number | string; volume: number | string}, styles?: {valueStyle: string; volumeStyle: string}, diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html similarity index 94% rename from ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html rename to ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html index 30fd2abaea..94ef1b1e20 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html @@ -158,12 +158,12 @@
widgets.liquid-level-card.color-and-font
widgets.liquid-level-card.tank-color
- +
widgets.liquid-level-card.liquid-color
- +
- +
@@ -183,7 +183,7 @@ - + @@ -191,7 +191,7 @@ {{ 'widgets.liquid-level-card.background-overlay' | translate }} - + @@ -225,7 +225,7 @@ - + @@ -238,13 +238,13 @@ - +
widgets.liquid-level-card.tooltip-background
- +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.ts similarity index 97% rename from ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts rename to ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.ts index f90aac8205..23088aac81 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.ts @@ -67,18 +67,18 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon const datasourceUnits = this.levelCardWidgetSettingsForm.get('datasourceUnits').value; const layout: LevelCardLayout = this.levelCardWidgetSettingsForm.get('layout').value; const widgetUnits = this.levelCardWidgetSettingsForm.get('units').value; - return !(datasourceUnits === CapacityUnits.percent && layout !== LevelCardLayout.absolute - || (datasourceUnits === CapacityUnits.percent && widgetUnits === CapacityUnits.percent)); + + if (layout === LevelCardLayout.absolute) { + return true; + } + + return !(datasourceUnits === CapacityUnits.percent && widgetUnits === CapacityUnits.percent); } public get widgetUnitsInput(): boolean { const layout: LevelCardLayout = this.levelCardWidgetSettingsForm.get('layout').value; - if (layout === LevelCardLayout.absolute) { - const datasourceUnits = this.levelCardWidgetSettingsForm.get('datasourceUnits').value; - return !(datasourceUnits === CapacityUnits.percent); - } - return false; + return layout === LevelCardLayout.absolute; } public get datasource(): Datasource { @@ -239,8 +239,10 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon } if (trigger === 'datasourceUnits' || trigger === 'layout' || trigger === 'units') { - if (datasourceUnits === CapacityUnits.percent && (layout !== LevelCardLayout.absolute) - || (datasourceUnits === CapacityUnits.percent && widgetUnits?.value === CapacityUnits.percent) + if ( + datasourceUnits === CapacityUnits.percent && + layout !== LevelCardLayout.absolute && + (!widgetUnits?.value || widgetUnits?.value === CapacityUnits.percent) ) { volumeSource.disable({emitEvent: false}); this.levelCardWidgetSettingsForm.get('volumeConstant').disable({emitEvent: false}); 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 7048c15c86..93749fadb5 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 @@ -302,7 +302,7 @@ import { } from '@home/components/widget/lib/settings/cards/progress-bar-widget-settings.component'; import { LiquidLevelCardWidgetSettingsComponent -} from '@home/components/widget/lib/settings/cards/liquid-level-card-widget-settings.component'; +} from '@home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component'; @NgModule({ declarations: [ From e1907a329884b0e5d57f2a8b5ee53104183b129c Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Wed, 25 Oct 2023 10:36:36 +0300 Subject: [PATCH 21/56] UI: Removed unnecessary style properties and decorators in liquid level widget --- .../widget/lib/indicator/liquid-level-widget.component.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts index 35266a241b..cd902287ec 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts @@ -14,7 +14,7 @@ /// limitations under the License. /// - +import { Component, ElementRef, Input, OnInit } from '@angular/core'; import { WidgetContext } from '@home/models/widget-component.models'; import { isDefined, isDefinedAndNotNull, isNumber, isString } from '@core/utils'; import { @@ -44,7 +44,6 @@ import { } from '@shared/models/widget-settings.models'; import { ResourcesService } from '@core/services/resources.service'; import { NULL_UUID } from '@shared/models/id/has-uuid'; -import { Component, ElementRef, Host, HostBinding, Input, OnInit } from '@angular/core'; import ITooltipsterInstance = JQueryTooltipster.ITooltipsterInstance; @@ -54,9 +53,6 @@ import ITooltipsterInstance = JQueryTooltipster.ITooltipsterInstance; }) export class LiquidLevelWidgetComponent implements OnInit { - @HostBinding('style.width') width = '100%'; - @HostBinding('style.height') height = '100%'; - @Input() ctx: WidgetContext; @@ -96,7 +92,7 @@ export class LiquidLevelWidgetComponent implements OnInit { widgetUnits: string; - constructor(@Host() private elementRef: ElementRef) { + constructor(private elementRef: ElementRef) { } ngOnInit(): void { From adfdc3bcb062db8036e621b4705b9139318d7396 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Wed, 25 Oct 2023 10:54:47 +0300 Subject: [PATCH 22/56] UI: Update default config for gauge widget --- .../src/main/data/json/system/widget_types/compass.json | 3 +-- .../src/main/data/json/system/widget_types/radial_gauge.json | 3 +-- .../src/main/data/json/system/widget_types/speed_gauge.json | 3 +-- .../json/system/widget_types/temperature_radial_gauge.json | 3 +-- .../main/data/json/system/widget_types/thermometer_scale.json | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) 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 a44887f49f..9fc926145a 100644 --- a/application/src/main/data/json/system/widget_types/compass.json +++ b/application/src/main/data/json/system/widget_types/compass.json @@ -16,7 +16,6 @@ "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\":\"\"}" - }, + "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 } \ No newline at end of file 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 dc6d04f744..d3da6ef045 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 @@ -16,7 +16,6 @@ "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\":\"\"}" - }, + "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/speed_gauge.json b/application/src/main/data/json/system/widget_types/speed_gauge.json index 9a2850bfb4..e6853629ce 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 @@ -16,7 +16,6 @@ "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\":\"\"}" - }, + "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/temperature_radial_gauge.json b/application/src/main/data/json/system/widget_types/temperature_radial_gauge.json index adf1ca2cae..1f5de24fec 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 @@ -16,7 +16,6 @@ "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\":\"\"}" - }, + "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/thermometer_scale.json b/application/src/main/data/json/system/widget_types/thermometer_scale.json index 0f496a9dee..0dfcdd3a42 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 @@ -16,7 +16,6 @@ "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\":\"\"}" - }, + "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 From 0ebe320421a225f507b0a60852ed0dc29e88ca79 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Wed, 25 Oct 2023 11:44:06 +0300 Subject: [PATCH 23/56] UI: Fixed reflected html injection via login error --- ui-ngx/src/app/core/auth/auth.service.ts | 3 ++- .../shared/components/dialog/alert-dialog.component.html | 7 ++++++- .../app/shared/components/dialog/alert-dialog.component.ts | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ui-ngx/src/app/core/auth/auth.service.ts b/ui-ngx/src/app/core/auth/auth.service.ts index f4777aae29..875cef30d1 100644 --- a/ui-ngx/src/app/core/auth/auth.service.ts +++ b/ui-ngx/src/app/core/auth/auth.service.ts @@ -370,7 +370,8 @@ export class AuthService { data: { title: translations['login.error'], message: loginError, - ok: translations['action.close'] + ok: translations['action.close'], + textMode: true } }; this.dialog.open(AlertDialogComponent, dialogConfig); diff --git a/ui-ngx/src/app/shared/components/dialog/alert-dialog.component.html b/ui-ngx/src/app/shared/components/dialog/alert-dialog.component.html index de56079efd..fb0c93b491 100644 --- a/ui-ngx/src/app/shared/components/dialog/alert-dialog.component.html +++ b/ui-ngx/src/app/shared/components/dialog/alert-dialog.component.html @@ -16,7 +16,12 @@ -->

{{data.title}}

-
+ +
+
+ +
+
diff --git a/ui-ngx/src/app/shared/components/dialog/alert-dialog.component.ts b/ui-ngx/src/app/shared/components/dialog/alert-dialog.component.ts index c29d66b1cc..c7c26bc7a2 100644 --- a/ui-ngx/src/app/shared/components/dialog/alert-dialog.component.ts +++ b/ui-ngx/src/app/shared/components/dialog/alert-dialog.component.ts @@ -21,6 +21,7 @@ export interface AlertDialogData { title: string; message: string; ok: string; + textMode?: boolean; } @Component({ From 62019ffd680c7f3e8da3f4a25b56a5fb32e04ce9 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Wed, 25 Oct 2023 11:45:01 +0300 Subject: [PATCH 24/56] UI: Refactoring font panel disabled line height --- .../lib/settings/common/font-settings-panel.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.html index 44163fae26..c5687be400 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.html @@ -73,7 +73,7 @@
-
+
widgets.widget-font.line-height
From e35e8e7a210cd1fe8c52551102d7172d7662af57 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Wed, 25 Oct 2023 12:47:28 +0300 Subject: [PATCH 25/56] UI: Refactoring --- .../common/color-range-list.component.ts | 29 +++++++----- .../common/color-range-panel.component.ts | 6 +-- .../common/color-settings-panel.component.ts | 44 ++----------------- 3 files changed, 23 insertions(+), 56 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.ts index 88a13850a2..f135d77092 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-list.component.ts @@ -14,7 +14,7 @@ /// limitations under the License. /// -import { Component, forwardRef, Input, OnInit } from '@angular/core'; +import { Component, forwardRef, Input, OnDestroy, OnInit } from '@angular/core'; import { AbstractControl, ControlValueAccessor, @@ -24,9 +24,10 @@ import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; -import { MatDialog } from '@angular/material/dialog'; import { ColorRange } from '@shared/models/widget-settings.models'; import { TbPopoverComponent } from '@shared/components/popover.component'; +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'tb-color-range-list', @@ -40,9 +41,10 @@ import { TbPopoverComponent } from '@shared/components/popover.component'; } ] }) -export class ColorRangeListComponent implements OnInit, ControlValueAccessor { +export class ColorRangeListComponent implements OnInit, ControlValueAccessor, OnDestroy { - @Input() disabled: boolean; + @Input() + disabled: boolean; @Input() popover: TbPopoverComponent; @@ -54,23 +56,26 @@ export class ColorRangeListComponent implements OnInit, ControlValueAccessor { colorRangeListFormGroup: UntypedFormGroup; - private propagateChange = null; + private destroy$ = new Subject(); - constructor(private fb: UntypedFormBuilder, - public dialog: MatDialog) { + private propagateChange = null; - } + constructor(private fb: UntypedFormBuilder) {} ngOnInit(): void { this.colorRangeListFormGroup = this.fb.group({ rangeList: this.fb.array([]) }); - this.colorRangeListFormGroup.valueChanges.subscribe(() => { - this.updateModel(); - }); + this.colorRangeListFormGroup.valueChanges.pipe( + takeUntil(this.destroy$) + ).subscribe(() => this.updateModel()); } + ngOnDestroy() { + this.destroy$.next(); + this.destroy$.complete(); + } registerOnChange(fn: any): void { this.propagateChange = fn; @@ -89,7 +94,7 @@ export class ColorRangeListComponent implements OnInit, ControlValueAccessor { } } - private colorRangeControl(range: ColorRange): AbstractControl { + private colorRangeControl(range: ColorRange): UntypedFormGroup { return this.fb.group({ from: [range?.from, []], to: [range?.to, []], diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.ts index 3fbc0842b0..bdc9500605 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-panel.component.ts @@ -55,11 +55,9 @@ export class ColorRangePanelComponent extends PageComponent implements OnInit { } ngOnInit(): void { - this.colorRangeFormGroup = this.fb.group( - { + this.colorRangeFormGroup = this.fb.group({ rangeList: [this.colorRangeSettings, []] - } - ); + }); } copyColorSettings(comp: ColorRangeSettingsComponent) { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-settings-panel.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-settings-panel.component.ts index cd4724f67b..26d838abc0 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-settings-panel.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-settings-panel.component.ts @@ -16,9 +16,9 @@ import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core'; import { PageComponent } from '@shared/components/page.component'; -import { ColorRange, ColorSettings, ColorType, colorTypeTranslations } from '@shared/models/widget-settings.models'; +import { ColorSettings, ColorType, colorTypeTranslations } from '@shared/models/widget-settings.models'; import { TbPopoverComponent } from '@shared/components/popover.component'; -import { AbstractControl, FormGroup, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { deepClone } from '@core/utils'; @@ -76,51 +76,15 @@ export class ColorSettingsPanelComponent extends PageComponent implements OnInit }); } - private colorRangeControl(range: ColorRange): AbstractControl { - return this.fb.group({ - from: [range?.from, []], - to: [range?.to, []], - color: [range?.color, []] - }); - } - - get rangeListFormArray(): UntypedFormArray { - return this.colorSettingsFormGroup.get('rangeList') as UntypedFormArray; - } - - get rangeListFormGroups(): FormGroup[] { - return this.rangeListFormArray.controls as FormGroup[]; - } - - trackByRange(index: number, rangeControl: AbstractControl): any { - return rangeControl; - } - - removeRange(index: number) { - this.rangeListFormArray.removeAt(index); - this.colorSettingsFormGroup.markAsDirty(); - setTimeout(() => {this.popover?.updatePosition();}, 0); - } - - addRange() { - const newRange: ColorRange = { - color: 'rgba(0,0,0,0.87)' - }; - this.rangeListFormArray.push(this.colorRangeControl(newRange)); - this.colorSettingsFormGroup.markAsDirty(); - setTimeout(() => {this.popover?.updatePosition();}, 0); - } - copyColorSettings(comp: ColorSettingsComponent) { const sourceSettings = deepClone(comp.modelValue); this.colorSettings = sourceSettings; this.colorSettingsFormGroup.patchValue({ type: this.colorSettings.type, color: this.colorSettings.color, - colorFunction: this.colorSettings.colorFunction + colorFunction: this.colorSettings.colorFunction, + rangeList: this.colorSettings.rangeList || [] }, {emitEvent: false}); - this.colorSettingsFormGroup.setControl('rangeList', - this.fb.array((this.colorSettings.rangeList || []).map(r => this.colorRangeControl(r))), {emitEvent: false}); this.colorSettingsFormGroup.markAsDirty(); } From de5747c67b7b06c2811594f5bfc3faacb64c9133 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Wed, 25 Oct 2023 13:14:47 +0300 Subject: [PATCH 26/56] Added delete system bundle liquid_level_widgets when updated --- .../server/service/install/DefaultSystemDataLoaderService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java index 892eb996bf..37f5b16b26 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java @@ -534,6 +534,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { this.deleteSystemWidgetBundle("count_widgets"); this.deleteSystemWidgetBundle("status_indicators"); this.deleteSystemWidgetBundle("outdoor_environment"); + this.deleteSystemWidgetBundle("liquid_level_widgets"); installScripts.loadSystemWidgets(); } From eb6aa39a51dc90c6c9c1e6a88ea92af06f4cba09 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Wed, 25 Oct 2023 14:29:52 +0300 Subject: [PATCH 27/56] UI: Fixed rule chain selector padding --- .../components/rule-chain/rule-chain-select.component.scss | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui-ngx/src/app/shared/components/rule-chain/rule-chain-select.component.scss b/ui-ngx/src/app/shared/components/rule-chain/rule-chain-select.component.scss index c69661ad76..9cbb97cba9 100644 --- a/ui-ngx/src/app/shared/components/rule-chain/rule-chain-select.component.scss +++ b/ui-ngx/src/app/shared/components/rule-chain/rule-chain-select.component.scss @@ -16,7 +16,10 @@ :host { min-width: 52px; width: 100%; - padding: 0 6px; + padding: 0; + .tb-rule-select { + width: 100%; + } .tb-rule-chain-select { display: flex; min-height: 100%; From 5d8596ae6321d1facbcc5028bec401d31b456ca7 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Wed, 25 Oct 2023 15:16:24 +0300 Subject: [PATCH 28/56] UI: Fixed incorrect work animation and fixed fill size in liquid level --- .../liquid-level-widget.component.ts | 31 +++++++------------ .../indicator/liquid-level-widget.models.ts | 6 ++-- .../shapes/horizontal-cylinder.svg | 2 +- .../shapes/horizontal-ellipse.svg | 2 +- .../liquid-level/shapes/horizontal-oval.svg | 2 +- .../liquid-level/shapes/vertical-oval.svg | 2 +- 6 files changed, 18 insertions(+), 27 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts index cd902287ec..3f75ce1ee9 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts @@ -331,7 +331,7 @@ export class LiquidLevelWidgetComponent implements OnInit { } private calculatePosition(percentage: number, limits: SvgLimits): number { - if (percentage > 100) { + if (percentage >= 100) { return limits.max; } if (percentage <= 0) { return limits.min; @@ -355,25 +355,16 @@ export class LiquidLevelWidgetComponent implements OnInit { const surfacePositionAttr = this.shape !== Shapes.vCylinder ? 'y' : 'cy'; const animationSpeed = 500; - if (percentage > 1) { - fill.css('visibility', 'visible'); - fill.animate({y : newY}, animationSpeed); - fill.attr('fill', this.liquidColor.color); - - surfaces.each((index, element) => { - const $element = $(element); - $element.css('visibility', 'visible'); - $element.animate({[surfacePositionAttr]: newY}, animationSpeed); - if ($element.hasClass('tb-liquid')) { - $element.attr('fill', this.liquidColor.color); - } - }); - } else { - fill.css('visibility', 'hidden').stop().clearQueue(); - surfaces.each((index, element) => { - $(element).css('visibility', 'hidden').stop().clearQueue(); - }); - } + fill.animate({y : newY}, animationSpeed); + fill.attr('fill', this.liquidColor.color); + + surfaces.each((index, element) => { + const $element = $(element); + $element.animate({[surfacePositionAttr]: newY}, animationSpeed); + if ($element.hasClass('tb-liquid')) { + $element.attr('fill', this.liquidColor.color); + } + }); } private updateShapeColor(value: number): void { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index a8cc7d2a29..0a0c784a94 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -131,7 +131,7 @@ export const svgMapping = new Map( Shapes.vOval, { svg: 'assets/widget/liquid-level/shapes/vertical-oval.svg', - limits: { min: 170, max: 50 } + limits: { min: 170, max: 51 } } ], [ @@ -166,7 +166,7 @@ export const svgMapping = new Map( Shapes.hEllipse, { svg: 'assets/widget/liquid-level/shapes/horizontal-ellipse.svg', - limits: { min: 160, max: 65 } + limits: { min: 160, max: 64 } } ], [ @@ -180,7 +180,7 @@ export const svgMapping = new Map( Shapes.hCylinder, { svg: 'assets/widget/liquid-level/shapes/horizontal-cylinder.svg', - limits: { min: 165, max: 55 } + limits: { min: 165, max: 56 } } ], [ diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg index b766e3e619..e942157c20 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg @@ -8,7 +8,7 @@ - + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg index 40f76dc505..736052b37a 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg @@ -9,7 +9,7 @@ - + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg index 81430aa60a..654b7629d9 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg @@ -9,7 +9,7 @@ - + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg index ec8176a51f..5193ab4a26 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg @@ -8,7 +8,7 @@ - + From 660e2b82ab52c7e15df2c8acb9d5fac3d7f9a1f7 Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Wed, 25 Oct 2023 16:45:09 +0300 Subject: [PATCH 29/56] UI: liquid level widget edtitions for config, styles, some images etc. --- .../widget_types/horizontal_2_1_elliptical_tank.json | 2 +- .../system/widget_types/horizontal_capsule_tank.json | 2 +- .../widget_types/horizontal_cylinder_tank.json | 2 +- .../widget_types/horizontal_dish_ends_tank.json | 2 +- .../system/widget_types/horizontal_ellipse_tank.json | 2 +- .../system/widget_types/horizontal_oval_tank.json | 2 +- .../json/system/widget_types/rectangle_tank.json | 2 +- .../system/widget_types/vertical_capsule_tank.json | 2 +- .../system/widget_types/vertical_cylinder_tank.json | 2 +- .../json/system/widget_types/vertical_oval_tank.json | 2 +- .../liquid-level-card-basic-config.component.html | 12 +++++++----- .../shapes/horizontal-2_1-elliptical.svg | 2 +- .../liquid-level/shapes/horizontal-capsule.svg | 2 +- .../liquid-level/shapes/horizontal-dish-ends.svg | 2 +- .../widget/liquid-level/shapes/vertical-capsule.svg | 2 +- 15 files changed, 21 insertions(+), 19 deletions(-) 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 c582d90811..a2aa0e5538 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 @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal 2:1 Elliptical tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" }, "externalId": null, "tags": null 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 19f3bb6cee..f5574849a1 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 @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal Capsule tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" }, "externalId": null, "tags": null 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 44fd1603ed..e73ffa7247 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 @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal Cylinder tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" }, "externalId": null, "tags": null 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 f788eadb75..47b8cb7a2c 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 @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal Dish Ends tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" }, "externalId": null, "tags": null 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 2b780548b6..214457ca1a 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 @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal Ellipse tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" }, "externalId": null, "tags": null 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 b175499013..92f41bdea0 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 @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Horizontal Oval tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" }, "externalId": null, "tags": null 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 6a60de4751..1e657c6ad9 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 @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Rectangle tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" }, "externalId": null, "tags": null 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 79e77839c0..4b3a6d7620 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 @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Vertical Capsule tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" }, "externalId": null, "tags": null 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 7d2fbf27c3..5abdb53e14 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 @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Vertical Cylinder tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" }, "externalId": null, "tags": null 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 dab3fc7eb2..9140adedcc 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 @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#242770\"},{\"from\":0,\"to\":20,\"color\":\"#E73535DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#7A8BFF\"},{\"from\":0,\"to\":20,\"color\":\"#E27C7CDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"rgba(0,0,0,0.87)\"},{\"from\":0,\"to\":20,\"color\":\"#FF0000DE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":20,\"to\":100,\"color\":\"#FFFFFFC2\"},{\"from\":0,\"to\":100,\"color\":\"#FFEFEFDE\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"}},\"title\":\"Vertical Oval tank\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" }, "externalId": null, "tags": null diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html index 8a9f8e5d26..9a939b330c 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html @@ -126,11 +126,13 @@
widgets.liquid-level-card.units
widgets.liquid-level-card.datasource-units
- - +
+ + +
widgets.liquid-level-card.widget-units
diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg index ee436787ce..467235b380 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg @@ -1,5 +1,5 @@ - + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg index 3f587b065d..0570aec4a5 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg @@ -1,5 +1,5 @@ - + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg index d0366e4d64..8f58633174 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg @@ -1,5 +1,5 @@ - + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg index 92af4943cd..ccc48d0a16 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg @@ -1,5 +1,5 @@ - + From 119f46a6848c654ddfdb99c71101531c58d7c07d Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Wed, 25 Oct 2023 17:24:38 +0300 Subject: [PATCH 30/56] UI: liquid level widgets minor configuration editions --- .../system/widget_types/horizontal_2_1_elliptical_tank.json | 4 ++-- .../json/system/widget_types/horizontal_capsule_tank.json | 4 ++-- .../json/system/widget_types/horizontal_cylinder_tank.json | 4 ++-- .../json/system/widget_types/horizontal_dish_ends_tank.json | 4 ++-- .../json/system/widget_types/horizontal_ellipse_tank.json | 4 ++-- .../data/json/system/widget_types/horizontal_oval_tank.json | 4 ++-- .../main/data/json/system/widget_types/rectangle_tank.json | 4 ++-- .../data/json/system/widget_types/vertical_capsule_tank.json | 4 ++-- .../data/json/system/widget_types/vertical_cylinder_tank.json | 4 ++-- .../data/json/system/widget_types/vertical_oval_tank.json | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) 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 a2aa0e5538..68aef96771 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 @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null 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 f5574849a1..705826f9d4 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 @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null 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 e73ffa7247..7faa341135 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 @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null 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 47b8cb7a2c..34c308ad1c 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 @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null 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 214457ca1a..40b89ccb26 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 @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null 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 92f41bdea0..89de24610e 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 @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null 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 1e657c6ad9..ac2c5dff20 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 @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null 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 4b3a6d7620..cb04cd1a44 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 @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null 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 5abdb53e14..07d0029497 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 @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null 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 9140adedcc..474a0718d0 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 @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"0px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null From 4f3b690f3678fec004442bf1ce55d00ecaf775ad Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Wed, 25 Oct 2023 17:27:20 +0300 Subject: [PATCH 31/56] UI: Fixed incorrect work animation and fixed fill size in liquid level --- .../liquid-level-widget.component.ts | 28 ++++++++++++------- .../indicator/liquid-level-widget.models.ts | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts index 3f75ce1ee9..f7de3f142f 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts @@ -124,7 +124,7 @@ export class LiquidLevelWidgetComponent implements OnInit { this.widgetUnits = units; } - this.update(); + this.update(true); } }); } @@ -169,9 +169,9 @@ export class LiquidLevelWidgetComponent implements OnInit { ); } - public update() { + public update(ignoreAnimation?: boolean) { if (this.svg) { - this.updateData(); + this.updateData(ignoreAnimation); } } @@ -188,11 +188,11 @@ export class LiquidLevelWidgetComponent implements OnInit { } } - private updateData() { + private updateData(ignoreAnimation?: boolean) { const data = this.ctx.data[0]?.data[0]?.map(value => Number(value)); if (isDefinedAndNotNull(data) && data.length && typeof Number(data[1]) === 'number') { const percentage = this.convertInputData(Number(data[1])); - this.updateSvg(percentage); + this.updateSvg(percentage, ignoreAnimation); this.updateValueElement(this.convertOutputData(percentage), percentage); if (this.settings.showTooltip) { @@ -319,7 +319,7 @@ export class LiquidLevelWidgetComponent implements OnInit { return names; } - private updateSvg(percentage: number) { + private updateSvg(percentage: number, ignoreAnimation?: boolean) { const yLimits: SvgLimits = { min: this.svgParams.limits.min, max: this.svgParams.limits.max @@ -327,7 +327,7 @@ export class LiquidLevelWidgetComponent implements OnInit { const newYPos = this.calculatePosition(percentage, yLimits); this.updateShapeColor(percentage); - this.updateLevel(newYPos, percentage); + this.updateLevel(newYPos, percentage, ignoreAnimation); } private calculatePosition(percentage: number, limits: SvgLimits): number { @@ -347,7 +347,7 @@ export class LiquidLevelWidgetComponent implements OnInit { } } - private updateLevel(newY: number, percentage: number): void { + private updateLevel(newY: number, percentage: number, ignoreAnimation = false): void { this.liquidColor.update(percentage); const jQueryContainerElement = $(this.elementRef.nativeElement); const fill = jQueryContainerElement.find('.tb-liquid-fill'); @@ -355,12 +355,20 @@ export class LiquidLevelWidgetComponent implements OnInit { const surfacePositionAttr = this.shape !== Shapes.vCylinder ? 'y' : 'cy'; const animationSpeed = 500; - fill.animate({y : newY}, animationSpeed); + if (ignoreAnimation) { + fill.css({y : newY}); + } else { + fill.animate({y : newY}, animationSpeed); + } fill.attr('fill', this.liquidColor.color); surfaces.each((index, element) => { const $element = $(element); - $element.animate({[surfacePositionAttr]: newY}, animationSpeed); + if (ignoreAnimation) { + $element.css({[surfacePositionAttr]: newY}); + } else { + $element.animate({[surfacePositionAttr]: newY}, animationSpeed); + } if ($element.hasClass('tb-liquid')) { $element.attr('fill', this.liquidColor.color); } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index 0a0c784a94..5f198946a3 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -187,7 +187,7 @@ export const svgMapping = new Map( Shapes.hCapsule, { svg: 'assets/widget/liquid-level/shapes/horizontal-capsule.svg', - limits: { min: 158, max: 52 } + limits: { min: 171, max: 52 } } ], [ From 354c131eb19fb9626daade33af259357ff09b17e Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Wed, 25 Oct 2023 18:26:02 +0300 Subject: [PATCH 32/56] UI: liquid level widget basic settings icon validaton fix --- ...iquid-level-card-basic-config.component.ts | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts index 4282d999d4..44166a9ba6 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts @@ -319,6 +319,7 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon const datasourceUnits: string = this.levelCardWidgetConfigForm.get('datasourceUnits').value; const layout: LevelCardLayout = this.levelCardWidgetConfigForm.get('layout').value; const showTitleIcon: AbstractControl = this.levelCardWidgetConfigForm.get('showTitleIcon'); + const showTitle: boolean = this.levelCardWidgetConfigForm.get('showTitle').value; const volumeSource: AbstractControl = this.levelCardWidgetConfigForm.get('volumeSource'); const units: AbstractControl = this.levelCardWidgetConfigForm.get('units'); const tooltipUnits: AbstractControl = this.levelCardWidgetConfigForm.get('tooltipUnits'); @@ -374,8 +375,7 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon } } - if (trigger === 'showTitle') { - const showTitle: boolean = this.levelCardWidgetConfigForm.get('showTitle').value; + if (trigger === 'showTitle' || !trigger) { if (showTitle) { this.levelCardWidgetConfigForm.get('title').enable({emitEvent: false}); this.levelCardWidgetConfigForm.get('titleFont').enable({emitEvent: false}); @@ -390,18 +390,20 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon emitEventFields.push('title', 'titleFont', 'titleColor', 'showTitleIcon'); } - if (showTitleIcon?.value) { - this.levelCardWidgetConfigForm.get('titleIcon').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('iconColor').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('iconSize').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('iconSizeUnit').enable({emitEvent: false}); - } else { - this.levelCardWidgetConfigForm.get('titleIcon').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('iconColor').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('iconSize').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('iconSizeUnit').disable({emitEvent: false}); + if (trigger === 'showTitleIcon' || !trigger) { + if (showTitleIcon?.value && !showTitleIcon.disabled && showTitle) { + this.levelCardWidgetConfigForm.get('titleIcon').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconColor').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconSize').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconSizeUnit').enable({emitEvent: false}); + } else { + this.levelCardWidgetConfigForm.get('titleIcon').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconColor').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconSize').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconSizeUnit').disable({emitEvent: false}); + } + emitEventFields.push('titleIcon', 'iconColor', 'iconSize', 'iconSizeUnit'); } - emitEventFields.push('titleIcon', 'iconColor', 'iconSize', 'iconSizeUnit'); if (trigger === 'showBackgroundOverlay') { const showBackgroundOverlay: boolean = this.levelCardWidgetConfigForm.get('showBackgroundOverlay').value; From e0ef872e711810b9d4ce1d6b5a7fbcf0a73d90b3 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Thu, 26 Oct 2023 10:37:49 +0300 Subject: [PATCH 33/56] UI: Revert change in liquid widgets bundle --- .../system/widget_types/horizontal_2_1_elliptical_tank.json | 4 ++-- .../json/system/widget_types/horizontal_capsule_tank.json | 4 ++-- .../json/system/widget_types/horizontal_cylinder_tank.json | 4 ++-- .../json/system/widget_types/horizontal_dish_ends_tank.json | 4 ++-- .../json/system/widget_types/horizontal_ellipse_tank.json | 4 ++-- .../data/json/system/widget_types/horizontal_oval_tank.json | 4 ++-- .../main/data/json/system/widget_types/rectangle_tank.json | 4 ++-- .../data/json/system/widget_types/vertical_capsule_tank.json | 4 ++-- .../data/json/system/widget_types/vertical_cylinder_tank.json | 4 ++-- .../data/json/system/widget_types/vertical_oval_tank.json | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) 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 68aef96771..f5afee5e43 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} 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 705826f9d4..1a3e7bf74f 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} 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 7faa341135..9098d1a245 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} 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 34c308ad1c..9a33d349b2 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ 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 40b89ccb26..bd9a352a63 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} 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 89de24610e..d973a08d5b 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} 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 ac2c5dff20..43b5eac52d 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} 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 cb04cd1a44..a23c4f4c55 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} 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 07d0029497..02049ad181 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} 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 474a0718d0..4be49252b2 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 @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} From f3e1e4af848f5757c87c6fb1df4e14d599d716c0 Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Thu, 26 Oct 2023 14:57:22 +0300 Subject: [PATCH 34/56] UI: liquid level widget fixes and editions after review and etc. --- .../json/system/widget_bundles/liquid_level.json | 2 +- .../horizontal_2_1_elliptical_tank.json | 4 ++-- .../widget_types/horizontal_capsule_tank.json | 4 ++-- .../widget_types/horizontal_cylinder_tank.json | 4 ++-- .../widget_types/horizontal_dish_ends_tank.json | 4 ++-- .../widget_types/horizontal_ellipse_tank.json | 4 ++-- .../widget_types/horizontal_oval_tank.json | 4 ++-- .../json/system/widget_types/rectangle_tank.json | 4 ++-- .../widget_types/vertical_capsule_tank.json | 4 ++-- .../widget_types/vertical_cylinder_tank.json | 4 ++-- .../system/widget_types/vertical_oval_tank.json | 4 ++-- ...liquid-level-card-basic-config.component.html | 9 +++++---- .../indicator/liquid-level-widget.component.ts | 16 ++++++++++------ .../common/image-cards-select.component.scss | 5 +++++ ...uid-level-card-widget-settings.component.html | 2 +- .../widget/lib/indicator/shape_attribute_fn.md | 2 +- 16 files changed, 43 insertions(+), 33 deletions(-) diff --git a/application/src/main/data/json/system/widget_bundles/liquid_level.json b/application/src/main/data/json/system/widget_bundles/liquid_level.json index 116d569f60..cef66c523f 100644 --- a/application/src/main/data/json/system/widget_bundles/liquid_level.json +++ b/application/src/main/data/json/system/widget_bundles/liquid_level.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "liquid_level_widgets", "title": "Liquid level widgets", - "image": "data:image/png;base64,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", + "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI5OCIgaGVpZ2h0PSI3OCIgcng9IjIiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xNC4yMzk0IDEyLjM5MTlWMTNIMTIuMDA1NFYxMi4zOTE5SDE0LjIzOTRaTTEyLjIxOTMgOC41NTA0N1YxM0gxMS40NTIzVjguNTUwNDdIMTIuMjE5M1pNMTUuNjY3NyA5LjY5MzQyVjEzSDE0LjkyODFWOS42OTM0MkgxNS42Njc3Wk0xNC44NzkyIDguODI1NTFDMTQuODc5MiA4LjcxMzQ2IDE0LjkxNTkgOC42MjA3NiAxNC45ODkyIDguNTQ3NDJDMTUuMDY0NiA4LjQ3MjA0IDE1LjE2ODUgOC40MzQzNSAxNS4zMDEgOC40MzQzNUMxNS40MzEzIDguNDM0MzUgMTUuNTM0MiA4LjQ3MjA0IDE1LjYwOTYgOC41NDc0MkMxNS42ODUgOC42MjA3NiAxNS43MjI3IDguNzEzNDYgMTUuNzIyNyA4LjgyNTUxQzE1LjcyMjcgOC45MzU1MyAxNS42ODUgOS4wMjcyMSAxNS42MDk2IDkuMTAwNTVDMTUuNTM0MiA5LjE3MzkgMTUuNDMxMyA5LjIxMDU3IDE1LjMwMSA5LjIxMDU3QzE1LjE2ODUgOS4yMTA1NyAxNS4wNjQ2IDkuMTczOSAxNC45ODkyIDkuMTAwNTVDMTQuOTE1OSA5LjAyNzIxIDE0Ljg3OTIgOC45MzU1MyAxNC44NzkyIDguODI1NTFaTTE4LjYwODcgMTQuMjcxM1YxMC4zNTA1TDE4LjY5NDMgOS42OTM0MkgxOS4zNTEzVjE0LjI3MTNIMTguNjA4N1pNMTYuNDYwNCAxMS4zODAzVjExLjMxNjFDMTYuNDYwNCAxMS4wNjU2IDE2LjQ4ODkgMTAuODM3NCAxNi41NDU5IDEwLjYzMTZDMTYuNjAzIDEwLjQyMzggMTYuNjg3NSAxMC4yNDU1IDE2Ljc5OTYgMTAuMDk2OEMxNi45MTE2IDkuOTQ4MDggMTcuMDQ4MSA5LjgzMzk5IDE3LjIwOTEgOS43NTQ1M0MxNy4zNyA5LjY3MzA0IDE3LjU1NTQgOS42MzIzIDE3Ljc2NTMgOS42MzIzQzE3Ljk2OSA5LjYzMjMgMTguMTQ2MiA5LjY3MSAxOC4yOTcgOS43NDg0MkMxOC40NDk4IDkuODI1ODQgMTguNTc4MiA5LjkzNjg4IDE4LjY4MjEgMTAuMDgxNUMxOC43ODggMTAuMjI0MSAxOC44NzI2IDEwLjM5NDMgMTguOTM1NyAxMC41OTE5QzE4Ljk5ODkgMTAuNzg5NSAxOS4wNDQ3IDExLjAwOTUgMTkuMDczMiAxMS4yNTJWMTEuNDU2N0MxOS4wNDY3IDExLjY5MzEgMTkuMDAxOSAxMS45MDkgMTguOTM4OCAxMi4xMDQ2QzE4Ljg3NTYgMTIuMzAwMiAxOC43OTExIDEyLjQ2OTMgMTguNjg1MSAxMi42MTE5QzE4LjU3OTIgMTIuNzU0NSAxOC40NDk4IDEyLjg2NTUgMTguMjk3IDEyLjk0NUMxOC4xNDQyIDEzLjAyMjQgMTcuOTY0OSAxMy4wNjExIDE3Ljc1OTIgMTMuMDYxMUMxNy41NTM0IDEzLjA2MTEgMTcuMzcgMTMuMDE5NCAxNy4yMDkxIDEyLjkzNThDMTcuMDQ4MSAxMi44NTIzIDE2LjkxMTYgMTIuNzM1MSAxNi43OTk2IDEyLjU4NDRDMTYuNjg5NiAxMi40MzE2IDE2LjYwNSAxMi4yNTMzIDE2LjU0NTkgMTIuMDQ5NkMxNi40ODg5IDExLjg0MzggMTYuNDYwNCAxMS42MjA3IDE2LjQ2MDQgMTEuMzgwM1pNMTcuMTk2OCAxMS4zMTYxVjExLjM4MDNDMTcuMTk2OCAxMS41MzExIDE3LjIxMDEgMTEuNjcyNyAxNy4yMzY2IDExLjgwNTFDMTcuMjY1MSAxMS45MzU1IDE3LjMwOTkgMTIuMDUxNiAxNy4zNzEgMTIuMTUzNUMxNy40MzIyIDEyLjI1MzMgMTcuNTA5NiAxMi4zMzE4IDE3LjYwMzMgMTIuMzg4OEMxNy42OTcgMTIuNDQ1OCAxNy44MTAxIDEyLjQ3NDQgMTcuOTQyNSAxMi40NzQ0QzE4LjExNTcgMTIuNDc0NCAxOC4yNTczIDEyLjQzNjcgMTguMzY3MyAxMi4zNjEzQzE4LjQ3OTMgMTIuMjg1OSAxOC41NjQ5IDEyLjE4NTEgMTguNjI0IDEyLjA1ODhDMTguNjg1MSAxMS45MzA0IDE4LjcyNzkgMTEuNzg4OCAxOC43NTI0IDExLjYzNFYxMS4wODA4QzE4LjczODEgMTAuOTYwNiAxOC43MTI2IDEwLjg0ODYgMTguNjc2IDEwLjc0NDdDMTguNjM5MyAxMC42Mzg3IDE4LjU4ODMgMTAuNTQ3MSAxOC41MjMyIDEwLjQ2OTZDMTguNDYgMTAuMzkwMiAxOC4zODA1IDEwLjMyOTEgMTguMjg0OCAxMC4yODYzQzE4LjE5MTEgMTAuMjQxNSAxOC4wNzkgMTAuMjE5IDE3Ljk0ODYgMTAuMjE5QzE3LjgxNjIgMTAuMjE5IDE3LjcwMjEgMTAuMjQ3NiAxNy42MDY0IDEwLjMwNDZDMTcuNTEwNiAxMC4zNjE3IDE3LjQzMjIgMTAuNDQxMSAxNy4zNzEgMTAuNTQzQzE3LjMxMiAxMC42NDI4IDE3LjI2ODIgMTAuNzU4OSAxNy4yMzk2IDEwLjg5MTRDMTcuMjExMSAxMS4wMjM4IDE3LjE5NjggMTEuMTY1NCAxNy4xOTY4IDExLjMxNjFaTTIyLjI0OTYgMTIuMjIwN1Y5LjY5MzQySDIyLjk4OTFWMTNIMjIuMjkyNEwyMi4yNDk2IDEyLjIyMDdaTTIyLjM1MzUgMTEuNTMzMUwyMi42MDEgMTEuNTI3QzIyLjYwMSAxMS43NDkxIDIyLjU3NjYgMTEuOTUzOCAyMi41Mjc3IDEyLjE0MTNDMjIuNDc4OCAxMi4zMjY3IDIyLjQwMzQgMTIuNDg4NiAyMi4zMDE1IDEyLjYyNzJDMjIuMTk5NyAxMi43NjM3IDIyLjA2OTMgMTIuODcwNiAyMS45MTA0IDEyLjk0OEMyMS43NTE1IDEzLjAyMzQgMjEuNTYxIDEzLjA2MTEgMjEuMzM4OSAxMy4wNjExQzIxLjE3NzkgMTMuMDYxMSAyMS4wMzAyIDEzLjAzNzcgMjAuODk1OCAxMi45OTA4QzIwLjc2MTMgMTIuOTQ0IDIwLjY0NTIgMTIuODcxNiAyMC41NDc0IDEyLjc3MzlDMjAuNDUxNiAxMi42NzYxIDIwLjM3NzMgMTIuNTQ4NyAyMC4zMjQzIDEyLjM5MTlDMjAuMjcxMyAxMi4yMzUgMjAuMjQ0OSAxMi4wNDc1IDIwLjI0NDkgMTEuODI5NlY5LjY5MzQySDIwLjk4MTNWMTEuODM1N0MyMC45ODEzIDExLjk1NTkgMjAuOTk1NiAxMi4wNTY3IDIxLjAyNDEgMTIuMTM4MkMyMS4wNTI3IDEyLjIxNzcgMjEuMDkxNCAxMi4yODE4IDIxLjE0MDMgMTIuMzMwN0MyMS4xODkyIDEyLjM3OTYgMjEuMjQ2MiAxMi40MTQzIDIxLjMxMTQgMTIuNDM0NkMyMS4zNzY2IDEyLjQ1NSAyMS40NDU5IDEyLjQ2NTIgMjEuNTE5MiAxMi40NjUyQzIxLjcyOSAxMi40NjUyIDIxLjg5NDEgMTIuNDI0NSAyMi4wMTQzIDEyLjM0M0MyMi4xMzY1IDEyLjI1OTQgMjIuMjIzMSAxMi4xNDc0IDIyLjI3NCAxMi4wMDY4QzIyLjMyNyAxMS44NjYyIDIyLjM1MzUgMTEuNzA4MyAyMi4zNTM1IDExLjUzMzFaTTI0LjY1MjggOS42OTM0MlYxM0gyMy45MTMyVjkuNjkzNDJIMjQuNjUyOFpNMjMuODY0MyA4LjgyNTUxQzIzLjg2NDMgOC43MTM0NiAyMy45MDEgOC42MjA3NiAyMy45NzQzIDguNTQ3NDJDMjQuMDQ5NyA4LjQ3MjA0IDI0LjE1MzYgOC40MzQzNSAyNC4yODYgOC40MzQzNUMyNC40MTY0IDguNDM0MzUgMjQuNTE5MyA4LjQ3MjA0IDI0LjU5NDcgOC41NDc0MkMyNC42NzAxIDguNjIwNzYgMjQuNzA3OCA4LjcxMzQ2IDI0LjcwNzggOC44MjU1MUMyNC43MDc4IDguOTM1NTMgMjQuNjcwMSA5LjAyNzIxIDI0LjU5NDcgOS4xMDA1NUMyNC41MTkzIDkuMTczOSAyNC40MTY0IDkuMjEwNTcgMjQuMjg2IDkuMjEwNTdDMjQuMTUzNiA5LjIxMDU3IDI0LjA0OTcgOS4xNzM5IDIzLjk3NDMgOS4xMDA1NUMyMy45MDEgOS4wMjcyMSAyMy44NjQzIDguOTM1NTMgMjMuODY0MyA4LjgyNTUxWk0yNy41OTY5IDEyLjMxNTVWOC4zMDU5OUgyOC4zMzY0VjEzSDI3LjY2NzJMMjcuNTk2OSAxMi4zMTU1Wk0yNS40NDU0IDExLjM4MzRWMTEuMzE5MkMyNS40NDU0IDExLjA2ODYgMjUuNDc1IDEwLjg0MDQgMjUuNTM0MSAxMC42MzQ3QzI1LjU5MzIgMTAuNDI2OSAyNS42Nzg3IDEwLjI0ODYgMjUuNzkwOCAxMC4wOTk5QzI1LjkwMjggOS45NDkxIDI2LjAzOTMgOS44MzM5OSAyNi4yMDAzIDkuNzU0NTNDMjYuMzYxMiA5LjY3MzA0IDI2LjU0MjUgOS42MzIzIDI2Ljc0NDIgOS42MzIzQzI2Ljk0MzkgOS42MzIzIDI3LjExOTEgOS42NzEgMjcuMjY5OSA5Ljc0ODQyQzI3LjQyMDYgOS44MjU4NCAyNy41NDkgOS45MzY4OCAyNy42NTQ5IDEwLjA4MTVDMjcuNzYwOSAxMC4yMjQxIDI3Ljg0NTQgMTAuMzk1MyAyNy45MDg2IDEwLjU5NDlDMjcuOTcxNyAxMC43OTI2IDI4LjAxNjYgMTEuMDEyNiAyOC4wNDMgMTEuMjU1VjExLjQ1OThDMjguMDE2NiAxMS42OTYxIDI3Ljk3MTcgMTEuOTEyMSAyNy45MDg2IDEyLjEwNzZDMjcuODQ1NCAxMi4zMDMyIDI3Ljc2MDkgMTIuNDcyMyAyNy42NTQ5IDEyLjYxNDlDMjcuNTQ5IDEyLjc1NzYgMjcuNDE5NiAxMi44Njc2IDI3LjI2NjggMTIuOTQ1QzI3LjExNjEgMTMuMDIyNCAyNi45Mzk4IDEzLjA2MTEgMjYuNzM4MSAxMy4wNjExQzI2LjUzODUgMTMuMDYxMSAyNi4zNTgyIDEzLjAxOTQgMjYuMTk3MiAxMi45MzU4QzI2LjAzODMgMTIuODUyMyAyNS45MDI4IDEyLjczNTEgMjUuNzkwOCAxMi41ODQ0QzI1LjY3ODcgMTIuNDMzNiAyNS41OTMyIDEyLjI1NjQgMjUuNTM0MSAxMi4wNTI2QzI1LjQ3NSAxMS44NDY5IDI1LjQ0NTQgMTEuNjIzOCAyNS40NDU0IDExLjM4MzRaTTI2LjE4MTkgMTEuMzE5MlYxMS4zODM0QzI2LjE4MTkgMTEuNTM0MSAyNi4xOTUyIDExLjY3NDcgMjYuMjIxNyAxMS44MDUxQzI2LjI1MDIgMTEuOTM1NSAyNi4yOTQgMTIuMDUwNiAyNi4zNTMxIDEyLjE1MDRDMjYuNDEyMiAxMi4yNDgyIDI2LjQ4ODYgMTIuMzI1NiAyNi41ODIzIDEyLjM4MjdDMjYuNjc4IDEyLjQzNzcgMjYuNzkyMSAxMi40NjUyIDI2LjkyNDUgMTIuNDY1MkMyNy4wOTE2IDEyLjQ2NTIgMjcuMjI5MSAxMi40Mjg1IDI3LjMzNzEgMTIuMzU1MkMyNy40NDUxIDEyLjI4MTggMjcuNTI5NiAxMi4xODMgMjcuNTkwOCAxMi4wNTg4QzI3LjY1MzkgMTEuOTMyNCAyNy42OTY3IDExLjc5MTkgMjcuNzE5MSAxMS42MzdWMTEuMDgzOUMyNy43MDY5IDEwLjk2MzcgMjcuNjgxNCAxMC44NTE2IDI3LjY0MjcgMTAuNzQ3N0MyNy42MDYgMTAuNjQzOCAyNy41NTYxIDEwLjU1MzIgMjcuNDkzIDEwLjQ3NTdDMjcuNDI5OCAxMC4zOTYzIDI3LjM1MTQgMTAuMzM1MiAyNy4yNTc3IDEwLjI5MjRDMjcuMTY2IDEwLjI0NzYgMjcuMDU3IDEwLjIyNTIgMjYuOTMwNyAxMC4yMjUyQzI2Ljc5NjIgMTAuMjI1MiAyNi42ODIxIDEwLjI1MzcgMjYuNTg4NCAxMC4zMTA3QzI2LjQ5NDcgMTAuMzY3OCAyNi40MTczIDEwLjQ0NjIgMjYuMzU2MSAxMC41NDZDMjYuMjk3IDEwLjY0NTkgMjYuMjUzMiAxMC43NjIgMjYuMjI0NyAxMC44OTQ0QzI2LjE5NjIgMTEuMDI2OCAyNi4xODE5IDExLjE2ODQgMjYuMTgxOSAxMS4zMTkyWk0zMS42OTQyIDguMzA1OTlWMTNIMzAuOTU0N1Y4LjMwNTk5SDMxLjY5NDJaTTM0LjA3OTEgMTMuMDYxMUMzMy44MzQ2IDEzLjA2MTEgMzMuNjEzNiAxMy4wMjE0IDMzLjQxNTkgMTIuOTQxOUMzMy4yMjA0IDEyLjg2MDQgMzMuMDUzMyAxMi43NDc0IDMyLjkxNDggMTIuNjAyN0MzMi43NzgzIDEyLjQ1ODEgMzIuNjczMyAxMi4yODggMzIuNiAxMi4wOTI0QzMyLjUyNjcgMTEuODk2OCAzMi40OSAxMS42ODU5IDMyLjQ5IDExLjQ1OThWMTEuMzM3NUMzMi40OSAxMS4wNzg4IDMyLjUyNzcgMTAuODQ0NSAzMi42MDMxIDEwLjYzNDdDMzIuNjc4NCAxMC40MjQ4IDMyLjc4MzQgMTAuMjQ1NSAzMi45MTc4IDEwLjA5NjhDMzMuMDUyMyA5Ljk0NjA0IDMzLjIxMTIgOS44MzA5MyAzMy4zOTQ2IDkuNzUxNDhDMzMuNTc3OSA5LjY3MjAyIDMzLjc3NjYgOS42MzIzIDMzLjk5MDUgOS42MzIzQzM0LjIyNjggOS42MzIzIDM0LjQzMzYgOS42NzIwMiAzNC42MTA4IDkuNzUxNDhDMzQuNzg4MSA5LjgzMDkzIDM0LjkzNDggOS45NDI5OSAzNS4wNTA5IDEwLjA4NzZDMzUuMTY5MSAxMC4yMzAzIDM1LjI1NjcgMTAuNDAwNCAzNS4zMTM3IDEwLjU5OEMzNS4zNzI4IDEwLjc5NTYgMzUuNDAyMyAxMS4wMTM2IDM1LjQwMjMgMTEuMjUyVjExLjU2NjdIMzIuODQ3NVYxMS4wMzgxSDM0LjY3NVYxMC45OEMzNC42NzA5IDEwLjg0NzYgMzQuNjQ0NSAxMC43MjMzIDM0LjU5NTYgMTAuNjA3MkMzNC41NDg3IDEwLjQ5MSAzNC40NzY0IDEwLjM5NzMgMzQuMzc4NiAxMC4zMjZDMzQuMjgwOCAxMC4yNTQ3IDM0LjE1MDQgMTAuMjE5IDMzLjk4NzQgMTAuMjE5QzMzLjg2NTIgMTAuMjE5IDMzLjc1NjIgMTAuMjQ1NSAzMy42NjA0IDEwLjI5ODVDMzMuNTY2NyAxMC4zNDk0IDMzLjQ4ODMgMTAuNDIzOCAzMy40MjUxIDEwLjUyMTZDMzMuMzYyIDEwLjYxOTQgMzMuMzEzMSAxMC43Mzc1IDMzLjI3ODQgMTAuODc2MUMzMy4yNDU4IDExLjAxMjYgMzMuMjI5NSAxMS4xNjY0IDMzLjIyOTUgMTEuMzM3NVYxMS40NTk4QzMzLjIyOTUgMTEuNjA0NCAzMy4yNDg5IDExLjczODkgMzMuMjg3NiAxMS44NjMyQzMzLjMyODMgMTEuOTg1NCAzMy4zODc0IDEyLjA5MjQgMzMuNDY0OCAxMi4xODRDMzMuNTQyMyAxMi4yNzU3IDMzLjYzNiAxMi4zNDgxIDMzLjc0NiAxMi40MDFDMzMuODU2IDEyLjQ1MiAzMy45ODEzIDEyLjQ3NzQgMzQuMTIxOSAxMi40Nzc0QzM0LjI5OTEgMTIuNDc3NCAzNC40NTcgMTIuNDQxOCAzNC41OTU2IDEyLjM3MDVDMzQuNzM0MSAxMi4yOTkyIDM0Ljg1NDMgMTIuMTk4MyAzNC45NTYyIDEyLjA2NzlMMzUuMzQ0MyAxMi40NDM4QzM1LjI3MyAxMi41NDc3IDM1LjE4MDMgMTIuNjQ3NSAzNS4wNjYyIDEyLjc0MzNDMzQuOTUyMSAxMi44MzcgMzQuODEyNSAxMi45MTM0IDM0LjY0NzUgMTIuOTcyNUMzNC40ODQ1IDEzLjAzMTYgMzQuMjk1MSAxMy4wNjExIDM0LjA3OTEgMTMuMDYxMVpNMzcuMTMwMiAxMi40MTYzTDM3Ljk0IDkuNjkzNDJIMzguNzA0TDM3LjU1NDkgMTNIMzcuMDc4MkwzNy4xMzAyIDEyLjQxNjNaTTM2LjUwOTggOS42OTM0MkwzNy4zMzQ5IDEyLjQyODVMMzcuMzc0NiAxM0gzNi44OTc5TDM1Ljc0MjcgOS42OTM0MkgzNi41MDk4Wk00MC42OTQ2IDEzLjA2MTFDNDAuNDUwMSAxMy4wNjExIDQwLjIyOTEgMTMuMDIxNCA0MC4wMzE1IDEyLjk0MTlDMzkuODM1OSAxMi44NjA0IDM5LjY2ODggMTIuNzQ3NCAzOS41MzAzIDEyLjYwMjdDMzkuMzkzOCAxMi40NTgxIDM5LjI4ODkgMTIuMjg4IDM5LjIxNTUgMTIuMDkyNEMzOS4xNDIyIDExLjg5NjggMzkuMTA1NSAxMS42ODU5IDM5LjEwNTUgMTEuNDU5OFYxMS4zMzc1QzM5LjEwNTUgMTEuMDc4OCAzOS4xNDMyIDEwLjg0NDUgMzkuMjE4NiAxMC42MzQ3QzM5LjI5NCAxMC40MjQ4IDM5LjM5ODkgMTAuMjQ1NSAzOS41MzMzIDEwLjA5NjhDMzkuNjY3OCA5Ljk0NjA0IDM5LjgyNjcgOS44MzA5MyA0MC4wMTAxIDkuNzUxNDhDNDAuMTkzNCA5LjY3MjAyIDQwLjM5MjEgOS42MzIzIDQwLjYwNiA5LjYzMjNDNDAuODQyMyA5LjYzMjMgNDEuMDQ5MSA5LjY3MjAyIDQxLjIyNjQgOS43NTE0OEM0MS40MDM2IDkuODMwOTMgNDEuNTUwMyA5Ljk0Mjk5IDQxLjY2NjQgMTAuMDg3NkM0MS43ODQ2IDEwLjIzMDMgNDEuODcyMiAxMC40MDA0IDQxLjkyOTIgMTAuNTk4QzQxLjk4ODMgMTAuNzk1NiA0Mi4wMTc5IDExLjAxMzYgNDIuMDE3OSAxMS4yNTJWMTEuNTY2N0gzOS40NjMxVjExLjAzODFINDEuMjkwNVYxMC45OEM0MS4yODY1IDEwLjg0NzYgNDEuMjYgMTAuNzIzMyA0MS4yMTExIDEwLjYwNzJDNDEuMTY0MiAxMC40OTEgNDEuMDkxOSAxMC4zOTczIDQwLjk5NDEgMTAuMzI2QzQwLjg5NjMgMTAuMjU0NyA0MC43NjU5IDEwLjIxOSA0MC42MDI5IDEwLjIxOUM0MC40ODA3IDEwLjIxOSA0MC4zNzE3IDEwLjI0NTUgNDAuMjc1OSAxMC4yOTg1QzQwLjE4MjIgMTAuMzQ5NCA0MC4xMDM4IDEwLjQyMzggNDAuMDQwNiAxMC41MjE2QzM5Ljk3NzUgMTAuNjE5NCAzOS45Mjg2IDEwLjczNzUgMzkuODkzOSAxMC44NzYxQzM5Ljg2MTMgMTEuMDEyNiAzOS44NDUxIDExLjE2NjQgMzkuODQ1MSAxMS4zMzc1VjExLjQ1OThDMzkuODQ1MSAxMS42MDQ0IDM5Ljg2NDQgMTEuNzM4OSAzOS45MDMxIDExLjg2MzJDMzkuOTQzOSAxMS45ODU0IDQwLjAwMjkgMTIuMDkyNCA0MC4wODA0IDEyLjE4NEM0MC4xNTc4IDEyLjI3NTcgNDAuMjUxNSAxMi4zNDgxIDQwLjM2MTUgMTIuNDAxQzQwLjQ3MTUgMTIuNDUyIDQwLjU5NjggMTIuNDc3NCA0MC43Mzc0IDEyLjQ3NzRDNDAuOTE0NiAxMi40Nzc0IDQxLjA3MjUgMTIuNDQxOCA0MS4yMTExIDEyLjM3MDVDNDEuMzQ5NiAxMi4yOTkyIDQxLjQ2OTggMTIuMTk4MyA0MS41NzE3IDEyLjA2NzlMNDEuOTU5OCAxMi40NDM4QzQxLjg4ODUgMTIuNTQ3NyA0MS43OTU4IDEyLjY0NzUgNDEuNjgxNyAxMi43NDMzQzQxLjU2NzYgMTIuODM3IDQxLjQyODEgMTIuOTEzNCA0MS4yNjMgMTIuOTcyNUM0MS4xIDEzLjAzMTYgNDAuOTEwNiAxMy4wNjExIDQwLjY5NDYgMTMuMDYxMVpNNDMuNTAxMiA4LjMwNTk5VjEzSDQyLjc2MTZWOC4zMDU5OUg0My41MDEyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMzQ2MV80Njg4NikiPgo8bWFzayBpZD0ibWFzazBfMzQ2MV80Njg4NiIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMjYiIHk9IjMxIiB3aWR0aD0iNDciIGhlaWdodD0iMzciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI2LjUgMzIuMTA2N1Y2My4yMjcxQzI2LjUgNjUuNjk4MyAzNi41OTU3IDY3Ljk0MTYgNDkuMzYzNyA2Ny45NDE2QzY2LjI4ODcgNjcuOTQxNiA3Mi4yMjc0IDY0LjgwMDkgNzIuMjI3NCA2My4yMjcxVjMxLjc0OThMNzIuMjA1NCAzMS43NDk4QzY5LjkyNzggMzQuMzEzOSA2MC40NzkgMzYuMjM2NCA0OS4xNjg4IDM2LjIzNjRDMzguMzg5OCAzNi4yMzY0IDI5LjMwMTUgMzQuNDkwMyAyNi41IDMyLjEwNjdaIiBmaWxsPSIjN0E4QkZGIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjYuNSAzMi4xMDY3VjYzLjIyNzFDMjYuNSA2NS42OTgzIDM2LjU5NTcgNjcuOTQxNiA0OS4zNjM3IDY3Ljk0MTZDNjYuMjg4NyA2Ny45NDE2IDcyLjIyNzQgNjQuODAwOSA3Mi4yMjc0IDYzLjIyNzFWMzEuNzQ5OEw3Mi4yMDU0IDMxLjc0OThDNjkuOTI3OCAzNC4zMTM5IDYwLjQ3OSAzNi4yMzY0IDQ5LjE2ODggMzYuMjM2NEMzOC4zODk4IDM2LjIzNjQgMjkuMzAxNSAzNC40OTAzIDI2LjUgMzIuMTA2N1oiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuMSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMzQ2MV80Njg4NikiPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDFfMzQ2MV80Njg4NikiPgo8cmVjdCB4PSIyNi41IiB5PSI0Ny42NjA5IiB3aWR0aD0iNDYuMDYyMyIgaGVpZ2h0PSIzNi40OTA5IiBmaWxsPSIjN0E4QkZGIi8+CjxlbGxpcHNlIGN4PSI0OS41MzEyIiBjeT0iNDcuNjYwNyIgcng9IjIzLjAzMTIiIHJ5PSI0Ljc4NTciIGZpbGw9IiM3QThCRkYiLz4KPGVsbGlwc2UgY3g9IjQ5LjUzMTIiIGN5PSI0Ny42NjA3IiByeD0iMjMuMDMxMiIgcnk9IjQuNzg1NyIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPC9nPgo8bWFzayBpZD0icGF0aC03LWluc2lkZS0xXzM0NjFfNDY4ODYiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03My4xMjk0IDYzLjU0NDVWMzAuMzQzOEg3My43Mjc2VjYzLjU0NDVDNzMuNzI3NiA2NC4wMTI0IDczLjUxNTYgNjQuNDQzOSA3My4xNjM3IDY0LjgzMDhDNzIuODEzMyA2NS4yMTYgNzIuMzEwOCA2NS41NzMzIDcxLjY4ODYgNjUuOTA0MkM3MC40NDM3IDY2LjU2NjUgNjguNjYyIDY3LjE1MzYgNjYuNDg1NyA2Ny42NDMzQzYyLjEyODIgNjguNjIzOCA1Ni4xMjMgNjkuMjI3NSA0OS41IDY5LjIyNzVDNDIuODc3MSA2OS4yMjc1IDM2Ljg3MTkgNjguNjIzOCAzMi41MTQ0IDY3LjY0MzNDMzAuMzM4MSA2Ny4xNTM2IDI4LjU1NjQgNjYuNTY2NSAyNy4zMTE1IDY1LjkwNDJDMjYuNjg5MyA2NS41NzMzIDI2LjE4NjggNjUuMjE2IDI1LjgzNjQgNjQuODMwOEMyNS40ODQ1IDY0LjQ0MzkgMjUuMjcyNSA2NC4wMTI0IDI1LjI3MjUgNjMuNTQ0NVYzMC4zNDM4SDI1Ljg3MDdWNjMuNTQ0NUMyNS44NzA3IDYzLjgxOTkgMjUuOTkzNCA2NC4xMTQzIDI2LjI3OSA2NC40MjgzQzI2LjU2NjEgNjQuNzQ0IDI3LjAwMzggNjUuMDYzIDI3LjU5MjUgNjUuMzc2MUMyOC43NjkzIDY2LjAwMjEgMzAuNDkxOCA2Ni41NzUxIDMyLjY0NTcgNjcuMDU5N0MzNi45NDg2IDY4LjAyNzkgNDIuOTA3NyA2OC42MjkzIDQ5LjUgNjguNjI5M0M1Ni4wOTI0IDY4LjYyOTMgNjIuMDUxNSA2OC4wMjc5IDY2LjM1NDQgNjcuMDU5N0M2OC41MDgzIDY2LjU3NTEgNzAuMjMwOCA2Ni4wMDIxIDcxLjQwNzYgNjUuMzc2MUM3MS45OTYzIDY1LjA2MyA3Mi40MzQgNjQuNzQ0IDcyLjcyMTEgNjQuNDI4M0M3My4wMDY3IDY0LjExNDMgNzMuMTI5NCA2My44MTk5IDczLjEyOTQgNjMuNTQ0NVoiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTczLjEyOTQgNjMuNTQ0NVYzMC4zNDM4SDczLjcyNzZWNjMuNTQ0NUM3My43Mjc2IDY0LjAxMjQgNzMuNTE1NiA2NC40NDM5IDczLjE2MzcgNjQuODMwOEM3Mi44MTMzIDY1LjIxNiA3Mi4zMTA4IDY1LjU3MzMgNzEuNjg4NiA2NS45MDQyQzcwLjQ0MzcgNjYuNTY2NSA2OC42NjIgNjcuMTUzNiA2Ni40ODU3IDY3LjY0MzNDNjIuMTI4MiA2OC42MjM4IDU2LjEyMyA2OS4yMjc1IDQ5LjUgNjkuMjI3NUM0Mi44NzcxIDY5LjIyNzUgMzYuODcxOSA2OC42MjM4IDMyLjUxNDQgNjcuNjQzM0MzMC4zMzgxIDY3LjE1MzYgMjguNTU2NCA2Ni41NjY1IDI3LjMxMTUgNjUuOTA0MkMyNi42ODkzIDY1LjU3MzMgMjYuMTg2OCA2NS4yMTYgMjUuODM2NCA2NC44MzA4QzI1LjQ4NDUgNjQuNDQzOSAyNS4yNzI1IDY0LjAxMjQgMjUuMjcyNSA2My41NDQ1VjMwLjM0MzhIMjUuODcwN1Y2My41NDQ1QzI1Ljg3MDcgNjMuODE5OSAyNS45OTM0IDY0LjExNDMgMjYuMjc5IDY0LjQyODNDMjYuNTY2MSA2NC43NDQgMjcuMDAzOCA2NS4wNjMgMjcuNTkyNSA2NS4zNzYxQzI4Ljc2OTMgNjYuMDAyMSAzMC40OTE4IDY2LjU3NTEgMzIuNjQ1NyA2Ny4wNTk3QzM2Ljk0ODYgNjguMDI3OSA0Mi45MDc3IDY4LjYyOTMgNDkuNSA2OC42MjkzQzU2LjA5MjQgNjguNjI5MyA2Mi4wNTE1IDY4LjAyNzkgNjYuMzU0NCA2Ny4wNTk3QzY4LjUwODMgNjYuNTc1MSA3MC4yMzA4IDY2LjAwMjEgNzEuNDA3NiA2NS4zNzYxQzcxLjk5NjMgNjUuMDYzIDcyLjQzNCA2NC43NDQgNzIuNzIxMSA2NC40MjgzQzczLjAwNjcgNjQuMTE0MyA3My4xMjk0IDYzLjgxOTkgNzMuMTI5NCA2My41NDQ1WiIgZmlsbD0iIzYyMTZGRiIgZmlsbC1vcGFjaXR5PSIwLjAyIi8+CjxwYXRoIGQ9Ik03My4xMjk0IDMwLjM0MzhWMjkuNzQ1NUg3Mi41MzEyVjMwLjM0MzhINzMuMTI5NFpNNzMuNzI3NiAzMC4zNDM4SDc0LjMyNThWMjkuNzQ1NUg3My43Mjc2VjMwLjM0MzhaTTczLjE2MzcgNjQuODMwOEw3Mi43MjExIDY0LjQyODNMNzMuMTYzNyA2NC44MzA4Wk03MS42ODg2IDY1LjkwNDJMNzEuNDA3NiA2NS4zNzYxTDcxLjQwNzYgNjUuMzc2MUw3MS42ODg2IDY1LjkwNDJaTTY2LjQ4NTcgNjcuNjQzM0w2Ni42MTcgNjguMjI2OUw2Ni40ODU3IDY3LjY0MzNaTTMyLjUxNDQgNjcuNjQzM0wzMi4zODMxIDY4LjIyNjlMMzIuNTE0NCA2Ny42NDMzWk0yNy4zMTE1IDY1LjkwNDJMMjcuNTkyNSA2NS4zNzYxTDI3LjU5MjUgNjUuMzc2MUwyNy4zMTE1IDY1LjkwNDJaTTI1LjgzNjQgNjQuODMwOEwyNS4zOTM5IDY1LjIzMzNMMjUuMzkzOSA2NS4yMzMzTDI1LjgzNjQgNjQuODMwOFpNMjUuMjcyNSAzMC4zNDM4VjI5Ljc0NTVIMjQuNjc0MlYzMC4zNDM4SDI1LjI3MjVaTTI1Ljg3MDcgMzAuMzQzOEgyNi40Njg5VjI5Ljc0NTVIMjUuODcwN1YzMC4zNDM4Wk0yNi4yNzkgNjQuNDI4M0wyNi43MjE1IDY0LjAyNThIMjYuNzIxNUwyNi4yNzkgNjQuNDI4M1pNMjcuNTkyNSA2NS4zNzYxTDI3LjMxMTUgNjUuOTA0MkwyNy4zMTE1IDY1LjkwNDJMMjcuNTkyNSA2NS4zNzYxWk0zMi42NDU3IDY3LjA1OTdMMzIuNzc3IDY2LjQ3NjFMMzIuNjQ1NyA2Ny4wNTk3Wk02Ni4zNTQ0IDY3LjA1OTdMNjYuMjIzMSA2Ni40NzYxTDY2LjM1NDQgNjcuMDU5N1pNNzEuNDA3NiA2NS4zNzYxTDcxLjEyNjcgNjQuODQ4TDcxLjQwNzYgNjUuMzc2MVpNNzIuNzIxMSA2NC40MjgzTDczLjE2MzcgNjQuODMwOEw3Mi43MjExIDY0LjQyODNaTTcyLjUzMTIgMzAuMzQzOFY2My41NDQ1SDczLjcyNzZWMzAuMzQzOEg3Mi41MzEyWk03My43Mjc2IDI5Ljc0NTVINzMuMTI5NFYzMC45NDJINzMuNzI3NlYyOS43NDU1Wk03NC4zMjU4IDYzLjU0NDVWMzAuMzQzOEg3My4xMjk0VjYzLjU0NDVINzQuMzI1OFpNNzMuNjA2MiA2NS4yMzMzQzc0LjAyNDIgNjQuNzczNyA3NC4zMjU4IDY0LjIwNTIgNzQuMzI1OCA2My41NDQ1SDczLjEyOTRDNzMuMTI5NCA2My44MTk3IDczLjAwNjkgNjQuMTE0IDcyLjcyMTEgNjQuNDI4M0w3My42MDYyIDY1LjIzMzNaTTcxLjk2OTUgNjYuNDMyNEM3Mi42MjUzIDY2LjA4MzYgNzMuMTkyNyA2NS42ODggNzMuNjA2MiA2NS4yMzMzTDcyLjcyMTEgNjQuNDI4M0M3Mi40MzQgNjQuNzQ0IDcxLjk5NjMgNjUuMDYzIDcxLjQwNzYgNjUuMzc2MUw3MS45Njk1IDY2LjQzMjRaTTY2LjYxNyA2OC4yMjY5QzY4LjgxNTggNjcuNzMyMiA3MC42NTY2IDY3LjEzMDggNzEuOTY5NSA2Ni40MzI0TDcxLjQwNzYgNjUuMzc2MUM3MC4yMzA4IDY2LjAwMjEgNjguNTA4MiA2Ni41NzUxIDY2LjM1NDQgNjcuMDU5N0w2Ni42MTcgNjguMjI2OVpNNDkuNSA2OS44MjU3QzU2LjE1MzYgNjkuODI1NyA2Mi4yMDQ5IDY5LjIxOTcgNjYuNjE3IDY4LjIyNjlMNjYuMzU0NCA2Ny4wNTk3QzYyLjA1MTUgNjguMDI3OSA1Ni4wOTI0IDY4LjYyOTMgNDkuNSA2OC42MjkzVjY5LjgyNTdaTTMyLjM4MzEgNjguMjI2OUMzNi43OTUxIDY5LjIxOTcgNDIuODQ2NSA2OS44MjU3IDQ5LjUgNjkuODI1N1Y2OC42MjkzQzQyLjkwNzcgNjguNjI5MyAzNi45NDg2IDY4LjAyNzkgMzIuNjQ1NyA2Ny4wNTk3TDMyLjM4MzEgNjguMjI2OVpNMjcuMDMwNiA2Ni40MzI0QzI4LjM0MzUgNjcuMTMwOCAzMC4xODQzIDY3LjczMjIgMzIuMzgzMSA2OC4yMjY5TDMyLjY0NTcgNjcuMDU5N0MzMC40OTE5IDY2LjU3NTEgMjguNzY5MyA2Ni4wMDIxIDI3LjU5MjUgNjUuMzc2MUwyNy4wMzA2IDY2LjQzMjRaTTI1LjM5MzkgNjUuMjMzM0MyNS44MDc0IDY1LjY4OCAyNi4zNzQ4IDY2LjA4MzYgMjcuMDMwNiA2Ni40MzI0TDI3LjU5MjUgNjUuMzc2MUMyNy4wMDM4IDY1LjA2MyAyNi41NjYxIDY0Ljc0NCAyNi4yNzkgNjQuNDI4M0wyNS4zOTM5IDY1LjIzMzNaTTI0LjY3NDIgNjMuNTQ0NUMyNC42NzQyIDY0LjIwNTIgMjQuOTc1OSA2NC43NzM3IDI1LjM5MzkgNjUuMjMzM0wyNi4yNzkgNjQuNDI4M0MyNS45OTMyIDY0LjExNCAyNS44NzA3IDYzLjgxOTcgMjUuODcwNyA2My41NDQ1SDI0LjY3NDJaTTI1Ljg3MDcgNjMuNTQ0NVYzMC4zNDM4SDI0LjY3NDJWNjMuNTQ0NUgyNS44NzA3Wk0yNS4yNzI1IDMwLjk0MkgyNS44NzA3VjI5Ljc0NTVIMjUuMjcyNVYzMC45NDJaTTI1LjI3MjUgMzAuMzQzOFY2My41NDQ1SDI2LjQ2ODlWMzAuMzQzOEgyNS4yNzI1Wk0yNi43MjE1IDY0LjAyNThDMjYuNTAyNiA2My43ODUgMjYuNDY4OSA2My42Mjc4IDI2LjQ2ODkgNjMuNTQ0NUgyNS4yNzI1QzI1LjI3MjUgNjQuMDEyMSAyNS40ODQyIDY0LjQ0MzUgMjUuODM2NCA2NC44MzA4TDI2LjcyMTUgNjQuMDI1OFpNMjcuODczNCA2NC44NDhDMjcuMzE4MiA2NC41NTI2IDI2Ljk0NTUgNjQuMjcyIDI2LjcyMTUgNjQuMDI1OEwyNS44MzY0IDY0LjgzMDhDMjYuMTg2OCA2NS4yMTYgMjYuNjg5MyA2NS41NzMzIDI3LjMxMTUgNjUuOTA0MkwyNy44NzM0IDY0Ljg0OFpNMzIuNzc3IDY2LjQ3NjFDMzAuNjQ1NiA2NS45OTY1IDI4Ljk4MjEgNjUuNDM3OCAyNy44NzM0IDY0Ljg0OEwyNy4zMTE1IDY1LjkwNDJDMjguNTU2NCA2Ni41NjY1IDMwLjMzODEgNjcuMTUzNiAzMi41MTQ0IDY3LjY0MzNMMzIuNzc3IDY2LjQ3NjFaTTQ5LjUgNjguMDMxMUM0Mi45MzgzIDY4LjAzMTEgMzcuMDI1NCA2Ny40MzIgMzIuNzc3IDY2LjQ3NjFMMzIuNTE0NCA2Ny42NDMzQzM2Ljg3MTkgNjguNjIzOCA0Mi44NzcxIDY5LjIyNzUgNDkuNSA2OS4yMjc1VjY4LjAzMTFaTTY2LjIyMzEgNjYuNDc2MUM2MS45NzQ3IDY3LjQzMiA1Ni4wNjE4IDY4LjAzMTEgNDkuNSA2OC4wMzExVjY5LjIyNzVDNTYuMTIzIDY5LjIyNzUgNjIuMTI4MiA2OC42MjM4IDY2LjQ4NTcgNjcuNjQzM0w2Ni4yMjMxIDY2LjQ3NjFaTTcxLjEyNjcgNjQuODQ4QzcwLjAxOCA2NS40Mzc4IDY4LjM1NDUgNjUuOTk2NSA2Ni4yMjMxIDY2LjQ3NjFMNjYuNDg1NyA2Ny42NDMzQzY4LjY2MiA2Ny4xNTM2IDcwLjQ0MzcgNjYuNTY2NSA3MS42ODg2IDY1LjkwNDJMNzEuMTI2NyA2NC44NDhaTTcyLjI3ODUgNjQuMDI1OEM3Mi4wNTQ2IDY0LjI3MiA3MS42ODE4IDY0LjU1MjYgNzEuMTI2NyA2NC44NDhMNzEuNjg4NiA2NS45MDQyQzcyLjMxMDggNjUuNTczMyA3Mi44MTMzIDY1LjIxNiA3My4xNjM3IDY0LjgzMDhMNzIuMjc4NSA2NC4wMjU4Wk03Mi41MzEyIDYzLjU0NDVDNzIuNTMxMiA2My42Mjc4IDcyLjQ5NzUgNjMuNzg1IDcyLjI3ODUgNjQuMDI1OEw3My4xNjM3IDY0LjgzMDhDNzMuNTE1OSA2NC40NDM1IDczLjcyNzYgNjQuMDEyMSA3My43Mjc2IDYzLjU0NDVINzIuNTMxMloiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC03LWluc2lkZS0xXzM0NjFfNDY4ODYpIi8+CjxwYXRoIG9wYWNpdHk9IjAuMSIgZD0iTTczLjQyODIgMzAuMzQ0MUM3My40MjgyIDI3LjUwMjYgNjIuMjExOCAyNC45NjAyIDQ5LjQ5OTggMjQuOTYwMkMzNi4yODQ0IDI0Ljk2MDIgMjUuNTcxMyAyNy42NTIyIDI1LjU3MTMgMzAuMzQ0MSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTk4MjEyIi8+CjxwYXRoIGQ9Ik00OS40OTk4IDM2LjMyNjJDMzMuMzQ4IDM2LjMyNjIgMjUuNTcxMyAzMy40Njg1IDI1LjU3MTMgMzAuMzkyMUMyNS41NzEzIDI3LjMxNTggNDEuODczNyAyMy42MTg2IDQzLjc5NDQgMjMuMTY1NSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTk4MjEyIi8+CjxwYXRoIGQ9Ik00OS41MDAyIDM2LjMyNjJDNjUuNjUyIDM2LjMyNjIgNzMuNDI4NyAzMy40Njg1IDczLjQyODcgMzAuMzkyMUM3My40Mjg3IDI3LjMxNTggNTcuMTI2MyAyMy42MTg2IDU1LjIwNTYgMjMuMTY1NSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTk4MjEyIi8+CjxtYXNrIGlkPSJwYXRoLTEyLWluc2lkZS0yXzM0NjFfNDY4ODYiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00My44MTIxIDIyLjA1ODFWMjMuMjAyNEM0My44NTEyIDIzLjIzMzUgNDMuOTI2OCAyMy4yNzY0IDQ0LjA1MiAyMy4zMjQ4QzQ0LjMwMTMgMjMuNDIxMiA0NC42Nzk2IDIzLjUxMzkgNDUuMTY4MyAyMy41OTM4QzQ2LjE0MDggMjMuNzUyOSA0Ny40OTU2IDIzLjg1MjcgNDguOTk5NyAyMy44NTI3QzUwLjUwMzggMjMuODUyNyA1MS44NTg2IDIzLjc1MjkgNTIuODMxMSAyMy41OTM4QzUzLjMxOTggMjMuNTEzOSA1My42OTggMjMuNDIxMiA1My45NDc0IDIzLjMyNDhDNTQuMDczNiAyMy4yNzYgNTQuMTQ5MyAyMy4yMzI4IDU0LjE4ODIgMjMuMjAxN0M1NC4xOTc4IDIzLjE5NDEgNTQuMjAzIDIzLjE4ODkgNTQuMjA1NSAyMy4xODYzQzU0LjIwMDcgMjMuMTkyOSA1NC4xODczIDIzLjIxNTQgNTQuMTg3MyAyMy4yNTQ1SDU0LjU3OTlWMjIuMDU4MUg1NS4xNzgxVjIzLjI1NDVINTQuNzg1NUM1NC43ODU1IDIzLjQ0OTUgNTQuNjY0NiAyMy41ODY4IDU0LjU2MTcgMjMuNjY5QzU0LjQ1NDQgMjMuNzU0OCA1NC4zMTQ1IDIzLjgyNDIgNTQuMTYzMSAyMy44ODI4QzUzLjg1NzEgMjQuMDAxMSA1My40MzE5IDI0LjEwMTcgNTIuOTI3NyAyNC4xODQyQzUxLjkxNDQgMjQuMzQ5OSA1MC41MjU4IDI0LjQ1MSA0OC45OTk3IDI0LjQ1MUM0Ny40NzM2IDI0LjQ1MSA0Ni4wODUgMjQuMzQ5OSA0NS4wNzE3IDI0LjE4NDJDNDQuNTY3NSAyNC4xMDE3IDQ0LjE0MjIgMjQuMDAxMSA0My44MzYzIDIzLjg4MjhDNDMuNjg0OSAyMy44MjQyIDQzLjU0NSAyMy43NTQ4IDQzLjQzNzcgMjMuNjY5QzQzLjMzNDggMjMuNTg2OCA0My4yMTM5IDIzLjQ0OTUgNDMuMjEzOSAyMy4yNTQ1VjIyLjA1ODFINDMuODEyMVpNNTQuMjA3MiAyMy4xODQyQzU0LjIwNzEgMjMuMTg0MiA1NC4yMDY1IDIzLjE4NDkgNTQuMjA1NSAyMy4xODYzQzU0LjIwNjggMjMuMTg0OSA1NC4yMDczIDIzLjE4NDIgNTQuMjA3MiAyMy4xODQyWiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDMuODEyMSAyMi4wNTgxVjIzLjIwMjRDNDMuODUxMiAyMy4yMzM1IDQzLjkyNjggMjMuMjc2NCA0NC4wNTIgMjMuMzI0OEM0NC4zMDEzIDIzLjQyMTIgNDQuNjc5NiAyMy41MTM5IDQ1LjE2ODMgMjMuNTkzOEM0Ni4xNDA4IDIzLjc1MjkgNDcuNDk1NiAyMy44NTI3IDQ4Ljk5OTcgMjMuODUyN0M1MC41MDM4IDIzLjg1MjcgNTEuODU4NiAyMy43NTI5IDUyLjgzMTEgMjMuNTkzOEM1My4zMTk4IDIzLjUxMzkgNTMuNjk4IDIzLjQyMTIgNTMuOTQ3NCAyMy4zMjQ4QzU0LjA3MzYgMjMuMjc2IDU0LjE0OTMgMjMuMjMyOCA1NC4xODgyIDIzLjIwMTdDNTQuMTk3OCAyMy4xOTQxIDU0LjIwMyAyMy4xODg5IDU0LjIwNTUgMjMuMTg2M0M1NC4yMDA3IDIzLjE5MjkgNTQuMTg3MyAyMy4yMTU0IDU0LjE4NzMgMjMuMjU0NUg1NC41Nzk5VjIyLjA1ODFINTUuMTc4MVYyMy4yNTQ1SDU0Ljc4NTVDNTQuNzg1NSAyMy40NDk1IDU0LjY2NDYgMjMuNTg2OCA1NC41NjE3IDIzLjY2OUM1NC40NTQ0IDIzLjc1NDggNTQuMzE0NSAyMy44MjQyIDU0LjE2MzEgMjMuODgyOEM1My44NTcxIDI0LjAwMTEgNTMuNDMxOSAyNC4xMDE3IDUyLjkyNzcgMjQuMTg0MkM1MS45MTQ0IDI0LjM0OTkgNTAuNTI1OCAyNC40NTEgNDguOTk5NyAyNC40NTFDNDcuNDczNiAyNC40NTEgNDYuMDg1IDI0LjM0OTkgNDUuMDcxNyAyNC4xODQyQzQ0LjU2NzUgMjQuMTAxNyA0NC4xNDIyIDI0LjAwMTEgNDMuODM2MyAyMy44ODI4QzQzLjY4NDkgMjMuODI0MiA0My41NDUgMjMuNzU0OCA0My40Mzc3IDIzLjY2OUM0My4zMzQ4IDIzLjU4NjggNDMuMjEzOSAyMy40NDk1IDQzLjIxMzkgMjMuMjU0NVYyMi4wNTgxSDQzLjgxMjFaTTU0LjIwNzIgMjMuMTg0MkM1NC4yMDcxIDIzLjE4NDIgNTQuMjA2NSAyMy4xODQ5IDU0LjIwNTUgMjMuMTg2M0M1NC4yMDY4IDIzLjE4NDkgNTQuMjA3MyAyMy4xODQyIDU0LjIwNzIgMjMuMTg0MloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik00My44MTIxIDIzLjIwMjRINDMuMjEzOVYyMy40OTE2TDQzLjQ0MDUgMjMuNjcxM0w0My44MTIxIDIzLjIwMjRaTTQzLjgxMjEgMjIuMDU4MUg0NC40MTAzVjIxLjQ1OTlINDMuODEyMVYyMi4wNTgxWk00NC4wNTIgMjMuMzI0OEw0My44MzYzIDIzLjg4MjhINDMuODM2M0w0NC4wNTIgMjMuMzI0OFpNNDUuMTY4MyAyMy41OTM4TDQ1LjA3MTcgMjQuMTg0Mkw0NS4xNjgzIDIzLjU5MzhaTTUyLjgzMTEgMjMuNTkzOEw1Mi43MzQ2IDIzLjAwMzVWMjMuMDAzNUw1Mi44MzExIDIzLjU5MzhaTTUzLjk0NzQgMjMuMzI0OEw1My43MzE2IDIyLjc2NjlMNTMuNzMxNiAyMi43NjY5TDUzLjk0NzQgMjMuMzI0OFpNNTQuMTg4MiAyMy4yMDE3TDU0LjU2MTcgMjMuNjY5TDU0LjU2MTcgMjMuNjY5TDU0LjE4ODIgMjMuMjAxN1pNNTQuMTg3MyAyMy4yNTQ1SDUzLjU4OTFWMjMuODUyN0g1NC4xODczVjIzLjI1NDVaTTU0LjU3OTkgMjMuMjU0NVYyMy44NTI3SDU1LjE3ODFWMjMuMjU0NUg1NC41Nzk5Wk01NC41Nzk5IDIyLjA1ODFWMjEuNDU5OUg1My45ODE3VjIyLjA1ODFINTQuNTc5OVpNNTUuMTc4MSAyMi4wNTgxSDU1Ljc3NjNWMjEuNDU5OUg1NS4xNzgxVjIyLjA1ODFaTTU1LjE3ODEgMjMuMjU0NVYyMy44NTI3SDU1Ljc3NjNWMjMuMjU0NUg1NS4xNzgxWk01NC43ODU1IDIzLjI1NDVWMjIuNjU2M0g1NC4xODczVjIzLjI1NDVINTQuNzg1NVpNNTQuNTYxNyAyMy42NjlMNTQuMTg4MiAyMy4yMDE3TDU0LjE4ODIgMjMuMjAxN0w1NC41NjE3IDIzLjY2OVpNNTQuMTYzMSAyMy44ODI4TDUzLjk0NzQgMjMuMzI0OEw1My45NDc0IDIzLjMyNDhMNTQuMTYzMSAyMy44ODI4Wk01Mi45Mjc3IDI0LjE4NDJMNTMuMDI0MiAyNC43NzQ2TDUyLjkyNzcgMjQuMTg0MlpNNDUuMDcxNyAyNC4xODQyTDQ1LjE2ODMgMjMuNTkzOEg0NS4xNjgzTDQ1LjA3MTcgMjQuMTg0MlpNNDMuODM2MyAyMy44ODI4TDQzLjYyMDUgMjQuNDQwN0g0My42MjA1TDQzLjgzNjMgMjMuODgyOFpNNDMuNDM3NyAyMy42NjlMNDMuMDY0MiAyNC4xMzYzTDQzLjA2NDIgMjQuMTM2M0w0My40Mzc3IDIzLjY2OVpNNDMuMjEzOSAyMi4wNTgxVjIxLjQ1OTlINDIuNjE1N1YyMi4wNTgxSDQzLjIxMzlaTTQ0LjQxMDMgMjMuMjAyNFYyMi4wNTgxSDQzLjIxMzlWMjMuMjAyNEg0NC40MTAzWk00NC4yNjc4IDIyLjc2NjlDNDQuMjIyMiAyMi43NDkzIDQ0LjE5MzMgMjIuNzM1NSA0NC4xNzc1IDIyLjcyNzJDNDQuMTY5NyAyMi43MjMyIDQ0LjE2NjUgMjIuNzIxMSA0NC4xNjY5IDIyLjcyMTRDNDQuMTY3IDIyLjcyMTUgNDQuMTczMyAyMi43MjU0IDQ0LjE4MzYgMjIuNzMzNkw0My40NDA1IDIzLjY3MTNDNDMuNTQ3MyAyMy43NTU5IDQzLjY4NiAyMy44MjQ3IDQzLjgzNjMgMjMuODgyOEw0NC4yNjc4IDIyLjc2NjlaTTQ1LjI2NDggMjMuMDAzNUM0NC43OTE3IDIyLjkyNjEgNDQuNDYwNCAyMi44NDE0IDQ0LjI2NzggMjIuNzY2OUw0My44MzYzIDIzLjg4MjhDNDQuMTQyMyAyNC4wMDExIDQ0LjU2NzUgMjQuMTAxOCA0NS4wNzE3IDI0LjE4NDJMNDUuMjY0OCAyMy4wMDM1Wk00OC45OTk3IDIzLjI1NDVDNDcuNTE3NiAyMy4yNTQ1IDQ2LjE5NjcgMjMuMTU1OSA0NS4yNjQ4IDIzLjAwMzVMNDUuMDcxNyAyNC4xODQyQzQ2LjA4NSAyNC4zNDk5IDQ3LjQ3MzYgMjQuNDUxIDQ4Ljk5OTcgMjQuNDUxVjIzLjI1NDVaTTUyLjczNDYgMjMuMDAzNUM1MS44MDI3IDIzLjE1NTkgNTAuNDgxNyAyMy4yNTQ1IDQ4Ljk5OTcgMjMuMjU0NVYyNC40NTFDNTAuNTI1OCAyNC40NTEgNTEuOTE0NCAyNC4zNDk5IDUyLjkyNzcgMjQuMTg0Mkw1Mi43MzQ2IDIzLjAwMzVaTTUzLjczMTYgMjIuNzY2OUM1My41MzkgMjIuODQxNCA1My4yMDc3IDIyLjkyNjEgNTIuNzM0NiAyMy4wMDM1TDUyLjkyNzcgMjQuMTg0MkM1My40MzE4IDI0LjEwMTggNTMuODU3MSAyNC4wMDExIDU0LjE2MzEgMjMuODgyOEw1My43MzE2IDIyLjc2NjlaTTUzLjgxNDcgMjIuNzM0NEM1My44MjU1IDIyLjcyNTggNTMuODMyMSAyMi43MjE3IDUzLjgzMjQgMjIuNzIxNUM1My44MzMxIDIyLjcyMSA1My44MyAyMi43MjMgNTMuODIyMyAyMi43MjcxQzUzLjgwNjYgMjIuNzM1MyA1My43Nzc1IDIyLjc0OTEgNTMuNzMxNiAyMi43NjY5TDU0LjE2MzEgMjMuODgyOEM1NC4zMTQzIDIzLjgyNDMgNTQuNDU0MiAyMy43NTQ5IDU0LjU2MTcgMjMuNjY5TDUzLjgxNDcgMjIuNzM0NFpNNTMuNzY3MSAyMi43NzkyQzUzLjc3OTEgMjIuNzY2MyA1My43ODkzIDIyLjc1NjYgNTMuNzk2NiAyMi43NUM1My44MDQyIDIyLjc0MzEgNTMuODEwNCAyMi43Mzc5IDUzLjgxNDcgMjIuNzM0NEw1NC41NjE3IDIzLjY2OUM1NC41ODgxIDIzLjY0NzkgNTQuNjE2NSAyMy42MjI4IDU0LjY0MzggMjMuNTkzNEw1My43NjcxIDIyLjc3OTJaTTU0Ljc4NTUgMjMuMjU0NUM1NC43ODU1IDIzLjM1NzcgNTQuNzQ4OSAyMy40NTY2IDU0LjY4ODQgMjMuNTM5M0w1My43MjI2IDIyLjgzMzJDNTMuNjUyNCAyMi45MjkyIDUzLjU4OTEgMjMuMDczMSA1My41ODkxIDIzLjI1NDVINTQuNzg1NVpNNTQuNTc5OSAyMi42NTYzSDU0LjE4NzNWMjMuODUyN0g1NC41Nzk5VjIyLjY1NjNaTTU1LjE3ODEgMjMuMjU0NVYyMi4wNTgxSDUzLjk4MTdWMjMuMjU0NUg1NS4xNzgxWk01NC41Nzk5IDIyLjY1NjNINTUuMTc4MVYyMS40NTk5SDU0LjU3OTlWMjIuNjU2M1pNNTQuNTc5OSAyMi4wNTgxVjIzLjI1NDVINTUuNzc2M1YyMi4wNTgxSDU0LjU3OTlaTTU1LjE3ODEgMjIuNjU2M0g1NC43ODU1VjIzLjg1MjdINTUuMTc4MVYyMi42NTYzWk01NC45MzUyIDI0LjEzNjNDNTUuMDk1MyAyNC4wMDgzIDU1LjM4MzcgMjMuNzE3NiA1NS4zODM3IDIzLjI1NDVINTQuMTg3M0M1NC4xODczIDIzLjI0MDQgNTQuMTg5NiAyMy4yMjU2IDU0LjE5MzggMjMuMjEyMUM1NC4xOTc5IDIzLjE5OTIgNTQuMjAyNSAyMy4xOTA4IDU0LjIwNDkgMjMuMTg3MUM1NC4yMDcgMjMuMTgzNiA1NC4yMDczIDIzLjE4MzkgNTQuMjA0IDIzLjE4NzRDNTQuMjAwNyAyMy4xOTEgNTQuMTk1NSAyMy4xOTU5IDU0LjE4ODIgMjMuMjAxN0w1NC45MzUyIDI0LjEzNjNaTTU0LjM3ODggMjQuNDQwN0M1NC41NTU2IDI0LjM3MjQgNTQuNzU5NSAyNC4yNzY3IDU0LjkzNTIgMjQuMTM2M0w1NC4xODgyIDIzLjIwMTdDNTQuMTQ5MiAyMy4yMzI5IDU0LjA3MzQgMjMuMjc2MSA1My45NDc0IDIzLjMyNDhMNTQuMzc4OCAyNC40NDA3Wk01My4wMjQyIDI0Ljc3NDZDNTMuNTQ0MSAyNC42ODk2IDU0LjAxNjMgMjQuNTgwOSA1NC4zNzg4IDI0LjQ0MDdMNTMuOTQ3NCAyMy4zMjQ4QzUzLjY5OCAyMy40MjEyIDUzLjMxOTcgMjMuNTEzOSA1Mi44MzExIDIzLjU5MzhMNTMuMDI0MiAyNC43NzQ2Wk00OC45OTk3IDI1LjA0OTJDNTAuNTQ3OSAyNS4wNDkyIDUxLjk3MDMgMjQuOTQ2OSA1My4wMjQyIDI0Ljc3NDZMNTIuODMxMSAyMy41OTM4QzUxLjg1ODYgMjMuNzUyOSA1MC41MDM4IDIzLjg1MjcgNDguOTk5NyAyMy44NTI3VjI1LjA0OTJaTTQ0Ljk3NTIgMjQuNzc0NkM0Ni4wMjkxIDI0Ljk0NjkgNDcuNDUxNSAyNS4wNDkyIDQ4Ljk5OTcgMjUuMDQ5MlYyMy44NTI3QzQ3LjQ5NTYgMjMuODUyNyA0Ni4xNDA4IDIzLjc1MjkgNDUuMTY4MyAyMy41OTM4TDQ0Ljk3NTIgMjQuNzc0NlpNNDMuNjIwNSAyNC40NDA3QzQzLjk4MzEgMjQuNTgwOSA0NC40NTUzIDI0LjY4OTYgNDQuOTc1MiAyNC43NzQ2TDQ1LjE2ODMgMjMuNTkzOEM0NC42Nzk3IDIzLjUxMzkgNDQuMzAxNCAyMy40MjEyIDQ0LjA1MiAyMy4zMjQ4TDQzLjYyMDUgMjQuNDQwN1pNNDMuMDY0MiAyNC4xMzYzQzQzLjIzOTkgMjQuMjc2NyA0My40NDM3IDI0LjM3MjQgNDMuNjIwNSAyNC40NDA3TDQ0LjA1MiAyMy4zMjQ4QzQzLjkyNiAyMy4yNzYxIDQzLjg1MDEgMjMuMjMyOSA0My44MTEyIDIzLjIwMTdMNDMuMDY0MiAyNC4xMzYzWk00Mi42MTU3IDIzLjI1NDVDNDIuNjE1NyAyMy43MTc2IDQyLjkwNDEgMjQuMDA4MyA0My4wNjQyIDI0LjEzNjNMNDMuODExMiAyMy4yMDE3QzQzLjgwMzkgMjMuMTk1OSA0My43OTg3IDIzLjE5MSA0My43OTU0IDIzLjE4NzVDNDMuNzkyIDIzLjE4MzkgNDMuNzkyMyAyMy4xODM2IDQzLjc5NDUgMjMuMTg3MUM0My43OTY4IDIzLjE5MDggNDMuODAxNSAyMy4xOTkyIDQzLjgwNTUgMjMuMjEyMUM0My44MDk3IDIzLjIyNTYgNDMuODEyMSAyMy4yNDA0IDQzLjgxMjEgMjMuMjU0NUg0Mi42MTU3Wk00Mi42MTU3IDIyLjA1ODFWMjMuMjU0NUg0My44MTIxVjIyLjA1ODFINDIuNjE1N1pNNDMuODEyMSAyMS40NTk5SDQzLjIxMzlWMjIuNjU2M0g0My44MTIxVjIxLjQ1OTlaTTU0LjIyNTYgMjIuNTg2M0M1NC4xMDU2IDIyLjU4MjYgNTQuMDE2IDIyLjYxNjMgNTMuOTgzMSAyMi42Mjk2QzUzLjk0MTUgMjIuNjQ2NCA1My45MTA1IDIyLjY2NDQgNTMuODkzNyAyMi42NzQ4QzUzLjg1OTggMjIuNjk1NiA1My44MzU2IDIyLjcxNTMgNTMuODI1NyAyMi43MjM0QzUzLjgwMzYgMjIuNzQxNyA1My43ODc3IDIyLjc1NzYgNTMuNzgxOSAyMi43NjM1QzUzLjc2NzYgMjIuNzc4IDUzLjc1NyAyMi43OTAyIDUzLjc1MTggMjIuNzk2M0M1My43Mzk4IDIyLjgxMDMgNTMuNzMgMjIuODIzMSA1My43MjI2IDIyLjgzMzJMNTQuNjg4NCAyMy41Mzk0QzU0LjY4MiAyMy41NDgyIDU0LjY3MyAyMy41NTk4IDU0LjY2MTYgMjMuNTczMkM1NC42NTY3IDIzLjU3ODkgNTQuNjQ2NCAyMy41OTA5IDU0LjYzMjIgMjMuNjA1MkM1NC42MjY0IDIzLjYxMSA1NC42MTA2IDIzLjYyNjkgNTQuNTg4NSAyMy42NDUxQzU0LjU3ODcgMjMuNjUzMiA1NC41NTQ1IDIzLjY3MjkgNTQuNTIwNyAyMy42OTM3QzU0LjUwMzkgMjMuNzA0MSA1NC40NzI5IDIzLjcyMjEgNTQuNDMxMyAyMy43Mzg5QzU0LjM5ODQgMjMuNzUyMiA1NC4zMDg4IDIzLjc4NTkgNTQuMTg4OCAyMy43ODIyTDU0LjIyNTYgMjIuNTg2M1pNNTQuNjQzOSAyMy41OTMzQzU0LjY1MDggMjMuNTg1OSA1NC42NjEyIDIzLjU3NDMgNTQuNjczIDIzLjU1OTdDNTQuNjc3MyAyMy41NTQzIDU0LjY4OTkgMjMuNTM4NiA1NC43MDQyIDIzLjUxNzJDNTQuNzA3NyAyMy41MTIgNTQuNzMwMiAyMy40NzkgNTQuNzUxMSAyMy40MzMyQzU0Ljc1NSAyMy40MjQ5IDU0Ljc5NjEgMjMuMzQwOCA1NC44MDQgMjMuMjI1MkM1NC44MDc5IDIzLjE2ODggNTQuODExNCAyMy4wMTEzIDU0LjcwNDIgMjIuODUxM0M1NC41NzI3IDIyLjY1NDkgNTQuMzcwOCAyMi41OTA4IDU0LjIyNTYgMjIuNTg2M0w1NC4xODg4IDIzLjc4MjJDNTQuMDQzNiAyMy43Nzc3IDUzLjg0MTcgMjMuNzEzNSA1My43MTAyIDIzLjUxNzFDNTMuNjAzIDIzLjM1NzIgNTMuNjA2NSAyMy4xOTk2IDUzLjYxMDQgMjMuMTQzM0M1My42MTgzIDIzLjAyNzcgNTMuNjU5NCAyMi45NDM3IDUzLjY2MzMgMjIuOTM1M0M1My42ODQyIDIyLjg4OTUgNTMuNzA2NiAyMi44NTY3IDUzLjcxMDEgMjIuODUxNUM1My43MjQzIDIyLjgzMDMgNTMuNzM2NyAyMi44MTQ5IDUzLjc0MDcgMjIuODA5OEM1My43NTE5IDIyLjc5NTkgNTMuNzYxNSAyMi43ODUzIDUzLjc2NzEgMjIuNzc5M0w1NC42NDM5IDIzLjU5MzNaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMTItaW5zaWRlLTJfMzQ2MV80Njg4NikiLz4KPHBhdGggZD0iTTU1LjIxNDcgMjEuOTQ1MkM1NS4yMTQ3IDIxLjk0NTIgNTUuMjE0MyAyMS45NDU4IDU1LjIxMzIgMjEuOTQ3MkM1NS4yMTQxIDIxLjk0NTggNTUuMjE0NiAyMS45NDUyIDU1LjIxNDcgMjEuOTQ1MlpNNTQuOTE4OCAyMS44ODlDNTUuMDIyNyAyMS45MyA1NS4wOTY5IDIxLjk2NzkgNTUuMTQ2OCAyMkM1NS4wOTY5IDIyLjAzMjEgNTUuMDIyNyAyMi4wNyA1NC45MTg4IDIyLjExMUM1NC42NDM5IDIyLjIxOTMgNTQuMjI4NCAyMi4zMjI5IDUzLjY5MzUgMjIuNDEyMUM1Mi42Mjg0IDIyLjU4OTYgNTEuMTQ1NiAyMi43MDA5IDQ5LjUgMjIuNzAwOUM0Ny44NTQ0IDIyLjcwMDkgNDYuMzcxNiAyMi41ODk2IDQ1LjMwNjUgMjIuNDEyMUM0NC43NzE2IDIyLjMyMjkgNDQuMzU2MSAyMi4yMTkzIDQ0LjA4MTIgMjIuMTExQzQzLjk3NzMgMjIuMDcgNDMuOTAzMSAyMi4wMzIxIDQzLjg1MzIgMjJDNDMuOTAzMSAyMS45Njc5IDQzLjk3NzMgMjEuOTMgNDQuMDgxMiAyMS44ODlDNDQuMzU2MSAyMS43ODA3IDQ0Ljc3MTYgMjEuNjc3MSA0NS4zMDY1IDIxLjU4NzlDNDYuMzcxNiAyMS40MTA0IDQ3Ljg1NDQgMjEuMjk5MSA0OS41IDIxLjI5OTFDNTEuMTQ1NiAyMS4yOTkxIDUyLjYyODQgMjEuNDEwNCA1My42OTM1IDIxLjU4NzlDNTQuMjI4NCAyMS42NzcxIDU0LjY0MzkgMjEuNzgwNyA1NC45MTg4IDIxLjg4OVpNNDMuNzg1MyAyMS45NDUyQzQzLjc4NTQgMjEuOTQ1MiA0My43ODU5IDIxLjk0NTggNDMuNzg2NyAyMS45NDcxQzQzLjc4NTcgMjEuOTQ1OCA0My43ODUzIDIxLjk0NTIgNDMuNzg1MyAyMS45NDUyWk00My43ODUzIDIyLjA1NDhDNDMuNzg1MyAyMi4wNTQ4IDQzLjc4NTcgMjIuMDU0MiA0My43ODY3IDIyLjA1MjlDNDMuNzg1OSAyMi4wNTQyIDQzLjc4NTQgMjIuMDU0OCA0My43ODUzIDIyLjA1NDhaTTU1LjIxMzIgMjIuMDUyOEM1NS4yMTQzIDIyLjA1NDIgNTUuMjE0NyAyMi4wNTQ4IDU1LjIxNDcgMjIuMDU0OEM1NS4yMTQ2IDIyLjA1NDggNTUuMjE0MSAyMi4wNTQyIDU1LjIxMzIgMjIuMDUyOFoiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMC41OTgyMTIiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8zNDYxXzQ2ODg2KSI+CjxyZWN0IHg9IjM3LjUiIHk9IjQ0IiB3aWR0aD0iMjIiIGhlaWdodD0iMTMiIHJ4PSIxLjE4OTY2IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik00NC44NDc3IDUwLjk3MjdWNTEuNzIyN0g0MC43NDYxTDQwLjcxNDggNTEuMTU2Mkw0My4xNjggNDcuMzEyNUg0My45MjE5TDQzLjEwNTUgNDguNzEwOUw0MS42OTUzIDUwLjk3MjdINDQuODQ3N1pNNDQuMTM2NyA0Ny4zMTI1VjUzSDQzLjE5NTNWNDcuMzEyNUg0NC4xMzY3Wk00OS4xODM2IDQ5LjY3OTdWNTAuNjA5NEM0OS4xODM2IDUxLjA1NDcgNDkuMTM5MyA1MS40MzQ5IDQ5LjA1MDggNTEuNzVDNDguOTY0OCA1Mi4wNjI1IDQ4LjgzOTggNTIuMzE2NCA0OC42NzU4IDUyLjUxMTdDNDguNTExNyA1Mi43MDcgNDguMzE1MSA1Mi44NTAzIDQ4LjA4NTkgNTIuOTQxNEM0Ny44NTk0IDUzLjAzMjYgNDcuNjA1NSA1My4wNzgxIDQ3LjMyNDIgNTMuMDc4MUM0Ny4xMDAzIDUzLjA3ODEgNDYuODkxOSA1My4wNDk1IDQ2LjY5OTIgNTIuOTkyMkM0Ni41MDkxIDUyLjkzNDkgNDYuMzM3MiA1Mi44NDUxIDQ2LjE4MzYgNTIuNzIyN0M0Ni4wMjk5IDUyLjYwMDMgNDUuODk4NCA1Mi40NDI3IDQ1Ljc4OTEgNTIuMjVDNDUuNjgyMyA1Mi4wNTQ3IDQ1LjU5OSA1MS44MjE2IDQ1LjUzOTEgNTEuNTUwOEM0NS40ODE4IDUxLjI3OTkgNDUuNDUzMSA1MC45NjYxIDQ1LjQ1MzEgNTAuNjA5NFY0OS42Nzk3QzQ1LjQ1MzEgNDkuMjMxOCA0NS40OTc0IDQ4Ljg1NDIgNDUuNTg1OSA0OC41NDY5QzQ1LjY3NDUgNDguMjM3IDQ1LjgwMDggNDcuOTg1NyA0NS45NjQ4IDQ3Ljc5M0M0Ni4xMjg5IDQ3LjU5NzcgNDYuMzI0MiA0Ny40NTU3IDQ2LjU1MDggNDcuMzY3MkM0Ni43Nzk5IDQ3LjI3ODYgNDcuMDM1MiA0Ny4yMzQ0IDQ3LjMxNjQgNDcuMjM0NEM0Ny41NDMgNDcuMjM0NCA0Ny43NTEzIDQ3LjI2MyA0Ny45NDE0IDQ3LjMyMDNDNDguMTM0MSA0Ny4zNzUgNDguMzA2IDQ3LjQ2MjIgNDguNDU3IDQ3LjU4MkM0OC42MTA3IDQ3LjcwMTggNDguNzQwOSA0Ny44NTgxIDQ4Ljg0NzcgNDguMDUwOEM0OC45NTcgNDguMjQwOSA0OS4wNDA0IDQ4LjQ3MTQgNDkuMDk3NyA0OC43NDIyQzQ5LjE1NDkgNDkuMDEwNCA0OS4xODM2IDQ5LjMyMjkgNDkuMTgzNiA0OS42Nzk3Wk00OC4yNDIyIDUwLjc0MjJWNDkuNTM5MUM0OC4yNDIyIDQ5LjMxMjUgNDguMjI5MiA0OS4xMTMzIDQ4LjIwMzEgNDguOTQxNEM0OC4xNzcxIDQ4Ljc2NjkgNDguMTM4IDQ4LjYxOTggNDguMDg1OSA0OC41QzQ4LjAzNjUgNDguMzc3NiA0Ny45NzQgNDguMjc4NiA0Ny44OTg0IDQ4LjIwMzFDNDcuODIyOSA0OC4xMjUgNDcuNzM3IDQ4LjA2OSA0Ny42NDA2IDQ4LjAzNTJDNDcuNTQ0MyA0Ny45OTg3IDQ3LjQzNjIgNDcuOTgwNSA0Ny4zMTY0IDQ3Ljk4MDVDNDcuMTcwNiA0Ny45ODA1IDQ3LjA0MDQgNDguMDA5MSA0Ni45MjU4IDQ4LjA2NjRDNDYuODExMiA0OC4xMjExIDQ2LjcxNDggNDguMjA5NiA0Ni42MzY3IDQ4LjMzMkM0Ni41NTg2IDQ4LjQ1NDQgNDYuNDk4NyA0OC42MTU5IDQ2LjQ1NyA0OC44MTY0QzQ2LjQxOCA0OS4wMTQzIDQ2LjM5ODQgNDkuMjU1MiA0Ni4zOTg0IDQ5LjUzOTFWNTAuNzQyMkM0Ni4zOTg0IDUwLjk3MTQgNDYuNDExNSA1MS4xNzMyIDQ2LjQzNzUgNTEuMzQ3N0M0Ni40NjM1IDUxLjUyMjEgNDYuNTAyNiA1MS42NzE5IDQ2LjU1NDcgNTEuNzk2OUM0Ni42MDY4IDUxLjkxOTMgNDYuNjY5MyA1Mi4wMjA4IDQ2Ljc0MjIgNTIuMTAxNkM0Ni44MTc3IDUyLjE3OTcgNDYuOTAzNiA1Mi4yMzcgNDcgNTIuMjczNEM0Ny4wOTkgNTIuMzA5OSA0Ny4yMDcgNTIuMzI4MSA0Ny4zMjQyIDUyLjMyODFDNDcuNDcyNyA1Mi4zMjgxIDQ3LjYwNDIgNTIuMjk5NSA0Ny43MTg4IDUyLjI0MjJDNDcuODMzMyA1Mi4xODQ5IDQ3LjkyOTcgNTIuMDkzOCA0OC4wMDc4IDUxLjk2ODhDNDguMDg1OSA1MS44NDExIDQ4LjE0NDUgNTEuNjc1OCA0OC4xODM2IDUxLjQ3MjdDNDguMjIyNyA1MS4yNjk1IDQ4LjI0MjIgNTEuMDI2IDQ4LjI0MjIgNTAuNzQyMloiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPHBhdGggZD0iTTUyLjc0NDEgNTAuMzE2OVY1MC4xMjg5QzUyLjc0NDEgNDkuOTkzOCA1Mi43NzM0IDQ5Ljg3MDkgNTIuODMyIDQ5Ljc2MDNDNTIuODkwNiA0OS42NDk2IDUyLjk3NjEgNDkuNTYwOSA1My4wODg0IDQ5LjQ5NDFDNTMuMjAwNyA0OS40Mjc0IDUzLjMzNTggNDkuMzk0IDUzLjQ5MzcgNDkuMzk0QzUzLjY1NjQgNDkuMzk0IDUzLjc5MzEgNDkuNDI3NCA1My45MDM4IDQ5LjQ5NDFDNTQuMDE2MSA0OS41NjA5IDU0LjEwMTYgNDkuNjQ5NiA1NC4xNjAyIDQ5Ljc2MDNDNTQuMjE4OCA0OS44NzA5IDU0LjI0OCA0OS45OTM4IDU0LjI0OCA1MC4xMjg5VjUwLjMxNjlDNTQuMjQ4IDUwLjQ0ODcgNTQuMjE4OCA1MC41NyA1NC4xNjAyIDUwLjY4MDdDNTQuMTAzMiA1MC43OTEzIDU0LjAxODYgNTAuODggNTMuOTA2MiA1MC45NDY4QzUzLjc5NTYgNTEuMDEzNSA1My42NTk3IDUxLjA0NjkgNTMuNDk4NSA1MS4wNDY5QzUzLjMzOSA1MS4wNDY5IDUzLjIwMjMgNTEuMDEzNSA1My4wODg0IDUwLjk0NjhDNTIuOTc2MSA1MC44OCA1Mi44OTA2IDUwLjc5MTMgNTIuODMyIDUwLjY4MDdDNTIuNzczNCA1MC41NyA1Mi43NDQxIDUwLjQ0ODcgNTIuNzQ0MSA1MC4zMTY5Wk01My4xNTE5IDUwLjEyODlWNTAuMzE2OUM1My4xNTE5IDUwLjM4MiA1My4xNjQxIDUwLjQ0MzggNTMuMTg4NSA1MC41MDI0QzUzLjIxNDUgNTAuNTYxIDUzLjI1MzYgNTAuNjA4MiA1My4zMDU3IDUwLjY0NEM1My4zNTc3IDUwLjY3OTkgNTMuNDIyIDUwLjY5NzggNTMuNDk4NSA1MC42OTc4QzUzLjU3NjcgNTAuNjk3OCA1My42NDAxIDUwLjY3OTkgNTMuNjg5IDUwLjY0NEM1My43Mzk0IDUwLjYwODIgNTMuNzc2OSA1MC41NjEgNTMuODAxMyA1MC41MDI0QzUzLjgyNTcgNTAuNDQzOCA1My44Mzc5IDUwLjM4MiA1My44Mzc5IDUwLjMxNjlWNTAuMTI4OUM1My44Mzc5IDUwLjA2MjIgNTMuODI0OSA0OS45OTk1IDUzLjc5ODggNDkuOTQwOUM1My43NzQ0IDQ5Ljg4MDcgNTMuNzM3IDQ5LjgzMjcgNTMuNjg2NSA0OS43OTY5QzUzLjYzNjEgNDkuNzYxMSA1My41NzE4IDQ5Ljc0MzIgNTMuNDkzNyA0OS43NDMyQzUzLjQxODggNDkuNzQzMiA1My4zNTUzIDQ5Ljc2MTEgNTMuMzAzMiA0OS43OTY5QzUzLjI1MjggNDkuODMyNyA1My4yMTQ1IDQ5Ljg4MDcgNTMuMTg4NSA0OS45NDA5QzUzLjE2NDEgNDkuOTk5NSA1My4xNTE5IDUwLjA2MjIgNTMuMTUxOSA1MC4xMjg5Wk01NC40NTggNTIuMzE4OFY1Mi4xMjg0QzU0LjQ1OCA1MS45OTUgNTQuNDg3MyA1MS44NzI5IDU0LjU0NTkgNTEuNzYyMkM1NC42MDYxIDUxLjY1MTUgNTQuNjkyNCA1MS41NjI4IDU0LjgwNDcgNTEuNDk2MUM1NC45MTcgNTEuNDI5NCA1NS4wNTIxIDUxLjM5NiA1NS4yMSA1MS4zOTZDNTUuMzcyNyA1MS4zOTYgNTUuNTA5NCA1MS40Mjk0IDU1LjYyMDEgNTEuNDk2MUM1NS43MzI0IDUxLjU2MjggNTUuODE3MSA1MS42NTE1IDU1Ljg3NCA1MS43NjIyQzU1LjkzMjYgNTEuODcyOSA1NS45NjE5IDUxLjk5NSA1NS45NjE5IDUyLjEyODRWNTIuMzE4OEM1NS45NjE5IDUyLjQ1MjMgNTUuOTMyNiA1Mi41NzQ0IDU1Ljg3NCA1Mi42ODUxQzU1LjgxNzEgNTIuNzk1NyA1NS43MzMyIDUyLjg4NDQgNTUuNjIyNiA1Mi45NTEyQzU1LjUxMTkgNTMuMDE3OSA1NS4zNzY4IDUzLjA1MTMgNTUuMjE3MyA1My4wNTEzQzU1LjA1NjIgNTMuMDUxMyA1NC45MTg2IDUzLjAxNzkgNTQuODA0NyA1Mi45NTEyQzU0LjY5MjQgNTIuODg0NCA1NC42MDYxIDUyLjc5NTcgNTQuNTQ1OSA1Mi42ODUxQzU0LjQ4NzMgNTIuNTc0NCA1NC40NTggNTIuNDUyMyA1NC40NTggNTIuMzE4OFpNNTQuODY4MiA1Mi4xMjg0VjUyLjMxODhDNTQuODY4MiA1Mi4zODQgNTQuODgxMiA1Mi40NDU4IDU0LjkwNzIgNTIuNTA0NEM1NC45MzQ5IDUyLjU2MyA1NC45NzQ4IDUyLjYxMSA1NS4wMjY5IDUyLjY0ODRDNTUuMDc4OSA1Mi42ODQyIDU1LjE0MTYgNTIuNzAyMSA1NS4yMTQ4IDUyLjcwMjFDNTUuMjk3OSA1Mi43MDIxIDU1LjM2NDYgNTIuNjg0MiA1NS40MTUgNTIuNjQ4NEM1NS40NjU1IDUyLjYxMSA1NS41MDEzIDUyLjU2MzggNTUuNTIyNSA1Mi41MDY4QzU1LjU0NTIgNTIuNDQ4MiA1NS41NTY2IDUyLjM4NTYgNTUuNTU2NiA1Mi4zMTg4VjUyLjEyODRDNTUuNTU2NiA1Mi4wNjE3IDU1LjU0MzYgNTEuOTk5IDU1LjUxNzYgNTEuOTQwNEM1NS40OTMyIDUxLjg4MTggNTUuNDU0OSA1MS44MzQ2IDU1LjQwMjggNTEuNzk4OEM1NS4zNTI0IDUxLjc2MyA1NS4yODgxIDUxLjc0NTEgNTUuMjEgNTEuNzQ1MUM1NS4xMzM1IDUxLjc0NTEgNTUuMDcgNTEuNzYzIDU1LjAxOTUgNTEuNzk4OEM1NC45NjkxIDUxLjgzNDYgNTQuOTMwOCA1MS44ODE4IDU0LjkwNDggNTEuOTQwNEM1NC44ODA0IDUxLjk5OSA1NC44NjgyIDUyLjA2MTcgNTQuODY4MiA1Mi4xMjg0Wk01NS4zNTY0IDQ5Ljk1MzFMNTMuNjIwNiA1Mi43MzE0TDUzLjMyMDMgNTIuNTU4MUw1NS4wNTYyIDQ5Ljc3OThMNTUuMzU2NCA0OS45NTMxWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8L2c+CjwvZz4KPHJlY3QgeD0iMC4yNSIgeT0iMC4yNSIgd2lkdGg9Ijk3LjUiIGhlaWdodD0iNzcuNSIgcng9IjEuNzUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIiBzdHJva2Utd2lkdGg9IjAuNSIvPgo8cmVjdCB4PSIxMDIiIHdpZHRoPSI5OCIgaGVpZ2h0PSI3OCIgcng9IjIiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMTYuMjM5IDEyLjM5MTlWMTNIMTE0LjAwNVYxMi4zOTE5SDExNi4yMzlaTTExNC4yMTkgOC41NTA0N1YxM0gxMTMuNDUyVjguNTUwNDdIMTE0LjIxOVpNMTE3LjY2OCA5LjY5MzQyVjEzSDExNi45MjhWOS42OTM0MkgxMTcuNjY4Wk0xMTYuODc5IDguODI1NTFDMTE2Ljg3OSA4LjcxMzQ2IDExNi45MTYgOC42MjA3NiAxMTYuOTg5IDguNTQ3NDJDMTE3LjA2NSA4LjQ3MjA0IDExNy4xNjkgOC40MzQzNSAxMTcuMzAxIDguNDM0MzVDMTE3LjQzMSA4LjQzNDM1IDExNy41MzQgOC40NzIwNCAxMTcuNjEgOC41NDc0MkMxMTcuNjg1IDguNjIwNzYgMTE3LjcyMyA4LjcxMzQ2IDExNy43MjMgOC44MjU1MUMxMTcuNzIzIDguOTM1NTMgMTE3LjY4NSA5LjAyNzIxIDExNy42MSA5LjEwMDU1QzExNy41MzQgOS4xNzM5IDExNy40MzEgOS4yMTA1NyAxMTcuMzAxIDkuMjEwNTdDMTE3LjE2OSA5LjIxMDU3IDExNy4wNjUgOS4xNzM5IDExNi45ODkgOS4xMDA1NUMxMTYuOTE2IDkuMDI3MjEgMTE2Ljg3OSA4LjkzNTUzIDExNi44NzkgOC44MjU1MVpNMTIwLjYwOSAxNC4yNzEzVjEwLjM1MDVMMTIwLjY5NCA5LjY5MzQySDEyMS4zNTFWMTQuMjcxM0gxMjAuNjA5Wk0xMTguNDYgMTEuMzgwM1YxMS4zMTYxQzExOC40NiAxMS4wNjU2IDExOC40ODkgMTAuODM3NCAxMTguNTQ2IDEwLjYzMTZDMTE4LjYwMyAxMC40MjM4IDExOC42ODggMTAuMjQ1NSAxMTguOCAxMC4wOTY4QzExOC45MTIgOS45NDgwOCAxMTkuMDQ4IDkuODMzOTkgMTE5LjIwOSA5Ljc1NDUzQzExOS4zNyA5LjY3MzA0IDExOS41NTUgOS42MzIzIDExOS43NjUgOS42MzIzQzExOS45NjkgOS42MzIzIDEyMC4xNDYgOS42NzEgMTIwLjI5NyA5Ljc0ODQyQzEyMC40NSA5LjgyNTg0IDEyMC41NzggOS45MzY4OCAxMjAuNjgyIDEwLjA4MTVDMTIwLjc4OCAxMC4yMjQxIDEyMC44NzMgMTAuMzk0MyAxMjAuOTM2IDEwLjU5MTlDMTIwLjk5OSAxMC43ODk1IDEyMS4wNDUgMTEuMDA5NSAxMjEuMDczIDExLjI1MlYxMS40NTY3QzEyMS4wNDcgMTEuNjkzMSAxMjEuMDAyIDExLjkwOSAxMjAuOTM5IDEyLjEwNDZDMTIwLjg3NiAxMi4zMDAyIDEyMC43OTEgMTIuNDY5MyAxMjAuNjg1IDEyLjYxMTlDMTIwLjU3OSAxMi43NTQ1IDEyMC40NSAxMi44NjU1IDEyMC4yOTcgMTIuOTQ1QzEyMC4xNDQgMTMuMDIyNCAxMTkuOTY1IDEzLjA2MTEgMTE5Ljc1OSAxMy4wNjExQzExOS41NTMgMTMuMDYxMSAxMTkuMzcgMTMuMDE5NCAxMTkuMjA5IDEyLjkzNThDMTE5LjA0OCAxMi44NTIzIDExOC45MTIgMTIuNzM1MSAxMTguOCAxMi41ODQ0QzExOC42OSAxMi40MzE2IDExOC42MDUgMTIuMjUzMyAxMTguNTQ2IDEyLjA0OTZDMTE4LjQ4OSAxMS44NDM4IDExOC40NiAxMS42MjA3IDExOC40NiAxMS4zODAzWk0xMTkuMTk3IDExLjMxNjFWMTEuMzgwM0MxMTkuMTk3IDExLjUzMTEgMTE5LjIxIDExLjY3MjcgMTE5LjIzNyAxMS44MDUxQzExOS4yNjUgMTEuOTM1NSAxMTkuMzEgMTIuMDUxNiAxMTkuMzcxIDEyLjE1MzVDMTE5LjQzMiAxMi4yNTMzIDExOS41MSAxMi4zMzE4IDExOS42MDMgMTIuMzg4OEMxMTkuNjk3IDEyLjQ0NTggMTE5LjgxIDEyLjQ3NDQgMTE5Ljk0MyAxMi40NzQ0QzEyMC4xMTYgMTIuNDc0NCAxMjAuMjU3IDEyLjQzNjcgMTIwLjM2NyAxMi4zNjEzQzEyMC40NzkgMTIuMjg1OSAxMjAuNTY1IDEyLjE4NTEgMTIwLjYyNCAxMi4wNTg4QzEyMC42ODUgMTEuOTMwNCAxMjAuNzI4IDExLjc4ODggMTIwLjc1MiAxMS42MzRWMTEuMDgwOEMxMjAuNzM4IDEwLjk2MDYgMTIwLjcxMyAxMC44NDg2IDEyMC42NzYgMTAuNzQ0N0MxMjAuNjM5IDEwLjYzODcgMTIwLjU4OCAxMC41NDcxIDEyMC41MjMgMTAuNDY5NkMxMjAuNDYgMTAuMzkwMiAxMjAuMzgxIDEwLjMyOTEgMTIwLjI4NSAxMC4yODYzQzEyMC4xOTEgMTAuMjQxNSAxMjAuMDc5IDEwLjIxOSAxMTkuOTQ5IDEwLjIxOUMxMTkuODE2IDEwLjIxOSAxMTkuNzAyIDEwLjI0NzYgMTE5LjYwNiAxMC4zMDQ2QzExOS41MTEgMTAuMzYxNyAxMTkuNDMyIDEwLjQ0MTEgMTE5LjM3MSAxMC41NDNDMTE5LjMxMiAxMC42NDI4IDExOS4yNjggMTAuNzU4OSAxMTkuMjQgMTAuODkxNEMxMTkuMjExIDExLjAyMzggMTE5LjE5NyAxMS4xNjU0IDExOS4xOTcgMTEuMzE2MVpNMTI0LjI1IDEyLjIyMDdWOS42OTM0MkgxMjQuOTg5VjEzSDEyNC4yOTJMMTI0LjI1IDEyLjIyMDdaTTEyNC4zNTMgMTEuNTMzMUwxMjQuNjAxIDExLjUyN0MxMjQuNjAxIDExLjc0OTEgMTI0LjU3NyAxMS45NTM4IDEyNC41MjggMTIuMTQxM0MxMjQuNDc5IDEyLjMyNjcgMTI0LjQwMyAxMi40ODg2IDEyNC4zMDIgMTIuNjI3MkMxMjQuMiAxMi43NjM3IDEyNC4wNjkgMTIuODcwNiAxMjMuOTEgMTIuOTQ4QzEyMy43NTEgMTMuMDIzNCAxMjMuNTYxIDEzLjA2MTEgMTIzLjMzOSAxMy4wNjExQzEyMy4xNzggMTMuMDYxMSAxMjMuMDMgMTMuMDM3NyAxMjIuODk2IDEyLjk5MDhDMTIyLjc2MSAxMi45NDQgMTIyLjY0NSAxMi44NzE2IDEyMi41NDcgMTIuNzczOUMxMjIuNDUyIDEyLjY3NjEgMTIyLjM3NyAxMi41NDg3IDEyMi4zMjQgMTIuMzkxOUMxMjIuMjcxIDEyLjIzNSAxMjIuMjQ1IDEyLjA0NzUgMTIyLjI0NSAxMS44Mjk2VjkuNjkzNDJIMTIyLjk4MVYxMS44MzU3QzEyMi45ODEgMTEuOTU1OSAxMjIuOTk2IDEyLjA1NjcgMTIzLjAyNCAxMi4xMzgyQzEyMy4wNTMgMTIuMjE3NyAxMjMuMDkxIDEyLjI4MTggMTIzLjE0IDEyLjMzMDdDMTIzLjE4OSAxMi4zNzk2IDEyMy4yNDYgMTIuNDE0MyAxMjMuMzExIDEyLjQzNDZDMTIzLjM3NyAxMi40NTUgMTIzLjQ0NiAxMi40NjUyIDEyMy41MTkgMTIuNDY1MkMxMjMuNzI5IDEyLjQ2NTIgMTIzLjg5NCAxMi40MjQ1IDEyNC4wMTQgMTIuMzQzQzEyNC4xMzcgMTIuMjU5NCAxMjQuMjIzIDEyLjE0NzQgMTI0LjI3NCAxMi4wMDY4QzEyNC4zMjcgMTEuODY2MiAxMjQuMzUzIDExLjcwODMgMTI0LjM1MyAxMS41MzMxWk0xMjYuNjUzIDkuNjkzNDJWMTNIMTI1LjkxM1Y5LjY5MzQySDEyNi42NTNaTTEyNS44NjQgOC44MjU1MUMxMjUuODY0IDguNzEzNDYgMTI1LjkwMSA4LjYyMDc2IDEyNS45NzQgOC41NDc0MkMxMjYuMDUgOC40NzIwNCAxMjYuMTU0IDguNDM0MzUgMTI2LjI4NiA4LjQzNDM1QzEyNi40MTYgOC40MzQzNSAxMjYuNTE5IDguNDcyMDQgMTI2LjU5NSA4LjU0NzQyQzEyNi42NyA4LjYyMDc2IDEyNi43MDggOC43MTM0NiAxMjYuNzA4IDguODI1NTFDMTI2LjcwOCA4LjkzNTUzIDEyNi42NyA5LjAyNzIxIDEyNi41OTUgOS4xMDA1NUMxMjYuNTE5IDkuMTczOSAxMjYuNDE2IDkuMjEwNTcgMTI2LjI4NiA5LjIxMDU3QzEyNi4xNTQgOS4yMTA1NyAxMjYuMDUgOS4xNzM5IDEyNS45NzQgOS4xMDA1NUMxMjUuOTAxIDkuMDI3MjEgMTI1Ljg2NCA4LjkzNTUzIDEyNS44NjQgOC44MjU1MVpNMTI5LjU5NyAxMi4zMTU1VjguMzA1OTlIMTMwLjMzNlYxM0gxMjkuNjY3TDEyOS41OTcgMTIuMzE1NVpNMTI3LjQ0NSAxMS4zODM0VjExLjMxOTJDMTI3LjQ0NSAxMS4wNjg2IDEyNy40NzUgMTAuODQwNCAxMjcuNTM0IDEwLjYzNDdDMTI3LjU5MyAxMC40MjY5IDEyNy42NzkgMTAuMjQ4NiAxMjcuNzkxIDEwLjA5OTlDMTI3LjkwMyA5Ljk0OTEgMTI4LjAzOSA5LjgzMzk5IDEyOC4yIDkuNzU0NTNDMTI4LjM2MSA5LjY3MzA0IDEyOC41NDMgOS42MzIzIDEyOC43NDQgOS42MzIzQzEyOC45NDQgOS42MzIzIDEyOS4xMTkgOS42NzEgMTI5LjI3IDkuNzQ4NDJDMTI5LjQyMSA5LjgyNTg0IDEyOS41NDkgOS45MzY4OCAxMjkuNjU1IDEwLjA4MTVDMTI5Ljc2MSAxMC4yMjQxIDEyOS44NDUgMTAuMzk1MyAxMjkuOTA5IDEwLjU5NDlDMTI5Ljk3MiAxMC43OTI2IDEzMC4wMTcgMTEuMDEyNiAxMzAuMDQzIDExLjI1NVYxMS40NTk4QzEzMC4wMTcgMTEuNjk2MSAxMjkuOTcyIDExLjkxMjEgMTI5LjkwOSAxMi4xMDc2QzEyOS44NDUgMTIuMzAzMiAxMjkuNzYxIDEyLjQ3MjMgMTI5LjY1NSAxMi42MTQ5QzEyOS41NDkgMTIuNzU3NiAxMjkuNDIgMTIuODY3NiAxMjkuMjY3IDEyLjk0NUMxMjkuMTE2IDEzLjAyMjQgMTI4Ljk0IDEzLjA2MTEgMTI4LjczOCAxMy4wNjExQzEyOC41MzggMTMuMDYxMSAxMjguMzU4IDEzLjAxOTQgMTI4LjE5NyAxMi45MzU4QzEyOC4wMzggMTIuODUyMyAxMjcuOTAzIDEyLjczNTEgMTI3Ljc5MSAxMi41ODQ0QzEyNy42NzkgMTIuNDMzNiAxMjcuNTkzIDEyLjI1NjQgMTI3LjUzNCAxMi4wNTI2QzEyNy40NzUgMTEuODQ2OSAxMjcuNDQ1IDExLjYyMzggMTI3LjQ0NSAxMS4zODM0Wk0xMjguMTgyIDExLjMxOTJWMTEuMzgzNEMxMjguMTgyIDExLjUzNDEgMTI4LjE5NSAxMS42NzQ3IDEyOC4yMjIgMTEuODA1MUMxMjguMjUgMTEuOTM1NSAxMjguMjk0IDEyLjA1MDYgMTI4LjM1MyAxMi4xNTA0QzEyOC40MTIgMTIuMjQ4MiAxMjguNDg5IDEyLjMyNTYgMTI4LjU4MiAxMi4zODI3QzEyOC42NzggMTIuNDM3NyAxMjguNzkyIDEyLjQ2NTIgMTI4LjkyNSAxMi40NjUyQzEyOS4wOTIgMTIuNDY1MiAxMjkuMjI5IDEyLjQyODUgMTI5LjMzNyAxMi4zNTUyQzEyOS40NDUgMTIuMjgxOCAxMjkuNTMgMTIuMTgzIDEyOS41OTEgMTIuMDU4OEMxMjkuNjU0IDExLjkzMjQgMTI5LjY5NyAxMS43OTE5IDEyOS43MTkgMTEuNjM3VjExLjA4MzlDMTI5LjcwNyAxMC45NjM3IDEyOS42ODEgMTAuODUxNiAxMjkuNjQzIDEwLjc0NzdDMTI5LjYwNiAxMC42NDM4IDEyOS41NTYgMTAuNTUzMiAxMjkuNDkzIDEwLjQ3NTdDMTI5LjQzIDEwLjM5NjMgMTI5LjM1MSAxMC4zMzUyIDEyOS4yNTggMTAuMjkyNEMxMjkuMTY2IDEwLjI0NzYgMTI5LjA1NyAxMC4yMjUyIDEyOC45MzEgMTAuMjI1MkMxMjguNzk2IDEwLjIyNTIgMTI4LjY4MiAxMC4yNTM3IDEyOC41ODggMTAuMzEwN0MxMjguNDk1IDEwLjM2NzggMTI4LjQxNyAxMC40NDYyIDEyOC4zNTYgMTAuNTQ2QzEyOC4yOTcgMTAuNjQ1OSAxMjguMjUzIDEwLjc2MiAxMjguMjI1IDEwLjg5NDRDMTI4LjE5NiAxMS4wMjY4IDEyOC4xODIgMTEuMTY4NCAxMjguMTgyIDExLjMxOTJaTTEzMy42OTQgOC4zMDU5OVYxM0gxMzIuOTU1VjguMzA1OTlIMTMzLjY5NFpNMTM2LjA3OSAxMy4wNjExQzEzNS44MzUgMTMuMDYxMSAxMzUuNjE0IDEzLjAyMTQgMTM1LjQxNiAxMi45NDE5QzEzNS4yMiAxMi44NjA0IDEzNS4wNTMgMTIuNzQ3NCAxMzQuOTE1IDEyLjYwMjdDMTM0Ljc3OCAxMi40NTgxIDEzNC42NzMgMTIuMjg4IDEzNC42IDEyLjA5MjRDMTM0LjUyNyAxMS44OTY4IDEzNC40OSAxMS42ODU5IDEzNC40OSAxMS40NTk4VjExLjMzNzVDMTM0LjQ5IDExLjA3ODggMTM0LjUyOCAxMC44NDQ1IDEzNC42MDMgMTAuNjM0N0MxMzQuNjc4IDEwLjQyNDggMTM0Ljc4MyAxMC4yNDU1IDEzNC45MTggMTAuMDk2OEMxMzUuMDUyIDkuOTQ2MDQgMTM1LjIxMSA5LjgzMDkzIDEzNS4zOTUgOS43NTE0OEMxMzUuNTc4IDkuNjcyMDIgMTM1Ljc3NyA5LjYzMjMgMTM1Ljk5IDkuNjMyM0MxMzYuMjI3IDkuNjMyMyAxMzYuNDM0IDkuNjcyMDIgMTM2LjYxMSA5Ljc1MTQ4QzEzNi43ODggOS44MzA5MyAxMzYuOTM1IDkuOTQyOTkgMTM3LjA1MSAxMC4wODc2QzEzNy4xNjkgMTAuMjMwMyAxMzcuMjU3IDEwLjQwMDQgMTM3LjMxNCAxMC41OThDMTM3LjM3MyAxMC43OTU2IDEzNy40MDIgMTEuMDEzNiAxMzcuNDAyIDExLjI1MlYxMS41NjY3SDEzNC44NDhWMTEuMDM4MUgxMzYuNjc1VjEwLjk4QzEzNi42NzEgMTAuODQ3NiAxMzYuNjQ0IDEwLjcyMzMgMTM2LjU5NiAxMC42MDcyQzEzNi41NDkgMTAuNDkxIDEzNi40NzYgMTAuMzk3MyAxMzYuMzc5IDEwLjMyNkMxMzYuMjgxIDEwLjI1NDcgMTM2LjE1IDEwLjIxOSAxMzUuOTg3IDEwLjIxOUMxMzUuODY1IDEwLjIxOSAxMzUuNzU2IDEwLjI0NTUgMTM1LjY2IDEwLjI5ODVDMTM1LjU2NyAxMC4zNDk0IDEzNS40ODggMTAuNDIzOCAxMzUuNDI1IDEwLjUyMTZDMTM1LjM2MiAxMC42MTk0IDEzNS4zMTMgMTAuNzM3NSAxMzUuMjc4IDEwLjg3NjFDMTM1LjI0NiAxMS4wMTI2IDEzNS4yMyAxMS4xNjY0IDEzNS4yMyAxMS4zMzc1VjExLjQ1OThDMTM1LjIzIDExLjYwNDQgMTM1LjI0OSAxMS43Mzg5IDEzNS4yODggMTEuODYzMkMxMzUuMzI4IDExLjk4NTQgMTM1LjM4NyAxMi4wOTI0IDEzNS40NjUgMTIuMTg0QzEzNS41NDIgMTIuMjc1NyAxMzUuNjM2IDEyLjM0ODEgMTM1Ljc0NiAxMi40MDFDMTM1Ljg1NiAxMi40NTIgMTM1Ljk4MSAxMi40Nzc0IDEzNi4xMjIgMTIuNDc3NEMxMzYuMjk5IDEyLjQ3NzQgMTM2LjQ1NyAxMi40NDE4IDEzNi41OTYgMTIuMzcwNUMxMzYuNzM0IDEyLjI5OTIgMTM2Ljg1NCAxMi4xOTgzIDEzNi45NTYgMTIuMDY3OUwxMzcuMzQ0IDEyLjQ0MzhDMTM3LjI3MyAxMi41NDc3IDEzNy4xOCAxMi42NDc1IDEzNy4wNjYgMTIuNzQzM0MxMzYuOTUyIDEyLjgzNyAxMzYuODEzIDEyLjkxMzQgMTM2LjY0OCAxMi45NzI1QzEzNi40ODUgMTMuMDMxNiAxMzYuMjk1IDEzLjA2MTEgMTM2LjA3OSAxMy4wNjExWk0xMzkuMTMgMTIuNDE2M0wxMzkuOTQgOS42OTM0MkgxNDAuNzA0TDEzOS41NTUgMTNIMTM5LjA3OEwxMzkuMTMgMTIuNDE2M1pNMTM4LjUxIDkuNjkzNDJMMTM5LjMzNSAxMi40Mjg1TDEzOS4zNzUgMTNIMTM4Ljg5OEwxMzcuNzQzIDkuNjkzNDJIMTM4LjUxWk0xNDIuNjk1IDEzLjA2MTFDMTQyLjQ1IDEzLjA2MTEgMTQyLjIyOSAxMy4wMjE0IDE0Mi4wMzEgMTIuOTQxOUMxNDEuODM2IDEyLjg2MDQgMTQxLjY2OSAxMi43NDc0IDE0MS41MyAxMi42MDI3QzE0MS4zOTQgMTIuNDU4MSAxNDEuMjg5IDEyLjI4OCAxNDEuMjE2IDEyLjA5MjRDMTQxLjE0MiAxMS44OTY4IDE0MS4xMDYgMTEuNjg1OSAxNDEuMTA2IDExLjQ1OThWMTEuMzM3NUMxNDEuMTA2IDExLjA3ODggMTQxLjE0MyAxMC44NDQ1IDE0MS4yMTkgMTAuNjM0N0MxNDEuMjk0IDEwLjQyNDggMTQxLjM5OSAxMC4yNDU1IDE0MS41MzMgMTAuMDk2OEMxNDEuNjY4IDkuOTQ2MDQgMTQxLjgyNyA5LjgzMDkzIDE0Mi4wMSA5Ljc1MTQ4QzE0Mi4xOTMgOS42NzIwMiAxNDIuMzkyIDkuNjMyMyAxNDIuNjA2IDkuNjMyM0MxNDIuODQyIDkuNjMyMyAxNDMuMDQ5IDkuNjcyMDIgMTQzLjIyNiA5Ljc1MTQ4QzE0My40MDQgOS44MzA5MyAxNDMuNTUgOS45NDI5OSAxNDMuNjY2IDEwLjA4NzZDMTQzLjc4NSAxMC4yMzAzIDE0My44NzIgMTAuNDAwNCAxNDMuOTI5IDEwLjU5OEMxNDMuOTg4IDEwLjc5NTYgMTQ0LjAxOCAxMS4wMTM2IDE0NC4wMTggMTEuMjUyVjExLjU2NjdIMTQxLjQ2M1YxMS4wMzgxSDE0My4yOTFWMTAuOThDMTQzLjI4NiAxMC44NDc2IDE0My4yNiAxMC43MjMzIDE0My4yMTEgMTAuNjA3MkMxNDMuMTY0IDEwLjQ5MSAxNDMuMDkyIDEwLjM5NzMgMTQyLjk5NCAxMC4zMjZDMTQyLjg5NiAxMC4yNTQ3IDE0Mi43NjYgMTAuMjE5IDE0Mi42MDMgMTAuMjE5QzE0Mi40ODEgMTAuMjE5IDE0Mi4zNzIgMTAuMjQ1NSAxNDIuMjc2IDEwLjI5ODVDMTQyLjE4MiAxMC4zNDk0IDE0Mi4xMDQgMTAuNDIzOCAxNDIuMDQxIDEwLjUyMTZDMTQxLjk3NyAxMC42MTk0IDE0MS45MjkgMTAuNzM3NSAxNDEuODk0IDEwLjg3NjFDMTQxLjg2MSAxMS4wMTI2IDE0MS44NDUgMTEuMTY2NCAxNDEuODQ1IDExLjMzNzVWMTEuNDU5OEMxNDEuODQ1IDExLjYwNDQgMTQxLjg2NCAxMS43Mzg5IDE0MS45MDMgMTEuODYzMkMxNDEuOTQ0IDExLjk4NTQgMTQyLjAwMyAxMi4wOTI0IDE0Mi4wOCAxMi4xODRDMTQyLjE1OCAxMi4yNzU3IDE0Mi4yNTEgMTIuMzQ4MSAxNDIuMzYyIDEyLjQwMUMxNDIuNDcyIDEyLjQ1MiAxNDIuNTk3IDEyLjQ3NzQgMTQyLjczNyAxMi40Nzc0QzE0Mi45MTUgMTIuNDc3NCAxNDMuMDczIDEyLjQ0MTggMTQzLjIxMSAxMi4zNzA1QzE0My4zNSAxMi4yOTkyIDE0My40NyAxMi4xOTgzIDE0My41NzIgMTIuMDY3OUwxNDMuOTYgMTIuNDQzOEMxNDMuODg4IDEyLjU0NzcgMTQzLjc5NiAxMi42NDc1IDE0My42ODIgMTIuNzQzM0MxNDMuNTY4IDEyLjgzNyAxNDMuNDI4IDEyLjkxMzQgMTQzLjI2MyAxMi45NzI1QzE0My4xIDEzLjAzMTYgMTQyLjkxMSAxMy4wNjExIDE0Mi42OTUgMTMuMDYxMVpNMTQ1LjUwMSA4LjMwNTk5VjEzSDE0NC43NjJWOC4zMDU5OUgxNDUuNTAxWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBvcGFjaXR5PSIwLjEiIGQ9Ik0xNjkuNSAzMS4zMDRDMTcyLjgyOCAzMS4zMDQgMTc1Ljg3IDMzLjE5MjEgMTc4LjA5MSAzNi4zMDIzQzE4MC4zMTMgMzkuNDEyIDE4MS42OTYgNDMuNzIzNiAxODEuNjk2IDQ4LjVDMTgxLjY5NiA1My4yNzY0IDE4MC4zMTMgNTcuNTg4IDE3OC4wOTEgNjAuNjk3N0MxNzUuODcgNjMuODA3OSAxNzIuODI4IDY1LjY5NiAxNjkuNSA2NS42OTZDMTY2LjE3MiA2NS42OTYgMTYzLjEzIDYzLjgwNzkgMTYwLjkwOSA2MC42OTc3QzE1OC42ODcgNTcuNTg4IDE1Ny4zMDQgNTMuMjc2NCAxNTcuMzA0IDQ4LjVDMTU3LjMwNCA0My43MjM2IDE1OC42ODcgMzkuNDEyIDE2MC45MDkgMzYuMzAyM0MxNjMuMTMgMzMuMTkyMSAxNjYuMTcyIDMxLjMwNCAxNjkuNSAzMS4zMDRaIiBmaWxsPSIjNjIxNkZGIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIwLjYwOCIvPgo8bWFzayBpZD0ibWFzazFfMzQ2MV80Njg4NiIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMTIwIiB5PSIzMSIgd2lkdGg9IjYyIiBoZWlnaHQ9IjM0Ij4KPG1hc2sgaWQ9InBhdGgtMjItaW5zaWRlLTNfMzQ2MV80Njg4NiIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEzMi4xNzYgMzEuNjI0M0MxMzIuMTY4IDMxLjYyNDMgMTMyLjE1OSAzMS42MjQzIDEzMi4xNTEgMzEuNjI0M0MxMzIuMTQzIDMxLjYyNDMgMTMyLjEzNSAzMS42MjQzIDEzMi4xMjcgMzEuNjI0M0wxMzEuODQ3IDMxLjYyNDNWMzEuNjMwMUMxMjUuNzc2IDMxLjg2NTIgMTIwLjkwMyAzOS4xMjIzIDEyMC45MDMgNDguMDQwM0MxMjAuOTAzIDU2Ljk1ODIgMTI1Ljc3NiA2NC4yMTUzIDEzMS44NDcgNjQuNDUwNFY2NC40NTYzSDE2OS44NDdIMTcwLjE1MVY2NC40NTA0QzE3Ni4yMjMgNjQuMjE1MyAxODEuMDk1IDU2Ljk1ODIgMTgxLjA5NSA0OC4wNDAzQzE4MS4wOTUgMzkuMTIyNCAxNzYuMjIzIDMxLjg2NTMgMTcwLjE1MSAzMS42MzAyVjMxLjYyNDNMMTY5Ljg1NSAzMS42MjQzTDE2OS44NDcgMzEuNjI0M0wxNjkuODQgMzEuNjI0M0wxMzIuMTc2IDMxLjYyNDNaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzIuMTc2IDMxLjYyNDNDMTMyLjE2OCAzMS42MjQzIDEzMi4xNTkgMzEuNjI0MyAxMzIuMTUxIDMxLjYyNDNDMTMyLjE0MyAzMS42MjQzIDEzMi4xMzUgMzEuNjI0MyAxMzIuMTI3IDMxLjYyNDNMMTMxLjg0NyAzMS42MjQzVjMxLjYzMDFDMTI1Ljc3NiAzMS44NjUyIDEyMC45MDMgMzkuMTIyMyAxMjAuOTAzIDQ4LjA0MDNDMTIwLjkwMyA1Ni45NTgyIDEyNS43NzYgNjQuMjE1MyAxMzEuODQ3IDY0LjQ1MDRWNjQuNDU2M0gxNjkuODQ3SDE3MC4xNTFWNjQuNDUwNEMxNzYuMjIzIDY0LjIxNTMgMTgxLjA5NSA1Ni45NTgyIDE4MS4wOTUgNDguMDQwM0MxODEuMDk1IDM5LjEyMjQgMTc2LjIyMyAzMS44NjUzIDE3MC4xNTEgMzEuNjMwMlYzMS42MjQzTDE2OS44NTUgMzEuNjI0M0wxNjkuODQ3IDMxLjYyNDNMMTY5Ljg0IDMxLjYyNDNMMTMyLjE3NiAzMS42MjQzWiIgZmlsbD0iIzdGODRGQiIvPgo8cGF0aCBkPSJNMTMyLjE3NiAzMS42MjQzTDEzMi4xNzQgMzIuMjMyM0gxMzIuMTc2VjMxLjYyNDNaTTEzMi4xMjcgMzEuNjI0M1YzMi4yMzIzTDEzMi4xMjkgMzIuMjMyM0wxMzIuMTI3IDMxLjYyNDNaTTEzMS44NDcgMzEuNjI0M1YzMS4wMTYzSDEzMS4yMzlWMzEuNjI0M0gxMzEuODQ3Wk0xMzEuODQ3IDMxLjYzMDFMMTMxLjg3MSAzMi4yMzc3TDEzMi40NTUgMzIuMjE1MVYzMS42MzAxSDEzMS44NDdaTTEzMS44NDcgNjQuNDUwNEgxMzIuNDU1VjYzLjg2NTVMMTMxLjg3MSA2My44NDI4TDEzMS44NDcgNjQuNDUwNFpNMTMxLjg0NyA2NC40NTYzSDEzMS4yMzlWNjUuMDY0M0gxMzEuODQ3VjY0LjQ1NjNaTTE3MC4xNTEgNjQuNDU2M1Y2NS4wNjQzSDE3MC43NTlWNjQuNDU2M0gxNzAuMTUxWk0xNzAuMTUxIDY0LjQ1MDRMMTcwLjEyOCA2My44NDI5TDE2OS41NDMgNjMuODY1NVY2NC40NTA0SDE3MC4xNTFaTTE4MS4wOTUgNDguMDQwM0gxODEuNzAzSDE4MS4wOTVaTTE3MC4xNTEgMzEuNjMwMkgxNjkuNTQzVjMyLjIxNTFMMTcwLjEyOCAzMi4yMzc3TDE3MC4xNTEgMzEuNjMwMlpNMTcwLjE1MSAzMS42MjQzSDE3MC43NTlWMzEuMDE2M0wxNzAuMTUxIDMxLjAxNjNWMzEuNjI0M1pNMTY5Ljg1NSAzMS42MjQzTDE2OS44NTUgMzIuMjMyM0gxNjkuODU1VjMxLjYyNDNaTTE2OS44NDcgMzEuNjI0M0wxNjkuODQ4IDMxLjAxNjNMMTY5Ljg0NyAzMS4wMTYzTDE2OS44NDcgMzEuNjI0M1pNMTY5Ljg0IDMxLjYyNDNWMzIuMjMyM0wxNjkuODQgMzIuMjMyM0wxNjkuODQgMzEuNjI0M1pNMTMyLjE1MSAzMi4yMzIzQzEzMi4xNTkgMzIuMjMyMyAxMzIuMTY2IDMyLjIzMjMgMTMyLjE3NCAzMi4yMzIzTDEzMi4xNzggMzEuMDE2M0MxMzIuMTY5IDMxLjAxNjMgMTMyLjE2IDMxLjAxNjMgMTMyLjE1MSAzMS4wMTYzVjMyLjIzMjNaTTEzMi4xMjkgMzIuMjMyM0MxMzIuMTM2IDMyLjIzMjMgMTMyLjE0NCAzMi4yMzIzIDEzMi4xNTEgMzIuMjMyM1YzMS4wMTYzQzEzMi4xNDMgMzEuMDE2MyAxMzIuMTM0IDMxLjAxNjMgMTMyLjEyNSAzMS4wMTYzTDEzMi4xMjkgMzIuMjMyM1pNMTMyLjEyNyAzMS4wMTYzSDEzMS44NDdWMzIuMjMyM0gxMzIuMTI3VjMxLjAxNjNaTTEzMS4yMzkgMzEuNjI0M1YzMS42MzAxSDEzMi40NTVWMzEuNjI0M0gxMzEuMjM5Wk0xMjEuNTExIDQ4LjA0MDNDMTIxLjUxMSA0My42ODY1IDEyMi43MDIgMzkuNzYzNSAxMjQuNjA0IDM2LjkxNjlDMTI2LjUwOSAzNC4wNjY4IDEyOS4wODYgMzIuMzQ1NSAxMzEuODcxIDMyLjIzNzdMMTMxLjgyNCAzMS4wMjI2QzEyOC41MzcgMzEuMTQ5OSAxMjUuNjQyIDMzLjE3NDcgMTIzLjU5MyAzNi4yNDEzQzEyMS41NDEgMzkuMzExNSAxMjAuMjk1IDQzLjQ3NiAxMjAuMjk1IDQ4LjA0MDNIMTIxLjUxMVpNMTMxLjg3MSA2My44NDI4QzEyOS4wODYgNjMuNzM1IDEyNi41MDkgNjIuMDEzOCAxMjQuNjA0IDU5LjE2MzZDMTIyLjcwMiA1Ni4zMTcgMTIxLjUxMSA1Mi4zOTQgMTIxLjUxMSA0OC4wNDAzSDEyMC4yOTVDMTIwLjI5NSA1Mi42MDQ1IDEyMS41NDEgNTYuNzY5IDEyMy41OTMgNTkuODM5MkMxMjUuNjQyIDYyLjkwNTkgMTI4LjUzNyA2NC45MzA3IDEzMS44MjQgNjUuMDU3OUwxMzEuODcxIDYzLjg0MjhaTTEzMS4yMzkgNjQuNDUwNFY2NC40NTYzSDEzMi40NTVWNjQuNDUwNEgxMzEuMjM5Wk0xMzEuODQ3IDY1LjA2NDNIMTY5Ljg0N1Y2My44NDgzSDEzMS44NDdWNjUuMDY0M1pNMTY5Ljg0NyA2NS4wNjQzSDE3MC4xNTFWNjMuODQ4M0gxNjkuODQ3VjY1LjA2NDNaTTE3MC43NTkgNjQuNDU2M1Y2NC40NTA0SDE2OS41NDNWNjQuNDU2M0gxNzAuNzU5Wk0xNzAuMTc1IDY1LjA1OEMxNzMuNDYyIDY0LjkzMDcgMTc2LjM1NiA2Mi45MDU5IDE3OC40MDYgNTkuODM5MkMxODAuNDU3IDU2Ljc2OSAxODEuNzAzIDUyLjYwNDUgMTgxLjcwMyA0OC4wNDAzSDE4MC40ODdDMTgwLjQ4NyA1Mi4zOTQgMTc5LjI5NyA1Ni4zMTcgMTc3LjM5NSA1OS4xNjM2QzE3NS40OSA2Mi4wMTM4IDE3Mi45MTIgNjMuNzM1IDE3MC4xMjggNjMuODQyOUwxNzAuMTc1IDY1LjA1OFpNMTgxLjcwMyA0OC4wNDAzQzE4MS43MDMgNDMuNDc2MSAxODAuNDU3IDM5LjMxMTYgMTc4LjQwNiAzNi4yNDE0QzE3Ni4zNTYgMzMuMTc0NyAxNzMuNDYyIDMxLjE0OTkgMTcwLjE3NSAzMS4wMjI2TDE3MC4xMjggMzIuMjM3N0MxNzIuOTEyIDMyLjM0NTYgMTc1LjQ5IDM0LjA2NjggMTc3LjM5NSAzNi45MTdDMTc5LjI5NyAzOS43NjM2IDE4MC40ODcgNDMuNjg2NiAxODAuNDg3IDQ4LjA0MDNIMTgxLjcwM1pNMTcwLjc1OSAzMS42MzAyVjMxLjYyNDNIMTY5LjU0M1YzMS42MzAySDE3MC43NTlaTTE3MC4xNTEgMzEuMDE2M0gxNjkuODU1VjMyLjIzMjNIMTcwLjE1MVYzMS4wMTYzWk0xNjkuODU1IDMxLjAxNjNMMTY5Ljg0OCAzMS4wMTYzTDE2OS44NDcgMzIuMjMyM0wxNjkuODU1IDMyLjIzMjNMMTY5Ljg1NSAzMS4wMTYzWk0xNjkuODQ3IDMxLjAxNjNMMTY5LjgzOSAzMS4wMTYzTDE2OS44NCAzMi4yMzIzTDE2OS44NDggMzIuMjMyM0wxNjkuODQ3IDMxLjAxNjNaTTE2OS44NCAzMS4wMTYzTDEzMi4xNzYgMzEuMDE2M1YzMi4yMzIzTDE2OS44NCAzMi4yMzIzVjMxLjAxNjNaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMjItaW5zaWRlLTNfMzQ2MV80Njg4NikiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2sxXzM0NjFfNDY4ODYpIj4KPHJlY3QgeD0iMTIwLjk5OSIgeT0iNTAiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMyIgZmlsbD0iIzdBOEJGRiIvPgo8L2c+CjxtYXNrIGlkPSJwYXRoLTI1LWluc2lkZS00XzM0NjFfNDY4ODYiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzIuMTUxIDMwLjQwODFMMTY5Ljg0NyAzMC40MDgxTDE3MC4xNTEgMzAuNDA4MUwxNzAuMTUxIDMwLjQxMzNDMTc2Ljg5NSAzMC42NDE2IDE4Mi4zMTEgMzguNDQ2IDE4Mi4zMTEgNDguMDQwMUMxODIuMzExIDU3LjYzNDIgMTc2Ljg5NSA2NS40Mzg2IDE3MC4xNTEgNjUuNjY3TDE3MC4xNTEgNjUuNjcyMUwxNjkuODQ3IDY1LjY3MjFMMTMxLjg0NyA2NS42NzIxTDEzMS44NDcgNjUuNjY3QzEyNS4xMDQgNjUuNDM4NiAxMTkuNjg3IDU3LjYzNDIgMTE5LjY4NyA0OC4wNDAxQzExOS42ODcgMzguNDQ2IDEyNS4xMDQgMzAuNjQxNiAxMzEuODQ3IDMwLjQxMzNMMTMxLjg0NyAzMC40MDgxTDEzMi4xNTEgMzAuNDA4MVoiLz4KPC9tYXNrPgo8cGF0aCBkPSJNMTY5Ljg0NyAzMC40MDgxTDE2OS44NDcgMzEuMDE2MUwxNjkuODQ3IDMwLjQwODFaTTEzMi4xNTEgMzAuNDA4MUwxMzIuMTUxIDMxLjAxNjFMMTMyLjE1MSAzMC40MDgxWk0xNzAuMTUxIDMwLjQwODFMMTcwLjc1OSAzMC40MDgxTDE3MC43NTkgMjkuODAwMUwxNzAuMTUxIDI5LjgwMDFMMTcwLjE1MSAzMC40MDgxWk0xNzAuMTUxIDMwLjQxMzNMMTY5LjU0MyAzMC40MTMzTDE2OS41NDMgMzEuMDAxTDE3MC4xMzEgMzEuMDIwOUwxNzAuMTUxIDMwLjQxMzNaTTE3MC4xNTEgNjUuNjY3TDE3MC4xMzEgNjUuMDU5M0wxNjkuNTQzIDY1LjA3OTJMMTY5LjU0MyA2NS42NjdMMTcwLjE1MSA2NS42NjdaTTE3MC4xNTEgNjUuNjcyMUwxNzAuMTUxIDY2LjI4MDFMMTcwLjc1OSA2Ni4yODAxTDE3MC43NTkgNjUuNjcyMUwxNzAuMTUxIDY1LjY3MjFaTTE2OS44NDcgNjUuNjcyMUwxNjkuODQ3IDY2LjI4MDFMMTY5Ljg0NyA2NS42NzIxWk0xMzEuODQ3IDY1LjY3MjFMMTMxLjIzOSA2NS42NzIxTDEzMS4yMzkgNjYuMjgwMUwxMzEuODQ3IDY2LjI4MDFMMTMxLjg0NyA2NS42NzIxWk0xMzEuODQ3IDY1LjY2N0wxMzIuNDU1IDY1LjY2N0wxMzIuNDU1IDY1LjA3OTJMMTMxLjg2OCA2NS4wNTkzTDEzMS44NDcgNjUuNjY3Wk0xMzEuODQ3IDMwLjQxMzNMMTMxLjg2OCAzMS4wMjA5TDEzMi40NTUgMzEuMDAxTDEzMi40NTUgMzAuNDEzM0wxMzEuODQ3IDMwLjQxMzNaTTEzMS44NDcgMzAuNDA4MUwxMzEuODQ3IDI5LjgwMDFMMTMxLjIzOSAyOS44MDAxTDEzMS4yMzkgMzAuNDA4MUwxMzEuODQ3IDMwLjQwODFaTTE2OS44NDcgMjkuODAwMUwxMzIuMTUxIDI5LjgwMDFMMTMyLjE1MSAzMS4wMTYxTDE2OS44NDcgMzEuMDE2MUwxNjkuODQ3IDI5LjgwMDFaTTE3MC4xNTEgMjkuODAwMUwxNjkuODQ3IDI5LjgwMDFMMTY5Ljg0NyAzMS4wMTYxTDE3MC4xNTEgMzEuMDE2MUwxNzAuMTUxIDI5LjgwMDFaTTE3MC43NTkgMzAuNDEzM0wxNzAuNzU5IDMwLjQwODFMMTY5LjU0MyAzMC40MDgxTDE2OS41NDMgMzAuNDEzM0wxNzAuNzU5IDMwLjQxMzNaTTE4Mi45MTkgNDguMDQwMUMxODIuOTE5IDQzLjEzMzcgMTgxLjUzNSAzOC42NjA0IDE3OS4yNiAzNS4zNjg4QzE3Ni45ODcgMzIuMDc5NCAxNzMuNzg3IDI5LjkyOCAxNzAuMTcyIDI5LjgwNTZMMTcwLjEzMSAzMS4wMjA5QzE3My4yNTkgMzEuMTI2OCAxNzYuMTM5IDMyLjk5MTggMTc4LjI2IDM2LjA2MDJDMTgwLjM3OSAzOS4xMjY0IDE4MS43MDMgNDMuMzUyNCAxODEuNzAzIDQ4LjA0MDFMMTgyLjkxOSA0OC4wNDAxWk0xNzAuMTcyIDY2LjI3NDZDMTczLjc4NyA2Ni4xNTIyIDE3Ni45ODcgNjQuMDAwOCAxNzkuMjYgNjAuNzExNEMxODEuNTM1IDU3LjQxOTggMTgyLjkxOSA1Mi45NDY1IDE4Mi45MTkgNDguMDQwMUwxODEuNzAzIDQ4LjA0MDFDMTgxLjcwMyA1Mi43Mjc5IDE4MC4zNzkgNTYuOTUzOCAxNzguMjYgNjAuMDJDMTc2LjEzOSA2My4wODg1IDE3My4yNTkgNjQuOTUzNCAxNzAuMTMxIDY1LjA1OTNMMTcwLjE3MiA2Ni4yNzQ2Wk0xNzAuNzU5IDY1LjY3MjFMMTcwLjc1OSA2NS42NjdMMTY5LjU0MyA2NS42NjdMMTY5LjU0MyA2NS42NzIxTDE3MC43NTkgNjUuNjcyMVpNMTY5Ljg0NyA2Ni4yODAxTDE3MC4xNTEgNjYuMjgwMUwxNzAuMTUxIDY1LjA2NDFMMTY5Ljg0NyA2NS4wNjQxTDE2OS44NDcgNjYuMjgwMVpNMTMxLjg0NyA2Ni4yODAxTDE2OS44NDcgNjYuMjgwMUwxNjkuODQ3IDY1LjA2NDFMMTMxLjg0NyA2NS4wNjQxTDEzMS44NDcgNjYuMjgwMVpNMTMxLjIzOSA2NS42NjdMMTMxLjIzOSA2NS42NzIxTDEzMi40NTUgNjUuNjcyMUwxMzIuNDU1IDY1LjY2N0wxMzEuMjM5IDY1LjY2N1pNMTMxLjg2OCA2NS4wNTkzQzEyOC43NCA2NC45NTM0IDEyNS44NiA2My4wODg1IDEyMy43MzkgNjAuMDJDMTIxLjYyIDU2Ljk1MzggMTIwLjI5NSA1Mi43Mjc5IDEyMC4yOTUgNDguMDQwMUwxMTkuMDc5IDQ4LjA0MDFDMTE5LjA3OSA1Mi45NDY1IDEyMC40NjQgNTcuNDE5OCAxMjIuNzM5IDYwLjcxMTRDMTI1LjAxMiA2NC4wMDA4IDEyOC4yMTIgNjYuMTUyMiAxMzEuODI3IDY2LjI3NDZMMTMxLjg2OCA2NS4wNTkzWk0xMjAuMjk1IDQ4LjA0MDFDMTIwLjI5NSA0My4zNTI0IDEyMS42MiAzOS4xMjY0IDEyMy43MzkgMzYuMDYwMkMxMjUuODYgMzIuOTkxOCAxMjguNzQgMzEuMTI2OCAxMzEuODY4IDMxLjAyMDlMMTMxLjgyNyAyOS44MDU2QzEyOC4yMTIgMjkuOTI4IDEyNS4wMTIgMzIuMDc5NCAxMjIuNzM5IDM1LjM2ODhDMTIwLjQ2NCAzOC42NjA0IDExOS4wNzkgNDMuMTMzNyAxMTkuMDc5IDQ4LjA0MDFMMTIwLjI5NSA0OC4wNDAxWk0xMzEuMjM5IDMwLjQwODFMMTMxLjIzOSAzMC40MTMzTDEzMi40NTUgMzAuNDEzM0wxMzIuNDU1IDMwLjQwODFMMTMxLjIzOSAzMC40MDgxWk0xMzIuMTUxIDI5LjgwMDFMMTMxLjg0NyAyOS44MDAxTDEzMS44NDcgMzEuMDE2MUwxMzIuMTUxIDMxLjAxNjFMMTMyLjE1MSAyOS44MDAxWiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTI1LWluc2lkZS00XzM0NjFfNDY4ODYpIi8+CjxwYXRoIGQ9Ik0xMzIuNSAzMS4zMDRDMTM1LjgyOCAzMS4zMDQgMTM4Ljg3IDMzLjE5MjEgMTQxLjA5MSAzNi4zMDIzQzE0My4zMTMgMzkuNDEyIDE0NC42OTYgNDMuNzIzNiAxNDQuNjk2IDQ4LjVDMTQ0LjY5NiA1My4yNzY0IDE0My4zMTMgNTcuNTg4IDE0MS4wOTEgNjAuNjk3N0MxMzguODcgNjMuODA3OSAxMzUuODI4IDY1LjY5NiAxMzIuNSA2NS42OTZDMTI5LjE3MiA2NS42OTYgMTI2LjEzIDYzLjgwNzkgMTIzLjkwOSA2MC42OTc3QzEyMS42ODcgNTcuNTg4IDEyMC4zMDQgNTMuMjc2NCAxMjAuMzA0IDQ4LjVDMTIwLjMwNCA0My43MjM2IDEyMS42ODcgMzkuNDEyIDEyMy45MDkgMzYuMzAyM0MxMjYuMTMgMzMuMTkyMSAxMjkuMTcyIDMxLjMwNCAxMzIuNSAzMS4zMDRaIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMC42MDgiLz4KPG1hc2sgaWQ9InBhdGgtMjgtaW5zaWRlLTVfMzQ2MV80Njg4NiIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1Ni40NzIgMjUuNTQ0NEgxNDcuNjU2VjMxLjAxNjRDMTQ3LjY1NiAzMS41MjAxIDE0OS42MyAzMS45Mjg0IDE1Mi4wNjQgMzEuOTI4NEMxNTQuNDk5IDMxLjkyODQgMTU2LjQ3MiAzMS41MjAxIDE1Ni40NzIgMzEuMDE2NFYyNS41NDQ0WiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTU2LjQ3MiAyNS41NDQ0SDE0Ny42NTZWMzEuMDE2NEMxNDcuNjU2IDMxLjUyMDEgMTQ5LjYzIDMxLjkyODQgMTUyLjA2NCAzMS45Mjg0QzE1NC40OTkgMzEuOTI4NCAxNTYuNDcyIDMxLjUyMDEgMTU2LjQ3MiAzMS4wMTY0VjI1LjU0NDRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTQ3LjY1NiAyNS41NDQ0VjI0LjkzNjRIMTQ3LjA0OFYyNS41NDQ0SDE0Ny42NTZaTTE1Ni40NzIgMjUuNTQ0NEgxNTcuMDhWMjQuOTM2NEgxNTYuNDcyVjI1LjU0NDRaTTE0Ny42NTYgMjYuMTUyNEgxNTYuNDcyVjI0LjkzNjRIMTQ3LjY1NlYyNi4xNTI0Wk0xNDguMjY0IDMxLjAxNjRWMjUuNTQ0NEgxNDcuMDQ4VjMxLjAxNjRIMTQ4LjI2NFpNMTUyLjA2NCAzMS4zMjA0QzE1MC44NzYgMzEuMzIwNCAxNDkuODE3IDMxLjIyMDMgMTQ5LjA3MSAzMS4wNjU5QzE0OC42OTIgMzAuOTg3NyAxNDguNDI2IDMwLjkwMTkgMTQ4LjI3IDMwLjgyNTNDMTQ4LjE5IDMwLjc4NjMgMTQ4LjE3IDMwLjc2NDcgMTQ4LjE3OCAzMC43NzI3QzE0OC4xODggMzAuNzgyNSAxNDguMjY0IDMwLjg2NTkgMTQ4LjI2NCAzMS4wMTY0SDE0Ny4wNDhDMTQ3LjA0OCAzMS4yOTI5IDE0Ny4xODYgMzEuNDk5MiAxNDcuMzE0IDMxLjYyNzhDMTQ3LjQzOSAzMS43NTQ1IDE0Ny41OTIgMzEuODQ3NCAxNDcuNzM1IDMxLjkxNzZDMTQ4LjAyNSAzMi4wNTkyIDE0OC40MDUgMzIuMTY5OSAxNDguODI0IDMyLjI1NjdDMTQ5LjY3MyAzMi40MzI0IDE1MC44MTggMzIuNTM2NCAxNTIuMDY0IDMyLjUzNjRWMzEuMzIwNFpNMTU1Ljg2NCAzMS4wMTY0QzE1NS44NjQgMzAuODY1OSAxNTUuOTQxIDMwLjc4MjUgMTU1Ljk1IDMwLjc3MjdDMTU1Ljk1OCAzMC43NjQ3IDE1NS45MzggMzAuNzg2MyAxNTUuODU5IDMwLjgyNTNDMTU1LjcwMiAzMC45MDE5IDE1NS40MzYgMzAuOTg3NyAxNTUuMDU4IDMxLjA2NTlDMTU0LjMxMiAzMS4yMjAzIDE1My4yNTMgMzEuMzIwNCAxNTIuMDY0IDMxLjMyMDRWMzIuNTM2NEMxNTMuMzEgMzIuNTM2NCAxNTQuNDU1IDMyLjQzMjQgMTU1LjMwNCAzMi4yNTY3QzE1NS43MjQgMzIuMTY5OSAxNTYuMTA0IDMyLjA1OTIgMTU2LjM5MyAzMS45MTc2QzE1Ni41MzYgMzEuODQ3NCAxNTYuNjkgMzEuNzU0NSAxNTYuODE1IDMxLjYyNzhDMTU2Ljk0MiAzMS40OTkyIDE1Ny4wOCAzMS4yOTI5IDE1Ny4wOCAzMS4wMTY0SDE1NS44NjRaTTE1NS44NjQgMjUuNTQ0NFYzMS4wMTY0SDE1Ny4wOFYyNS41NDQ0SDE1NS44NjRaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMjgtaW5zaWRlLTVfMzQ2MV80Njg4NikiLz4KPHBhdGggZD0iTTE1NS41MDUgMjUuODc5OUMxNTUuNTk3IDI1LjkyODQgMTU1LjY1MiAyNS45NzAyIDE1NS42ODEgMjZDMTU1LjY1MiAyNi4wMjk4IDE1NS41OTcgMjYuMDcxNiAxNTUuNTA1IDI2LjEyMDFDMTU1LjMxMiAyNi4yMjE3IDE1NS4wMTIgMjYuMzIyNCAxNTQuNjE2IDI2LjQxMDNDMTUzLjgyOSAyNi41ODUyIDE1Mi43MjcgMjYuNjk2IDE1MS41IDI2LjY5NkMxNTAuMjczIDI2LjY5NiAxNDkuMTcxIDI2LjU4NTIgMTQ4LjM4NCAyNi40MTAzQzE0Ny45ODggMjYuMzIyNCAxNDcuNjg4IDI2LjIyMTcgMTQ3LjQ5NSAyNi4xMjAxQzE0Ny40MDMgMjYuMDcxNiAxNDcuMzQ4IDI2LjAyOTggMTQ3LjMxOSAyNkMxNDcuMzQ4IDI1Ljk3MDIgMTQ3LjQwMyAyNS45Mjg0IDE0Ny40OTUgMjUuODc5OUMxNDcuNjg4IDI1Ljc3ODMgMTQ3Ljk4OCAyNS42Nzc2IDE0OC4zODQgMjUuNTg5N0MxNDkuMTcxIDI1LjQxNDggMTUwLjI3MyAyNS4zMDQgMTUxLjUgMjUuMzA0QzE1Mi43MjcgMjUuMzA0IDE1My44MjkgMjUuNDE0OCAxNTQuNjE2IDI1LjU4OTdDMTU1LjAxMiAyNS42Nzc2IDE1NS4zMTIgMjUuNzc4MyAxNTUuNTA1IDI1Ljg3OTlaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNjA4Ii8+CjxwYXRoIGQ9Ik0xNTUuNTA1IDI0Ljg3OTlDMTU1LjU5NyAyNC45Mjg0IDE1NS42NTIgMjQuOTcwMiAxNTUuNjgxIDI1QzE1NS42NTIgMjUuMDI5OCAxNTUuNTk3IDI1LjA3MTYgMTU1LjUwNSAyNS4xMjAxQzE1NS4zMTIgMjUuMjIxNyAxNTUuMDEyIDI1LjMyMjQgMTU0LjYxNiAyNS40MTAzQzE1My44MjkgMjUuNTg1MiAxNTIuNzI3IDI1LjY5NiAxNTEuNSAyNS42OTZDMTUwLjI3MyAyNS42OTYgMTQ5LjE3MSAyNS41ODUyIDE0OC4zODQgMjUuNDEwM0MxNDcuOTg4IDI1LjMyMjQgMTQ3LjY4OCAyNS4yMjE3IDE0Ny40OTUgMjUuMTIwMUMxNDcuNDAzIDI1LjA3MTYgMTQ3LjM0OCAyNS4wMjk4IDE0Ny4zMTkgMjVDMTQ3LjM0OCAyNC45NzAyIDE0Ny40MDMgMjQuOTI4NCAxNDcuNDk1IDI0Ljg3OTlDMTQ3LjY4OCAyNC43NzgzIDE0Ny45ODggMjQuNjc3NiAxNDguMzg0IDI0LjU4OTdDMTQ5LjE3MSAyNC40MTQ4IDE1MC4yNzMgMjQuMzA0IDE1MS41IDI0LjMwNEMxNTIuNzI3IDI0LjMwNCAxNTMuODI5IDI0LjQxNDggMTU0LjYxNiAyNC41ODk3QzE1NS4wMTIgMjQuNjc3NiAxNTUuMzEyIDI0Ljc3ODMgMTU1LjUwNSAyNC44Nzk5WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIwLjYwOCIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMV9iXzM0NjFfNDY4ODYpIj4KPHJlY3QgeD0iMTUxIiB5PSI0MSIgd2lkdGg9IjIyIiBoZWlnaHQ9IjEzIiByeD0iMS4xODk2NiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNMTU4LjM0OCA0Ny45NzI3VjQ4LjcyMjdIMTU0LjI0NkwxNTQuMjE1IDQ4LjE1NjJMMTU2LjY2OCA0NC4zMTI1SDE1Ny40MjJMMTU2LjYwNSA0NS43MTA5TDE1NS4xOTUgNDcuOTcyN0gxNTguMzQ4Wk0xNTcuNjM3IDQ0LjMxMjVWNTBIMTU2LjY5NVY0NC4zMTI1SDE1Ny42MzdaTTE2Mi42ODQgNDYuNjc5N1Y0Ny42MDk0QzE2Mi42ODQgNDguMDU0NyAxNjIuNjM5IDQ4LjQzNDkgMTYyLjU1MSA0OC43NUMxNjIuNDY1IDQ5LjA2MjUgMTYyLjM0IDQ5LjMxNjQgMTYyLjE3NiA0OS41MTE3QzE2Mi4wMTIgNDkuNzA3IDE2MS44MTUgNDkuODUwMyAxNjEuNTg2IDQ5Ljk0MTRDMTYxLjM1OSA1MC4wMzI2IDE2MS4xMDUgNTAuMDc4MSAxNjAuODI0IDUwLjA3ODFDMTYwLjYgNTAuMDc4MSAxNjAuMzkyIDUwLjA0OTUgMTYwLjE5OSA0OS45OTIyQzE2MC4wMDkgNDkuOTM0OSAxNTkuODM3IDQ5Ljg0NTEgMTU5LjY4NCA0OS43MjI3QzE1OS41MyA0OS42MDAzIDE1OS4zOTggNDkuNDQyNyAxNTkuMjg5IDQ5LjI1QzE1OS4xODIgNDkuMDU0NyAxNTkuMDk5IDQ4LjgyMTYgMTU5LjAzOSA0OC41NTA4QzE1OC45ODIgNDguMjc5OSAxNTguOTUzIDQ3Ljk2NjEgMTU4Ljk1MyA0Ny42MDk0VjQ2LjY3OTdDMTU4Ljk1MyA0Ni4yMzE4IDE1OC45OTcgNDUuODU0MiAxNTkuMDg2IDQ1LjU0NjlDMTU5LjE3NCA0NS4yMzcgMTU5LjMwMSA0NC45ODU3IDE1OS40NjUgNDQuNzkzQzE1OS42MjkgNDQuNTk3NyAxNTkuODI0IDQ0LjQ1NTcgMTYwLjA1MSA0NC4zNjcyQzE2MC4yOCA0NC4yNzg2IDE2MC41MzUgNDQuMjM0NCAxNjAuODE2IDQ0LjIzNDRDMTYxLjA0MyA0NC4yMzQ0IDE2MS4yNTEgNDQuMjYzIDE2MS40NDEgNDQuMzIwM0MxNjEuNjM0IDQ0LjM3NSAxNjEuODA2IDQ0LjQ2MjIgMTYxLjk1NyA0NC41ODJDMTYyLjExMSA0NC43MDE4IDE2Mi4yNDEgNDQuODU4MSAxNjIuMzQ4IDQ1LjA1MDhDMTYyLjQ1NyA0NS4yNDA5IDE2Mi41NCA0NS40NzE0IDE2Mi41OTggNDUuNzQyMkMxNjIuNjU1IDQ2LjAxMDQgMTYyLjY4NCA0Ni4zMjI5IDE2Mi42ODQgNDYuNjc5N1pNMTYxLjc0MiA0Ny43NDIyVjQ2LjUzOTFDMTYxLjc0MiA0Ni4zMTI1IDE2MS43MjkgNDYuMTEzMyAxNjEuNzAzIDQ1Ljk0MTRDMTYxLjY3NyA0NS43NjY5IDE2MS42MzggNDUuNjE5OCAxNjEuNTg2IDQ1LjVDMTYxLjUzNiA0NS4zNzc2IDE2MS40NzQgNDUuMjc4NiAxNjEuMzk4IDQ1LjIwMzFDMTYxLjMyMyA0NS4xMjUgMTYxLjIzNyA0NS4wNjkgMTYxLjE0MSA0NS4wMzUyQzE2MS4wNDQgNDQuOTk4NyAxNjAuOTM2IDQ0Ljk4MDUgMTYwLjgxNiA0NC45ODA1QzE2MC42NzEgNDQuOTgwNSAxNjAuNTQgNDUuMDA5MSAxNjAuNDI2IDQ1LjA2NjRDMTYwLjMxMSA0NS4xMjExIDE2MC4yMTUgNDUuMjA5NiAxNjAuMTM3IDQ1LjMzMkMxNjAuMDU5IDQ1LjQ1NDQgMTU5Ljk5OSA0NS42MTU5IDE1OS45NTcgNDUuODE2NEMxNTkuOTE4IDQ2LjAxNDMgMTU5Ljg5OCA0Ni4yNTUyIDE1OS44OTggNDYuNTM5MVY0Ny43NDIyQzE1OS44OTggNDcuOTcxNCAxNTkuOTExIDQ4LjE3MzIgMTU5LjkzOCA0OC4zNDc3QzE1OS45NjQgNDguNTIyMSAxNjAuMDAzIDQ4LjY3MTkgMTYwLjA1NSA0OC43OTY5QzE2MC4xMDcgNDguOTE5MyAxNjAuMTY5IDQ5LjAyMDggMTYwLjI0MiA0OS4xMDE2QzE2MC4zMTggNDkuMTc5NyAxNjAuNDA0IDQ5LjIzNyAxNjAuNSA0OS4yNzM0QzE2MC41OTkgNDkuMzA5OSAxNjAuNzA3IDQ5LjMyODEgMTYwLjgyNCA0OS4zMjgxQzE2MC45NzMgNDkuMzI4MSAxNjEuMTA0IDQ5LjI5OTUgMTYxLjIxOSA0OS4yNDIyQzE2MS4zMzMgNDkuMTg0OSAxNjEuNDMgNDkuMDkzOCAxNjEuNTA4IDQ4Ljk2ODhDMTYxLjU4NiA0OC44NDExIDE2MS42NDUgNDguNjc1OCAxNjEuNjg0IDQ4LjQ3MjdDMTYxLjcyMyA0OC4yNjk1IDE2MS43NDIgNDguMDI2IDE2MS43NDIgNDcuNzQyMloiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPHBhdGggZD0iTTE2Ni4yNDQgNDcuMzE2OVY0Ny4xMjg5QzE2Ni4yNDQgNDYuOTkzOCAxNjYuMjczIDQ2Ljg3MDkgMTY2LjMzMiA0Ni43NjAzQzE2Ni4zOTEgNDYuNjQ5NiAxNjYuNDc2IDQ2LjU2MDkgMTY2LjU4OCA0Ni40OTQxQzE2Ni43MDEgNDYuNDI3NCAxNjYuODM2IDQ2LjM5NCAxNjYuOTk0IDQ2LjM5NEMxNjcuMTU2IDQ2LjM5NCAxNjcuMjkzIDQ2LjQyNzQgMTY3LjQwNCA0Ni40OTQxQzE2Ny41MTYgNDYuNTYwOSAxNjcuNjAyIDQ2LjY0OTYgMTY3LjY2IDQ2Ljc2MDNDMTY3LjcxOSA0Ni44NzA5IDE2Ny43NDggNDYuOTkzOCAxNjcuNzQ4IDQ3LjEyODlWNDcuMzE2OUMxNjcuNzQ4IDQ3LjQ0ODcgMTY3LjcxOSA0Ny41NyAxNjcuNjYgNDcuNjgwN0MxNjcuNjAzIDQ3Ljc5MTMgMTY3LjUxOSA0Ny44OCAxNjcuNDA2IDQ3Ljk0NjhDMTY3LjI5NiA0OC4wMTM1IDE2Ny4xNiA0OC4wNDY5IDE2Ni45OTkgNDguMDQ2OUMxNjYuODM5IDQ4LjA0NjkgMTY2LjcwMiA0OC4wMTM1IDE2Ni41ODggNDcuOTQ2OEMxNjYuNDc2IDQ3Ljg4IDE2Ni4zOTEgNDcuNzkxMyAxNjYuMzMyIDQ3LjY4MDdDMTY2LjI3MyA0Ny41NyAxNjYuMjQ0IDQ3LjQ0ODcgMTY2LjI0NCA0Ny4zMTY5Wk0xNjYuNjUyIDQ3LjEyODlWNDcuMzE2OUMxNjYuNjUyIDQ3LjM4MiAxNjYuNjY0IDQ3LjQ0MzggMTY2LjY4OCA0Ny41MDI0QzE2Ni43MTUgNDcuNTYxIDE2Ni43NTQgNDcuNjA4MiAxNjYuODA2IDQ3LjY0NEMxNjYuODU4IDQ3LjY3OTkgMTY2LjkyMiA0Ny42OTc4IDE2Ni45OTkgNDcuNjk3OEMxNjcuMDc3IDQ3LjY5NzggMTY3LjE0IDQ3LjY3OTkgMTY3LjE4OSA0Ny42NDRDMTY3LjIzOSA0Ny42MDgyIDE2Ny4yNzcgNDcuNTYxIDE2Ny4zMDEgNDcuNTAyNEMxNjcuMzI2IDQ3LjQ0MzggMTY3LjMzOCA0Ny4zODIgMTY3LjMzOCA0Ny4zMTY5VjQ3LjEyODlDMTY3LjMzOCA0Ny4wNjIyIDE2Ny4zMjUgNDYuOTk5NSAxNjcuMjk5IDQ2Ljk0MDlDMTY3LjI3NCA0Ni44ODA3IDE2Ny4yMzcgNDYuODMyNyAxNjcuMTg3IDQ2Ljc5NjlDMTY3LjEzNiA0Ni43NjExIDE2Ny4wNzIgNDYuNzQzMiAxNjYuOTk0IDQ2Ljc0MzJDMTY2LjkxOSA0Ni43NDMyIDE2Ni44NTUgNDYuNzYxMSAxNjYuODAzIDQ2Ljc5NjlDMTY2Ljc1MyA0Ni44MzI3IDE2Ni43MTUgNDYuODgwNyAxNjYuNjg4IDQ2Ljk0MDlDMTY2LjY2NCA0Ni45OTk1IDE2Ni42NTIgNDcuMDYyMiAxNjYuNjUyIDQ3LjEyODlaTTE2Ny45NTggNDkuMzE4OFY0OS4xMjg0QzE2Ny45NTggNDguOTk1IDE2Ny45ODcgNDguODcyOSAxNjguMDQ2IDQ4Ljc2MjJDMTY4LjEwNiA0OC42NTE1IDE2OC4xOTIgNDguNTYyOCAxNjguMzA1IDQ4LjQ5NjFDMTY4LjQxNyA0OC40Mjk0IDE2OC41NTIgNDguMzk2IDE2OC43MSA0OC4zOTZDMTY4Ljg3MyA0OC4zOTYgMTY5LjAwOSA0OC40Mjk0IDE2OS4xMiA0OC40OTYxQzE2OS4yMzIgNDguNTYyOCAxNjkuMzE3IDQ4LjY1MTUgMTY5LjM3NCA0OC43NjIyQzE2OS40MzMgNDguODcyOSAxNjkuNDYyIDQ4Ljk5NSAxNjkuNDYyIDQ5LjEyODRWNDkuMzE4OEMxNjkuNDYyIDQ5LjQ1MjMgMTY5LjQzMyA0OS41NzQ0IDE2OS4zNzQgNDkuNjg1MUMxNjkuMzE3IDQ5Ljc5NTcgMTY5LjIzMyA0OS44ODQ0IDE2OS4xMjMgNDkuOTUxMkMxNjkuMDEyIDUwLjAxNzkgMTY4Ljg3NyA1MC4wNTEzIDE2OC43MTcgNTAuMDUxM0MxNjguNTU2IDUwLjA1MTMgMTY4LjQxOSA1MC4wMTc5IDE2OC4zMDUgNDkuOTUxMkMxNjguMTkyIDQ5Ljg4NDQgMTY4LjEwNiA0OS43OTU3IDE2OC4wNDYgNDkuNjg1MUMxNjcuOTg3IDQ5LjU3NDQgMTY3Ljk1OCA0OS40NTIzIDE2Ny45NTggNDkuMzE4OFpNMTY4LjM2OCA0OS4xMjg0VjQ5LjMxODhDMTY4LjM2OCA0OS4zODQgMTY4LjM4MSA0OS40NDU4IDE2OC40MDcgNDkuNTA0NEMxNjguNDM1IDQ5LjU2MyAxNjguNDc1IDQ5LjYxMSAxNjguNTI3IDQ5LjY0ODRDMTY4LjU3OSA0OS42ODQyIDE2OC42NDIgNDkuNzAyMSAxNjguNzE1IDQ5LjcwMjFDMTY4Ljc5OCA0OS43MDIxIDE2OC44NjUgNDkuNjg0MiAxNjguOTE1IDQ5LjY0ODRDMTY4Ljk2NSA0OS42MTEgMTY5LjAwMSA0OS41NjM4IDE2OS4wMjIgNDkuNTA2OEMxNjkuMDQ1IDQ5LjQ0ODIgMTY5LjA1NyA0OS4zODU2IDE2OS4wNTcgNDkuMzE4OFY0OS4xMjg0QzE2OS4wNTcgNDkuMDYxNyAxNjkuMDQ0IDQ4Ljk5OSAxNjkuMDE4IDQ4Ljk0MDRDMTY4Ljk5MyA0OC44ODE4IDE2OC45NTUgNDguODM0NiAxNjguOTAzIDQ4Ljc5ODhDMTY4Ljg1MiA0OC43NjMgMTY4Ljc4OCA0OC43NDUxIDE2OC43MSA0OC43NDUxQzE2OC42MzMgNDguNzQ1MSAxNjguNTcgNDguNzYzIDE2OC41MiA0OC43OTg4QzE2OC40NjkgNDguODM0NiAxNjguNDMxIDQ4Ljg4MTggMTY4LjQwNSA0OC45NDA0QzE2OC4zOCA0OC45OTkgMTY4LjM2OCA0OS4wNjE3IDE2OC4zNjggNDkuMTI4NFpNMTY4Ljg1NiA0Ni45NTMxTDE2Ny4xMjEgNDkuNzMxNEwxNjYuODIgNDkuNTU4MUwxNjguNTU2IDQ2Ljc3OThMMTY4Ljg1NiA0Ni45NTMxWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8L2c+CjxyZWN0IHg9IjEwMi4yNSIgeT0iMC4yNSIgd2lkdGg9Ijk3LjUiIGhlaWdodD0iNzcuNSIgcng9IjEuNzUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIiBzdHJva2Utd2lkdGg9IjAuNSIvPgo8cmVjdCB5PSI4MiIgd2lkdGg9Ijk4IiBoZWlnaHQ9Ijc4IiByeD0iMiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE0LjIzOTQgOTQuMzkxOVY5NUgxMi4wMDU0Vjk0LjM5MTlIMTQuMjM5NFpNMTIuMjE5MyA5MC41NTA1Vjk1SDExLjQ1MjNWOTAuNTUwNUgxMi4yMTkzWk0xNS42Njc3IDkxLjY5MzRWOTVIMTQuOTI4MVY5MS42OTM0SDE1LjY2NzdaTTE0Ljg3OTIgOTAuODI1NUMxNC44NzkyIDkwLjcxMzUgMTQuOTE1OSA5MC42MjA4IDE0Ljk4OTIgOTAuNTQ3NEMxNS4wNjQ2IDkwLjQ3MiAxNS4xNjg1IDkwLjQzNDMgMTUuMzAxIDkwLjQzNDNDMTUuNDMxMyA5MC40MzQzIDE1LjUzNDIgOTAuNDcyIDE1LjYwOTYgOTAuNTQ3NEMxNS42ODUgOTAuNjIwOCAxNS43MjI3IDkwLjcxMzUgMTUuNzIyNyA5MC44MjU1QzE1LjcyMjcgOTAuOTM1NSAxNS42ODUgOTEuMDI3MiAxNS42MDk2IDkxLjEwMDZDMTUuNTM0MiA5MS4xNzM5IDE1LjQzMTMgOTEuMjEwNiAxNS4zMDEgOTEuMjEwNkMxNS4xNjg1IDkxLjIxMDYgMTUuMDY0NiA5MS4xNzM5IDE0Ljk4OTIgOTEuMTAwNkMxNC45MTU5IDkxLjAyNzIgMTQuODc5MiA5MC45MzU1IDE0Ljg3OTIgOTAuODI1NVpNMTguNjA4NyA5Ni4yNzEzVjkyLjM1MDVMMTguNjk0MyA5MS42OTM0SDE5LjM1MTNWOTYuMjcxM0gxOC42MDg3Wk0xNi40NjA0IDkzLjM4MDNWOTMuMzE2MUMxNi40NjA0IDkzLjA2NTYgMTYuNDg4OSA5Mi44Mzc0IDE2LjU0NTkgOTIuNjMxNkMxNi42MDMgOTIuNDIzOCAxNi42ODc1IDkyLjI0NTUgMTYuNzk5NiA5Mi4wOTY4QzE2LjkxMTYgOTEuOTQ4MSAxNy4wNDgxIDkxLjgzNCAxNy4yMDkxIDkxLjc1NDVDMTcuMzcgOTEuNjczIDE3LjU1NTQgOTEuNjMyMyAxNy43NjUzIDkxLjYzMjNDMTcuOTY5IDkxLjYzMjMgMTguMTQ2MiA5MS42NzEgMTguMjk3IDkxLjc0ODRDMTguNDQ5OCA5MS44MjU4IDE4LjU3ODIgOTEuOTM2OSAxOC42ODIxIDkyLjA4MTVDMTguNzg4IDkyLjIyNDEgMTguODcyNiA5Mi4zOTQzIDE4LjkzNTcgOTIuNTkxOUMxOC45OTg5IDkyLjc4OTUgMTkuMDQ0NyA5My4wMDk1IDE5LjA3MzIgOTMuMjUyVjkzLjQ1NjdDMTkuMDQ2NyA5My42OTMxIDE5LjAwMTkgOTMuOTA5IDE4LjkzODggOTQuMTA0NkMxOC44NzU2IDk0LjMwMDIgMTguNzkxMSA5NC40NjkzIDE4LjY4NTEgOTQuNjExOUMxOC41NzkyIDk0Ljc1NDUgMTguNDQ5OCA5NC44NjU1IDE4LjI5NyA5NC45NDVDMTguMTQ0MiA5NS4wMjI0IDE3Ljk2NDkgOTUuMDYxMSAxNy43NTkyIDk1LjA2MTFDMTcuNTUzNCA5NS4wNjExIDE3LjM3IDk1LjAxOTQgMTcuMjA5MSA5NC45MzU4QzE3LjA0ODEgOTQuODUyMyAxNi45MTE2IDk0LjczNTEgMTYuNzk5NiA5NC41ODQ0QzE2LjY4OTYgOTQuNDMxNiAxNi42MDUgOTQuMjUzMyAxNi41NDU5IDk0LjA0OTZDMTYuNDg4OSA5My44NDM4IDE2LjQ2MDQgOTMuNjIwNyAxNi40NjA0IDkzLjM4MDNaTTE3LjE5NjggOTMuMzE2MVY5My4zODAzQzE3LjE5NjggOTMuNTMxMSAxNy4yMTAxIDkzLjY3MjcgMTcuMjM2NiA5My44MDUxQzE3LjI2NTEgOTMuOTM1NSAxNy4zMDk5IDk0LjA1MTYgMTcuMzcxIDk0LjE1MzVDMTcuNDMyMiA5NC4yNTMzIDE3LjUwOTYgOTQuMzMxOCAxNy42MDMzIDk0LjM4ODhDMTcuNjk3IDk0LjQ0NTggMTcuODEwMSA5NC40NzQ0IDE3Ljk0MjUgOTQuNDc0NEMxOC4xMTU3IDk0LjQ3NDQgMTguMjU3MyA5NC40MzY3IDE4LjM2NzMgOTQuMzYxM0MxOC40NzkzIDk0LjI4NTkgMTguNTY0OSA5NC4xODUxIDE4LjYyNCA5NC4wNTg4QzE4LjY4NTEgOTMuOTMwNCAxOC43Mjc5IDkzLjc4ODggMTguNzUyNCA5My42MzRWOTMuMDgwOEMxOC43MzgxIDkyLjk2MDYgMTguNzEyNiA5Mi44NDg2IDE4LjY3NiA5Mi43NDQ3QzE4LjYzOTMgOTIuNjM4NyAxOC41ODgzIDkyLjU0NzEgMTguNTIzMiA5Mi40Njk2QzE4LjQ2IDkyLjM5MDIgMTguMzgwNSA5Mi4zMjkxIDE4LjI4NDggOTIuMjg2M0MxOC4xOTExIDkyLjI0MTUgMTguMDc5IDkyLjIxOSAxNy45NDg2IDkyLjIxOUMxNy44MTYyIDkyLjIxOSAxNy43MDIxIDkyLjI0NzYgMTcuNjA2NCA5Mi4zMDQ2QzE3LjUxMDYgOTIuMzYxNyAxNy40MzIyIDkyLjQ0MTEgMTcuMzcxIDkyLjU0M0MxNy4zMTIgOTIuNjQyOCAxNy4yNjgyIDkyLjc1ODkgMTcuMjM5NiA5Mi44OTE0QzE3LjIxMTEgOTMuMDIzOCAxNy4xOTY4IDkzLjE2NTQgMTcuMTk2OCA5My4zMTYxWk0yMi4yNDk2IDk0LjIyMDdWOTEuNjkzNEgyMi45ODkxVjk1SDIyLjI5MjRMMjIuMjQ5NiA5NC4yMjA3Wk0yMi4zNTM1IDkzLjUzMzFMMjIuNjAxIDkzLjUyN0MyMi42MDEgOTMuNzQ5MSAyMi41NzY2IDkzLjk1MzggMjIuNTI3NyA5NC4xNDEzQzIyLjQ3ODggOTQuMzI2NyAyMi40MDM0IDk0LjQ4ODYgMjIuMzAxNSA5NC42MjcyQzIyLjE5OTcgOTQuNzYzNyAyMi4wNjkzIDk0Ljg3MDYgMjEuOTEwNCA5NC45NDhDMjEuNzUxNSA5NS4wMjM0IDIxLjU2MSA5NS4wNjExIDIxLjMzODkgOTUuMDYxMUMyMS4xNzc5IDk1LjA2MTEgMjEuMDMwMiA5NS4wMzc3IDIwLjg5NTggOTQuOTkwOEMyMC43NjEzIDk0Ljk0NCAyMC42NDUyIDk0Ljg3MTYgMjAuNTQ3NCA5NC43NzM5QzIwLjQ1MTYgOTQuNjc2MSAyMC4zNzczIDk0LjU0ODcgMjAuMzI0MyA5NC4zOTE5QzIwLjI3MTMgOTQuMjM1IDIwLjI0NDkgOTQuMDQ3NSAyMC4yNDQ5IDkzLjgyOTZWOTEuNjkzNEgyMC45ODEzVjkzLjgzNTdDMjAuOTgxMyA5My45NTU5IDIwLjk5NTYgOTQuMDU2NyAyMS4wMjQxIDk0LjEzODJDMjEuMDUyNyA5NC4yMTc3IDIxLjA5MTQgOTQuMjgxOCAyMS4xNDAzIDk0LjMzMDdDMjEuMTg5MiA5NC4zNzk2IDIxLjI0NjIgOTQuNDE0MyAyMS4zMTE0IDk0LjQzNDZDMjEuMzc2NiA5NC40NTUgMjEuNDQ1OSA5NC40NjUyIDIxLjUxOTIgOTQuNDY1MkMyMS43MjkgOTQuNDY1MiAyMS44OTQxIDk0LjQyNDUgMjIuMDE0MyA5NC4zNDNDMjIuMTM2NSA5NC4yNTk0IDIyLjIyMzEgOTQuMTQ3NCAyMi4yNzQgOTQuMDA2OEMyMi4zMjcgOTMuODY2MiAyMi4zNTM1IDkzLjcwODMgMjIuMzUzNSA5My41MzMxWk0yNC42NTI4IDkxLjY5MzRWOTVIMjMuOTEzMlY5MS42OTM0SDI0LjY1MjhaTTIzLjg2NDMgOTAuODI1NUMyMy44NjQzIDkwLjcxMzUgMjMuOTAxIDkwLjYyMDggMjMuOTc0MyA5MC41NDc0QzI0LjA0OTcgOTAuNDcyIDI0LjE1MzYgOTAuNDM0MyAyNC4yODYgOTAuNDM0M0MyNC40MTY0IDkwLjQzNDMgMjQuNTE5MyA5MC40NzIgMjQuNTk0NyA5MC41NDc0QzI0LjY3MDEgOTAuNjIwOCAyNC43MDc4IDkwLjcxMzUgMjQuNzA3OCA5MC44MjU1QzI0LjcwNzggOTAuOTM1NSAyNC42NzAxIDkxLjAyNzIgMjQuNTk0NyA5MS4xMDA2QzI0LjUxOTMgOTEuMTczOSAyNC40MTY0IDkxLjIxMDYgMjQuMjg2IDkxLjIxMDZDMjQuMTUzNiA5MS4yMTA2IDI0LjA0OTcgOTEuMTczOSAyMy45NzQzIDkxLjEwMDZDMjMuOTAxIDkxLjAyNzIgMjMuODY0MyA5MC45MzU1IDIzLjg2NDMgOTAuODI1NVpNMjcuNTk2OSA5NC4zMTU1VjkwLjMwNkgyOC4zMzY0Vjk1SDI3LjY2NzJMMjcuNTk2OSA5NC4zMTU1Wk0yNS40NDU0IDkzLjM4MzRWOTMuMzE5MkMyNS40NDU0IDkzLjA2ODYgMjUuNDc1IDkyLjg0MDQgMjUuNTM0MSA5Mi42MzQ3QzI1LjU5MzIgOTIuNDI2OSAyNS42Nzg3IDkyLjI0ODYgMjUuNzkwOCA5Mi4wOTk5QzI1LjkwMjggOTEuOTQ5MSAyNi4wMzkzIDkxLjgzNCAyNi4yMDAzIDkxLjc1NDVDMjYuMzYxMiA5MS42NzMgMjYuNTQyNSA5MS42MzIzIDI2Ljc0NDIgOTEuNjMyM0MyNi45NDM5IDkxLjYzMjMgMjcuMTE5MSA5MS42NzEgMjcuMjY5OSA5MS43NDg0QzI3LjQyMDYgOTEuODI1OCAyNy41NDkgOTEuOTM2OSAyNy42NTQ5IDkyLjA4MTVDMjcuNzYwOSA5Mi4yMjQxIDI3Ljg0NTQgOTIuMzk1MyAyNy45MDg2IDkyLjU5NDlDMjcuOTcxNyA5Mi43OTI2IDI4LjAxNjYgOTMuMDEyNiAyOC4wNDMgOTMuMjU1VjkzLjQ1OThDMjguMDE2NiA5My42OTYxIDI3Ljk3MTcgOTMuOTEyMSAyNy45MDg2IDk0LjEwNzZDMjcuODQ1NCA5NC4zMDMyIDI3Ljc2MDkgOTQuNDcyMyAyNy42NTQ5IDk0LjYxNDlDMjcuNTQ5IDk0Ljc1NzYgMjcuNDE5NiA5NC44Njc2IDI3LjI2NjggOTQuOTQ1QzI3LjExNjEgOTUuMDIyNCAyNi45Mzk4IDk1LjA2MTEgMjYuNzM4MSA5NS4wNjExQzI2LjUzODUgOTUuMDYxMSAyNi4zNTgyIDk1LjAxOTQgMjYuMTk3MiA5NC45MzU4QzI2LjAzODMgOTQuODUyMyAyNS45MDI4IDk0LjczNTEgMjUuNzkwOCA5NC41ODQ0QzI1LjY3ODcgOTQuNDMzNiAyNS41OTMyIDk0LjI1NjQgMjUuNTM0MSA5NC4wNTI2QzI1LjQ3NSA5My44NDY5IDI1LjQ0NTQgOTMuNjIzOCAyNS40NDU0IDkzLjM4MzRaTTI2LjE4MTkgOTMuMzE5MlY5My4zODM0QzI2LjE4MTkgOTMuNTM0MSAyNi4xOTUyIDkzLjY3NDcgMjYuMjIxNyA5My44MDUxQzI2LjI1MDIgOTMuOTM1NSAyNi4yOTQgOTQuMDUwNiAyNi4zNTMxIDk0LjE1MDRDMjYuNDEyMiA5NC4yNDgyIDI2LjQ4ODYgOTQuMzI1NiAyNi41ODIzIDk0LjM4MjdDMjYuNjc4IDk0LjQzNzcgMjYuNzkyMSA5NC40NjUyIDI2LjkyNDUgOTQuNDY1MkMyNy4wOTE2IDk0LjQ2NTIgMjcuMjI5MSA5NC40Mjg1IDI3LjMzNzEgOTQuMzU1MkMyNy40NDUxIDk0LjI4MTggMjcuNTI5NiA5NC4xODMgMjcuNTkwOCA5NC4wNTg4QzI3LjY1MzkgOTMuOTMyNCAyNy42OTY3IDkzLjc5MTkgMjcuNzE5MSA5My42MzdWOTMuMDgzOUMyNy43MDY5IDkyLjk2MzcgMjcuNjgxNCA5Mi44NTE2IDI3LjY0MjcgOTIuNzQ3N0MyNy42MDYgOTIuNjQzOCAyNy41NTYxIDkyLjU1MzIgMjcuNDkzIDkyLjQ3NTdDMjcuNDI5OCA5Mi4zOTYzIDI3LjM1MTQgOTIuMzM1MiAyNy4yNTc3IDkyLjI5MjRDMjcuMTY2IDkyLjI0NzYgMjcuMDU3IDkyLjIyNTIgMjYuOTMwNyA5Mi4yMjUyQzI2Ljc5NjIgOTIuMjI1MiAyNi42ODIxIDkyLjI1MzcgMjYuNTg4NCA5Mi4zMTA3QzI2LjQ5NDcgOTIuMzY3OCAyNi40MTczIDkyLjQ0NjIgMjYuMzU2MSA5Mi41NDZDMjYuMjk3IDkyLjY0NTkgMjYuMjUzMiA5Mi43NjIgMjYuMjI0NyA5Mi44OTQ0QzI2LjE5NjIgOTMuMDI2OCAyNi4xODE5IDkzLjE2ODQgMjYuMTgxOSA5My4zMTkyWk0zMS42OTQyIDkwLjMwNlY5NUgzMC45NTQ3VjkwLjMwNkgzMS42OTQyWk0zNC4wNzkxIDk1LjA2MTFDMzMuODM0NiA5NS4wNjExIDMzLjYxMzYgOTUuMDIxNCAzMy40MTU5IDk0Ljk0MTlDMzMuMjIwNCA5NC44NjA0IDMzLjA1MzMgOTQuNzQ3NCAzMi45MTQ4IDk0LjYwMjdDMzIuNzc4MyA5NC40NTgxIDMyLjY3MzMgOTQuMjg4IDMyLjYgOTQuMDkyNEMzMi41MjY3IDkzLjg5NjggMzIuNDkgOTMuNjg1OSAzMi40OSA5My40NTk4VjkzLjMzNzVDMzIuNDkgOTMuMDc4OCAzMi41Mjc3IDkyLjg0NDUgMzIuNjAzMSA5Mi42MzQ3QzMyLjY3ODQgOTIuNDI0OCAzMi43ODM0IDkyLjI0NTUgMzIuOTE3OCA5Mi4wOTY4QzMzLjA1MjMgOTEuOTQ2IDMzLjIxMTIgOTEuODMwOSAzMy4zOTQ2IDkxLjc1MTVDMzMuNTc3OSA5MS42NzIgMzMuNzc2NiA5MS42MzIzIDMzLjk5MDUgOTEuNjMyM0MzNC4yMjY4IDkxLjYzMjMgMzQuNDMzNiA5MS42NzIgMzQuNjEwOCA5MS43NTE1QzM0Ljc4ODEgOTEuODMwOSAzNC45MzQ4IDkxLjk0MyAzNS4wNTA5IDkyLjA4NzZDMzUuMTY5MSA5Mi4yMzAzIDM1LjI1NjcgOTIuNDAwNCAzNS4zMTM3IDkyLjU5OEMzNS4zNzI4IDkyLjc5NTYgMzUuNDAyMyA5My4wMTM2IDM1LjQwMjMgOTMuMjUyVjkzLjU2NjdIMzIuODQ3NVY5My4wMzgxSDM0LjY3NVY5Mi45OEMzNC42NzA5IDkyLjg0NzYgMzQuNjQ0NSA5Mi43MjMzIDM0LjU5NTYgOTIuNjA3MkMzNC41NDg3IDkyLjQ5MSAzNC40NzY0IDkyLjM5NzMgMzQuMzc4NiA5Mi4zMjZDMzQuMjgwOCA5Mi4yNTQ3IDM0LjE1MDQgOTIuMjE5IDMzLjk4NzQgOTIuMjE5QzMzLjg2NTIgOTIuMjE5IDMzLjc1NjIgOTIuMjQ1NSAzMy42NjA0IDkyLjI5ODVDMzMuNTY2NyA5Mi4zNDk0IDMzLjQ4ODMgOTIuNDIzOCAzMy40MjUxIDkyLjUyMTZDMzMuMzYyIDkyLjYxOTQgMzMuMzEzMSA5Mi43Mzc1IDMzLjI3ODQgOTIuODc2MUMzMy4yNDU4IDkzLjAxMjYgMzMuMjI5NSA5My4xNjY0IDMzLjIyOTUgOTMuMzM3NVY5My40NTk4QzMzLjIyOTUgOTMuNjA0NCAzMy4yNDg5IDkzLjczODkgMzMuMjg3NiA5My44NjMyQzMzLjMyODMgOTMuOTg1NCAzMy4zODc0IDk0LjA5MjQgMzMuNDY0OCA5NC4xODRDMzMuNTQyMyA5NC4yNzU3IDMzLjYzNiA5NC4zNDgxIDMzLjc0NiA5NC40MDFDMzMuODU2IDk0LjQ1MiAzMy45ODEzIDk0LjQ3NzQgMzQuMTIxOSA5NC40Nzc0QzM0LjI5OTEgOTQuNDc3NCAzNC40NTcgOTQuNDQxOCAzNC41OTU2IDk0LjM3MDVDMzQuNzM0MSA5NC4yOTkyIDM0Ljg1NDMgOTQuMTk4MyAzNC45NTYyIDk0LjA2NzlMMzUuMzQ0MyA5NC40NDM4QzM1LjI3MyA5NC41NDc3IDM1LjE4MDMgOTQuNjQ3NSAzNS4wNjYyIDk0Ljc0MzNDMzQuOTUyMSA5NC44MzcgMzQuODEyNSA5NC45MTM0IDM0LjY0NzUgOTQuOTcyNUMzNC40ODQ1IDk1LjAzMTYgMzQuMjk1MSA5NS4wNjExIDM0LjA3OTEgOTUuMDYxMVpNMzcuMTMwMiA5NC40MTYzTDM3Ljk0IDkxLjY5MzRIMzguNzA0TDM3LjU1NDkgOTVIMzcuMDc4MkwzNy4xMzAyIDk0LjQxNjNaTTM2LjUwOTggOTEuNjkzNEwzNy4zMzQ5IDk0LjQyODVMMzcuMzc0NiA5NUgzNi44OTc5TDM1Ljc0MjcgOTEuNjkzNEgzNi41MDk4Wk00MC42OTQ2IDk1LjA2MTFDNDAuNDUwMSA5NS4wNjExIDQwLjIyOTEgOTUuMDIxNCA0MC4wMzE1IDk0Ljk0MTlDMzkuODM1OSA5NC44NjA0IDM5LjY2ODggOTQuNzQ3NCAzOS41MzAzIDk0LjYwMjdDMzkuMzkzOCA5NC40NTgxIDM5LjI4ODkgOTQuMjg4IDM5LjIxNTUgOTQuMDkyNEMzOS4xNDIyIDkzLjg5NjggMzkuMTA1NSA5My42ODU5IDM5LjEwNTUgOTMuNDU5OFY5My4zMzc1QzM5LjEwNTUgOTMuMDc4OCAzOS4xNDMyIDkyLjg0NDUgMzkuMjE4NiA5Mi42MzQ3QzM5LjI5NCA5Mi40MjQ4IDM5LjM5ODkgOTIuMjQ1NSAzOS41MzMzIDkyLjA5NjhDMzkuNjY3OCA5MS45NDYgMzkuODI2NyA5MS44MzA5IDQwLjAxMDEgOTEuNzUxNUM0MC4xOTM0IDkxLjY3MiA0MC4zOTIxIDkxLjYzMjMgNDAuNjA2IDkxLjYzMjNDNDAuODQyMyA5MS42MzIzIDQxLjA0OTEgOTEuNjcyIDQxLjIyNjQgOTEuNzUxNUM0MS40MDM2IDkxLjgzMDkgNDEuNTUwMyA5MS45NDMgNDEuNjY2NCA5Mi4wODc2QzQxLjc4NDYgOTIuMjMwMyA0MS44NzIyIDkyLjQwMDQgNDEuOTI5MiA5Mi41OThDNDEuOTg4MyA5Mi43OTU2IDQyLjAxNzkgOTMuMDEzNiA0Mi4wMTc5IDkzLjI1MlY5My41NjY3SDM5LjQ2MzFWOTMuMDM4MUg0MS4yOTA1VjkyLjk4QzQxLjI4NjUgOTIuODQ3NiA0MS4yNiA5Mi43MjMzIDQxLjIxMTEgOTIuNjA3MkM0MS4xNjQyIDkyLjQ5MSA0MS4wOTE5IDkyLjM5NzMgNDAuOTk0MSA5Mi4zMjZDNDAuODk2MyA5Mi4yNTQ3IDQwLjc2NTkgOTIuMjE5IDQwLjYwMjkgOTIuMjE5QzQwLjQ4MDcgOTIuMjE5IDQwLjM3MTcgOTIuMjQ1NSA0MC4yNzU5IDkyLjI5ODVDNDAuMTgyMiA5Mi4zNDk0IDQwLjEwMzggOTIuNDIzOCA0MC4wNDA2IDkyLjUyMTZDMzkuOTc3NSA5Mi42MTk0IDM5LjkyODYgOTIuNzM3NSAzOS44OTM5IDkyLjg3NjFDMzkuODYxMyA5My4wMTI2IDM5Ljg0NTEgOTMuMTY2NCAzOS44NDUxIDkzLjMzNzVWOTMuNDU5OEMzOS44NDUxIDkzLjYwNDQgMzkuODY0NCA5My43Mzg5IDM5LjkwMzEgOTMuODYzMkMzOS45NDM5IDkzLjk4NTQgNDAuMDAyOSA5NC4wOTI0IDQwLjA4MDQgOTQuMTg0QzQwLjE1NzggOTQuMjc1NyA0MC4yNTE1IDk0LjM0ODEgNDAuMzYxNSA5NC40MDFDNDAuNDcxNSA5NC40NTIgNDAuNTk2OCA5NC40Nzc0IDQwLjczNzQgOTQuNDc3NEM0MC45MTQ2IDk0LjQ3NzQgNDEuMDcyNSA5NC40NDE4IDQxLjIxMTEgOTQuMzcwNUM0MS4zNDk2IDk0LjI5OTIgNDEuNDY5OCA5NC4xOTgzIDQxLjU3MTcgOTQuMDY3OUw0MS45NTk4IDk0LjQ0MzhDNDEuODg4NSA5NC41NDc3IDQxLjc5NTggOTQuNjQ3NSA0MS42ODE3IDk0Ljc0MzNDNDEuNTY3NiA5NC44MzcgNDEuNDI4MSA5NC45MTM0IDQxLjI2MyA5NC45NzI1QzQxLjEgOTUuMDMxNiA0MC45MTA2IDk1LjA2MTEgNDAuNjk0NiA5NS4wNjExWk00My41MDEyIDkwLjMwNlY5NUg0Mi43NjE2VjkwLjMwNkg0My41MDEyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI2LjUxOTggMTQ2LjVDMjQuMTc5OCAxNDYuNSAxOS43NTk4IDE0MS41NiAxOS43NTk4IDEyOS44NkMxOS43NTk4IDExOC4xNiAyNC40Mzk4IDExMy4yMiAyNi41MTk3IDExMy4yMkg3Mi43OTk4Qzc0Ljg3OTcgMTEzLjIyIDc5LjU1OTcgMTE4LjE2IDc5LjU1OTcgMTI5Ljg2Qzc5LjU1OTcgMTQxLjU2IDc1LjEzOTcgMTQ2LjUgNzIuNzk5NyAxNDYuNUgyNi41MTk4WiIgZmlsbD0iIzYyMTZGRiIgZmlsbC1vcGFjaXR5PSIwLjAyIi8+CjxwYXRoIGQ9Ik0xOS40OTk4IDEyOS44NkMxOS40OTk4IDEzNS43NDEgMjAuNjEwNCAxMzkuOTQ0IDIyLjAzMTQgMTQyLjY4N0MyMi43NDE3IDE0NC4wNTggMjMuNTMyNCAxNDUuMDcgMjQuMzA1OCAxNDUuNzQyQzI1LjA3NDYgMTQ2LjQwOSAyNS44NDgxIDE0Ni43NiAyNi41MTk4IDE0Ni43NlYxNDYuMjRDMjYuMDIxNCAxNDYuMjQgMjUuMzY1IDE0NS45NzMgMjQuNjQ2OSAxNDUuMzQ5QzIzLjkzMzQgMTQ0LjcyOSAyMy4xODAzIDE0My43NzQgMjIuNDkzMSAxNDIuNDQ4QzIxLjExOTEgMTM5Ljc5NiAyMC4wMTk4IDEzNS42NzkgMjAuMDE5OCAxMjkuODZIMTkuNDk5OFpNMjYuNTE5NyAxMTIuOTZDMjUuOTA3NSAxMTIuOTYgMjUuMTY1MyAxMTMuMzE2IDI0LjQxMzkgMTEzLjk4QzIzLjY1NDYgMTE0LjY1IDIyLjg1NjUgMTE1LjY2IDIyLjEzIDExNy4wMzFDMjAuNjc2NCAxMTkuNzczIDE5LjQ5OTggMTIzLjk3NiAxOS40OTk4IDEyOS44NkgyMC4wMTk4QzIwLjAxOTggMTI0LjA0NCAyMS4xODMyIDExOS45MjcgMjIuNTg5NSAxMTcuMjc0QzIzLjI5MyAxMTUuOTQ3IDI0LjA1NDkgMTE0Ljk5MSAyNC43NTgxIDExNC4zN0MyNS40NjkyIDExMy43NDEgMjYuMDkyIDExMy40OCAyNi41MTk3IDExMy40OFYxMTIuOTZaTTcyLjc5OTggMTEyLjk2SDI2LjUxOTdWMTEzLjQ4SDcyLjc5OThWMTEyLjk2Wk03OS44MTk3IDEyOS44NkM3OS44MTk3IDEyMy45NzYgNzguNjQzMSAxMTkuNzczIDc3LjE4OTUgMTE3LjAzMUM3Ni40NjMgMTE1LjY2IDc1LjY2NDkgMTE0LjY1IDc0LjkwNTYgMTEzLjk4Qzc0LjE1NDIgMTEzLjMxNiA3My40MTIgMTEyLjk2IDcyLjc5OTggMTEyLjk2VjExMy40OEM3My4yMjc1IDExMy40OCA3My44NTAzIDExMy43NDEgNzQuNTYxNCAxMTQuMzdDNzUuMjY0NiAxMTQuOTkxIDc2LjAyNjUgMTE1Ljk0NyA3Ni43MyAxMTcuMjc0Qzc4LjEzNjMgMTE5LjkyNyA3OS4yOTk3IDEyNC4wNDQgNzkuMjk5NyAxMjkuODZINzkuODE5N1pNNzIuNzk5NyAxNDYuNzZDNzMuNDcxNCAxNDYuNzYgNzQuMjQ0OSAxNDYuNDA5IDc1LjAxMzcgMTQ1Ljc0MkM3NS43ODcxIDE0NS4wNyA3Ni41Nzc4IDE0NC4wNTggNzcuMjg4MSAxNDIuNjg3Qzc4LjcwOTEgMTM5Ljk0NCA3OS44MTk3IDEzNS43NDEgNzkuODE5NyAxMjkuODZINzkuMjk5N0M3OS4yOTk3IDEzNS42NzkgNzguMjAwNCAxMzkuNzk2IDc2LjgyNjQgMTQyLjQ0OEM3Ni4xMzkyIDE0My43NzQgNzUuMzg2MSAxNDQuNzI5IDc0LjY3MjYgMTQ1LjM0OUM3My45NTQ1IDE0NS45NzMgNzMuMjk4MSAxNDYuMjQgNzIuNzk5NyAxNDYuMjRWMTQ2Ljc2Wk0yNi41MTk4IDE0Ni43Nkg3Mi43OTk3VjE0Ni4yNEgyNi41MTk4VjE0Ni43NloiIGZpbGw9IiMyNDI3NzAiLz4KPG1hc2sgaWQ9Im1hc2syXzM0NjFfNDY4ODYiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjIwIiB5PSIxMTQiIHdpZHRoPSI1OSIgaGVpZ2h0PSIzMiI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjYuNTIgMTQ1LjcyQzI0Ljk2IDE0NS43MiAyMC41NCAxNDEuMDEyIDIwLjU0IDEyOS44NkMyMC41NCAxMTguNzA4IDI0Ljk2IDExNCAyNi41MiAxMTRINzIuOEM3NC4zNiAxMTQgNzguNzggMTE4LjcwOCA3OC43OCAxMjkuODZDNzguNzggMTQxLjAxMiA3NC4zNiAxNDUuNzIgNzIuOCAxNDUuNzJIMjYuNTJaIiBmaWxsPSIjRjFGMUY5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMl8zNDYxXzQ2ODg2KSI+CjxyZWN0IHg9IjIwLjM3OTkiIHk9IjEzMS42OCIgd2lkdGg9IjU4LjI0IiBoZWlnaHQ9IjMxLjcyIiBmaWxsPSIjN0E4QkZGIi8+CjwvZz4KPHBhdGggZD0iTTMxLjk3OTYgMTEzLjIyQzMwLjIxMzggMTE5LjAxMSAyNy43NDE3IDEzMy43NzUgMzEuOTc5NiAxNDYuNSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTIiLz4KPHBhdGggZD0iTTY3LjM0IDExMy4yMkM2NS41NzQyIDExOS4wMTEgNjMuMTAyIDEzMy43NzUgNjcuMzQgMTQ2LjUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIwLjUyIi8+CjxtYXNrIGlkPSJwYXRoLTQ0LWluc2lkZS02XzM0NjFfNDY4ODYiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01My4zOTk0IDEwOC44SDQ1Ljg1OTRWMTEzLjQ4QzQ1Ljg1OTQgMTEzLjkxMSA0Ny41NDczIDExNC4yNiA0OS42Mjk0IDExNC4yNkM1MS43MTE1IDExNC4yNiA1My4zOTk0IDExMy45MTEgNTMuMzk5NCAxMTMuNDhWMTA4LjhaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01My4zOTk0IDEwOC44SDQ1Ljg1OTRWMTEzLjQ4QzQ1Ljg1OTQgMTEzLjkxMSA0Ny41NDczIDExNC4yNiA0OS42Mjk0IDExNC4yNkM1MS43MTE1IDExNC4yNiA1My4zOTk0IDExMy45MTEgNTMuMzk5NCAxMTMuNDhWMTA4LjhaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDUuODU5NCAxMDguOFYxMDguMjhINDUuMzM5NFYxMDguOEg0NS44NTk0Wk01My4zOTk0IDEwOC44SDUzLjkxOTRWMTA4LjI4SDUzLjM5OTRWMTA4LjhaTTQ1Ljg1OTQgMTA5LjMySDUzLjM5OTRWMTA4LjI4SDQ1Ljg1OTRWMTA5LjMyWk00Ni4zNzk0IDExMy40OFYxMDguOEg0NS4zMzk0VjExMy40OEg0Ni4zNzk0Wk00OS42Mjk0IDExMy43NEM0OC42MTI3IDExMy43NCA0Ny43MDcyIDExMy42NTQgNDcuMDY4OSAxMTMuNTIyQzQ2Ljc0NTUgMTEzLjQ1NSA0Ni41MTgxIDExMy4zODIgNDYuMzg0MSAxMTMuMzE3QzQ2LjMxNjEgMTEzLjI4MyA0Ni4yOTkgMTEzLjI2NSA0Ni4zMDU3IDExMy4yNzJDNDYuMzE0IDExMy4yOCA0Ni4zNzk0IDExMy4zNTEgNDYuMzc5NCAxMTMuNDhINDUuMzM5NEM0NS4zMzk0IDExMy43MTcgNDUuNDU3NSAxMTMuODkzIDQ1LjU2NjMgMTE0LjAwM0M0NS42NzM0IDExNC4xMTEgNDUuODA0NCAxMTQuMTkxIDQ1LjkyNzEgMTE0LjI1MUM0Ni4xNzQ3IDExNC4zNzIgNDYuNDk5NCAxMTQuNDY3IDQ2Ljg1ODIgMTE0LjU0MUM0Ny41ODQ0IDExNC42OTEgNDguNTYzOSAxMTQuNzggNDkuNjI5NCAxMTQuNzhWMTEzLjc0Wk01Mi44Nzk0IDExMy40OEM1Mi44Nzk0IDExMy4zNTEgNTIuOTQ0OCAxMTMuMjggNTIuOTUzMSAxMTMuMjcyQzUyLjk1OTggMTEzLjI2NSA1Mi45NDI3IDExMy4yODMgNTIuODc0NiAxMTMuMzE3QzUyLjc0MDYgMTEzLjM4MiA1Mi41MTMyIDExMy40NTUgNTIuMTg5OCAxMTMuNTIyQzUxLjU1MTYgMTEzLjY1NCA1MC42NDYgMTEzLjc0IDQ5LjYyOTQgMTEzLjc0VjExNC43OEM1MC42OTQ4IDExNC43OCA1MS42NzQzIDExNC42OTEgNTIuNDAwNSAxMTQuNTQxQzUyLjc1OTQgMTE0LjQ2NyA1My4wODQgMTE0LjM3MiA1My4zMzE2IDExNC4yNTFDNTMuNDU0MyAxMTQuMTkxIDUzLjU4NTMgMTE0LjExMSA1My42OTI1IDExNC4wMDNDNTMuODAxMiAxMTMuODkzIDUzLjkxOTQgMTEzLjcxNyA1My45MTk0IDExMy40OEg1Mi44Nzk0Wk01Mi44Nzk0IDEwOC44VjExMy40OEg1My45MTk0VjEwOC44SDUyLjg3OTRaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtNDQtaW5zaWRlLTZfMzQ2MV80Njg4NikiLz4KPHBhdGggZD0iTTUzLjIzNDcgMTA4Ljk5M0M1My4yODk1IDEwOS4wMTggNTMuMzI5OCAxMDkuMDQxIDUzLjM1ODQgMTA5LjA2QzUzLjMyOTggMTA5LjA3OSA1My4yODk1IDEwOS4xMDIgNTMuMjM0NyAxMDkuMTI3QzUzLjA1ODIgMTA5LjIwOCA1Mi43ODYzIDEwOS4yODcgNTIuNDI5OCAxMDkuMzU2QzUxLjcyMTIgMTA5LjQ5MyA1MC43MzExIDEwOS41OCA0OS42Mjk2IDEwOS41OEM0OC41MjgxIDEwOS41OCA0Ny41MzggMTA5LjQ5MyA0Ni44Mjk0IDEwOS4zNTZDNDYuNDcyOSAxMDkuMjg3IDQ2LjIwMSAxMDkuMjA4IDQ2LjAyNDUgMTA5LjEyN0M0NS45Njk3IDEwOS4xMDIgNDUuOTI5NCAxMDkuMDc5IDQ1LjkwMDggMTA5LjA2QzQ1LjkyOTQgMTA5LjA0MSA0NS45Njk3IDEwOS4wMTggNDYuMDI0NSAxMDguOTkzQzQ2LjIwMSAxMDguOTEyIDQ2LjQ3MjkgMTA4LjgzMyA0Ni44Mjk0IDEwOC43NjRDNDcuNTM4IDEwOC42MjcgNDguNTI4MSAxMDguNTQgNDkuNjI5NiAxMDguNTRDNTAuNzMxMSAxMDguNTQgNTEuNzIxMiAxMDguNjI3IDUyLjQyOTggMTA4Ljc2NEM1Mi43ODYzIDEwOC44MzMgNTMuMDU4MiAxMDguOTEyIDUzLjIzNDcgMTA4Ljk5M1pNNTMuNDA5NyAxMDkuMTAzQzUzLjQxIDEwOS4xMDMgNTMuNDEwMiAxMDkuMTA0IDUzLjQxMDEgMTA5LjEwNEw1My40MDk3IDEwOS4xMDNaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTIiLz4KPHBhdGggZD0iTTUzLjIzNDcgMTA4LjIxM0M1My4yODk1IDEwOC4yMzggNTMuMzI5OCAxMDguMjYxIDUzLjM1ODQgMTA4LjI4QzUzLjMyOTggMTA4LjI5OSA1My4yODk1IDEwOC4zMjIgNTMuMjM0NyAxMDguMzQ3QzUzLjA1ODIgMTA4LjQyOCA1Mi43ODYzIDEwOC41MDcgNTIuNDI5OCAxMDguNTc2QzUxLjcyMTIgMTA4LjcxMyA1MC43MzExIDEwOC44IDQ5LjYyOTYgMTA4LjhDNDguNTI4MSAxMDguOCA0Ny41MzggMTA4LjcxMyA0Ni44Mjk0IDEwOC41NzZDNDYuNDcyOSAxMDguNTA3IDQ2LjIwMSAxMDguNDI4IDQ2LjAyNDUgMTA4LjM0N0M0NS45Njk3IDEwOC4zMjIgNDUuOTI5NCAxMDguMjk5IDQ1LjkwMDggMTA4LjI4QzQ1LjkyOTQgMTA4LjI2MSA0NS45Njk3IDEwOC4yMzggNDYuMDI0NSAxMDguMjEzQzQ2LjIwMSAxMDguMTMyIDQ2LjQ3MjkgMTA4LjA1MyA0Ni44Mjk0IDEwNy45ODRDNDcuNTM4IDEwNy44NDcgNDguNTI4MSAxMDcuNzYgNDkuNjI5NiAxMDcuNzZDNTAuNzMxMSAxMDcuNzYgNTEuNzIxMiAxMDcuODQ3IDUyLjQyOTggMTA3Ljk4NEM1Mi43ODYzIDEwOC4wNTMgNTMuMDU4MiAxMDguMTMyIDUzLjIzNDcgMTA4LjIxM1pNNTMuNDA5NyAxMDguMzIzQzUzLjQxIDEwOC4zMjMgNTMuNDEwMiAxMDguMzI0IDUzLjQxMDEgMTA4LjMyNEw1My40MDk3IDEwOC4zMjNaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTIiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjJfYl8zNDYxXzQ2ODg2KSI+CjxyZWN0IHg9IjM3LjUiIHk9IjEyMyIgd2lkdGg9IjIyIiBoZWlnaHQ9IjEzIiByeD0iMS4xODk2NiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNNDQuODQ3NyAxMjkuOTczVjEzMC43MjNINDAuNzQ2MUw0MC43MTQ4IDEzMC4xNTZMNDMuMTY4IDEyNi4zMTJINDMuOTIxOUw0My4xMDU1IDEyNy43MTFMNDEuNjk1MyAxMjkuOTczSDQ0Ljg0NzdaTTQ0LjEzNjcgMTI2LjMxMlYxMzJINDMuMTk1M1YxMjYuMzEySDQ0LjEzNjdaTTQ5LjE4MzYgMTI4LjY4VjEyOS42MDlDNDkuMTgzNiAxMzAuMDU1IDQ5LjEzOTMgMTMwLjQzNSA0OS4wNTA4IDEzMC43NUM0OC45NjQ4IDEzMS4wNjIgNDguODM5OCAxMzEuMzE2IDQ4LjY3NTggMTMxLjUxMkM0OC41MTE3IDEzMS43MDcgNDguMzE1MSAxMzEuODUgNDguMDg1OSAxMzEuOTQxQzQ3Ljg1OTQgMTMyLjAzMyA0Ny42MDU1IDEzMi4wNzggNDcuMzI0MiAxMzIuMDc4QzQ3LjEwMDMgMTMyLjA3OCA0Ni44OTE5IDEzMi4wNDkgNDYuNjk5MiAxMzEuOTkyQzQ2LjUwOTEgMTMxLjkzNSA0Ni4zMzcyIDEzMS44NDUgNDYuMTgzNiAxMzEuNzIzQzQ2LjAyOTkgMTMxLjYgNDUuODk4NCAxMzEuNDQzIDQ1Ljc4OTEgMTMxLjI1QzQ1LjY4MjMgMTMxLjA1NSA0NS41OTkgMTMwLjgyMiA0NS41MzkxIDEzMC41NTFDNDUuNDgxOCAxMzAuMjggNDUuNDUzMSAxMjkuOTY2IDQ1LjQ1MzEgMTI5LjYwOVYxMjguNjhDNDUuNDUzMSAxMjguMjMyIDQ1LjQ5NzQgMTI3Ljg1NCA0NS41ODU5IDEyNy41NDdDNDUuNjc0NSAxMjcuMjM3IDQ1LjgwMDggMTI2Ljk4NiA0NS45NjQ4IDEyNi43OTNDNDYuMTI4OSAxMjYuNTk4IDQ2LjMyNDIgMTI2LjQ1NiA0Ni41NTA4IDEyNi4zNjdDNDYuNzc5OSAxMjYuMjc5IDQ3LjAzNTIgMTI2LjIzNCA0Ny4zMTY0IDEyNi4yMzRDNDcuNTQzIDEyNi4yMzQgNDcuNzUxMyAxMjYuMjYzIDQ3Ljk0MTQgMTI2LjMyQzQ4LjEzNDEgMTI2LjM3NSA0OC4zMDYgMTI2LjQ2MiA0OC40NTcgMTI2LjU4MkM0OC42MTA3IDEyNi43MDIgNDguNzQwOSAxMjYuODU4IDQ4Ljg0NzcgMTI3LjA1MUM0OC45NTcgMTI3LjI0MSA0OS4wNDA0IDEyNy40NzEgNDkuMDk3NyAxMjcuNzQyQzQ5LjE1NDkgMTI4LjAxIDQ5LjE4MzYgMTI4LjMyMyA0OS4xODM2IDEyOC42OFpNNDguMjQyMiAxMjkuNzQyVjEyOC41MzlDNDguMjQyMiAxMjguMzEyIDQ4LjIyOTIgMTI4LjExMyA0OC4yMDMxIDEyNy45NDFDNDguMTc3MSAxMjcuNzY3IDQ4LjEzOCAxMjcuNjIgNDguMDg1OSAxMjcuNUM0OC4wMzY1IDEyNy4zNzggNDcuOTc0IDEyNy4yNzkgNDcuODk4NCAxMjcuMjAzQzQ3LjgyMjkgMTI3LjEyNSA0Ny43MzcgMTI3LjA2OSA0Ny42NDA2IDEyNy4wMzVDNDcuNTQ0MyAxMjYuOTk5IDQ3LjQzNjIgMTI2Ljk4IDQ3LjMxNjQgMTI2Ljk4QzQ3LjE3MDYgMTI2Ljk4IDQ3LjA0MDQgMTI3LjAwOSA0Ni45MjU4IDEyNy4wNjZDNDYuODExMiAxMjcuMTIxIDQ2LjcxNDggMTI3LjIxIDQ2LjYzNjcgMTI3LjMzMkM0Ni41NTg2IDEyNy40NTQgNDYuNDk4NyAxMjcuNjE2IDQ2LjQ1NyAxMjcuODE2QzQ2LjQxOCAxMjguMDE0IDQ2LjM5ODQgMTI4LjI1NSA0Ni4zOTg0IDEyOC41MzlWMTI5Ljc0MkM0Ni4zOTg0IDEyOS45NzEgNDYuNDExNSAxMzAuMTczIDQ2LjQzNzUgMTMwLjM0OEM0Ni40NjM1IDEzMC41MjIgNDYuNTAyNiAxMzAuNjcyIDQ2LjU1NDcgMTMwLjc5N0M0Ni42MDY4IDEzMC45MTkgNDYuNjY5MyAxMzEuMDIxIDQ2Ljc0MjIgMTMxLjEwMkM0Ni44MTc3IDEzMS4xOCA0Ni45MDM2IDEzMS4yMzcgNDcgMTMxLjI3M0M0Ny4wOTkgMTMxLjMxIDQ3LjIwNyAxMzEuMzI4IDQ3LjMyNDIgMTMxLjMyOEM0Ny40NzI3IDEzMS4zMjggNDcuNjA0MiAxMzEuMjk5IDQ3LjcxODggMTMxLjI0MkM0Ny44MzMzIDEzMS4xODUgNDcuOTI5NyAxMzEuMDk0IDQ4LjAwNzggMTMwLjk2OUM0OC4wODU5IDEzMC44NDEgNDguMTQ0NSAxMzAuNjc2IDQ4LjE4MzYgMTMwLjQ3M0M0OC4yMjI3IDEzMC4yNyA0OC4yNDIyIDEzMC4wMjYgNDguMjQyMiAxMjkuNzQyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNNTIuNzQ0MSAxMjkuMzE3VjEyOS4xMjlDNTIuNzQ0MSAxMjguOTk0IDUyLjc3MzQgMTI4Ljg3MSA1Mi44MzIgMTI4Ljc2QzUyLjg5MDYgMTI4LjY1IDUyLjk3NjEgMTI4LjU2MSA1My4wODg0IDEyOC40OTRDNTMuMjAwNyAxMjguNDI3IDUzLjMzNTggMTI4LjM5NCA1My40OTM3IDEyOC4zOTRDNTMuNjU2NCAxMjguMzk0IDUzLjc5MzEgMTI4LjQyNyA1My45MDM4IDEyOC40OTRDNTQuMDE2MSAxMjguNTYxIDU0LjEwMTYgMTI4LjY1IDU0LjE2MDIgMTI4Ljc2QzU0LjIxODggMTI4Ljg3MSA1NC4yNDggMTI4Ljk5NCA1NC4yNDggMTI5LjEyOVYxMjkuMzE3QzU0LjI0OCAxMjkuNDQ5IDU0LjIxODggMTI5LjU3IDU0LjE2MDIgMTI5LjY4MUM1NC4xMDMyIDEyOS43OTEgNTQuMDE4NiAxMjkuODggNTMuOTA2MiAxMjkuOTQ3QzUzLjc5NTYgMTMwLjAxNCA1My42NTk3IDEzMC4wNDcgNTMuNDk4NSAxMzAuMDQ3QzUzLjMzOSAxMzAuMDQ3IDUzLjIwMjMgMTMwLjAxNCA1My4wODg0IDEyOS45NDdDNTIuOTc2MSAxMjkuODggNTIuODkwNiAxMjkuNzkxIDUyLjgzMiAxMjkuNjgxQzUyLjc3MzQgMTI5LjU3IDUyLjc0NDEgMTI5LjQ0OSA1Mi43NDQxIDEyOS4zMTdaTTUzLjE1MTkgMTI5LjEyOVYxMjkuMzE3QzUzLjE1MTkgMTI5LjM4MiA1My4xNjQxIDEyOS40NDQgNTMuMTg4NSAxMjkuNTAyQzUzLjIxNDUgMTI5LjU2MSA1My4yNTM2IDEyOS42MDggNTMuMzA1NyAxMjkuNjQ0QzUzLjM1NzcgMTI5LjY4IDUzLjQyMiAxMjkuNjk4IDUzLjQ5ODUgMTI5LjY5OEM1My41NzY3IDEyOS42OTggNTMuNjQwMSAxMjkuNjggNTMuNjg5IDEyOS42NDRDNTMuNzM5NCAxMjkuNjA4IDUzLjc3NjkgMTI5LjU2MSA1My44MDEzIDEyOS41MDJDNTMuODI1NyAxMjkuNDQ0IDUzLjgzNzkgMTI5LjM4MiA1My44Mzc5IDEyOS4zMTdWMTI5LjEyOUM1My44Mzc5IDEyOS4wNjIgNTMuODI0OSAxMjkgNTMuNzk4OCAxMjguOTQxQzUzLjc3NDQgMTI4Ljg4MSA1My43MzcgMTI4LjgzMyA1My42ODY1IDEyOC43OTdDNTMuNjM2MSAxMjguNzYxIDUzLjU3MTggMTI4Ljc0MyA1My40OTM3IDEyOC43NDNDNTMuNDE4OCAxMjguNzQzIDUzLjM1NTMgMTI4Ljc2MSA1My4zMDMyIDEyOC43OTdDNTMuMjUyOCAxMjguODMzIDUzLjIxNDUgMTI4Ljg4MSA1My4xODg1IDEyOC45NDFDNTMuMTY0MSAxMjkgNTMuMTUxOSAxMjkuMDYyIDUzLjE1MTkgMTI5LjEyOVpNNTQuNDU4IDEzMS4zMTlWMTMxLjEyOEM1NC40NTggMTMwLjk5NSA1NC40ODczIDEzMC44NzMgNTQuNTQ1OSAxMzAuNzYyQzU0LjYwNjEgMTMwLjY1MiA1NC42OTI0IDEzMC41NjMgNTQuODA0NyAxMzAuNDk2QzU0LjkxNyAxMzAuNDI5IDU1LjA1MjEgMTMwLjM5NiA1NS4yMSAxMzAuMzk2QzU1LjM3MjcgMTMwLjM5NiA1NS41MDk0IDEzMC40MjkgNTUuNjIwMSAxMzAuNDk2QzU1LjczMjQgMTMwLjU2MyA1NS44MTcxIDEzMC42NTIgNTUuODc0IDEzMC43NjJDNTUuOTMyNiAxMzAuODczIDU1Ljk2MTkgMTMwLjk5NSA1NS45NjE5IDEzMS4xMjhWMTMxLjMxOUM1NS45NjE5IDEzMS40NTIgNTUuOTMyNiAxMzEuNTc0IDU1Ljg3NCAxMzEuNjg1QzU1LjgxNzEgMTMxLjc5NiA1NS43MzMyIDEzMS44ODQgNTUuNjIyNiAxMzEuOTUxQzU1LjUxMTkgMTMyLjAxOCA1NS4zNzY4IDEzMi4wNTEgNTUuMjE3MyAxMzIuMDUxQzU1LjA1NjIgMTMyLjA1MSA1NC45MTg2IDEzMi4wMTggNTQuODA0NyAxMzEuOTUxQzU0LjY5MjQgMTMxLjg4NCA1NC42MDYxIDEzMS43OTYgNTQuNTQ1OSAxMzEuNjg1QzU0LjQ4NzMgMTMxLjU3NCA1NC40NTggMTMxLjQ1MiA1NC40NTggMTMxLjMxOVpNNTQuODY4MiAxMzEuMTI4VjEzMS4zMTlDNTQuODY4MiAxMzEuMzg0IDU0Ljg4MTIgMTMxLjQ0NiA1NC45MDcyIDEzMS41MDRDNTQuOTM0OSAxMzEuNTYzIDU0Ljk3NDggMTMxLjYxMSA1NS4wMjY5IDEzMS42NDhDNTUuMDc4OSAxMzEuNjg0IDU1LjE0MTYgMTMxLjcwMiA1NS4yMTQ4IDEzMS43MDJDNTUuMjk3OSAxMzEuNzAyIDU1LjM2NDYgMTMxLjY4NCA1NS40MTUgMTMxLjY0OEM1NS40NjU1IDEzMS42MTEgNTUuNTAxMyAxMzEuNTY0IDU1LjUyMjUgMTMxLjUwN0M1NS41NDUyIDEzMS40NDggNTUuNTU2NiAxMzEuMzg2IDU1LjU1NjYgMTMxLjMxOVYxMzEuMTI4QzU1LjU1NjYgMTMxLjA2MiA1NS41NDM2IDEzMC45OTkgNTUuNTE3NiAxMzAuOTRDNTUuNDkzMiAxMzAuODgyIDU1LjQ1NDkgMTMwLjgzNSA1NS40MDI4IDEzMC43OTlDNTUuMzUyNCAxMzAuNzYzIDU1LjI4ODEgMTMwLjc0NSA1NS4yMSAxMzAuNzQ1QzU1LjEzMzUgMTMwLjc0NSA1NS4wNyAxMzAuNzYzIDU1LjAxOTUgMTMwLjc5OUM1NC45NjkxIDEzMC44MzUgNTQuOTMwOCAxMzAuODgyIDU0LjkwNDggMTMwLjk0QzU0Ljg4MDQgMTMwLjk5OSA1NC44NjgyIDEzMS4wNjIgNTQuODY4MiAxMzEuMTI4Wk01NS4zNTY0IDEyOC45NTNMNTMuNjIwNiAxMzEuNzMxTDUzLjMyMDMgMTMxLjU1OEw1NS4wNTYyIDEyOC43OEw1NS4zNTY0IDEyOC45NTNaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjwvZz4KPHJlY3QgeD0iMC4yNSIgeT0iODIuMjUiIHdpZHRoPSI5Ny41IiBoZWlnaHQ9Ijc3LjUiIHJ4PSIxLjc1IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4xMiIgc3Ryb2tlLXdpZHRoPSIwLjUiLz4KPHJlY3QgeD0iMTAyIiB5PSI4MiIgd2lkdGg9Ijk4IiBoZWlnaHQ9Ijc4IiByeD0iMiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTExNi4yMzkgOTQuMzkxOVY5NUgxMTQuMDA1Vjk0LjM5MTlIMTE2LjIzOVpNMTE0LjIxOSA5MC41NTA1Vjk1SDExMy40NTJWOTAuNTUwNUgxMTQuMjE5Wk0xMTcuNjY4IDkxLjY5MzRWOTVIMTE2LjkyOFY5MS42OTM0SDExNy42NjhaTTExNi44NzkgOTAuODI1NUMxMTYuODc5IDkwLjcxMzUgMTE2LjkxNiA5MC42MjA4IDExNi45ODkgOTAuNTQ3NEMxMTcuMDY1IDkwLjQ3MiAxMTcuMTY5IDkwLjQzNDMgMTE3LjMwMSA5MC40MzQzQzExNy40MzEgOTAuNDM0MyAxMTcuNTM0IDkwLjQ3MiAxMTcuNjEgOTAuNTQ3NEMxMTcuNjg1IDkwLjYyMDggMTE3LjcyMyA5MC43MTM1IDExNy43MjMgOTAuODI1NUMxMTcuNzIzIDkwLjkzNTUgMTE3LjY4NSA5MS4wMjcyIDExNy42MSA5MS4xMDA2QzExNy41MzQgOTEuMTczOSAxMTcuNDMxIDkxLjIxMDYgMTE3LjMwMSA5MS4yMTA2QzExNy4xNjkgOTEuMjEwNiAxMTcuMDY1IDkxLjE3MzkgMTE2Ljk4OSA5MS4xMDA2QzExNi45MTYgOTEuMDI3MiAxMTYuODc5IDkwLjkzNTUgMTE2Ljg3OSA5MC44MjU1Wk0xMjAuNjA5IDk2LjI3MTNWOTIuMzUwNUwxMjAuNjk0IDkxLjY5MzRIMTIxLjM1MVY5Ni4yNzEzSDEyMC42MDlaTTExOC40NiA5My4zODAzVjkzLjMxNjFDMTE4LjQ2IDkzLjA2NTYgMTE4LjQ4OSA5Mi44Mzc0IDExOC41NDYgOTIuNjMxNkMxMTguNjAzIDkyLjQyMzggMTE4LjY4OCA5Mi4yNDU1IDExOC44IDkyLjA5NjhDMTE4LjkxMiA5MS45NDgxIDExOS4wNDggOTEuODM0IDExOS4yMDkgOTEuNzU0NUMxMTkuMzcgOTEuNjczIDExOS41NTUgOTEuNjMyMyAxMTkuNzY1IDkxLjYzMjNDMTE5Ljk2OSA5MS42MzIzIDEyMC4xNDYgOTEuNjcxIDEyMC4yOTcgOTEuNzQ4NEMxMjAuNDUgOTEuODI1OCAxMjAuNTc4IDkxLjkzNjkgMTIwLjY4MiA5Mi4wODE1QzEyMC43ODggOTIuMjI0MSAxMjAuODczIDkyLjM5NDMgMTIwLjkzNiA5Mi41OTE5QzEyMC45OTkgOTIuNzg5NSAxMjEuMDQ1IDkzLjAwOTUgMTIxLjA3MyA5My4yNTJWOTMuNDU2N0MxMjEuMDQ3IDkzLjY5MzEgMTIxLjAwMiA5My45MDkgMTIwLjkzOSA5NC4xMDQ2QzEyMC44NzYgOTQuMzAwMiAxMjAuNzkxIDk0LjQ2OTMgMTIwLjY4NSA5NC42MTE5QzEyMC41NzkgOTQuNzU0NSAxMjAuNDUgOTQuODY1NSAxMjAuMjk3IDk0Ljk0NUMxMjAuMTQ0IDk1LjAyMjQgMTE5Ljk2NSA5NS4wNjExIDExOS43NTkgOTUuMDYxMUMxMTkuNTUzIDk1LjA2MTEgMTE5LjM3IDk1LjAxOTQgMTE5LjIwOSA5NC45MzU4QzExOS4wNDggOTQuODUyMyAxMTguOTEyIDk0LjczNTEgMTE4LjggOTQuNTg0NEMxMTguNjkgOTQuNDMxNiAxMTguNjA1IDk0LjI1MzMgMTE4LjU0NiA5NC4wNDk2QzExOC40ODkgOTMuODQzOCAxMTguNDYgOTMuNjIwNyAxMTguNDYgOTMuMzgwM1pNMTE5LjE5NyA5My4zMTYxVjkzLjM4MDNDMTE5LjE5NyA5My41MzExIDExOS4yMSA5My42NzI3IDExOS4yMzcgOTMuODA1MUMxMTkuMjY1IDkzLjkzNTUgMTE5LjMxIDk0LjA1MTYgMTE5LjM3MSA5NC4xNTM1QzExOS40MzIgOTQuMjUzMyAxMTkuNTEgOTQuMzMxOCAxMTkuNjAzIDk0LjM4ODhDMTE5LjY5NyA5NC40NDU4IDExOS44MSA5NC40NzQ0IDExOS45NDMgOTQuNDc0NEMxMjAuMTE2IDk0LjQ3NDQgMTIwLjI1NyA5NC40MzY3IDEyMC4zNjcgOTQuMzYxM0MxMjAuNDc5IDk0LjI4NTkgMTIwLjU2NSA5NC4xODUxIDEyMC42MjQgOTQuMDU4OEMxMjAuNjg1IDkzLjkzMDQgMTIwLjcyOCA5My43ODg4IDEyMC43NTIgOTMuNjM0VjkzLjA4MDhDMTIwLjczOCA5Mi45NjA2IDEyMC43MTMgOTIuODQ4NiAxMjAuNjc2IDkyLjc0NDdDMTIwLjYzOSA5Mi42Mzg3IDEyMC41ODggOTIuNTQ3MSAxMjAuNTIzIDkyLjQ2OTZDMTIwLjQ2IDkyLjM5MDIgMTIwLjM4MSA5Mi4zMjkxIDEyMC4yODUgOTIuMjg2M0MxMjAuMTkxIDkyLjI0MTUgMTIwLjA3OSA5Mi4yMTkgMTE5Ljk0OSA5Mi4yMTlDMTE5LjgxNiA5Mi4yMTkgMTE5LjcwMiA5Mi4yNDc2IDExOS42MDYgOTIuMzA0NkMxMTkuNTExIDkyLjM2MTcgMTE5LjQzMiA5Mi40NDExIDExOS4zNzEgOTIuNTQzQzExOS4zMTIgOTIuNjQyOCAxMTkuMjY4IDkyLjc1ODkgMTE5LjI0IDkyLjg5MTRDMTE5LjIxMSA5My4wMjM4IDExOS4xOTcgOTMuMTY1NCAxMTkuMTk3IDkzLjMxNjFaTTEyNC4yNSA5NC4yMjA3VjkxLjY5MzRIMTI0Ljk4OVY5NUgxMjQuMjkyTDEyNC4yNSA5NC4yMjA3Wk0xMjQuMzUzIDkzLjUzMzFMMTI0LjYwMSA5My41MjdDMTI0LjYwMSA5My43NDkxIDEyNC41NzcgOTMuOTUzOCAxMjQuNTI4IDk0LjE0MTNDMTI0LjQ3OSA5NC4zMjY3IDEyNC40MDMgOTQuNDg4NiAxMjQuMzAyIDk0LjYyNzJDMTI0LjIgOTQuNzYzNyAxMjQuMDY5IDk0Ljg3MDYgMTIzLjkxIDk0Ljk0OEMxMjMuNzUxIDk1LjAyMzQgMTIzLjU2MSA5NS4wNjExIDEyMy4zMzkgOTUuMDYxMUMxMjMuMTc4IDk1LjA2MTEgMTIzLjAzIDk1LjAzNzcgMTIyLjg5NiA5NC45OTA4QzEyMi43NjEgOTQuOTQ0IDEyMi42NDUgOTQuODcxNiAxMjIuNTQ3IDk0Ljc3MzlDMTIyLjQ1MiA5NC42NzYxIDEyMi4zNzcgOTQuNTQ4NyAxMjIuMzI0IDk0LjM5MTlDMTIyLjI3MSA5NC4yMzUgMTIyLjI0NSA5NC4wNDc1IDEyMi4yNDUgOTMuODI5NlY5MS42OTM0SDEyMi45ODFWOTMuODM1N0MxMjIuOTgxIDkzLjk1NTkgMTIyLjk5NiA5NC4wNTY3IDEyMy4wMjQgOTQuMTM4MkMxMjMuMDUzIDk0LjIxNzcgMTIzLjA5MSA5NC4yODE4IDEyMy4xNCA5NC4zMzA3QzEyMy4xODkgOTQuMzc5NiAxMjMuMjQ2IDk0LjQxNDMgMTIzLjMxMSA5NC40MzQ2QzEyMy4zNzcgOTQuNDU1IDEyMy40NDYgOTQuNDY1MiAxMjMuNTE5IDk0LjQ2NTJDMTIzLjcyOSA5NC40NjUyIDEyMy44OTQgOTQuNDI0NSAxMjQuMDE0IDk0LjM0M0MxMjQuMTM3IDk0LjI1OTQgMTI0LjIyMyA5NC4xNDc0IDEyNC4yNzQgOTQuMDA2OEMxMjQuMzI3IDkzLjg2NjIgMTI0LjM1MyA5My43MDgzIDEyNC4zNTMgOTMuNTMzMVpNMTI2LjY1MyA5MS42OTM0Vjk1SDEyNS45MTNWOTEuNjkzNEgxMjYuNjUzWk0xMjUuODY0IDkwLjgyNTVDMTI1Ljg2NCA5MC43MTM1IDEyNS45MDEgOTAuNjIwOCAxMjUuOTc0IDkwLjU0NzRDMTI2LjA1IDkwLjQ3MiAxMjYuMTU0IDkwLjQzNDMgMTI2LjI4NiA5MC40MzQzQzEyNi40MTYgOTAuNDM0MyAxMjYuNTE5IDkwLjQ3MiAxMjYuNTk1IDkwLjU0NzRDMTI2LjY3IDkwLjYyMDggMTI2LjcwOCA5MC43MTM1IDEyNi43MDggOTAuODI1NUMxMjYuNzA4IDkwLjkzNTUgMTI2LjY3IDkxLjAyNzIgMTI2LjU5NSA5MS4xMDA2QzEyNi41MTkgOTEuMTczOSAxMjYuNDE2IDkxLjIxMDYgMTI2LjI4NiA5MS4yMTA2QzEyNi4xNTQgOTEuMjEwNiAxMjYuMDUgOTEuMTczOSAxMjUuOTc0IDkxLjEwMDZDMTI1LjkwMSA5MS4wMjcyIDEyNS44NjQgOTAuOTM1NSAxMjUuODY0IDkwLjgyNTVaTTEyOS41OTcgOTQuMzE1NVY5MC4zMDZIMTMwLjMzNlY5NUgxMjkuNjY3TDEyOS41OTcgOTQuMzE1NVpNMTI3LjQ0NSA5My4zODM0VjkzLjMxOTJDMTI3LjQ0NSA5My4wNjg2IDEyNy40NzUgOTIuODQwNCAxMjcuNTM0IDkyLjYzNDdDMTI3LjU5MyA5Mi40MjY5IDEyNy42NzkgOTIuMjQ4NiAxMjcuNzkxIDkyLjA5OTlDMTI3LjkwMyA5MS45NDkxIDEyOC4wMzkgOTEuODM0IDEyOC4yIDkxLjc1NDVDMTI4LjM2MSA5MS42NzMgMTI4LjU0MyA5MS42MzIzIDEyOC43NDQgOTEuNjMyM0MxMjguOTQ0IDkxLjYzMjMgMTI5LjExOSA5MS42NzEgMTI5LjI3IDkxLjc0ODRDMTI5LjQyMSA5MS44MjU4IDEyOS41NDkgOTEuOTM2OSAxMjkuNjU1IDkyLjA4MTVDMTI5Ljc2MSA5Mi4yMjQxIDEyOS44NDUgOTIuMzk1MyAxMjkuOTA5IDkyLjU5NDlDMTI5Ljk3MiA5Mi43OTI2IDEzMC4wMTcgOTMuMDEyNiAxMzAuMDQzIDkzLjI1NVY5My40NTk4QzEzMC4wMTcgOTMuNjk2MSAxMjkuOTcyIDkzLjkxMjEgMTI5LjkwOSA5NC4xMDc2QzEyOS44NDUgOTQuMzAzMiAxMjkuNzYxIDk0LjQ3MjMgMTI5LjY1NSA5NC42MTQ5QzEyOS41NDkgOTQuNzU3NiAxMjkuNDIgOTQuODY3NiAxMjkuMjY3IDk0Ljk0NUMxMjkuMTE2IDk1LjAyMjQgMTI4Ljk0IDk1LjA2MTEgMTI4LjczOCA5NS4wNjExQzEyOC41MzggOTUuMDYxMSAxMjguMzU4IDk1LjAxOTQgMTI4LjE5NyA5NC45MzU4QzEyOC4wMzggOTQuODUyMyAxMjcuOTAzIDk0LjczNTEgMTI3Ljc5MSA5NC41ODQ0QzEyNy42NzkgOTQuNDMzNiAxMjcuNTkzIDk0LjI1NjQgMTI3LjUzNCA5NC4wNTI2QzEyNy40NzUgOTMuODQ2OSAxMjcuNDQ1IDkzLjYyMzggMTI3LjQ0NSA5My4zODM0Wk0xMjguMTgyIDkzLjMxOTJWOTMuMzgzNEMxMjguMTgyIDkzLjUzNDEgMTI4LjE5NSA5My42NzQ3IDEyOC4yMjIgOTMuODA1MUMxMjguMjUgOTMuOTM1NSAxMjguMjk0IDk0LjA1MDYgMTI4LjM1MyA5NC4xNTA0QzEyOC40MTIgOTQuMjQ4MiAxMjguNDg5IDk0LjMyNTYgMTI4LjU4MiA5NC4zODI3QzEyOC42NzggOTQuNDM3NyAxMjguNzkyIDk0LjQ2NTIgMTI4LjkyNSA5NC40NjUyQzEyOS4wOTIgOTQuNDY1MiAxMjkuMjI5IDk0LjQyODUgMTI5LjMzNyA5NC4zNTUyQzEyOS40NDUgOTQuMjgxOCAxMjkuNTMgOTQuMTgzIDEyOS41OTEgOTQuMDU4OEMxMjkuNjU0IDkzLjkzMjQgMTI5LjY5NyA5My43OTE5IDEyOS43MTkgOTMuNjM3VjkzLjA4MzlDMTI5LjcwNyA5Mi45NjM3IDEyOS42ODEgOTIuODUxNiAxMjkuNjQzIDkyLjc0NzdDMTI5LjYwNiA5Mi42NDM4IDEyOS41NTYgOTIuNTUzMiAxMjkuNDkzIDkyLjQ3NTdDMTI5LjQzIDkyLjM5NjMgMTI5LjM1MSA5Mi4zMzUyIDEyOS4yNTggOTIuMjkyNEMxMjkuMTY2IDkyLjI0NzYgMTI5LjA1NyA5Mi4yMjUyIDEyOC45MzEgOTIuMjI1MkMxMjguNzk2IDkyLjIyNTIgMTI4LjY4MiA5Mi4yNTM3IDEyOC41ODggOTIuMzEwN0MxMjguNDk1IDkyLjM2NzggMTI4LjQxNyA5Mi40NDYyIDEyOC4zNTYgOTIuNTQ2QzEyOC4yOTcgOTIuNjQ1OSAxMjguMjUzIDkyLjc2MiAxMjguMjI1IDkyLjg5NDRDMTI4LjE5NiA5My4wMjY4IDEyOC4xODIgOTMuMTY4NCAxMjguMTgyIDkzLjMxOTJaTTEzMy42OTQgOTAuMzA2Vjk1SDEzMi45NTVWOTAuMzA2SDEzMy42OTRaTTEzNi4wNzkgOTUuMDYxMUMxMzUuODM1IDk1LjA2MTEgMTM1LjYxNCA5NS4wMjE0IDEzNS40MTYgOTQuOTQxOUMxMzUuMjIgOTQuODYwNCAxMzUuMDUzIDk0Ljc0NzQgMTM0LjkxNSA5NC42MDI3QzEzNC43NzggOTQuNDU4MSAxMzQuNjczIDk0LjI4OCAxMzQuNiA5NC4wOTI0QzEzNC41MjcgOTMuODk2OCAxMzQuNDkgOTMuNjg1OSAxMzQuNDkgOTMuNDU5OFY5My4zMzc1QzEzNC40OSA5My4wNzg4IDEzNC41MjggOTIuODQ0NSAxMzQuNjAzIDkyLjYzNDdDMTM0LjY3OCA5Mi40MjQ4IDEzNC43ODMgOTIuMjQ1NSAxMzQuOTE4IDkyLjA5NjhDMTM1LjA1MiA5MS45NDYgMTM1LjIxMSA5MS44MzA5IDEzNS4zOTUgOTEuNzUxNUMxMzUuNTc4IDkxLjY3MiAxMzUuNzc3IDkxLjYzMjMgMTM1Ljk5IDkxLjYzMjNDMTM2LjIyNyA5MS42MzIzIDEzNi40MzQgOTEuNjcyIDEzNi42MTEgOTEuNzUxNUMxMzYuNzg4IDkxLjgzMDkgMTM2LjkzNSA5MS45NDMgMTM3LjA1MSA5Mi4wODc2QzEzNy4xNjkgOTIuMjMwMyAxMzcuMjU3IDkyLjQwMDQgMTM3LjMxNCA5Mi41OThDMTM3LjM3MyA5Mi43OTU2IDEzNy40MDIgOTMuMDEzNiAxMzcuNDAyIDkzLjI1MlY5My41NjY3SDEzNC44NDhWOTMuMDM4MUgxMzYuNjc1VjkyLjk4QzEzNi42NzEgOTIuODQ3NiAxMzYuNjQ0IDkyLjcyMzMgMTM2LjU5NiA5Mi42MDcyQzEzNi41NDkgOTIuNDkxIDEzNi40NzYgOTIuMzk3MyAxMzYuMzc5IDkyLjMyNkMxMzYuMjgxIDkyLjI1NDcgMTM2LjE1IDkyLjIxOSAxMzUuOTg3IDkyLjIxOUMxMzUuODY1IDkyLjIxOSAxMzUuNzU2IDkyLjI0NTUgMTM1LjY2IDkyLjI5ODVDMTM1LjU2NyA5Mi4zNDk0IDEzNS40ODggOTIuNDIzOCAxMzUuNDI1IDkyLjUyMTZDMTM1LjM2MiA5Mi42MTk0IDEzNS4zMTMgOTIuNzM3NSAxMzUuMjc4IDkyLjg3NjFDMTM1LjI0NiA5My4wMTI2IDEzNS4yMyA5My4xNjY0IDEzNS4yMyA5My4zMzc1VjkzLjQ1OThDMTM1LjIzIDkzLjYwNDQgMTM1LjI0OSA5My43Mzg5IDEzNS4yODggOTMuODYzMkMxMzUuMzI4IDkzLjk4NTQgMTM1LjM4NyA5NC4wOTI0IDEzNS40NjUgOTQuMTg0QzEzNS41NDIgOTQuMjc1NyAxMzUuNjM2IDk0LjM0ODEgMTM1Ljc0NiA5NC40MDFDMTM1Ljg1NiA5NC40NTIgMTM1Ljk4MSA5NC40Nzc0IDEzNi4xMjIgOTQuNDc3NEMxMzYuMjk5IDk0LjQ3NzQgMTM2LjQ1NyA5NC40NDE4IDEzNi41OTYgOTQuMzcwNUMxMzYuNzM0IDk0LjI5OTIgMTM2Ljg1NCA5NC4xOTgzIDEzNi45NTYgOTQuMDY3OUwxMzcuMzQ0IDk0LjQ0MzhDMTM3LjI3MyA5NC41NDc3IDEzNy4xOCA5NC42NDc1IDEzNy4wNjYgOTQuNzQzM0MxMzYuOTUyIDk0LjgzNyAxMzYuODEzIDk0LjkxMzQgMTM2LjY0OCA5NC45NzI1QzEzNi40ODUgOTUuMDMxNiAxMzYuMjk1IDk1LjA2MTEgMTM2LjA3OSA5NS4wNjExWk0xMzkuMTMgOTQuNDE2M0wxMzkuOTQgOTEuNjkzNEgxNDAuNzA0TDEzOS41NTUgOTVIMTM5LjA3OEwxMzkuMTMgOTQuNDE2M1pNMTM4LjUxIDkxLjY5MzRMMTM5LjMzNSA5NC40Mjg1TDEzOS4zNzUgOTVIMTM4Ljg5OEwxMzcuNzQzIDkxLjY5MzRIMTM4LjUxWk0xNDIuNjk1IDk1LjA2MTFDMTQyLjQ1IDk1LjA2MTEgMTQyLjIyOSA5NS4wMjE0IDE0Mi4wMzEgOTQuOTQxOUMxNDEuODM2IDk0Ljg2MDQgMTQxLjY2OSA5NC43NDc0IDE0MS41MyA5NC42MDI3QzE0MS4zOTQgOTQuNDU4MSAxNDEuMjg5IDk0LjI4OCAxNDEuMjE2IDk0LjA5MjRDMTQxLjE0MiA5My44OTY4IDE0MS4xMDYgOTMuNjg1OSAxNDEuMTA2IDkzLjQ1OThWOTMuMzM3NUMxNDEuMTA2IDkzLjA3ODggMTQxLjE0MyA5Mi44NDQ1IDE0MS4yMTkgOTIuNjM0N0MxNDEuMjk0IDkyLjQyNDggMTQxLjM5OSA5Mi4yNDU1IDE0MS41MzMgOTIuMDk2OEMxNDEuNjY4IDkxLjk0NiAxNDEuODI3IDkxLjgzMDkgMTQyLjAxIDkxLjc1MTVDMTQyLjE5MyA5MS42NzIgMTQyLjM5MiA5MS42MzIzIDE0Mi42MDYgOTEuNjMyM0MxNDIuODQyIDkxLjYzMjMgMTQzLjA0OSA5MS42NzIgMTQzLjIyNiA5MS43NTE1QzE0My40MDQgOTEuODMwOSAxNDMuNTUgOTEuOTQzIDE0My42NjYgOTIuMDg3NkMxNDMuNzg1IDkyLjIzMDMgMTQzLjg3MiA5Mi40MDA0IDE0My45MjkgOTIuNTk4QzE0My45ODggOTIuNzk1NiAxNDQuMDE4IDkzLjAxMzYgMTQ0LjAxOCA5My4yNTJWOTMuNTY2N0gxNDEuNDYzVjkzLjAzODFIMTQzLjI5MVY5Mi45OEMxNDMuMjg2IDkyLjg0NzYgMTQzLjI2IDkyLjcyMzMgMTQzLjIxMSA5Mi42MDcyQzE0My4xNjQgOTIuNDkxIDE0My4wOTIgOTIuMzk3MyAxNDIuOTk0IDkyLjMyNkMxNDIuODk2IDkyLjI1NDcgMTQyLjc2NiA5Mi4yMTkgMTQyLjYwMyA5Mi4yMTlDMTQyLjQ4MSA5Mi4yMTkgMTQyLjM3MiA5Mi4yNDU1IDE0Mi4yNzYgOTIuMjk4NUMxNDIuMTgyIDkyLjM0OTQgMTQyLjEwNCA5Mi40MjM4IDE0Mi4wNDEgOTIuNTIxNkMxNDEuOTc3IDkyLjYxOTQgMTQxLjkyOSA5Mi43Mzc1IDE0MS44OTQgOTIuODc2MUMxNDEuODYxIDkzLjAxMjYgMTQxLjg0NSA5My4xNjY0IDE0MS44NDUgOTMuMzM3NVY5My40NTk4QzE0MS44NDUgOTMuNjA0NCAxNDEuODY0IDkzLjczODkgMTQxLjkwMyA5My44NjMyQzE0MS45NDQgOTMuOTg1NCAxNDIuMDAzIDk0LjA5MjQgMTQyLjA4IDk0LjE4NEMxNDIuMTU4IDk0LjI3NTcgMTQyLjI1MSA5NC4zNDgxIDE0Mi4zNjIgOTQuNDAxQzE0Mi40NzIgOTQuNDUyIDE0Mi41OTcgOTQuNDc3NCAxNDIuNzM3IDk0LjQ3NzRDMTQyLjkxNSA5NC40Nzc0IDE0My4wNzMgOTQuNDQxOCAxNDMuMjExIDk0LjM3MDVDMTQzLjM1IDk0LjI5OTIgMTQzLjQ3IDk0LjE5ODMgMTQzLjU3MiA5NC4wNjc5TDE0My45NiA5NC40NDM4QzE0My44ODggOTQuNTQ3NyAxNDMuNzk2IDk0LjY0NzUgMTQzLjY4MiA5NC43NDMzQzE0My41NjggOTQuODM3IDE0My40MjggOTQuOTEzNCAxNDMuMjYzIDk0Ljk3MjVDMTQzLjEgOTUuMDMxNiAxNDIuOTExIDk1LjA2MTEgMTQyLjY5NSA5NS4wNjExWk0xNDUuNTAxIDkwLjMwNlY5NUgxNDQuNzYyVjkwLjMwNkgxNDUuNTAxWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cmVjdCB4PSIxMzUuNzc1IiB5PSIxNTIuNzI1IiB3aWR0aD0iNDguNDUwNCIgaGVpZ2h0PSIzMS40NTA0IiByeD0iMTUuNzI1MiIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDEzNS43NzUgMTUyLjcyNSkiIGZpbGw9IiM2MjE2RkYiIGZpbGwtb3BhY2l0eT0iMC4wMiIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTQ5NTc1Ii8+CjxtYXNrIGlkPSJtYXNrM18zNDYxXzQ2ODg2IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIxMzYiIHk9IjEwNSIgd2lkdGg9IjMxIiBoZWlnaHQ9IjQ3Ij4KPHJlY3QgeD0iMTM2Ljc3NSIgeT0iMTUxLjcyNSIgd2lkdGg9IjQ2LjQ1MDQiIGhlaWdodD0iMjkuNDUwNCIgcng9IjE0LjcyNTIiIHRyYW5zZm9ybT0icm90YXRlKC05MCAxMzYuNzc1IDE1MS43MjUpIiBmaWxsPSIjRjFGMUY5IiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMC41NDk1NzUiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2szXzM0NjFfNDY4ODYpIj4KPHJlY3QgeD0iMTM1LjUiIHk9IjEzMiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ3IiBmaWxsPSIjN0E4QkZGIi8+CjwvZz4KPHBhdGggZD0iTTEzNS40MTMgMTM4LjExOEgxNjcuMjg4IiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMC41NDk1NzUiLz4KPHBhdGggZD0iTTEzNS40MTIgMTE4LjM3NkgxNjcuMjg3IiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMC41NDk1NzUiLz4KPG1hc2sgaWQ9InBhdGgtNTktaW5zaWRlLTdfMzQ2MV80Njg4NiIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1NS4zMzQgOTkuNDE2SDE0Ny4zNjVWMTA0LjM2QzE0Ny4zNjUgMTA0LjM2MSAxNDcuMzY1IDEwNC4zNjEgMTQ3LjM2NSAxMDQuMzYyQzE0Ny4zNjUgMTA0LjgxNyAxNDkuMTQ5IDEwNS4xODcgMTUxLjM1IDEwNS4xODdDMTUzLjU1IDEwNS4xODcgMTU1LjMzNCAxMDQuODE3IDE1NS4zMzQgMTA0LjM2MkgxNTUuMzM0Vjk5LjQxNloiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1NS4zMzQgOTkuNDE2SDE0Ny4zNjVWMTA0LjM2QzE0Ny4zNjUgMTA0LjM2MSAxNDcuMzY1IDEwNC4zNjEgMTQ3LjM2NSAxMDQuMzYyQzE0Ny4zNjUgMTA0LjgxNyAxNDkuMTQ5IDEwNS4xODcgMTUxLjM1IDEwNS4xODdDMTUzLjU1IDEwNS4xODcgMTU1LjMzNCAxMDQuODE3IDE1NS4zMzQgMTA0LjM2MkgxNTUuMzM0Vjk5LjQxNloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xNDcuMzY1IDk5LjQxNlY5OC44NjY0SDE0Ni44MTZWOTkuNDE2SDE0Ny4zNjVaTTE1NS4zMzQgOTkuNDE2SDE1NS44ODRWOTguODY2NEgxNTUuMzM0Vjk5LjQxNlpNMTQ3LjM2NSAxMDQuMzZMMTQ3LjkxNSAxMDQuMzY3VjEwNC4zNkgxNDcuMzY1Wk0xNTUuMzM0IDEwNC4zNjJWMTAzLjgxM0gxNTQuNzg1TDE1NC43ODQgMTA0LjM2MkwxNTUuMzM0IDEwNC4zNjJaTTE1NS4zMzQgMTA0LjM2MlYxMDQuOTEySDE1NS44ODRWMTA0LjM2MkgxNTUuMzM0Wk0xNDcuMzY1IDk5Ljk2NTZIMTU1LjMzNFY5OC44NjY0SDE0Ny4zNjVWOTkuOTY1NlpNMTQ3LjkxNSAxMDQuMzZWOTkuNDE2SDE0Ni44MTZWMTA0LjM2SDE0Ny45MTVaTTE0Ny45MTUgMTA0LjM2MkMxNDcuOTE1IDEwNC4zNjQgMTQ3LjkxNSAxMDQuMzY1IDE0Ny45MTUgMTA0LjM2N0wxNDYuODE2IDEwNC4zNTNDMTQ2LjgxNiAxMDQuMzU2IDE0Ni44MTYgMTA0LjM1OSAxNDYuODE2IDEwNC4zNjJIMTQ3LjkxNVpNMTUxLjM1IDEwNC42MzdDMTUwLjI3NSAxMDQuNjM3IDE0OS4zMTggMTA0LjU0NiAxNDguNjQ0IDEwNC40MDdDMTQ4LjMwMiAxMDQuMzM2IDE0OC4wNjEgMTA0LjI1OSAxNDcuOTIgMTA0LjE4OUMxNDcuODQ4IDEwNC4xNTQgMTQ3LjgzIDEwNC4xMzUgMTQ3LjgzNyAxMDQuMTQyQzE0Ny44NDYgMTA0LjE1MSAxNDcuOTE1IDEwNC4yMjYgMTQ3LjkxNSAxMDQuMzYySDE0Ni44MTZDMTQ2LjgxNiAxMDQuNjEyIDE0Ni45NDEgMTA0Ljc5OSAxNDcuMDU1IDEwNC45MTVDMTQ3LjE2OSAxMDUuMDI5IDE0Ny4zMDcgMTA1LjExMyAxNDcuNDM3IDEwNS4xNzdDMTQ3LjY5OSAxMDUuMzA1IDE0OC4wNDIgMTA1LjQwNSAxNDguNDIxIDEwNS40ODNDMTQ5LjE4OCAxMDUuNjQyIDE1MC4yMjQgMTA1LjczNiAxNTEuMzUgMTA1LjczNlYxMDQuNjM3Wk0xNTQuNzg0IDEwNC4zNjJDMTU0Ljc4NSAxMDQuMjI2IDE1NC44NTQgMTA0LjE1MSAxNTQuODYyIDEwNC4xNDJDMTU0Ljg2OSAxMDQuMTM1IDE1NC44NTEgMTA0LjE1NCAxNTQuNzc5IDEwNC4xODlDMTU0LjYzOCAxMDQuMjU5IDE1NC4zOTcgMTA0LjMzNiAxNTQuMDU2IDEwNC40MDdDMTUzLjM4MSAxMDQuNTQ2IDE1Mi40MjQgMTA0LjYzNyAxNTEuMzUgMTA0LjYzN1YxMDUuNzM2QzE1Mi40NzYgMTA1LjczNiAxNTMuNTExIDEwNS42NDIgMTU0LjI3OCAxMDUuNDgzQzE1NC42NTggMTA1LjQwNSAxNTUuMDAxIDEwNS4zMDUgMTU1LjI2MiAxMDUuMTc3QzE1NS4zOTIgMTA1LjExMyAxNTUuNTMxIDEwNS4wMjkgMTU1LjY0NCAxMDQuOTE1QzE1NS43NTkgMTA0Ljc5OSAxNTUuODg0IDEwNC42MTIgMTU1Ljg4NCAxMDQuMzYyTDE1NC43ODQgMTA0LjM2MlpNMTU1LjMzNCAxMDMuODEzSDE1NS4zMzRWMTA0LjkxMkgxNTUuMzM0VjEwMy44MTNaTTE1NC43ODUgOTkuNDE2VjEwNC4zNjJIMTU1Ljg4NFY5OS40MTZIMTU0Ljc4NVoiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC01OS1pbnNpZGUtN18zNDYxXzQ2ODg2KSIvPgo8cGF0aCBkPSJNMTU2LjIwNiA5OS45ODQ2QzE1Ni4yMTIgOTkuOTkwOCAxNTYuMjE2IDk5Ljk5NTkgMTU2LjIxOSAxMDBDMTU2LjIxNiAxMDAuMDA0IDE1Ni4yMTIgMTAwLjAwOSAxNTYuMjA2IDEwMC4wMTVDMTU2LjE3NiAxMDAuMDQ5IDE1Ni4xMTcgMTAwLjA5NCAxNTYuMDE5IDEwMC4xNDZDMTU1LjgyMiAxMDAuMjQ5IDE1NS41MTkgMTAwLjM1MSAxNTUuMTIyIDEwMC40MzlDMTU0LjMzMyAxMDAuNjE0IDE1My4yMjkgMTAwLjcyNSAxNTIgMTAwLjcyNUMxNTAuNzcxIDEwMC43MjUgMTQ5LjY2NyAxMDAuNjE0IDE0OC44NzggMTAwLjQzOUMxNDguNDgxIDEwMC4zNTEgMTQ4LjE3OCAxMDAuMjQ5IDE0Ny45ODEgMTAwLjE0NkMxNDcuODgzIDEwMC4wOTQgMTQ3LjgyNCAxMDAuMDQ5IDE0Ny43OTQgMTAwLjAxNUMxNDcuNzg4IDEwMC4wMDkgMTQ3Ljc4NCAxMDAuMDA0IDE0Ny43ODEgMTAwQzE0Ny43ODQgOTkuOTk1OSAxNDcuNzg4IDk5Ljk5MDggMTQ3Ljc5NCA5OS45ODQ2QzE0Ny44MjQgOTkuOTUxMiAxNDcuODgzIDk5LjkwNTggMTQ3Ljk4MSA5OS44NTRDMTQ4LjE3OCA5OS43NTA3IDE0OC40ODEgOTkuNjQ5NCAxNDguODc4IDk5LjU2MTFDMTQ5LjY2NyA5OS4zODU3IDE1MC43NzEgOTkuMjc0OCAxNTIgOTkuMjc0OEMxNTMuMjI5IDk5LjI3NDggMTU0LjMzMyA5OS4zODU3IDE1NS4xMjIgOTkuNTYxMUMxNTUuNTE5IDk5LjY0OTQgMTU1LjgyMiA5OS43NTA3IDE1Ni4wMTkgOTkuODU0QzE1Ni4xMTcgOTkuOTA1OCAxNTYuMTc2IDk5Ljk1MTIgMTU2LjIwNiA5OS45ODQ2Wk0xNDcuNzczIDEwMC4wMTNDMTQ3Ljc3MyAxMDAuMDEzIDE0Ny43NzMgMTAwLjAxMiAxNDcuNzczIDEwMC4wMTFMMTQ3Ljc3MyAxMDAuMDEzWk0xNTYuMjI3IDEwMC4wMTFDMTU2LjIyNyAxMDAuMDEyIDE1Ni4yMjcgMTAwLjAxMyAxNTYuMjI3IDEwMC4wMTNMMTU2LjIyNyAxMDAuMDExWk0xNDcuNzczIDk5Ljk4ODZDMTQ3Ljc3MyA5OS45ODc3IDE0Ny43NzMgOTkuOTg3MyAxNDcuNzczIDk5Ljk4NzRDMTQ3Ljc3MyA5OS45ODc0IDE0Ny43NzMgOTkuOTg3OCAxNDcuNzczIDk5Ljk4ODZaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTQ5NTc1Ii8+CjxwYXRoIGQ9Ik0xNTYuMjA2IDk4Ljk4NDZDMTU2LjIxMiA5OC45OTA4IDE1Ni4yMTYgOTguOTk1OSAxNTYuMjE5IDk5QzE1Ni4yMTYgOTkuMDA0MSAxNTYuMjEyIDk5LjAwOTIgMTU2LjIwNiA5OS4wMTU0QzE1Ni4xNzYgOTkuMDQ4OCAxNTYuMTE3IDk5LjA5NDIgMTU2LjAxOSA5OS4xNDZDMTU1LjgyMiA5OS4yNDkzIDE1NS41MTkgOTkuMzUwNiAxNTUuMTIyIDk5LjQzODlDMTU0LjMzMyA5OS42MTQzIDE1My4yMjkgOTkuNzI1MiAxNTIgOTkuNzI1MkMxNTAuNzcxIDk5LjcyNTIgMTQ5LjY2NyA5OS42MTQzIDE0OC44NzggOTkuNDM4OUMxNDguNDgxIDk5LjM1MDYgMTQ4LjE3OCA5OS4yNDkzIDE0Ny45ODEgOTkuMTQ2QzE0Ny44ODMgOTkuMDk0MiAxNDcuODI0IDk5LjA0ODggMTQ3Ljc5NCA5OS4wMTU0QzE0Ny43ODggOTkuMDA5MiAxNDcuNzg0IDk5LjAwNDEgMTQ3Ljc4MSA5OUMxNDcuNzg0IDk4Ljk5NTkgMTQ3Ljc4OCA5OC45OTA4IDE0Ny43OTQgOTguOTg0NkMxNDcuODI0IDk4Ljk1MTIgMTQ3Ljg4MyA5OC45MDU4IDE0Ny45ODEgOTguODU0QzE0OC4xNzggOTguNzUwNyAxNDguNDgxIDk4LjY0OTQgMTQ4Ljg3OCA5OC41NjExQzE0OS42NjcgOTguMzg1NyAxNTAuNzcxIDk4LjI3NDggMTUyIDk4LjI3NDhDMTUzLjIyOSA5OC4yNzQ4IDE1NC4zMzMgOTguMzg1NyAxNTUuMTIyIDk4LjU2MTFDMTU1LjUxOSA5OC42NDk0IDE1NS44MjIgOTguNzUwNyAxNTYuMDE5IDk4Ljg1NEMxNTYuMTE3IDk4LjkwNTggMTU2LjE3NiA5OC45NTEyIDE1Ni4yMDYgOTguOTg0NlpNMTQ3Ljc3MyA5OS4wMTI2QzE0Ny43NzMgOTkuMDEyNyAxNDcuNzczIDk5LjAxMjMgMTQ3Ljc3MyA5OS4wMTE0TDE0Ny43NzMgOTkuMDEyNlpNMTU2LjIyNyA5OS4wMTE0QzE1Ni4yMjcgOTkuMDEyMyAxNTYuMjI3IDk5LjAxMjcgMTU2LjIyNyA5OS4wMTI2TDE1Ni4yMjcgOTkuMDExNFpNMTQ3Ljc3MyA5OC45ODg2QzE0Ny43NzMgOTguOTg3NyAxNDcuNzczIDk4Ljk4NzMgMTQ3Ljc3MyA5OC45ODc0QzE0Ny43NzMgOTguOTg3NCAxNDcuNzczIDk4Ljk4NzggMTQ3Ljc3MyA5OC45ODg2WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIwLjU0OTU3NSIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyM19iXzM0NjFfNDY4ODYpIj4KPHJlY3QgeD0iMTQwLjUiIHk9IjEyMiIgd2lkdGg9IjIyIiBoZWlnaHQ9IjEzIiByeD0iMS4xODk2NiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNMTQ3Ljg0OCAxMjguOTczVjEyOS43MjNIMTQzLjc0NkwxNDMuNzE1IDEyOS4xNTZMMTQ2LjE2OCAxMjUuMzEySDE0Ni45MjJMMTQ2LjEwNSAxMjYuNzExTDE0NC42OTUgMTI4Ljk3M0gxNDcuODQ4Wk0xNDcuMTM3IDEyNS4zMTJWMTMxSDE0Ni4xOTVWMTI1LjMxMkgxNDcuMTM3Wk0xNTIuMTg0IDEyNy42OFYxMjguNjA5QzE1Mi4xODQgMTI5LjA1NSAxNTIuMTM5IDEyOS40MzUgMTUyLjA1MSAxMjkuNzVDMTUxLjk2NSAxMzAuMDYyIDE1MS44NCAxMzAuMzE2IDE1MS42NzYgMTMwLjUxMkMxNTEuNTEyIDEzMC43MDcgMTUxLjMxNSAxMzAuODUgMTUxLjA4NiAxMzAuOTQxQzE1MC44NTkgMTMxLjAzMyAxNTAuNjA1IDEzMS4wNzggMTUwLjMyNCAxMzEuMDc4QzE1MC4xIDEzMS4wNzggMTQ5Ljg5MiAxMzEuMDQ5IDE0OS42OTkgMTMwLjk5MkMxNDkuNTA5IDEzMC45MzUgMTQ5LjMzNyAxMzAuODQ1IDE0OS4xODQgMTMwLjcyM0MxNDkuMDMgMTMwLjYgMTQ4Ljg5OCAxMzAuNDQzIDE0OC43ODkgMTMwLjI1QzE0OC42ODIgMTMwLjA1NSAxNDguNTk5IDEyOS44MjIgMTQ4LjUzOSAxMjkuNTUxQzE0OC40ODIgMTI5LjI4IDE0OC40NTMgMTI4Ljk2NiAxNDguNDUzIDEyOC42MDlWMTI3LjY4QzE0OC40NTMgMTI3LjIzMiAxNDguNDk3IDEyNi44NTQgMTQ4LjU4NiAxMjYuNTQ3QzE0OC42NzQgMTI2LjIzNyAxNDguODAxIDEyNS45ODYgMTQ4Ljk2NSAxMjUuNzkzQzE0OS4xMjkgMTI1LjU5OCAxNDkuMzI0IDEyNS40NTYgMTQ5LjU1MSAxMjUuMzY3QzE0OS43OCAxMjUuMjc5IDE1MC4wMzUgMTI1LjIzNCAxNTAuMzE2IDEyNS4yMzRDMTUwLjU0MyAxMjUuMjM0IDE1MC43NTEgMTI1LjI2MyAxNTAuOTQxIDEyNS4zMkMxNTEuMTM0IDEyNS4zNzUgMTUxLjMwNiAxMjUuNDYyIDE1MS40NTcgMTI1LjU4MkMxNTEuNjExIDEyNS43MDIgMTUxLjc0MSAxMjUuODU4IDE1MS44NDggMTI2LjA1MUMxNTEuOTU3IDEyNi4yNDEgMTUyLjA0IDEyNi40NzEgMTUyLjA5OCAxMjYuNzQyQzE1Mi4xNTUgMTI3LjAxIDE1Mi4xODQgMTI3LjMyMyAxNTIuMTg0IDEyNy42OFpNMTUxLjI0MiAxMjguNzQyVjEyNy41MzlDMTUxLjI0MiAxMjcuMzEyIDE1MS4yMjkgMTI3LjExMyAxNTEuMjAzIDEyNi45NDFDMTUxLjE3NyAxMjYuNzY3IDE1MS4xMzggMTI2LjYyIDE1MS4wODYgMTI2LjVDMTUxLjAzNiAxMjYuMzc4IDE1MC45NzQgMTI2LjI3OSAxNTAuODk4IDEyNi4yMDNDMTUwLjgyMyAxMjYuMTI1IDE1MC43MzcgMTI2LjA2OSAxNTAuNjQxIDEyNi4wMzVDMTUwLjU0NCAxMjUuOTk5IDE1MC40MzYgMTI1Ljk4IDE1MC4zMTYgMTI1Ljk4QzE1MC4xNzEgMTI1Ljk4IDE1MC4wNCAxMjYuMDA5IDE0OS45MjYgMTI2LjA2NkMxNDkuODExIDEyNi4xMjEgMTQ5LjcxNSAxMjYuMjEgMTQ5LjYzNyAxMjYuMzMyQzE0OS41NTkgMTI2LjQ1NCAxNDkuNDk5IDEyNi42MTYgMTQ5LjQ1NyAxMjYuODE2QzE0OS40MTggMTI3LjAxNCAxNDkuMzk4IDEyNy4yNTUgMTQ5LjM5OCAxMjcuNTM5VjEyOC43NDJDMTQ5LjM5OCAxMjguOTcxIDE0OS40MTEgMTI5LjE3MyAxNDkuNDM4IDEyOS4zNDhDMTQ5LjQ2NCAxMjkuNTIyIDE0OS41MDMgMTI5LjY3MiAxNDkuNTU1IDEyOS43OTdDMTQ5LjYwNyAxMjkuOTE5IDE0OS42NjkgMTMwLjAyMSAxNDkuNzQyIDEzMC4xMDJDMTQ5LjgxOCAxMzAuMTggMTQ5LjkwNCAxMzAuMjM3IDE1MCAxMzAuMjczQzE1MC4wOTkgMTMwLjMxIDE1MC4yMDcgMTMwLjMyOCAxNTAuMzI0IDEzMC4zMjhDMTUwLjQ3MyAxMzAuMzI4IDE1MC42MDQgMTMwLjI5OSAxNTAuNzE5IDEzMC4yNDJDMTUwLjgzMyAxMzAuMTg1IDE1MC45MyAxMzAuMDk0IDE1MS4wMDggMTI5Ljk2OUMxNTEuMDg2IDEyOS44NDEgMTUxLjE0NSAxMjkuNjc2IDE1MS4xODQgMTI5LjQ3M0MxNTEuMjIzIDEyOS4yNyAxNTEuMjQyIDEyOS4wMjYgMTUxLjI0MiAxMjguNzQyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNMTU1Ljc0NCAxMjguMzE3VjEyOC4xMjlDMTU1Ljc0NCAxMjcuOTk0IDE1NS43NzMgMTI3Ljg3MSAxNTUuODMyIDEyNy43NkMxNTUuODkxIDEyNy42NSAxNTUuOTc2IDEyNy41NjEgMTU2LjA4OCAxMjcuNDk0QzE1Ni4yMDEgMTI3LjQyNyAxNTYuMzM2IDEyNy4zOTQgMTU2LjQ5NCAxMjcuMzk0QzE1Ni42NTYgMTI3LjM5NCAxNTYuNzkzIDEyNy40MjcgMTU2LjkwNCAxMjcuNDk0QzE1Ny4wMTYgMTI3LjU2MSAxNTcuMTAyIDEyNy42NSAxNTcuMTYgMTI3Ljc2QzE1Ny4yMTkgMTI3Ljg3MSAxNTcuMjQ4IDEyNy45OTQgMTU3LjI0OCAxMjguMTI5VjEyOC4zMTdDMTU3LjI0OCAxMjguNDQ5IDE1Ny4yMTkgMTI4LjU3IDE1Ny4xNiAxMjguNjgxQzE1Ny4xMDMgMTI4Ljc5MSAxNTcuMDE5IDEyOC44OCAxNTYuOTA2IDEyOC45NDdDMTU2Ljc5NiAxMjkuMDE0IDE1Ni42NiAxMjkuMDQ3IDE1Ni40OTkgMTI5LjA0N0MxNTYuMzM5IDEyOS4wNDcgMTU2LjIwMiAxMjkuMDE0IDE1Ni4wODggMTI4Ljk0N0MxNTUuOTc2IDEyOC44OCAxNTUuODkxIDEyOC43OTEgMTU1LjgzMiAxMjguNjgxQzE1NS43NzMgMTI4LjU3IDE1NS43NDQgMTI4LjQ0OSAxNTUuNzQ0IDEyOC4zMTdaTTE1Ni4xNTIgMTI4LjEyOVYxMjguMzE3QzE1Ni4xNTIgMTI4LjM4MiAxNTYuMTY0IDEyOC40NDQgMTU2LjE4OCAxMjguNTAyQzE1Ni4yMTUgMTI4LjU2MSAxNTYuMjU0IDEyOC42MDggMTU2LjMwNiAxMjguNjQ0QzE1Ni4zNTggMTI4LjY4IDE1Ni40MjIgMTI4LjY5OCAxNTYuNDk5IDEyOC42OThDMTU2LjU3NyAxMjguNjk4IDE1Ni42NCAxMjguNjggMTU2LjY4OSAxMjguNjQ0QzE1Ni43MzkgMTI4LjYwOCAxNTYuNzc3IDEyOC41NjEgMTU2LjgwMSAxMjguNTAyQzE1Ni44MjYgMTI4LjQ0NCAxNTYuODM4IDEyOC4zODIgMTU2LjgzOCAxMjguMzE3VjEyOC4xMjlDMTU2LjgzOCAxMjguMDYyIDE1Ni44MjUgMTI4IDE1Ni43OTkgMTI3Ljk0MUMxNTYuNzc0IDEyNy44ODEgMTU2LjczNyAxMjcuODMzIDE1Ni42ODcgMTI3Ljc5N0MxNTYuNjM2IDEyNy43NjEgMTU2LjU3MiAxMjcuNzQzIDE1Ni40OTQgMTI3Ljc0M0MxNTYuNDE5IDEyNy43NDMgMTU2LjM1NSAxMjcuNzYxIDE1Ni4zMDMgMTI3Ljc5N0MxNTYuMjUzIDEyNy44MzMgMTU2LjIxNSAxMjcuODgxIDE1Ni4xODggMTI3Ljk0MUMxNTYuMTY0IDEyOCAxNTYuMTUyIDEyOC4wNjIgMTU2LjE1MiAxMjguMTI5Wk0xNTcuNDU4IDEzMC4zMTlWMTMwLjEyOEMxNTcuNDU4IDEyOS45OTUgMTU3LjQ4NyAxMjkuODczIDE1Ny41NDYgMTI5Ljc2MkMxNTcuNjA2IDEyOS42NTIgMTU3LjY5MiAxMjkuNTYzIDE1Ny44MDUgMTI5LjQ5NkMxNTcuOTE3IDEyOS40MjkgMTU4LjA1MiAxMjkuMzk2IDE1OC4yMSAxMjkuMzk2QzE1OC4zNzMgMTI5LjM5NiAxNTguNTA5IDEyOS40MjkgMTU4LjYyIDEyOS40OTZDMTU4LjczMiAxMjkuNTYzIDE1OC44MTcgMTI5LjY1MiAxNTguODc0IDEyOS43NjJDMTU4LjkzMyAxMjkuODczIDE1OC45NjIgMTI5Ljk5NSAxNTguOTYyIDEzMC4xMjhWMTMwLjMxOUMxNTguOTYyIDEzMC40NTIgMTU4LjkzMyAxMzAuNTc0IDE1OC44NzQgMTMwLjY4NUMxNTguODE3IDEzMC43OTYgMTU4LjczMyAxMzAuODg0IDE1OC42MjMgMTMwLjk1MUMxNTguNTEyIDEzMS4wMTggMTU4LjM3NyAxMzEuMDUxIDE1OC4yMTcgMTMxLjA1MUMxNTguMDU2IDEzMS4wNTEgMTU3LjkxOSAxMzEuMDE4IDE1Ny44MDUgMTMwLjk1MUMxNTcuNjkyIDEzMC44ODQgMTU3LjYwNiAxMzAuNzk2IDE1Ny41NDYgMTMwLjY4NUMxNTcuNDg3IDEzMC41NzQgMTU3LjQ1OCAxMzAuNDUyIDE1Ny40NTggMTMwLjMxOVpNMTU3Ljg2OCAxMzAuMTI4VjEzMC4zMTlDMTU3Ljg2OCAxMzAuMzg0IDE1Ny44ODEgMTMwLjQ0NiAxNTcuOTA3IDEzMC41MDRDMTU3LjkzNSAxMzAuNTYzIDE1Ny45NzUgMTMwLjYxMSAxNTguMDI3IDEzMC42NDhDMTU4LjA3OSAxMzAuNjg0IDE1OC4xNDIgMTMwLjcwMiAxNTguMjE1IDEzMC43MDJDMTU4LjI5OCAxMzAuNzAyIDE1OC4zNjUgMTMwLjY4NCAxNTguNDE1IDEzMC42NDhDMTU4LjQ2NSAxMzAuNjExIDE1OC41MDEgMTMwLjU2NCAxNTguNTIyIDEzMC41MDdDMTU4LjU0NSAxMzAuNDQ4IDE1OC41NTcgMTMwLjM4NiAxNTguNTU3IDEzMC4zMTlWMTMwLjEyOEMxNTguNTU3IDEzMC4wNjIgMTU4LjU0NCAxMjkuOTk5IDE1OC41MTggMTI5Ljk0QzE1OC40OTMgMTI5Ljg4MiAxNTguNDU1IDEyOS44MzUgMTU4LjQwMyAxMjkuNzk5QzE1OC4zNTIgMTI5Ljc2MyAxNTguMjg4IDEyOS43NDUgMTU4LjIxIDEyOS43NDVDMTU4LjEzMyAxMjkuNzQ1IDE1OC4wNyAxMjkuNzYzIDE1OC4wMiAxMjkuNzk5QzE1Ny45NjkgMTI5LjgzNSAxNTcuOTMxIDEyOS44ODIgMTU3LjkwNSAxMjkuOTRDMTU3Ljg4IDEyOS45OTkgMTU3Ljg2OCAxMzAuMDYyIDE1Ny44NjggMTMwLjEyOFpNMTU4LjM1NiAxMjcuOTUzTDE1Ni42MjEgMTMwLjczMUwxNTYuMzIgMTMwLjU1OEwxNTguMDU2IDEyNy43OEwxNTguMzU2IDEyNy45NTNaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjwvZz4KPHJlY3QgeD0iMTAyLjI1IiB5PSI4Mi4yNSIgd2lkdGg9Ijk3LjUiIGhlaWdodD0iNzcuNSIgcng9IjEuNzUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIiBzdHJva2Utd2lkdGg9IjAuNSIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzM0NjFfNDY4ODYiIHg9IjM1LjcxNTUiIHk9IjQyLjIxNTUiIHdpZHRoPSIyNS41NjkiIGhlaWdodD0iMTYuNTY5IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjAuODkyMjQzIi8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ2ODg2Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ2ODg2IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8ZmlsdGVyIGlkPSJmaWx0ZXIxX2JfMzQ2MV80Njg4NiIgeD0iMTQ5LjIxNiIgeT0iMzkuMjE1NSIgd2lkdGg9IjI1LjU2OSIgaGVpZ2h0PSIxNi41NjkiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iMC44OTIyNDMiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfNDY4ODYiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfNDY4ODYiIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjJfYl8zNDYxXzQ2ODg2IiB4PSIzNS43MTU1IiB5PSIxMjEuMjE2IiB3aWR0aD0iMjUuNTY5IiBoZWlnaHQ9IjE2LjU2OSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIwLjg5MjI0MyIvPgo8ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMzQ2MV80Njg4NiIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMzQ2MV80Njg4NiIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPGZpbHRlciBpZD0iZmlsdGVyM19iXzM0NjFfNDY4ODYiIHg9IjEzOC43MTYiIHk9IjEyMC4yMTYiIHdpZHRoPSIyNS41NjkiIGhlaWdodD0iMTYuNTY5IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjAuODkyMjQzIi8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ2ODg2Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ2ODg2IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzM0NjFfNDY4ODYiPgo8cmVjdCB3aWR0aD0iNzEiIGhlaWdodD0iNjEiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMy41IDE2KSIvPgo8L2NsaXBQYXRoPgo8Y2xpcFBhdGggaWQ9ImNsaXAxXzM0NjFfNDY4ODYiPgo8cmVjdCB3aWR0aD0iNDYiIGhlaWdodD0iNDEuMjc2NiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI2LjUgMjYuNzIzNCkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K", "description": "By visually representing the liquid's volume, these widgets help in monitoring, optimizing storage, and ensuring efficient operations. Suitable for a variety of storage setups, they are essential for industries requiring precise liquid management.", "externalId": null, "name": "Liquid level widgets" 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 f5afee5e43..086e544ab2 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", "name": "Horizontal 2:1 Elliptical tank", "deprecated": false, - "image": "data:image/png;base64,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BBKBKt5PBwY+iudfeDMOHDgUx44Ox8yzc6FlbXtLHHxub+x7tGehEtsJVFLAN2CVPO3VHfSPpyeir++deP21d2sTaixtRo22a66O9mtbY11nS7S1zf9/xFaS6PDw1/H5Z9/WfeTW1ubYvmNT3TYrBAgQILC4wHz305kjHtm7ev6w9ty583H6zESM//RLnPu5NhvVEpY1DQ3x0MPbYv/+++O6dS1LOEIJgWoJCGDVOt9GOysw+ukP8fJLR+PtI/XTsgMiQIAAAQIEli/Qu31zPP7EfdF9S9fymziSwCoXEMBW+Qk2vMUFhoa+qE3AcSxOvD+6eKG9BAgQIECAwIICm7d0x2P77o2eHq+zL4hkB4FZAQHMpUCgJjATxAYHT8bQ8ZGYmppmQoAAAQIECCQCjU1XxgO9d8SDvRtj69b1SbXdBAhcEhDALkn4SWBW4NCr78XA4RNxauQrJgQIECBAgMAcgdvvvDn27Lk7du+6bc4eqwQILEVAAFuKkppKCvz518UYO/NrjI1PxvjY+Rg/OxmTk74dq+TFYNAECBCoqEBz8xXRvrY52jsao6O9OTo6m+LyNQ0V1TBsAmUEBLAyjroQIECAAAECBAgQIEAgFbgsrVBAgAABAgQIECBAgAABAkUEBLAijJoQIECAAAECBAgQIEAgFxDAciMVBAgQIECAAAECBAgQKCIggBVh1IQAAQIECBAgQIAAAQK5gACWG6kgQIAAAQIECBAgQIBAEQEBrAijJgQIECBAgAABAgQIEMgFBLDcSAUBAgQIECBAgAABAgSKCAhgRRg1IUCAAAECBAgQIECAQC4ggOVGKggQIECAAAECBAgQIFBEQAArwqgJAQIECBAgQIAAAQIEcgEBLDdSQYAAAQIECBAgQIAAgSICAlgRRk0IECBAgAABAgQIECCQCwhguZEKAgQIECBAgAABAgQIFBEQwIowakKAAAECBAgQIECAAIFcQADLjVQQIECAAAECBAgQIECgiIAAVoRREwIECBAgQIAAAQIECOQCAlhupIIAAQIECBAgQIAAAQJFBASwIoyaECBAgAABAgQIECBAIBcQwHIjFQQIECBAgAABAgQIECgiIIAVYdSEAAECBAgQIECAAAECuYAAlhupIECAAAECBAgQIECAQBEBAawIoyYECBAgQIAAAQIECBDIBQSw3EgFAQIECBAgQIAAAQIEiggIYEUYNSFAgAABAgQIECBAgEAuIIDlRioIECBAgAABAgQIECBQREAAK8KoCQECBAgQIECAAAECBHIBASw3UkGAAAECBAgQIECAAIEiAgJYEUZNCBAgQIAAAQIECBAgkAsIYLmRCgIECBAgQIAAAQIECBQREMCKMGpCgAABAgQIECBAgACBXEAAy41UECBAgAABAgQIECBAoIiAAFaEURMCBAgQIECAAAECBAjkAgJYbqSCAAECBAgQIECAAAECRQQEsCKMmhAgQIAAAQIECBAgQCAXEMByIxUECBAgQIAAAQIECBAoIiCAFWHUhAABAgQIECBAgAABArmAAJYbqSBAgAABAgQIECBAgEARAQGsCKMmBAgQIECAAAECBAgQyAUEsNxIBQECBAgQIECAAAECBIoICGBFGDUhQIAAAQIECBAgQIBALiCA5UYqCBAgQIAAAQIECBAgUERAACvCqAkBAgQIECBAgAABAgRygX8AcPGBYpoywJwAAAAASUVORK5CYII=", + "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUxLjY2MzcgNTcuMDc4MUgxNDguMzM2VjEyNi41OTVINTEuNjYzN1Y1Ny4wNzgxWk01MS42NjM3IDEyNi41OTVMNTEuNjYzNiA1Ny4wNzgxQzQ3LjMxODggNTcuMDc4MSAzNy41NDMgNjcuMzk3MSAzNy41NDMgOTEuODM2OEMzNy41NDMgMTE2LjI3NiA0Ni43NzU3IDEyNi41OTUgNTEuNjYzNyAxMjYuNTk1Wk0xNDguMzM2IDEyNi41OTVMMTQ4LjMzNiA1Ny4wNzgxQzE1Mi42ODEgNTcuMDc4MSAxNjIuNDU3IDY3LjM5NzEgMTYyLjQ1NyA5MS44MzY4QzE2Mi40NTcgMTE2LjI3NiAxNTMuMjI0IDEyNi41OTUgMTQ4LjMzNiAxMjYuNTk1WiIgZmlsbD0iIzYyMTZGRiIgZmlsbC1vcGFjaXR5PSIwLjAyIi8+CjxwYXRoIGQ9Ik0xNDguMzM2IDU3LjA3ODFIMTQ4Ljg3OVY1Ni41MzVIMTQ4LjMzNlY1Ny4wNzgxWk01MS42NjM3IDU3LjA3ODFWNTYuNTM1SDUxLjEyMDZWNTcuMDc4MUg1MS42NjM3Wk01MS42NjM2IDU3LjA3ODFMNTIuMjA2NyA1Ny4wNzgxVjU2LjUzNUg1MS42NjM2VjU3LjA3ODFaTTE0OC4zMzYgNTcuMDc4MVY1Ni41MzVIMTQ3Ljc5M1Y1Ny4wNzgxTDE0OC4zMzYgNTcuMDc4MVpNMTQ4LjMzNiA1Ni41MzVINTEuNjYzN1Y1Ny42MjEySDE0OC4zMzZWNTYuNTM1Wk0xNDguODc5IDEyNi41OTVWNTcuMDc4MUgxNDcuNzkzVjEyNi41OTVIMTQ4Ljg3OVpNNTEuNjYzNyAxMjcuMTM4SDE0OC4zMzZWMTI2LjA1Mkg1MS42NjM3VjEyNy4xMzhaTTUxLjEyMDYgNTcuMDc4MVYxMjYuNTk1SDUyLjIwNjhWNTcuMDc4MUg1MS4xMjA2Wk01Mi4yMDY4IDEyNi41OTVMNTIuMjA2NyA1Ny4wNzgxTDUxLjEyMDUgNTcuMDc4MUw1MS4xMjA2IDEyNi41OTVINTIuMjA2OFpNNTEuNjYzNiA1Ni41MzVDNTAuMzg0OCA1Ni41MzUgNDguODM0NSA1Ny4yNzg3IDQ3LjI2NDggNTguNjY1M0M0NS42Nzg4IDYwLjA2NjIgNDQuMDExNyA2Mi4xNzU1IDQyLjQ5NDIgNjUuMDM4MkMzOS40NTc2IDcwLjc2NjIgMzYuOTk5OSA3OS41NDY5IDM2Ljk5OTkgOTEuODM2OEgzOC4wODYxQzM4LjA4NjEgNzkuNjg3IDQwLjUxNjMgNzEuMDg4MyA0My40NTM4IDY1LjU0N0M0NC45MjM0IDYyLjc3NDkgNDYuNTE0OSA2MC43NzcgNDcuOTgzOSA1OS40Nzk0QzQ5LjQ2OTEgNTguMTY3NCA1MC43NzAxIDU3LjYyMTIgNTEuNjYzNiA1Ny42MjEyVjU2LjUzNVpNMzYuOTk5OSA5MS44MzY4QzM2Ljk5OTkgMTA0LjEyMSAzOS4zMTk4IDExMi45MDEgNDIuMjg4MSAxMTguNjMxQzQzLjc3MTggMTIxLjQ5NSA0NS40MjM0IDEyMy42MDcgNDcuMDM5IDEyNS4wMTFDNDguNjQ0OCAxMjYuNDA2IDUwLjI2MDYgMTI3LjEzOSA1MS42NjM3IDEyNy4xMzhMNTEuNjYzNyAxMjYuMDUyQzUwLjYyMjcgMTI2LjA1MiA0OS4yNTE1IDEyNS40OTUgNDcuNzUxNCAxMjQuMTkxQzQ2LjI2MTEgMTIyLjg5NiA0NC42ODgxIDEyMC45MDIgNDMuMjUyNiAxMTguMTMxQzQwLjM4MjUgMTEyLjU5MSAzOC4wODYxIDEwMy45OTIgMzguMDg2MSA5MS44MzY4SDM2Ljk5OTlaTTE0Ny43OTMgNTcuMDc4MUwxNDcuNzkzIDEyNi41OTVIMTQ4Ljg3OUwxNDguODc5IDU3LjA3ODFMMTQ3Ljc5MyA1Ny4wNzgxWk0xNjMgOTEuODM2OEMxNjMgNzkuNTQ2OSAxNjAuNTQyIDcwLjc2NjIgMTU3LjUwNiA2NS4wMzgyQzE1NS45ODggNjIuMTc1NSAxNTQuMzIxIDYwLjA2NjIgMTUyLjczNSA1OC42NjUzQzE1MS4xNjUgNTcuMjc4NyAxNDkuNjE1IDU2LjUzNSAxNDguMzM2IDU2LjUzNVY1Ny42MjEyQzE0OS4yMyA1Ny42MjEyIDE1MC41MzEgNTguMTY3NCAxNTIuMDE2IDU5LjQ3OTRDMTUzLjQ4NSA2MC43NzcgMTU1LjA3NiA2Mi43NzQ5IDE1Ni41NDYgNjUuNTQ3QzE1OS40ODQgNzEuMDg4MyAxNjEuOTE0IDc5LjY4NyAxNjEuOTE0IDkxLjgzNjhIMTYzWk0xNDguMzM2IDEyNy4xMzhDMTQ5LjczOSAxMjcuMTM5IDE1MS4zNTUgMTI2LjQwNiAxNTIuOTYxIDEyNS4wMTFDMTU0LjU3NiAxMjMuNjA3IDE1Ni4yMjggMTIxLjQ5NSAxNTcuNzEyIDExOC42MzFDMTYwLjY4IDExMi45MDEgMTYzIDEwNC4xMjEgMTYzIDkxLjgzNjhIMTYxLjkxNEMxNjEuOTE0IDEwMy45OTIgMTU5LjYxNyAxMTIuNTkxIDE1Ni43NDcgMTE4LjEzMUMxNTUuMzEyIDEyMC45MDIgMTUzLjczOSAxMjIuODk2IDE1Mi4yNDggMTI0LjE5MUMxNTAuNzQ4IDEyNS40OTUgMTQ5LjM3NyAxMjYuMDUyIDE0OC4zMzYgMTI2LjA1MlYxMjcuMTM4WiIgZmlsbD0iIzI0Mjc3MCIvPgo8bWFzayBpZD0ibWFzazBfMzQ2MV81OTA4NSIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMzkiIHk9IjU4IiB3aWR0aD0iMTIyIiBoZWlnaHQ9IjY3Ij4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01MS42NjMzIDU4LjcwNzVIMTQ4LjMzNlYxMjQuOTY2SDUxLjY2MzNWNTguNzA3NVpNNTEuNjYzMyAxMjQuOTY2TDUxLjY2MzIgNTguNzA3NUM0OC40MDQ2IDU4LjcwNzUgMzkuMTcxOSA2OC41NDI4IDM5LjE3MTkgOTEuODM2OUMzOS4xNzE5IDExNS4xMzEgNDguNDA0NiAxMjQuOTY2IDUxLjY2MzMgMTI0Ljk2NlpNMTQ4LjMzNiAxMjQuOTY2TDE0OC4zMzYgNTguNzA3NUMxNTEuNTk0IDU4LjcwNzUgMTYwLjgyNyA2OC41NDI4IDE2MC44MjcgOTEuODM2OUMxNjAuODI3IDExNS4xMzEgMTUxLjU5NCAxMjQuOTY2IDE0OC4zMzYgMTI0Ljk2NloiIGZpbGw9IiNGMUYxRjkiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzM0NjFfNTkwODUpIj4KPHJlY3QgeD0iMzkuMTcxOSIgeT0iOTYuMDE3OCIgd2lkdGg9IjEyMS42NTUiIGhlaWdodD0iNjYuMjU4NyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzE5IiB5PSI5Ni4wMTc4IiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwNCIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzE5IiB5PSI5Ni4wMTc4IiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwNCIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPHBhdGggZD0iTTYzLjA2ODYgNTcuMDc4MUM1OS4zOCA2OS4xNzU1IDU0LjIxNjEgMTAwLjAxNSA2My4wNjg2IDEyNi41OTUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xMzYuOTMxIDU3LjA3ODFDMTMzLjI0MiA2OS4xNzU1IDEyOC4wNzggMTAwLjAxNSAxMzYuOTMxIDEyNi41OTUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJwYXRoLTExLWluc2lkZS0xXzM0NjFfNTkwODUiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMDguMTQ2IDQ3LjUzNTJIOTIuMzk2NVY1Ny4zMTFDOTIuMzk2NSA1OC4yMTA5IDk1LjkyMjIgNTguOTQwMyAxMDAuMjcxIDU4Ljk0MDNDMTA0LjYyMSA1OC45NDAzIDEwOC4xNDYgNTguMjEwOSAxMDguMTQ2IDU3LjMxMVY0Ny41MzUyWiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA4LjE0NiA0Ny41MzUySDkyLjM5NjVWNTcuMzExQzkyLjM5NjUgNTguMjEwOSA5NS45MjIyIDU4Ljk0MDMgMTAwLjI3MSA1OC45NDAzQzEwNC42MjEgNTguOTQwMyAxMDguMTQ2IDU4LjIxMDkgMTA4LjE0NiA1Ny4zMTFWNDcuNTM1MloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik05Mi4zOTY1IDQ3LjUzNTJWNDYuNDQ4OUg5MS4zMTAzVjQ3LjUzNTJIOTIuMzk2NVpNMTA4LjE0NiA0Ny41MzUySDEwOS4yMzNWNDYuNDQ4OUgxMDguMTQ2VjQ3LjUzNTJaTTkyLjM5NjUgNDguNjIxNEgxMDguMTQ2VjQ2LjQ0ODlIOTIuMzk2NVY0OC42MjE0Wk05My40ODI3IDU3LjMxMVY0Ny41MzUySDkxLjMxMDNWNTcuMzExSDkzLjQ4MjdaTTEwMC4yNzEgNTcuODU0MUM5OC4xNDc4IDU3Ljg1NDEgOTYuMjU2MyA1Ny42NzUzIDk0LjkyMzEgNTcuMzk5NEM5NC4yNDc2IDU3LjI1OTcgOTMuNzcyNSA1Ny4xMDY0IDkzLjQ5MjYgNTYuOTY5NUM5My4zNTA1IDU2LjkgOTMuMzE0NyA1Ni44NjE0IDkzLjMyODggNTYuODc1NkM5My4zNDYxIDU2Ljg5MzEgOTMuNDgyNyA1Ny4wNDIxIDkzLjQ4MjcgNTcuMzExSDkxLjMxMDNDOTEuMzEwMyA1Ny44MDUgOTEuNTU3MSA1OC4xNzM2IDkxLjc4NDIgNTguNDAzMkM5Mi4wMDggNTguNjI5NSA5Mi4yODE3IDU4Ljc5NTYgOTIuNTM4MSA1OC45MjFDOTMuMDU1MiA1OS4xNzM5IDkzLjczMzQgNTkuMzcxNyA5NC40ODI5IDU5LjUyNjhDOTUuOTk5OSA1OS44NDA3IDk4LjA0NTkgNjAuMDI2NSAxMDAuMjcxIDYwLjAyNjVWNTcuODU0MVpNMTA3LjA2IDU3LjMxMUMxMDcuMDYgNTcuMDQyMSAxMDcuMTk3IDU2Ljg5MzEgMTA3LjIxNCA1Ni44NzU2QzEwNy4yMjggNTYuODYxNCAxMDcuMTkzIDU2LjkgMTA3LjA1IDU2Ljk2OTVDMTA2Ljc3IDU3LjEwNjQgMTA2LjI5NSA1Ny4yNTk3IDEwNS42MiA1Ny4zOTk0QzEwNC4yODcgNTcuNjc1MyAxMDIuMzk1IDU3Ljg1NDEgMTAwLjI3MSA1Ny44NTQxVjYwLjAyNjVDMTAyLjQ5NyA2MC4wMjY1IDEwNC41NDMgNTkuODQwNyAxMDYuMDYgNTkuNTI2OEMxMDYuODEgNTkuMzcxNyAxMDcuNDg4IDU5LjE3MzkgMTA4LjAwNSA1OC45MjFDMTA4LjI2MSA1OC43OTU2IDEwOC41MzUgNTguNjI5NSAxMDguNzU5IDU4LjQwMzJDMTA4Ljk4NiA1OC4xNzM2IDEwOS4yMzMgNTcuODA1IDEwOS4yMzMgNTcuMzExSDEwNy4wNlpNMTA3LjA2IDQ3LjUzNTJWNTcuMzExSDEwOS4yMzNWNDcuNTM1MkgxMDcuMDZaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMTEtaW5zaWRlLTFfMzQ2MV81OTA4NSkiLz4KPHBhdGggZD0iTTEwNy44MDIgNDcuOTM3OUMxMDcuOTE3IDQ3Ljk5MDMgMTA4LjAwMSA0OC4wMzggMTA4LjA2IDQ4LjA3ODNDMTA4LjAwMSA0OC4xMTg2IDEwNy45MTcgNDguMTY2MyAxMDcuODAyIDQ4LjIxODZDMTA3LjQzMyA0OC4zODc0IDEwNi44NjUgNDguNTUzMSAxMDYuMTIxIDQ4LjY5NzJDMTA0LjY0MSA0OC45ODM3IDEwMi41NzIgNDkuMTY0NSAxMDAuMjcyIDQ5LjE2NDVDOTcuOTcwOCA0OS4xNjQ1IDk1LjkwMjUgNDguOTgzNyA5NC40MjIzIDQ4LjY5NzJDOTMuNjc3OCA0OC41NTMxIDkzLjEwOTggNDguMzg3NCA5Mi43NDEgNDguMjE4NkM5Mi42MjY2IDQ4LjE2NjMgOTIuNTQyNSA0OC4xMTg2IDkyLjQ4MjcgNDguMDc4M0M5Mi41NDI1IDQ4LjAzOCA5Mi42MjY2IDQ3Ljk5MDMgOTIuNzQxIDQ3LjkzNzlDOTMuMTA5OCA0Ny43NjkyIDkzLjY3NzggNDcuNjAzNSA5NC40MjIzIDQ3LjQ1OTRDOTUuOTAyNSA0Ny4xNzI5IDk3Ljk3MDggNDYuOTkyMSAxMDAuMjcyIDQ2Ljk5MjFDMTAyLjU3MiA0Ni45OTIxIDEwNC42NDEgNDcuMTcyOSAxMDYuMTIxIDQ3LjQ1OTRDMTA2Ljg2NSA0Ny42MDM1IDEwNy40MzMgNDcuNzY5MiAxMDcuODAyIDQ3LjkzNzlaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEwNy44MDIgNDYuMzA4NUMxMDcuOTE3IDQ2LjM2MDkgMTA4LjAwMSA0Ni40MDg2IDEwOC4wNiA0Ni40NDg5QzEwOC4wMDEgNDYuNDg5MiAxMDcuOTE3IDQ2LjUzNjkgMTA3LjgwMiA0Ni41ODkyQzEwNy40MzMgNDYuNzU4IDEwNi44NjUgNDYuOTIzNyAxMDYuMTIxIDQ3LjA2NzhDMTA0LjY0MSA0Ny4zNTQzIDEwMi41NzIgNDcuNTM1MSAxMDAuMjcyIDQ3LjUzNTFDOTcuOTcwOCA0Ny41MzUxIDk1LjkwMjUgNDcuMzU0MyA5NC40MjIzIDQ3LjA2NzhDOTMuNjc3OCA0Ni45MjM3IDkzLjEwOTggNDYuNzU4IDkyLjc0MSA0Ni41ODkyQzkyLjYyNjYgNDYuNTM2OSA5Mi41NDI1IDQ2LjQ4OTIgOTIuNDgyNyA0Ni40NDg5QzkyLjU0MjUgNDYuNDA4NiA5Mi42MjY2IDQ2LjM2MDkgOTIuNzQxIDQ2LjMwODVDOTMuMTA5OCA0Ni4xMzk4IDkzLjY3NzggNDUuOTc0MSA5NC40MjIzIDQ1LjgzQzk1LjkwMjUgNDUuNTQzNSA5Ny45NzA4IDQ1LjM2MjcgMTAwLjI3MiA0NS4zNjI3QzEwMi41NzIgNDUuMzYyNyAxMDQuNjQxIDQ1LjU0MzUgMTA2LjEyMSA0NS44M0MxMDYuODY1IDQ1Ljk3NDEgMTA3LjQzMyA0Ni4xMzk4IDEwNy44MDIgNDYuMzA4NVoiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMF9iXzM0NjFfNTkwODUpIj4KPHJlY3QgeD0iNzYuMzczIiB5PSI3OS41NjMiIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik04OS43NDk5IDkzLjUxMzFWOTQuODc4NEg4Mi4yODNMODIuMjI2MSA5My44NDczTDg2LjY5MiA4Ni44NDk3SDg4LjA2NDVMODYuNTc4MyA4OS4zOTU2TDg0LjAxMSA5My41MTMxSDg5Ljc0OTlaTTg4LjQ1NTcgODYuODQ5N1Y5Ny4yMDM5SDg2Ljc0MThWODYuODQ5N0g4OC40NTU3Wk05Ny42NDM2IDkxLjE1OTJWOTIuODUxN0M5Ny42NDM2IDkzLjY2MjQgOTcuNTYzIDk0LjM1NDYgOTcuNDAxOCA5NC45MjgyQzk3LjI0NTMgOTUuNDk3MSA5Ny4wMTc4IDk1Ljk1OTQgOTYuNzE5MSA5Ni4zMTQ5Qzk2LjQyMDQgOTYuNjcwNSA5Ni4wNjI1IDk2LjkzMTMgOTUuNjQ1MyA5Ny4wOTcyQzk1LjIzMjggOTcuMjYzMSA5NC43NzA2IDk3LjM0NjEgOTQuMjU4NSA5Ny4zNDYxQzkzLjg1MDggOTcuMzQ2MSA5My40NzE1IDk3LjI5MzkgOTMuMTIwNyA5Ny4xODk2QzkyLjc3NDYgOTcuMDg1MyA5Mi40NjE3IDk2LjkyMTggOTIuMTgyIDk2LjY5ODlDOTEuOTAyMyA5Ni40NzYxIDkxLjY2MjkgOTYuMTg5MyA5MS40NjM4IDk1LjgzODVDOTEuMjY5NCA5NS40ODI5IDkxLjExNzcgOTUuMDU4NiA5MS4wMDg2IDk0LjU2NTVDOTAuOTA0MyA5NC4wNzI1IDkwLjg1MjIgOTMuNTAxMiA5MC44NTIyIDkyLjg1MTdWOTEuMTU5MkM5MC44NTIyIDkwLjM0MzcgOTAuOTMyOCA4OS42NTYzIDkxLjA5NCA4OS4wOTY5QzkxLjI1NTIgODguNTMyNyA5MS40ODUxIDg4LjA3NTIgOTEuNzgzOCA4Ny43MjQ0QzkyLjA4MjUgODcuMzY4OCA5Mi40MzggODcuMTEwNCA5Mi44NTA1IDg2Ljk0OTNDOTMuMjY3NyA4Ni43ODgxIDkzLjczMjMgODYuNzA3NSA5NC4yNDQzIDg2LjcwNzVDOTQuNjU2OCA4Ni43MDc1IDk1LjAzNiA4Ni43NTk2IDk1LjM4MjEgODYuODYzOUM5NS43MzMgODYuOTYzNSA5Ni4wNDU5IDg3LjEyMjMgOTYuMzIwOCA4Ny4zNDA0Qzk2LjYwMDYgODcuNTU4NSA5Ni44Mzc2IDg3Ljg0MjkgOTcuMDMyIDg4LjE5MzdDOTcuMjMxMSA4OC41Mzk4IDk3LjM4MjggODguOTU5NCA5Ny40ODcxIDg5LjQ1MjVDOTcuNTkxNCA4OS45NDA4IDk3LjY0MzYgOTAuNTA5NyA5Ny42NDM2IDkxLjE1OTJaTTk1LjkyOTcgOTMuMDkzNVY5MC45MDMyQzk1LjkyOTcgOTAuNDkwNyA5NS45MDYgOTAuMTI4IDk1Ljg1ODYgODkuODE1MUM5NS44MTEyIDg5LjQ5NzUgOTUuNzQwMSA4OS4yMjk2IDk1LjY0NTMgODkuMDExNUM5NS41NTUyIDg4Ljc4ODcgOTUuNDQxNCA4OC42MDg2IDk1LjMwMzkgODguNDcxMUM5NS4xNjY0IDg4LjMyODkgOTUuMDEgODguMjI2OSA5NC44MzQ2IDg4LjE2NTNDOTQuNjU5MSA4OC4wOTg5IDk0LjQ2MjQgODguMDY1NyA5NC4yNDQzIDg4LjA2NTdDOTMuOTc4OCA4OC4wNjU3IDkzLjc0MTggODguMTE3OSA5My41MzMyIDg4LjIyMjJDOTMuMzI0NiA4OC4zMjE3IDkzLjE0OTIgODguNDgyOSA5My4wMDY5IDg4LjcwNThDOTIuODY0NyA4OC45Mjg2IDkyLjc1NTcgODkuMjIyNSA5Mi42Nzk4IDg5LjU4NzZDOTIuNjA4NyA4OS45NDc5IDkyLjU3MzEgOTAuMzg2NCA5Mi41NzMxIDkwLjkwMzJWOTMuMDkzNUM5Mi41NzMxIDkzLjUxMDcgOTIuNTk2OCA5My44NzgxIDkyLjY0NDMgOTQuMTk1N0M5Mi42OTE3IDk0LjUxMzQgOTIuNzYyOCA5NC43ODYgOTIuODU3NiA5NS4wMTM2QzkyLjk1MjQgOTUuMjM2NCA5My4wNjYyIDk1LjQyMTMgOTMuMTk4OSA5NS41NjgyQzkzLjMzNjQgOTUuNzEwNSA5My40OTI5IDk1LjgxNDggOTMuNjY4MyA5NS44ODExQzkzLjg0ODQgOTUuOTQ3NSA5NC4wNDUyIDk1Ljk4MDcgOTQuMjU4NSA5NS45ODA3Qzk0LjUyODggOTUuOTgwNyA5NC43NjgyIDk1LjkyODYgOTQuOTc2OCA5NS44MjQzQzk1LjE4NTQgOTUuNzE5OSA5NS4zNjA4IDk1LjU1NCA5NS41MDMgOTUuMzI2NUM5NS42NDUzIDk1LjA5NDEgOTUuNzUxOSA5NC43OTMxIDk1LjgyMyA5NC40MjMzQzk1Ljg5NDIgOTQuMDUzNSA5NS45Mjk3IDkzLjYxMDIgOTUuOTI5NyA5My4wOTM1WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNMTAyLjkyIDkyLjMxOTVWOTEuOTc3MkMxMDIuOTIgOTEuNzMxMyAxMDIuOTczIDkxLjUwNzYgMTAzLjA4IDkxLjMwNjFDMTAzLjE4NyA5MS4xMDQ2IDEwMy4zNDIgOTAuOTQzMSAxMDMuNTQ3IDkwLjgyMTZDMTAzLjc1MSA5MC43MDAyIDEwMy45OTcgOTAuNjM5NCAxMDQuMjg1IDkwLjYzOTRDMTA0LjU4MSA5MC42Mzk0IDEwNC44MyA5MC43MDAyIDEwNS4wMzEgOTAuODIxNkMxMDUuMjM2IDkwLjk0MzEgMTA1LjM5MSA5MS4xMDQ2IDEwNS40OTggOTEuMzA2MUMxMDUuNjA1IDkxLjUwNzYgMTA1LjY1OCA5MS43MzEzIDEwNS42NTggOTEuOTc3MlY5Mi4zMTk1QzEwNS42NTggOTIuNTU5NSAxMDUuNjA1IDkyLjc4MDIgMTA1LjQ5OCA5Mi45ODE3QzEwNS4zOTQgOTMuMTgzMiAxMDUuMjQgOTMuMzQ0NyAxMDUuMDM2IDkzLjQ2NjJDMTA0LjgzNCA5My41ODc3IDEwNC41ODcgOTMuNjQ4NCAxMDQuMjkzIDkzLjY0ODRDMTA0LjAwMyA5My42NDg0IDEwMy43NTQgOTMuNTg3NyAxMDMuNTQ3IDkzLjQ2NjJDMTAzLjM0MiA5My4zNDQ3IDEwMy4xODcgOTMuMTgzMiAxMDMuMDggOTIuOTgxN0MxMDIuOTczIDkyLjc4MDIgMTAyLjkyIDkyLjU1OTUgMTAyLjkyIDkyLjMxOTVaTTEwMy42NjIgOTEuOTc3MlY5Mi4zMTk1QzEwMy42NjIgOTIuNDM4IDEwMy42ODUgOTIuNTUwNiAxMDMuNzI5IDkyLjY1NzNDMTAzLjc3NiA5Mi43NjM5IDEwMy44NDcgOTIuODQ5OSAxMDMuOTQyIDkyLjkxNTFDMTA0LjAzNyA5Mi45ODAyIDEwNC4xNTQgOTMuMDEyOCAxMDQuMjkzIDkzLjAxMjhDMTA0LjQzNiA5My4wMTI4IDEwNC41NTEgOTIuOTgwMiAxMDQuNjQgOTIuOTE1MUMxMDQuNzMyIDkyLjg0OTkgMTA0LjggOTIuNzYzOSAxMDQuODQ1IDkyLjY1NzNDMTA0Ljg4OSA5Mi41NTA2IDEwNC45MTEgOTIuNDM4IDEwNC45MTEgOTIuMzE5NVY5MS45NzcyQzEwNC45MTEgOTEuODU1OCAxMDQuODg4IDkxLjc0MTcgMTA0Ljg0IDkxLjYzNUMxMDQuNzk2IDkxLjUyNTQgMTA0LjcyOCA5MS40MzggMTA0LjYzNiA5MS4zNzI4QzEwNC41NDQgOTEuMzA3NiAxMDQuNDI3IDkxLjI3NSAxMDQuMjg1IDkxLjI3NUMxMDQuMTQ4IDkxLjI3NSAxMDQuMDMzIDkxLjMwNzYgMTAzLjkzOCA5MS4zNzI4QzEwMy44NDYgOTEuNDM4IDEwMy43NzYgOTEuNTI1NCAxMDMuNzI5IDkxLjYzNUMxMDMuNjg1IDkxLjc0MTcgMTAzLjY2MiA5MS44NTU4IDEwMy42NjIgOTEuOTc3MlpNMTA2LjA0IDk1Ljk2NDFWOTUuNjE3NEMxMDYuMDQgOTUuMzc0NCAxMDYuMDkzIDk1LjE1MjIgMTA2LjIgOTQuOTUwN0MxMDYuMzEgOTQuNzQ5MiAxMDYuNDY3IDk0LjU4NzcgMTA2LjY3MSA5NC40NjYyQzEwNi44NzYgOTQuMzQ0NyAxMDcuMTIyIDk0LjI4NCAxMDcuNDA5IDk0LjI4NEMxMDcuNzA1IDk0LjI4NCAxMDcuOTU0IDk0LjM0NDcgMTA4LjE1NiA5NC40NjYyQzEwOC4zNiA5NC41ODc3IDEwOC41MTQgOTQuNzQ5MiAxMDguNjE4IDk0Ljk1MDdDMTA4LjcyNSA5NS4xNTIyIDEwOC43NzggOTUuMzc0NCAxMDguNzc4IDk1LjYxNzRWOTUuOTY0MUMxMDguNzc4IDk2LjIwNyAxMDguNzI1IDk2LjQyOTMgMTA4LjYxOCA5Ni42MzA3QzEwOC41MTQgOTYuODMyMiAxMDguMzYyIDk2Ljk5MzcgMTA4LjE2IDk3LjExNTJDMTA3Ljk1OSA5Ny4yMzY3IDEwNy43MTMgOTcuMjk3NCAxMDcuNDIyIDk3LjI5NzRDMTA3LjEyOSA5Ny4yOTc0IDEwNi44NzkgOTcuMjM2NyAxMDYuNjcxIDk3LjExNTJDMTA2LjQ2NyA5Ni45OTM3IDEwNi4zMSA5Ni44MzIyIDEwNi4yIDk2LjYzMDdDMTA2LjA5MyA5Ni40MjkzIDEwNi4wNCA5Ni4yMDcgMTA2LjA0IDk1Ljk2NDFaTTEwNi43ODcgOTUuNjE3NFY5NS45NjQxQzEwNi43ODcgOTYuMDgyNiAxMDYuODExIDk2LjE5NTIgMTA2Ljg1OCA5Ni4zMDE4QzEwNi45MDggOTYuNDA4NSAxMDYuOTgxIDk2LjQ5NTkgMTA3LjA3NiA5Ni41NjQxQzEwNy4xNzEgOTYuNjI5MyAxMDcuMjg1IDk2LjY2MTkgMTA3LjQxOCA5Ni42NjE5QzEwNy41NjkgOTYuNjYxOSAxMDcuNjkxIDk2LjYyOTMgMTA3Ljc4MiA5Ni41NjQxQzEwNy44NzQgOTYuNDk1OSAxMDcuOTM5IDk2LjQxIDEwNy45NzggOTYuMzA2M0MxMDguMDE5IDk2LjE5OTYgMTA4LjA0IDk2LjA4NTUgMTA4LjA0IDk1Ljk2NDFWOTUuNjE3NEMxMDguMDQgOTUuNDk1OSAxMDguMDE3IDk1LjM4MTggMTA3Ljk2OSA5NS4yNzUxQzEwNy45MjUgOTUuMTY4NSAxMDcuODU1IDk1LjA4MjUgMTA3Ljc2IDk1LjAxNzRDMTA3LjY2OCA5NC45NTIyIDEwNy41NTEgOTQuOTE5NiAxMDcuNDA5IDk0LjkxOTZDMTA3LjI3IDk0LjkxOTYgMTA3LjE1NCA5NC45NTIyIDEwNy4wNjIgOTUuMDE3NEMxMDYuOTcxIDk1LjA4MjUgMTA2LjkwMSA5NS4xNjg1IDEwNi44NTQgOTUuMjc1MUMxMDYuODA5IDk1LjM4MTggMTA2Ljc4NyA5NS40OTU5IDEwNi43ODcgOTUuNjE3NFpNMTA3LjY3NiA5MS42NTcyTDEwNC41MTYgOTYuNzE1MkwxMDMuOTY5IDk2LjM5OTZMMTA3LjEyOSA5MS4zNDE3TDEwNy42NzYgOTEuNjU3MloiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPC9nPgo8cmVjdCB4PSIwLjUiIHk9IjAuNSIgd2lkdGg9IjE5OSIgaGVpZ2h0PSIxNTkiIHJ4PSIzLjUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIi8+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2JfMzQ2MV81OTA4NSIgeD0iNzMuMTI0NCIgeT0iNzYuMzE0MyIgd2lkdGg9IjQ1LjA2MTgiIGhlaWdodD0iMjkuOTU4OCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjYyNDM0Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzU5MDg1Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzU5MDg1IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", "description": "Widget indicates the level of liquid in Horizontal 2:1 Elliptical tank.", "descriptor": { "type": "latest", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} +} \ No newline at end of file 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 1a3e7bf74f..60765a5c7e 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": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cmVjdCB4PSI0Mi45NzM4IiB5PSI1Ni43NjgiIHdpZHRoPSIxMTQuMDUyIiBoZWlnaHQ9IjY4LjQzMTEiIHJ4PSIzNC4yMTU1IiBmaWxsPSIjNjIxNkZGIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJtYXNrMF8zNDYxXzM4Mjk1IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI0NCIgeT0iNTgiIHdpZHRoPSIxMTIiIGhlaWdodD0iNjYiPgo8cmVjdCB4PSI0NS4xNDY2IiB5PSI1OC45NDAzIiB3aWR0aD0iMTA5LjcwNyIgaGVpZ2h0PSI2NC4wODYyIiByeD0iMzIuMDQzMSIgZmlsbD0iI0YxRjFGOSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzM0NjFfMzgyOTUpIj4KPHJlY3QgeD0iNDQuNjAzNSIgeT0iOTUuMzI4NCIgd2lkdGg9IjExMS4zMzYiIGhlaWdodD0iNjUuMTcyNCIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSI0NC42MDM1IiB5PSI5NS4zMjg0IiB3aWR0aD0iMTExLjMzNiIgaGVpZ2h0PSIwLjU0MzEwNCIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSI0NC42MDM1IiB5PSI5NS4zMjg0IiB3aWR0aD0iMTExLjMzNiIgaGVpZ2h0PSIwLjU0MzEwNCIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPHBhdGggZD0iTTc2LjEwMjcgNTYuNzY3OEM2OS41NDUzIDY3LjEyNzkgNjAuMzY0OSA5NS4zMTgyIDc2LjEwMjcgMTI1LjE5OSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEyMy44OTYgNTYuNzY3OEMxMTcuMzM4IDY3LjEyNzkgMTA4LjE1OCA5NS4zMTgyIDEyMy44OTYgMTI1LjE5OSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPG1hc2sgaWQ9InBhdGgtMTAtaW5zaWRlLTFfMzQ2MV8zODI5NSIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwNi41MTcgNDcuNTM1Mkg5MC43NjY2VjU3LjMxMUM5MC43NjY2IDU4LjIxMDkgOTQuMjkyNCA1OC45NDAzIDk4LjY0MTYgNTguOTQwM0MxMDIuOTkxIDU4Ljk0MDMgMTA2LjUxNyA1OC4yMTA5IDEwNi41MTcgNTcuMzExVjQ3LjUzNTJaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMDYuNTE3IDQ3LjUzNTJIOTAuNzY2NlY1Ny4zMTFDOTAuNzY2NiA1OC4yMTA5IDk0LjI5MjQgNTguOTQwMyA5OC42NDE2IDU4Ljk0MDNDMTAyLjk5MSA1OC45NDAzIDEwNi41MTcgNTguMjEwOSAxMDYuNTE3IDU3LjMxMVY0Ny41MzUyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTkwLjc2NjYgNDcuNTM1MlY0Ni40NDg5SDg5LjY4MDRWNDcuNTM1Mkg5MC43NjY2Wk0xMDYuNTE3IDQ3LjUzNTJIMTA3LjYwM1Y0Ni40NDg5SDEwNi41MTdWNDcuNTM1MlpNOTAuNzY2NiA0OC42MjE0SDEwNi41MTdWNDYuNDQ4OUg5MC43NjY2VjQ4LjYyMTRaTTkxLjg1MjggNTcuMzExVjQ3LjUzNTJIODkuNjgwNFY1Ny4zMTFIOTEuODUyOFpNOTguNjQxNiA1Ny44NTQxQzk2LjUxNzkgNTcuODU0MSA5NC42MjY0IDU3LjY3NTMgOTMuMjkzMiA1Ny4zOTk0QzkyLjYxNzcgNTcuMjU5NyA5Mi4xNDI2IDU3LjEwNjQgOTEuODYyNyA1Ni45Njk1QzkxLjcyMDYgNTYuOSA5MS42ODQ5IDU2Ljg2MTQgOTEuNjk4OSA1Ni44NzU2QzkxLjcxNjIgNTYuODkzMSA5MS44NTI4IDU3LjA0MjEgOTEuODUyOCA1Ny4zMTFIODkuNjgwNEM4OS42ODA0IDU3LjgwNSA4OS45MjcyIDU4LjE3MzYgOTAuMTU0MyA1OC40MDMyQzkwLjM3ODEgNTguNjI5NSA5MC42NTE4IDU4Ljc5NTYgOTAuOTA4MiA1OC45MjFDOTEuNDI1MyA1OS4xNzM5IDkyLjEwMzUgNTkuMzcxNyA5Mi44NTMxIDU5LjUyNjhDOTQuMzcgNTkuODQwNyA5Ni40MTYgNjAuMDI2NSA5OC42NDE2IDYwLjAyNjVWNTcuODU0MVpNMTA1LjQzIDU3LjMxMUMxMDUuNDMgNTcuMDQyMSAxMDUuNTY3IDU2Ljg5MzEgMTA1LjU4NCA1Ni44NzU2QzEwNS41OTggNTYuODYxNCAxMDUuNTYzIDU2LjkgMTA1LjQyIDU2Ljk2OTVDMTA1LjE0MSA1Ny4xMDY0IDEwNC42NjYgNTcuMjU5NyAxMDMuOTkgNTcuMzk5NEMxMDIuNjU3IDU3LjY3NTMgMTAwLjc2NSA1Ny44NTQxIDk4LjY0MTYgNTcuODU0MVY2MC4wMjY1QzEwMC44NjcgNjAuMDI2NSAxMDIuOTEzIDU5Ljg0MDcgMTA0LjQzIDU5LjUyNjhDMTA1LjE4IDU5LjM3MTcgMTA1Ljg1OCA1OS4xNzM5IDEwNi4zNzUgNTguOTIxQzEwNi42MzEgNTguNzk1NiAxMDYuOTA1IDU4LjYyOTUgMTA3LjEyOSA1OC40MDMyQzEwNy4zNTYgNTguMTczNiAxMDcuNjAzIDU3LjgwNSAxMDcuNjAzIDU3LjMxMUgxMDUuNDNaTTEwNS40MyA0Ny41MzUyVjU3LjMxMUgxMDcuNjAzVjQ3LjUzNTJIMTA1LjQzWiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTEwLWluc2lkZS0xXzM0NjFfMzgyOTUpIi8+CjxwYXRoIGQ9Ik0xMDYuMTcyIDQ3LjkzNzlDMTA2LjI4NyA0Ny45OTAzIDEwNi4zNzEgNDguMDM4IDEwNi40MzEgNDguMDc4M0MxMDYuMzcxIDQ4LjExODYgMTA2LjI4NyA0OC4xNjYzIDEwNi4xNzIgNDguMjE4NkMxMDUuODA0IDQ4LjM4NzQgMTA1LjIzNiA0OC41NTMxIDEwNC40OTEgNDguNjk3MkMxMDMuMDExIDQ4Ljk4MzcgMTAwLjk0MyA0OS4xNjQ1IDk4LjY0MTcgNDkuMTY0NUM5Ni4zNDA5IDQ5LjE2NDUgOTQuMjcyNiA0OC45ODM3IDkyLjc5MjQgNDguNjk3MkM5Mi4wNDc5IDQ4LjU1MzEgOTEuNDggNDguMzg3NCA5MS4xMTEyIDQ4LjIxODZDOTAuOTk2NyA0OC4xNjYzIDkwLjkxMjYgNDguMTE4NiA5MC44NTI5IDQ4LjA3ODNDOTAuOTEyNiA0OC4wMzggOTAuOTk2NyA0Ny45OTAzIDkxLjExMTIgNDcuOTM3OUM5MS40OCA0Ny43NjkyIDkyLjA0NzkgNDcuNjAzNSA5Mi43OTI0IDQ3LjQ1OTRDOTQuMjcyNiA0Ny4xNzI5IDk2LjM0MDkgNDYuOTkyMSA5OC42NDE3IDQ2Ljk5MjFDMTAwLjk0MyA0Ni45OTIxIDEwMy4wMTEgNDcuMTcyOSAxMDQuNDkxIDQ3LjQ1OTRDMTA1LjIzNiA0Ny42MDM1IDEwNS44MDQgNDcuNzY5MiAxMDYuMTcyIDQ3LjkzNzlaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEwNi4xNzIgNDYuMzA4NUMxMDYuMjg3IDQ2LjM2MDkgMTA2LjM3MSA0Ni40MDg2IDEwNi40MzEgNDYuNDQ4OUMxMDYuMzcxIDQ2LjQ4OTIgMTA2LjI4NyA0Ni41MzY5IDEwNi4xNzIgNDYuNTg5MkMxMDUuODA0IDQ2Ljc1OCAxMDUuMjM2IDQ2LjkyMzcgMTA0LjQ5MSA0Ny4wNjc4QzEwMy4wMTEgNDcuMzU0MyAxMDAuOTQzIDQ3LjUzNTEgOTguNjQxNyA0Ny41MzUxQzk2LjM0MDkgNDcuNTM1MSA5NC4yNzI2IDQ3LjM1NDMgOTIuNzkyNCA0Ny4wNjc4QzkyLjA0NzkgNDYuOTIzNyA5MS40OCA0Ni43NTggOTEuMTExMiA0Ni41ODkyQzkwLjk5NjcgNDYuNTM2OSA5MC45MTI2IDQ2LjQ4OTIgOTAuODUyOSA0Ni40NDg5QzkwLjkxMjYgNDYuNDA4NiA5MC45OTY3IDQ2LjM2MDkgOTEuMTExMiA0Ni4zMDg1QzkxLjQ4IDQ2LjEzOTggOTIuMDQ3OSA0NS45NzQxIDkyLjc5MjQgNDUuODNDOTQuMjcyNiA0NS41NDM1IDk2LjM0MDkgNDUuMzYyNyA5OC42NDE3IDQ1LjM2MjdDMTAwLjk0MyA0NS4zNjI3IDEwMy4wMTEgNDUuNTQzNSAxMDQuNDkxIDQ1LjgzQzEwNS4yMzYgNDUuOTc0MSAxMDUuODA0IDQ2LjEzOTggMTA2LjE3MiA0Ni4zMDg1WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2JfMzQ2MV8zODI5NSkiPgo8cmVjdCB4PSI3My4xMTQzIiB5PSI3OS41NjMiIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik04Ni40OTExIDkzLjUxMzFWOTQuODc4NEg3OS4wMjQyTDc4Ljk2NzMgOTMuODQ3M0w4My40MzMyIDg2Ljg0OTdIODQuODA1N0w4My4zMTk1IDg5LjM5NTZMODAuNzUyMyA5My41MTMxSDg2LjQ5MTFaTTg1LjE5NjkgODYuODQ5N1Y5Ny4yMDM5SDgzLjQ4M1Y4Ni44NDk3SDg1LjE5NjlaTTk0LjM4NDggOTEuMTU5MlY5Mi44NTE3Qzk0LjM4NDggOTMuNjYyNCA5NC4zMDQyIDk0LjM1NDYgOTQuMTQzIDk0LjkyODJDOTMuOTg2NSA5NS40OTcxIDkzLjc1OSA5NS45NTk0IDkzLjQ2MDMgOTYuMzE0OUM5My4xNjE2IDk2LjY3MDUgOTIuODAzNyA5Ni45MzEzIDkyLjM4NjUgOTcuMDk3MkM5MS45NzQgOTcuMjYzMSA5MS41MTE4IDk3LjM0NjEgOTAuOTk5NyA5Ny4zNDYxQzkwLjU5MiA5Ny4zNDYxIDkwLjIxMjggOTcuMjkzOSA4OS44NjE5IDk3LjE4OTZDODkuNTE1OCA5Ny4wODUzIDg5LjIwMjkgOTYuOTIxOCA4OC45MjMyIDk2LjY5ODlDODguNjQzNSA5Ni40NzYxIDg4LjQwNDEgOTYuMTg5MyA4OC4yMDUgOTUuODM4NUM4OC4wMTA2IDk1LjQ4MjkgODcuODU4OSA5NS4wNTg2IDg3Ljc0OTggOTQuNTY1NUM4Ny42NDU1IDk0LjA3MjUgODcuNTkzNCA5My41MDEyIDg3LjU5MzQgOTIuODUxN1Y5MS4xNTkyQzg3LjU5MzQgOTAuMzQzNyA4Ny42NzQgODkuNjU2MyA4Ny44MzUyIDg5LjA5NjlDODcuOTk2NCA4OC41MzI3IDg4LjIyNjMgODguMDc1MiA4OC41MjUgODcuNzI0NEM4OC44MjM3IDg3LjM2ODggODkuMTc5MiA4Ny4xMTA0IDg5LjU5MTcgODYuOTQ5M0M5MC4wMDg5IDg2Ljc4ODEgOTAuNDczNSA4Ni43MDc1IDkwLjk4NTUgODYuNzA3NUM5MS4zOTggODYuNzA3NSA5MS43NzczIDg2Ljc1OTYgOTIuMTIzMyA4Ni44NjM5QzkyLjQ3NDIgODYuOTYzNSA5Mi43ODcxIDg3LjEyMjMgOTMuMDYyIDg3LjM0MDRDOTMuMzQxOCA4Ny41NTg1IDkzLjU3ODggODcuODQyOSA5My43NzMyIDg4LjE5MzdDOTMuOTcyMyA4OC41Mzk4IDk0LjEyNCA4OC45NTk0IDk0LjIyODMgODkuNDUyNUM5NC4zMzI2IDg5Ljk0MDggOTQuMzg0OCA5MC41MDk3IDk0LjM4NDggOTEuMTU5MlpNOTIuNjcwOSA5My4wOTM1VjkwLjkwMzJDOTIuNjcwOSA5MC40OTA3IDkyLjY0NzIgOTAuMTI4IDkyLjU5OTggODkuODE1MUM5Mi41NTI0IDg5LjQ5NzUgOTIuNDgxMyA4OS4yMjk2IDkyLjM4NjUgODkuMDExNUM5Mi4yOTY0IDg4Ljc4ODcgOTIuMTgyNiA4OC42MDg2IDkyLjA0NTEgODguNDcxMUM5MS45MDc2IDg4LjMyODkgOTEuNzUxMiA4OC4yMjY5IDkxLjU3NTggODguMTY1M0M5MS40MDA0IDg4LjA5ODkgOTEuMjAzNiA4OC4wNjU3IDkwLjk4NTUgODguMDY1N0M5MC43MiA4OC4wNjU3IDkwLjQ4MyA4OC4xMTc5IDkwLjI3NDQgODguMjIyMkM5MC4wNjU4IDg4LjMyMTcgODkuODkwNCA4OC40ODI5IDg5Ljc0ODEgODguNzA1OEM4OS42MDU5IDg4LjkyODYgODkuNDk2OSA4OS4yMjI1IDg5LjQyMSA4OS41ODc2Qzg5LjM0OTkgODkuOTQ3OSA4OS4zMTQ0IDkwLjM4NjQgODkuMzE0NCA5MC45MDMyVjkzLjA5MzVDODkuMzE0NCA5My41MTA3IDg5LjMzODEgOTMuODc4MSA4OS4zODU1IDk0LjE5NTdDODkuNDMyOSA5NC41MTM0IDg5LjUwNCA5NC43ODYgODkuNTk4OCA5NS4wMTM2Qzg5LjY5MzYgOTUuMjM2NCA4OS44MDc0IDk1LjQyMTMgODkuOTQwMiA5NS41NjgyQzkwLjA3NzYgOTUuNzEwNSA5MC4yMzQxIDk1LjgxNDggOTAuNDA5NSA5NS44ODExQzkwLjU4OTcgOTUuOTQ3NSA5MC43ODY0IDk1Ljk4MDcgOTAuOTk5NyA5NS45ODA3QzkxLjI3IDk1Ljk4MDcgOTEuNTA5NCA5NS45Mjg2IDkxLjcxOCA5NS44MjQzQzkxLjkyNjYgOTUuNzE5OSA5Mi4xMDIgOTUuNTU0IDkyLjI0NDIgOTUuMzI2NUM5Mi4zODY1IDk1LjA5NDEgOTIuNDkzMSA5NC43OTMxIDkyLjU2NDMgOTQuNDIzM0M5Mi42MzU0IDk0LjA1MzUgOTIuNjcwOSA5My42MTAyIDkyLjY3MDkgOTMuMDkzNVoiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPHBhdGggZD0iTTk5LjY2MTMgOTIuMzE5NVY5MS45NzcyQzk5LjY2MTMgOTEuNzMxMyA5OS43MTQ2IDkxLjUwNzYgOTkuODIxMyA5MS4zMDYxQzk5LjkyNzkgOTEuMTA0NiAxMDAuMDgzIDkwLjk0MzEgMTAwLjI4OCA5MC44MjE2QzEwMC40OTIgOTAuNzAwMiAxMDAuNzM4IDkwLjYzOTQgMTAxLjAyNiA5MC42Mzk0QzEwMS4zMjIgOTAuNjM5NCAxMDEuNTcxIDkwLjcwMDIgMTAxLjc3MiA5MC44MjE2QzEwMS45NzcgOTAuOTQzMSAxMDIuMTMyIDkxLjEwNDYgMTAyLjIzOSA5MS4zMDYxQzEwMi4zNDYgOTEuNTA3NiAxMDIuMzk5IDkxLjczMTMgMTAyLjM5OSA5MS45NzcyVjkyLjMxOTVDMTAyLjM5OSA5Mi41NTk1IDEwMi4zNDYgOTIuNzgwMiAxMDIuMjM5IDkyLjk4MTdDMTAyLjEzNSA5My4xODMyIDEwMS45ODEgOTMuMzQ0NyAxMDEuNzc3IDkzLjQ2NjJDMTAxLjU3NSA5My41ODc3IDEwMS4zMjggOTMuNjQ4NCAxMDEuMDM1IDkzLjY0ODRDMTAwLjc0NCA5My42NDg0IDEwMC40OTUgOTMuNTg3NyAxMDAuMjg4IDkzLjQ2NjJDMTAwLjA4MyA5My4zNDQ3IDk5LjkyNzkgOTMuMTgzMiA5OS44MjEzIDkyLjk4MTdDOTkuNzE0NiA5Mi43ODAyIDk5LjY2MTMgOTIuNTU5NSA5OS42NjEzIDkyLjMxOTVaTTEwMC40MDQgOTEuOTc3MlY5Mi4zMTk1QzEwMC40MDQgOTIuNDM4IDEwMC40MjYgOTIuNTUwNiAxMDAuNDcgOTIuNjU3M0MxMDAuNTE4IDkyLjc2MzkgMTAwLjU4OSA5Mi44NDk5IDEwMC42ODQgOTIuOTE1MUMxMDAuNzc4IDkyLjk4MDIgMTAwLjg5NSA5My4wMTI4IDEwMS4wMzUgOTMuMDEyOEMxMDEuMTc3IDkzLjAxMjggMTAxLjI5MiA5Mi45ODAyIDEwMS4zODEgOTIuOTE1MUMxMDEuNDczIDkyLjg0OTkgMTAxLjU0MSA5Mi43NjM5IDEwMS41ODYgOTIuNjU3M0MxMDEuNjMgOTIuNTUwNiAxMDEuNjUyIDkyLjQzOCAxMDEuNjUyIDkyLjMxOTVWOTEuOTc3MkMxMDEuNjUyIDkxLjg1NTggMTAxLjYyOSA5MS43NDE3IDEwMS41ODEgOTEuNjM1QzEwMS41MzcgOTEuNTI1NCAxMDEuNDY5IDkxLjQzOCAxMDEuMzc3IDkxLjM3MjhDMTAxLjI4NSA5MS4zMDc2IDEwMS4xNjggOTEuMjc1IDEwMS4wMjYgOTEuMjc1QzEwMC44ODkgOTEuMjc1IDEwMC43NzQgOTEuMzA3NiAxMDAuNjc5IDkxLjM3MjhDMTAwLjU4NyA5MS40MzggMTAwLjUxOCA5MS41MjU0IDEwMC40NyA5MS42MzVDMTAwLjQyNiA5MS43NDE3IDEwMC40MDQgOTEuODU1OCAxMDAuNDA0IDkxLjk3NzJaTTEwMi43ODEgOTUuOTY0MVY5NS42MTc0QzEwMi43ODEgOTUuMzc0NCAxMDIuODM1IDk1LjE1MjIgMTAyLjk0MSA5NC45NTA3QzEwMy4wNTEgOTQuNzQ5MiAxMDMuMjA4IDk0LjU4NzcgMTAzLjQxMyA5NC40NjYyQzEwMy42MTcgOTQuMzQ0NyAxMDMuODYzIDk0LjI4NCAxMDQuMTUgOTQuMjg0QzEwNC40NDcgOTQuMjg0IDEwNC42OTYgOTQuMzQ0NyAxMDQuODk3IDk0LjQ2NjJDMTA1LjEwMSA5NC41ODc3IDEwNS4yNTYgOTQuNzQ5MiAxMDUuMzU5IDk0Ljk1MDdDMTA1LjQ2NiA5NS4xNTIyIDEwNS41MTkgOTUuMzc0NCAxMDUuNTE5IDk1LjYxNzRWOTUuOTY0MUMxMDUuNTE5IDk2LjIwNyAxMDUuNDY2IDk2LjQyOTMgMTA1LjM1OSA5Ni42MzA3QzEwNS4yNTYgOTYuODMyMiAxMDUuMTAzIDk2Ljk5MzcgMTA0LjkwMSA5Ny4xMTUyQzEwNC43IDk3LjIzNjcgMTA0LjQ1NCA5Ny4yOTc0IDEwNC4xNjQgOTcuMjk3NEMxMDMuODcgOTcuMjk3NCAxMDMuNjIgOTcuMjM2NyAxMDMuNDEzIDk3LjExNTJDMTAzLjIwOCA5Ni45OTM3IDEwMy4wNTEgOTYuODMyMiAxMDIuOTQxIDk2LjYzMDdDMTAyLjgzNSA5Ni40MjkzIDEwMi43ODEgOTYuMjA3IDEwMi43ODEgOTUuOTY0MVpNMTAzLjUyOCA5NS42MTc0Vjk1Ljk2NDFDMTAzLjUyOCA5Ni4wODI2IDEwMy41NTIgOTYuMTk1MiAxMDMuNTk5IDk2LjMwMThDMTAzLjY1IDk2LjQwODUgMTAzLjcyMiA5Ni40OTU5IDEwMy44MTcgOTYuNTY0MUMxMDMuOTEyIDk2LjYyOTMgMTA0LjAyNiA5Ni42NjE5IDEwNC4xNTkgOTYuNjYxOUMxMDQuMzEgOTYuNjYxOSAxMDQuNDMyIDk2LjYyOTMgMTA0LjUyNCA5Ni41NjQxQzEwNC42MTYgOTYuNDk1OSAxMDQuNjgxIDk2LjQxIDEwNC43MTkgOTYuMzA2M0MxMDQuNzYxIDk2LjE5OTYgMTA0Ljc4MSA5Ni4wODU1IDEwNC43ODEgOTUuOTY0MVY5NS42MTc0QzEwNC43ODEgOTUuNDk1OSAxMDQuNzU4IDk1LjM4MTggMTA0LjcxIDk1LjI3NTFDMTA0LjY2NiA5NS4xNjg1IDEwNC41OTYgOTUuMDgyNSAxMDQuNTAxIDk1LjAxNzRDMTA0LjQxIDk0Ljk1MjIgMTA0LjI5MyA5NC45MTk2IDEwNC4xNSA5NC45MTk2QzEwNC4wMTEgOTQuOTE5NiAxMDMuODk1IDk0Ljk1MjIgMTAzLjgwNCA5NS4wMTc0QzEwMy43MTIgOTUuMDgyNSAxMDMuNjQyIDk1LjE2ODUgMTAzLjU5NSA5NS4yNzUxQzEwMy41NSA5NS4zODE4IDEwMy41MjggOTUuNDk1OSAxMDMuNTI4IDk1LjYxNzRaTTEwNC40MTcgOTEuNjU3MkwxMDEuMjU3IDk2LjcxNTJMMTAwLjcxIDk2LjM5OTZMMTAzLjg3IDkxLjM0MTdMMTA0LjQxNyA5MS42NTcyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8L2c+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iMTk5IiBoZWlnaHQ9IjE1OSIgcng9IjMuNSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLW9wYWNpdHk9IjAuMTIiLz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfYl8zNDYxXzM4Mjk1IiB4PSI2OS44NjU2IiB5PSI3Ni4zMTQzIiB3aWR0aD0iNDUuMDYxOCIgaGVpZ2h0PSIyOS45NTg4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjEuNjI0MzQiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfMzgyOTUiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfMzgyOTUiIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjwvZGVmcz4KPC9zdmc+Cg==", "description": "Widget indicates the level of liquid in Horizontal Capsule tank.", "descriptor": { "type": "latest", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} +} \ No newline at end of file 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 9098d1a245..9e779ab110 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": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBvcGFjaXR5PSIwLjEiIGQ9Ik0xMzMuNjczIDU2LjAyNjVDMTM5LjU5OCA1Ni4wMjY1IDE0NS4wMTYgNTkuNDIzMyAxNDguOTc0IDY1LjAyM0MxNTIuOTMyIDcwLjYyMTQgMTU1LjM5NyA3OC4zODM4IDE1NS4zOTcgODYuOTgzNEMxNTUuMzk3IDk1LjU4MyAxNTIuOTMyIDEwMy4zNDUgMTQ4Ljk3NCAxMDguOTQ0QzE0NS4wMTYgMTE0LjU0MyAxMzkuNTk4IDExNy45NCAxMzMuNjczIDExNy45NEMxMjcuNzQ3IDExNy45NCAxMjIuMzI5IDExNC41NDMgMTE4LjM3MSAxMDguOTQ0QzExNC40MTMgMTAzLjM0NSAxMTEuOTQ4IDk1LjU4MyAxMTEuOTQ4IDg2Ljk4MzRDMTExLjk0OCA3OC4zODM4IDExNC40MTMgNzAuNjIxNCAxMTguMzcxIDY1LjAyM0MxMjIuMzI5IDU5LjQyMzMgMTI3Ljc0NyA1Ni4wMjY1IDEzMy42NzMgNTYuMDI2NVoiIGZpbGw9IiM2MjE2RkYiIGZpbGwtb3BhY2l0eT0iMC4wMiIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPG1hc2sgaWQ9Im1hc2swXzM0NjFfNDYxMzQiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQ2IiB5PSI1NyIgd2lkdGg9IjEwOCIgaGVpZ2h0PSI2MCI+CjxtYXNrIGlkPSJwYXRoLTUtaW5zaWRlLTFfMzQ2MV80NjEzNCIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTY2LjMzODUgNTcuNjU1OEM2Ni4zMzUxIDU3LjY1NTggNjYuMzMxNyA1Ny42NTU4IDY2LjMyODIgNTcuNjU1OEM2Ni4zMjQ4IDU3LjY1NTggNjYuMzIxMyA1Ny42NTU4IDY2LjMxNzkgNTcuNjU1OEw2NS43ODUxIDU3LjY1NThWNTcuNjY2M0M1NC45MzgxIDU4LjA4NjMgNDYuMjMzNCA3MS4wNTEyIDQ2LjIzMzQgODYuOTgzM0M0Ni4yMzM0IDEwMi45MTUgNTQuOTM4MSAxMTUuODggNjUuNzg1MSAxMTYuM1YxMTYuMzExSDY2LjMyODJIMTMzLjY2NUgxMzMuNjczSDEzMy42ODFIMTM0LjIxNlYxMTYuM0MxNDUuMDYzIDExNS44OCAxNTMuNzY4IDEwMi45MTUgMTUzLjc2OCA4Ni45ODMzQzE1My43NjggNzEuMDUxMiAxNDUuMDYzIDU4LjA4NjMgMTM0LjIxNiA1Ny42NjYzVjU3LjY1NThIMTMzLjY3M0w2Ni4zMzg1IDU3LjY1NThaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02Ni4zMzg1IDU3LjY1NThDNjYuMzM1MSA1Ny42NTU4IDY2LjMzMTcgNTcuNjU1OCA2Ni4zMjgyIDU3LjY1NThDNjYuMzI0OCA1Ny42NTU4IDY2LjMyMTMgNTcuNjU1OCA2Ni4zMTc5IDU3LjY1NThMNjUuNzg1MSA1Ny42NTU4VjU3LjY2NjNDNTQuOTM4MSA1OC4wODYzIDQ2LjIzMzQgNzEuMDUxMiA0Ni4yMzM0IDg2Ljk4MzNDNDYuMjMzNCAxMDIuOTE1IDU0LjkzODEgMTE1Ljg4IDY1Ljc4NTEgMTE2LjNWMTE2LjMxMUg2Ni4zMjgySDEzMy42NjVIMTMzLjY3M0gxMzMuNjgxSDEzNC4yMTZWMTE2LjNDMTQ1LjA2MyAxMTUuODggMTUzLjc2OCAxMDIuOTE1IDE1My43NjggODYuOTgzM0MxNTMuNzY4IDcxLjA1MTIgMTQ1LjA2MyA1OC4wODYzIDEzNC4yMTYgNTcuNjY2M1Y1Ny42NTU4SDEzMy42NzNMNjYuMzM4NSA1Ny42NTU4WiIgZmlsbD0iIzdGODRGQiIvPgo8cGF0aCBkPSJNNjYuMzM4NSA1Ny42NTU4TDY2LjMzNzcgNTguNzQySDY2LjMzODVWNTcuNjU1OFpNNjYuMzE3OSA1Ny42NTU4VjU4Ljc0Mkw2Ni4zMTg3IDU4Ljc0Mkw2Ni4zMTc5IDU3LjY1NThaTTY1Ljc4NTEgNTcuNjU1OFY1Ni41Njk2TDY0LjY5ODkgNTYuNTY5NlY1Ny42NTU4SDY1Ljc4NTFaTTY1Ljc4NTEgNTcuNjY2M0w2NS44MjcyIDU4Ljc1MTdMNjYuODcxMyA1OC43MTEyVjU3LjY2NjNINjUuNzg1MVpNNjUuNzg1MSAxMTYuM0g2Ni44NzEzVjExNS4yNTVMNjUuODI3MiAxMTUuMjE1TDY1Ljc4NTEgMTE2LjNaTTY1Ljc4NTEgMTE2LjMxMUg2NC42OTg5VjExNy4zOTdINjUuNzg1MVYxMTYuMzExWk0xMzQuMjE2IDExNi4zMTFWMTE3LjM5N0gxMzUuMzAyVjExNi4zMTFIMTM0LjIxNlpNMTM0LjIxNiAxMTYuM0wxMzQuMTc0IDExNS4yMTVMMTMzLjEzIDExNS4yNTVWMTE2LjNIMTM0LjIxNlpNMTUzLjc2OCA4Ni45ODMzSDE1NC44NTRIMTUzLjc2OFpNMTM0LjIxNiA1Ny42NjYzSDEzMy4xM1Y1OC43MTEyTDEzNC4xNzQgNTguNzUxN0wxMzQuMjE2IDU3LjY2NjNaTTEzNC4yMTYgNTcuNjU1OEgxMzUuMzAyVjU2LjU2OTZIMTM0LjIxNlY1Ny42NTU4Wk0xMzMuNjczIDU3LjY1NThWNTYuNTY5NlY1Ny42NTU4Wk02Ni4zMjgyIDU4Ljc0MkM2Ni4zMzE0IDU4Ljc0MiA2Ni4zMzQ2IDU4Ljc0MiA2Ni4zMzc3IDU4Ljc0Mkw2Ni4zMzkzIDU2LjU2OTZDNjYuMzM1NiA1Ni41Njk2IDY2LjMzMTkgNTYuNTY5NiA2Ni4zMjgyIDU2LjU2OTZWNTguNzQyWk02Ni4zMTg3IDU4Ljc0MkM2Ni4zMjE5IDU4Ljc0MiA2Ni4zMjUgNTguNzQyIDY2LjMyODIgNTguNzQyVjU2LjU2OTZDNjYuMzI0NSA1Ni41Njk2IDY2LjMyMDggNTYuNTY5NiA2Ni4zMTcxIDU2LjU2OTZMNjYuMzE4NyA1OC43NDJaTTY2LjMxNzkgNTYuNTY5Nkg2NS43ODUxVjU4Ljc0Mkg2Ni4zMTc5VjU2LjU2OTZaTTY0LjY5ODkgNTcuNjU1OFY1Ny42NjYzSDY2Ljg3MTNWNTcuNjU1OEg2NC42OTg5Wk00Ny4zMTk2IDg2Ljk4MzNDNDcuMzE5NiA3OS4yMDUzIDQ5LjQ0NjIgNzIuMTk2OCA1Mi44NDQ3IDY3LjExMTNDNTYuMjQ3NiA2Mi4wMTk0IDYwLjg1MjQgNTguOTQ0MyA2NS44MjcyIDU4Ljc1MTdMNjUuNzQzMSA1Ni41ODA5QzU5Ljg3MDkgNTYuODA4MyA1NC42OTk4IDYwLjQyNTcgNTEuMDM4NSA2NS45MDQyQzQ3LjM3MyA3MS4zODkyIDQ1LjE0NzIgNzguODI5MyA0NS4xNDcyIDg2Ljk4MzNINDcuMzE5NlpNNjUuODI3MiAxMTUuMjE1QzYwLjg1MjQgMTE1LjAyMiA1Ni4yNDc2IDExMS45NDcgNTIuODQ0NyAxMDYuODU1QzQ5LjQ0NjIgMTAxLjc3IDQ3LjMxOTYgOTQuNzYxNCA0Ny4zMTk2IDg2Ljk4MzNINDUuMTQ3MkM0NS4xNDcyIDk1LjEzNzQgNDcuMzczIDEwMi41NzcgNTEuMDM4NSAxMDguMDYyQzU0LjY5OTggMTEzLjU0MSA1OS44NzA5IDExNy4xNTggNjUuNzQzMSAxMTcuMzg2TDY1LjgyNzIgMTE1LjIxNVpNNjQuNjk4OSAxMTYuM1YxMTYuMzExSDY2Ljg3MTNWMTE2LjNINjQuNjk4OVpNNjUuNzg1MSAxMTcuMzk3SDY2LjMyODJWMTE1LjIyNUg2NS43ODUxVjExNy4zOTdaTTY2LjMyODIgMTE3LjM5N0gxMzMuNjY1VjExNS4yMjVINjYuMzI4MlYxMTcuMzk3Wk0xMzMuNjY1IDExNy4zOTdIMTMzLjY3M1YxMTUuMjI1SDEzMy42NjVWMTE3LjM5N1pNMTMzLjY3MyAxMTcuMzk3SDEzMy42ODFWMTE1LjIyNUgxMzMuNjczVjExNy4zOTdaTTEzMy42ODEgMTE3LjM5N0gxMzQuMjE2VjExNS4yMjVIMTMzLjY4MVYxMTcuMzk3Wk0xMzUuMzAyIDExNi4zMTFWMTE2LjNIMTMzLjEzVjExNi4zMTFIMTM1LjMwMlpNMTM0LjI1OCAxMTcuMzg2QzE0MC4xMyAxMTcuMTU4IDE0NS4zMDEgMTEzLjU0MSAxNDguOTYzIDEwOC4wNjJDMTUyLjYyOCAxMDIuNTc3IDE1NC44NTQgOTUuMTM3NCAxNTQuODU0IDg2Ljk4MzNIMTUyLjY4MkMxNTIuNjgyIDk0Ljc2MTQgMTUwLjU1NSAxMDEuNzcgMTQ3LjE1NyAxMDYuODU1QzE0My43NTQgMTExLjk0NyAxMzkuMTQ5IDExNS4wMjIgMTM0LjE3NCAxMTUuMjE1TDEzNC4yNTggMTE3LjM4NlpNMTU0Ljg1NCA4Ni45ODMzQzE1NC44NTQgNzguODI5MyAxNTIuNjI4IDcxLjM4OTIgMTQ4Ljk2MyA2NS45MDQyQzE0NS4zMDEgNjAuNDI1NyAxNDAuMTMgNTYuODA4MyAxMzQuMjU4IDU2LjU4MDlMMTM0LjE3NCA1OC43NTE3QzEzOS4xNDkgNTguOTQ0MyAxNDMuNzU0IDYyLjAxOTQgMTQ3LjE1NyA2Ny4xMTEzQzE1MC41NTUgNzIuMTk2OCAxNTIuNjgyIDc5LjIwNTMgMTUyLjY4MiA4Ni45ODMzSDE1NC44NTRaTTEzNS4zMDIgNTcuNjY2M1Y1Ny42NTU4SDEzMy4xM1Y1Ny42NjYzSDEzNS4zMDJaTTEzNC4yMTYgNTYuNTY5NkgxMzMuNjczVjU4Ljc0MkgxMzQuMjE2VjU2LjU2OTZaTTEzMy42NzMgNTYuNTY5Nkw2Ni4zMzg1IDU2LjU2OTZWNTguNzQyTDEzMy42NzMgNTguNzQyVjU2LjU2OTZaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtNS1pbnNpZGUtMV8zNDYxXzQ2MTM0KSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMzQ2MV80NjEzNCkiPgo8cmVjdCB4PSI0Ni4yMzM0IiB5PSI5MS4zMjgxIiB3aWR0aD0iMTA3LjUzNCIgaGVpZ2h0PSI1OC42NTUyIiBmaWxsPSIjN0E4QkZGIi8+CjxyZWN0IHg9IjQ2LjIzMzQiIHk9IjkxLjMyODEiIHdpZHRoPSIxMDcuNTM0IiBoZWlnaHQ9IjAuNTQzMTAzIiBmaWxsPSIjN0E4QkZGIi8+CjxyZWN0IHg9IjQ2LjIzMzQiIHk9IjkxLjMyODEiIHdpZHRoPSIxMDcuNTM0IiBoZWlnaHQ9IjAuNTQzMTAzIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjEiLz4KPC9nPgo8bWFzayBpZD0icGF0aC05LWluc2lkZS0yXzM0NjFfNDYxMzQiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02Ni4zMzg5IDU1LjQ4MzRMMTMzLjY3MyA1NS40ODM0TDEzNC4yMTYgNTUuNDgzNEwxMzQuMjE2IDU1LjQ5MjZDMTQ2LjI2MyA1NS45MDA1IDE1NS45NCA2OS44NDMzIDE1NS45NCA4Ni45ODM0QzE1NS45NCAxMDQuMTI0IDE0Ni4yNjMgMTE4LjA2NiAxMzQuMjE2IDExOC40NzRMMTM0LjIxNiAxMTguNDgzTDEzMy42ODEgMTE4LjQ4M0wxMzMuNjczIDExOC40ODNMMTMzLjY2NSAxMTguNDgzTDY1Ljc4NDcgMTE4LjQ4M0w2NS43ODQ3IDExOC40NzRDNTMuNzM3OCAxMTguMDY2IDQ0LjA2MDUgMTA0LjEyNCA0NC4wNjA1IDg2Ljk4MzRDNDQuMDYwNSA2OS44NDMzIDUzLjczNzggNTUuOTAwNSA2NS43ODQ3IDU1LjQ5MjZMNjUuNzg0NyA1NS40ODM0TDY2LjMxNjcgNTUuNDgzNEM2Ni4zMjA0IDU1LjQ4MzQgNjYuMzI0MSA1NS40ODM0IDY2LjMyNzggNTUuNDgzNEM2Ni4zMzE1IDU1LjQ4MzQgNjYuMzM1MiA1NS40ODM0IDY2LjMzODkgNTUuNDgzNFoiLz4KPC9tYXNrPgo8cGF0aCBkPSJNMTM0LjIxNiA1NS40ODM0TDEzNS4zMDIgNTUuNDgzNEwxMzUuMzAyIDU0LjM5NzJMMTM0LjIxNiA1NC4zOTcyTDEzNC4yMTYgNTUuNDgzNFpNMTM0LjIxNiA1NS40OTI2TDEzMy4xMyA1NS40OTI2TDEzMy4xMyA1Ni41NDI2TDEzNC4xNzkgNTYuNTc4MkwxMzQuMjE2IDU1LjQ5MjZaTTEzNC4yMTYgMTE4LjQ3NEwxMzQuMTc5IDExNy4zODlMMTMzLjEzIDExNy40MjRMMTMzLjEzIDExOC40NzRMMTM0LjIxNiAxMTguNDc0Wk0xMzQuMjE2IDExOC40ODNMMTM0LjIxNiAxMTkuNTdMMTM1LjMwMiAxMTkuNTdMMTM1LjMwMiAxMTguNDgzTDEzNC4yMTYgMTE4LjQ4M1pNMTMzLjY4MSAxMTguNDgzTDEzMy42ODEgMTE3LjM5N0wxMzMuNjggMTE3LjM5N0wxMzMuNjgxIDExOC40ODNaTTEzMy42NzMgMTE4LjQ4M0wxMzMuNjcyIDExOS41N0wxMzMuNjczIDExOS41N0wxMzMuNjczIDExOC40ODNaTTEzMy42NjUgMTE4LjQ4M0wxMzMuNjY1IDExNy4zOTdMMTMzLjY2NSAxMTcuMzk3TDEzMy42NjUgMTE4LjQ4M1pNNjUuNzg0NyAxMTguNDgzTDY0LjY5ODUgMTE4LjQ4M0w2NC42OTg1IDExOS41N0w2NS43ODQ3IDExOS41N0w2NS43ODQ3IDExOC40ODNaTTY1Ljc4NDcgMTE4LjQ3NEw2Ni44NzA5IDExOC40NzRMNjYuODcwOSAxMTcuNDI0TDY1LjgyMTQgMTE3LjM4OUw2NS43ODQ3IDExOC40NzRaTTY1Ljc4NDcgNTUuNDkyNkw2NS44MjE0IDU2LjU3ODJMNjYuODcwOSA1Ni41NDI2TDY2Ljg3MDkgNTUuNDkyNkw2NS43ODQ3IDU1LjQ5MjZaTTY1Ljc4NDcgNTUuNDgzNEw2NS43ODQ3IDU0LjM5NzJMNjQuNjk4NSA1NC4zOTcyTDY0LjY5ODUgNTUuNDgzNEw2NS43ODQ3IDU1LjQ4MzRaTTEzMy42NzMgNTQuMzk3Mkw2Ni4zMzg5IDU0LjM5NzJMNjYuMzM4OSA1Ni41Njk2TDEzMy42NzMgNTYuNTY5NkwxMzMuNjczIDU0LjM5NzJaTTEzNC4yMTYgNTQuMzk3MkwxMzMuNjczIDU0LjM5NzJMMTMzLjY3MyA1Ni41Njk2TDEzNC4yMTYgNTYuNTY5NkwxMzQuMjE2IDU0LjM5NzJaTTEzNS4zMDIgNTUuNDkyNkwxMzUuMzAyIDU1LjQ4MzRMMTMzLjEzIDU1LjQ4MzRMMTMzLjEzIDU1LjQ5MjZMMTM1LjMwMiA1NS40OTI2Wk0xNTcuMDI2IDg2Ljk4MzRDMTU3LjAyNiA3OC4yMTggMTU0LjU1MyA3MC4yMjYzIDE1MC40ODkgNjQuMzQ1OEMxNDYuNDI3IDU4LjQ2OTMgMTQwLjcxMiA1NC42MjU3IDEzNC4yNTIgNTQuNDA3TDEzNC4xNzkgNTYuNTc4MkMxMzkuNzY3IDU2Ljc2NzQgMTQ0LjkxMyA2MC4wOTkyIDE0OC43MDIgNjUuNTgxQzE1Mi40ODggNzEuMDU4OSAxNTQuODU0IDc4LjYwODYgMTU0Ljg1NCA4Ni45ODM0TDE1Ny4wMjYgODYuOTgzNFpNMTM0LjI1MiAxMTkuNTZDMTQwLjcxMiAxMTkuMzQxIDE0Ni40MjcgMTE1LjQ5OCAxNTAuNDg5IDEwOS42MjFDMTU0LjU1MyAxMDMuNzQgMTU3LjAyNiA5NS43NDg4IDE1Ny4wMjYgODYuOTgzNEwxNTQuODU0IDg2Ljk4MzRDMTU0Ljg1NCA5NS4zNTgxIDE1Mi40ODggMTAyLjkwOCAxNDguNzAyIDEwOC4zODZDMTQ0LjkxMyAxMTMuODY4IDEzOS43NjcgMTE3LjE5OSAxMzQuMTc5IDExNy4zODlMMTM0LjI1MiAxMTkuNTZaTTEzNS4zMDIgMTE4LjQ4M0wxMzUuMzAyIDExOC40NzRMMTMzLjEzIDExOC40NzRMMTMzLjEzIDExOC40ODNMMTM1LjMwMiAxMTguNDgzWk0xMzMuNjgxIDExOS41N0wxMzQuMjE2IDExOS41N0wxMzQuMjE2IDExNy4zOTdMMTMzLjY4MSAxMTcuMzk3TDEzMy42ODEgMTE5LjU3Wk0xMzMuNjczIDExOS41N0wxMzMuNjgxIDExOS41N0wxMzMuNjggMTE3LjM5N0wxMzMuNjcyIDExNy4zOTdMMTMzLjY3MyAxMTkuNTdaTTEzMy42NjQgMTE5LjU3TDEzMy42NzIgMTE5LjU3TDEzMy42NzMgMTE3LjM5N0wxMzMuNjY1IDExNy4zOTdMMTMzLjY2NCAxMTkuNTdaTTY1Ljc4NDcgMTE5LjU3TDEzMy42NjUgMTE5LjU3TDEzMy42NjUgMTE3LjM5N0w2NS43ODQ3IDExNy4zOTdMNjUuNzg0NyAxMTkuNTdaTTY0LjY5ODUgMTE4LjQ3NEw2NC42OTg1IDExOC40ODNMNjYuODcwOSAxMTguNDgzTDY2Ljg3MDkgMTE4LjQ3NEw2NC42OTg1IDExOC40NzRaTTY1LjgyMTQgMTE3LjM4OUM2MC4yMzM1IDExNy4xOTkgNTUuMDg3MyAxMTMuODY4IDUxLjI5ODYgMTA4LjM4NkM0Ny41MTI1IDEwMi45MDggNDUuMTQ2OCA5NS4zNTgyIDQ1LjE0NjggODYuOTgzNEw0Mi45NzQzIDg2Ljk4MzRDNDIuOTc0MyA5NS43NDg4IDQ1LjQ0NzIgMTAzLjc0IDQ5LjUxMTUgMTA5LjYyMUM1My41NzMxIDExNS40OTggNTkuMjg4OSAxMTkuMzQxIDY1Ljc0NzkgMTE5LjU2TDY1LjgyMTQgMTE3LjM4OVpNNDUuMTQ2OCA4Ni45ODM0QzQ1LjE0NjggNzguNjA4NiA0Ny41MTI1IDcxLjA1ODkgNTEuMjk4NiA2NS41ODFDNTUuMDg3MyA2MC4wOTkyIDYwLjIzMzUgNTYuNzY3NCA2NS44MjE0IDU2LjU3ODJMNjUuNzQ3OSA1NC40MDdDNTkuMjg4OSA1NC42MjU3IDUzLjU3MyA1OC40NjkzIDQ5LjUxMTUgNjQuMzQ1OEM0NS40NDcyIDcwLjIyNjMgNDIuOTc0MyA3OC4yMTggNDIuOTc0MyA4Ni45ODM0TDQ1LjE0NjggODYuOTgzNFpNNjQuNjk4NSA1NS40ODM0TDY0LjY5ODUgNTUuNDkyNkw2Ni44NzA5IDU1LjQ5MjZMNjYuODcwOSA1NS40ODM0TDY0LjY5ODUgNTUuNDgzNFpNNjYuMzE2NyA1NC4zOTcyTDY1Ljc4NDcgNTQuMzk3Mkw2NS43ODQ3IDU2LjU2OTZMNjYuMzE2NyA1Ni41Njk2TDY2LjMxNjcgNTQuMzk3MlpNNjYuMzE2NyA1Ni41Njk2QzY2LjMxODkgNTYuNTY5NiA2Ni4zMjEgNTYuNTY5NiA2Ni4zMjI4IDU2LjU2OTZDNjYuMzI0NyA1Ni41Njk2IDY2LjMyNjMgNTYuNTY5NiA2Ni4zMjc4IDU2LjU2OTZMNjYuMzI3OCA1NC4zOTcyQzY2LjMyNTYgNTQuMzk3MiA2Ni4zMjM1IDU0LjM5NzIgNjYuMzIxNyA1NC4zOTcyQzY2LjMxOTggNTQuMzk3MiA2Ni4zMTgyIDU0LjM5NzIgNjYuMzE2NyA1NC4zOTcyTDY2LjMxNjcgNTYuNTY5NlpNNjYuMzI3OCA1Ni41Njk2QzY2LjMyOTMgNTYuNTY5NiA2Ni4zMzA5IDU2LjU2OTYgNjYuMzMyOCA1Ni41Njk2QzY2LjMzNDYgNTYuNTY5NiA2Ni4zMzY3IDU2LjU2OTYgNjYuMzM4OSA1Ni41Njk2TDY2LjMzODkgNTQuMzk3MkM2Ni4zMzczIDU0LjM5NzIgNjYuMzM1OCA1NC4zOTcyIDY2LjMzMzkgNTQuMzk3MkM2Ni4zMzIxIDU0LjM5NzIgNjYuMzMgNTQuMzk3MiA2Ni4zMjc4IDU0LjM5NzJMNjYuMzI3OCA1Ni41Njk2WiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTktaW5zaWRlLTJfMzQ2MV80NjEzNCkiLz4KPHBhdGggZD0iTTY2LjMyNzggNTYuMDI2NUM3Mi4yNTMzIDU2LjAyNjUgNzcuNjcxMiA1OS40MjMzIDgxLjYyOTYgNjUuMDIzQzg1LjU4NzEgNzAuNjIxNCA4OC4wNTE5IDc4LjM4MzggODguMDUxOSA4Ni45ODM0Qzg4LjA1MTkgOTUuNTgzIDg1LjU4NzEgMTAzLjM0NSA4MS42Mjk2IDEwOC45NDRDNzcuNjcxMiAxMTQuNTQzIDcyLjI1MzMgMTE3Ljk0IDY2LjMyNzggMTE3Ljk0QzYwLjQwMjMgMTE3Ljk0IDU0Ljk4NDQgMTE0LjU0MyA1MS4wMjYgMTA4Ljk0NEM0Ny4wNjg1IDEwMy4zNDUgNDQuNjAzNiA5NS41ODMgNDQuNjAzNiA4Ni45ODM0QzQ0LjYwMzYgNzguMzgzOCA0Ny4wNjg1IDcwLjYyMTQgNTEuMDI2IDY1LjAyM0M1NC45ODQ0IDU5LjQyMzMgNjAuNDAyMyA1Ni4wMjY1IDY2LjMyNzggNTYuMDI2NVoiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJwYXRoLTEyLWluc2lkZS0zXzM0NjFfNDYxMzQiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMDkuNzc2IDQ2Ljc5MzdIOTQuMDI2NFY1Ni41Njk2Qzk0LjAyNjQgNTcuNDY5NCA5Ny41NTIxIDU4LjE5ODkgMTAxLjkwMSA1OC4xOTg5QzEwNi4yNTEgNTguMTk4OSAxMDkuNzc2IDU3LjQ2OTQgMTA5Ljc3NiA1Ni41Njk2VjQ2Ljc5MzdaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMDkuNzc2IDQ2Ljc5MzdIOTQuMDI2NFY1Ni41Njk2Qzk0LjAyNjQgNTcuNDY5NCA5Ny41NTIxIDU4LjE5ODkgMTAxLjkwMSA1OC4xOTg5QzEwNi4yNTEgNTguMTk4OSAxMDkuNzc2IDU3LjQ2OTQgMTA5Ljc3NiA1Ni41Njk2VjQ2Ljc5MzdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTQuMDI2NCA0Ni43OTM3VjQ1LjcwNzVIOTIuOTQwMlY0Ni43OTM3SDk0LjAyNjRaTTEwOS43NzYgNDYuNzkzN0gxMTAuODYzVjQ1LjcwNzVIMTA5Ljc3NlY0Ni43OTM3Wk05NC4wMjY0IDQ3Ljg3OTlIMTA5Ljc3NlY0NS43MDc1SDk0LjAyNjRWNDcuODc5OVpNOTUuMTEyNiA1Ni41Njk2VjQ2Ljc5MzdIOTIuOTQwMlY1Ni41Njk2SDk1LjExMjZaTTEwMS45MDEgNTcuMTEyN0M5OS43Nzc3IDU3LjExMjcgOTcuODg2MiA1Ni45MzM4IDk2LjU1MyA1Ni42NThDOTUuODc3NCA1Ni41MTgyIDk1LjQwMjQgNTYuMzY0OSA5NS4xMjI1IDU2LjIyOEM5NC45ODA0IDU2LjE1ODUgOTQuOTQ0NiA1Ni4xMTk5IDk0Ljk1ODYgNTYuMTM0MUM5NC45NzYgNTYuMTUxNiA5NS4xMTI2IDU2LjMwMDYgOTUuMTEyNiA1Ni41Njk2SDkyLjk0MDJDOTIuOTQwMiA1Ny4wNjM1IDkzLjE4NyA1Ny40MzIxIDkzLjQxNDEgNTcuNjYxN0M5My42Mzc5IDU3Ljg4ODEgOTMuOTExNiA1OC4wNTQxIDk0LjE2NzkgNTguMTc5NUM5NC42ODUxIDU4LjQzMjUgOTUuMzYzMyA1OC42MzAzIDk2LjExMjggNTguNzg1M0M5Ny42Mjk4IDU5LjA5OTIgOTkuNjc1OCA1OS4yODUxIDEwMS45MDEgNTkuMjg1MVY1Ny4xMTI3Wk0xMDguNjkgNTYuNTY5NkMxMDguNjkgNTYuMzAwNiAxMDguODI3IDU2LjE1MTYgMTA4Ljg0NCA1Ni4xMzQxQzEwOC44NTggNTYuMTE5OSAxMDguODIyIDU2LjE1ODUgMTA4LjY4IDU2LjIyOEMxMDguNCA1Ni4zNjQ5IDEwNy45MjUgNTYuNTE4MiAxMDcuMjUgNTYuNjU4QzEwNS45MTcgNTYuOTMzOCAxMDQuMDI1IDU3LjExMjcgMTAxLjkwMSA1Ny4xMTI3VjU5LjI4NTFDMTA0LjEyNyA1OS4yODUxIDEwNi4xNzMgNTkuMDk5MiAxMDcuNjkgNTguNzg1M0MxMDguNDM5IDU4LjYzMDMgMTA5LjExOCA1OC40MzI1IDEwOS42MzUgNTguMTc5NUMxMDkuODkxIDU4LjA1NDEgMTEwLjE2NSA1Ny44ODgxIDExMC4zODkgNTcuNjYxN0MxMTAuNjE2IDU3LjQzMjEgMTEwLjg2MyA1Ny4wNjM1IDExMC44NjMgNTYuNTY5NkgxMDguNjlaTTEwOC42OSA0Ni43OTM3VjU2LjU2OTZIMTEwLjg2M1Y0Ni43OTM3SDEwOC42OVoiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC0xMi1pbnNpZGUtM18zNDYxXzQ2MTM0KSIvPgo8cGF0aCBkPSJNMTA5LjQzMiA0Ny4xOTY1QzEwOS41NDcgNDcuMjQ4OSAxMDkuNjMxIDQ3LjI5NjYgMTA5LjY5IDQ3LjMzNjhDMTA5LjYzMSA0Ny4zNzcxIDEwOS41NDcgNDcuNDI0OCAxMDkuNDMyIDQ3LjQ3NzJDMTA5LjA2MyA0Ny42NDU5IDEwOC40OTUgNDcuODExNiAxMDcuNzUxIDQ3Ljk1NTdDMTA2LjI3MSA0OC4yNDIyIDEwNC4yMDIgNDguNDIzIDEwMS45MDIgNDguNDIzQzk5LjYwMDcgNDguNDIzIDk3LjUzMjQgNDguMjQyMiA5Ni4wNTIyIDQ3Ljk1NTdDOTUuMzA3NyA0Ny44MTE2IDk0LjczOTcgNDcuNjQ1OSA5NC4zNzA5IDQ3LjQ3NzJDOTQuMjU2NSA0Ny40MjQ4IDk0LjE3MjQgNDcuMzc3MSA5NC4xMTI2IDQ3LjMzNjhDOTQuMTcyNCA0Ny4yOTY1IDk0LjI1NjUgNDcuMjQ4OSA5NC4zNzA5IDQ3LjE5NjVDOTQuNzM5NyA0Ny4wMjc3IDk1LjMwNzcgNDYuODYyIDk2LjA1MjIgNDYuNzE3OUM5Ny41MzI0IDQ2LjQzMTUgOTkuNjAwNyA0Ni4yNTA2IDEwMS45MDIgNDYuMjUwNkMxMDQuMjAyIDQ2LjI1MDYgMTA2LjI3MSA0Ni40MzE1IDEwNy43NTEgNDYuNzE3OUMxMDguNDk1IDQ2Ljg2MiAxMDkuMDYzIDQ3LjAyNzcgMTA5LjQzMiA0Ny4xOTY1WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xMDkuNDMyIDQ1LjU2NzFDMTA5LjU0NyA0NS42MTk1IDEwOS42MzEgNDUuNjY3MiAxMDkuNjkgNDUuNzA3NEMxMDkuNjMxIDQ1Ljc0NzcgMTA5LjU0NyA0NS43OTU0IDEwOS40MzIgNDUuODQ3OEMxMDkuMDYzIDQ2LjAxNjUgMTA4LjQ5NSA0Ni4xODIyIDEwNy43NTEgNDYuMzI2M0MxMDYuMjcxIDQ2LjYxMjggMTA0LjIwMiA0Ni43OTM2IDEwMS45MDIgNDYuNzkzNkM5OS42MDA3IDQ2Ljc5MzYgOTcuNTMyNCA0Ni42MTI4IDk2LjA1MjIgNDYuMzI2M0M5NS4zMDc3IDQ2LjE4MjIgOTQuNzM5NyA0Ni4wMTY1IDk0LjM3MDkgNDUuODQ3OEM5NC4yNTY1IDQ1Ljc5NTQgOTQuMTcyNCA0NS43NDc3IDk0LjExMjYgNDUuNzA3NEM5NC4xNzI0IDQ1LjY2NzIgOTQuMjU2NSA0NS42MTk1IDk0LjM3MDkgNDUuNTY3MUM5NC43Mzk3IDQ1LjM5ODMgOTUuMzA3NyA0NS4yMzI3IDk2LjA1MjIgNDUuMDg4NUM5Ny41MzI0IDQ0LjgwMjEgOTkuNjAwNyA0NC42MjEyIDEwMS45MDIgNDQuNjIxMkMxMDQuMjAyIDQ0LjYyMTIgMTA2LjI3MSA0NC44MDIxIDEwNy43NTEgNDUuMDg4NUMxMDguNDk1IDQ1LjIzMjcgMTA5LjA2MyA0NS4zOTgzIDEwOS40MzIgNDUuNTY3MVoiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMF9iXzM0NjFfNDYxMzQpIj4KPHJlY3QgeD0iMTAwLjI3IiB5PSI3NS44MzQ1IiB3aWR0aD0iMzguNTY0MSIgaGVpZ2h0PSIyMy40NjE1IiByeD0iMi4xNjU3OSIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNMTEzLjY0NiA4OS43ODQ1VjkxLjE0OTlIMTA2LjE3OUwxMDYuMTIzIDkwLjExODhMMTEwLjU4OSA4My4xMjEySDExMS45NjFMMTEwLjQ3NSA4NS42NjdMMTA3LjkwOCA4OS43ODQ1SDExMy42NDZaTTExMi4zNTIgODMuMTIxMlY5My40NzUzSDExMC42MzhWODMuMTIxMkgxMTIuMzUyWk0xMjEuNTQgODcuNDMwN1Y4OS4xMjMyQzEyMS41NCA4OS45MzM5IDEyMS40NTkgOTAuNjI2IDEyMS4yOTggOTEuMTk5N0MxMjEuMTQyIDkxLjc2ODYgMTIwLjkxNCA5Mi4yMzA5IDEyMC42MTYgOTIuNTg2NEMxMjAuMzE3IDkyLjk0MiAxMTkuOTU5IDkzLjIwMjcgMTE5LjU0MiA5My4zNjg3QzExOS4xMjkgOTMuNTM0NiAxMTguNjY3IDkzLjYxNzYgMTE4LjE1NSA5My42MTc2QzExNy43NDcgOTMuNjE3NiAxMTcuMzY4IDkzLjU2NTQgMTE3LjAxNyA5My40NjExQzExNi42NzEgOTMuMzU2OCAxMTYuMzU4IDkzLjE5MzMgMTE2LjA3OSA5Mi45NzA0QzExNS43OTkgOTIuNzQ3NiAxMTUuNTU5IDkyLjQ2MDggMTE1LjM2IDkyLjExQzExNS4xNjYgOTEuNzU0NCAxMTUuMDE0IDkxLjMzMDEgMTE0LjkwNSA5MC44MzdDMTE0LjgwMSA5MC4zNDQgMTE0Ljc0OSA4OS43NzI3IDExNC43NDkgODkuMTIzMlY4Ny40MzA3QzExNC43NDkgODYuNjE1MiAxMTQuODI5IDg1LjkyNzggMTE0Ljk5IDg1LjM2ODRDMTE1LjE1MiA4NC44MDQyIDExNS4zODIgODQuMzQ2NyAxMTUuNjggODMuOTk1OUMxMTUuOTc5IDgzLjY0MDMgMTE2LjMzNSA4My4zODE5IDExNi43NDcgODMuMjIwN0MxMTcuMTY0IDgzLjA1OTUgMTE3LjYyOSA4Mi45Nzg5IDExOC4xNDEgODIuOTc4OUMxMTguNTUzIDgyLjk3ODkgMTE4LjkzMyA4My4wMzExIDExOS4yNzkgODMuMTM1NEMxMTkuNjI5IDgzLjIzNSAxMTkuOTQyIDgzLjM5MzggMTIwLjIxNyA4My42MTE5QzEyMC40OTcgODMuODI5OSAxMjAuNzM0IDg0LjExNDQgMTIwLjkyOCA4NC40NjUyQzEyMS4xMjggODQuODExMyAxMjEuMjc5IDg1LjIzMDkgMTIxLjM4NCA4NS43MjM5QzEyMS40ODggODYuMjEyMyAxMjEuNTQgODYuNzgxMiAxMjEuNTQgODcuNDMwN1pNMTE5LjgyNiA4OS4zNjVWODcuMTc0N0MxMTkuODI2IDg2Ljc2MjIgMTE5LjgwMiA4Ni4zOTk1IDExOS43NTUgODYuMDg2NkMxMTkuNzA4IDg1Ljc2OSAxMTkuNjM3IDg1LjUwMTEgMTE5LjU0MiA4NS4yODNDMTE5LjQ1MiA4NS4wNjAyIDExOS4zMzggODQuODgwMSAxMTkuMiA4NC43NDI2QzExOS4wNjMgODQuNjAwMyAxMTguOTA2IDg0LjQ5ODQgMTE4LjczMSA4NC40MzY4QzExOC41NTYgODQuMzcwNCAxMTguMzU5IDg0LjMzNzIgMTE4LjE0MSA4NC4zMzcyQzExNy44NzUgODQuMzM3MiAxMTcuNjM4IDg0LjM4OTQgMTE3LjQzIDg0LjQ5MzdDMTE3LjIyMSA4NC41OTMyIDExNy4wNDYgODQuNzU0NCAxMTYuOTAzIDg0Ljk3NzJDMTE2Ljc2MSA4NS4yMDAxIDExNi42NTIgODUuNDk0IDExNi41NzYgODUuODU5MUMxMTYuNTA1IDg2LjIxOTQgMTE2LjQ3IDg2LjY1NzkgMTE2LjQ3IDg3LjE3NDdWODkuMzY1QzExNi40NyA4OS43ODIyIDExNi40OTMgOTAuMTQ5NiAxMTYuNTQxIDkwLjQ2NzJDMTE2LjU4OCA5MC43ODQ5IDExNi42NTkgOTEuMDU3NSAxMTYuNzU0IDkxLjI4NUMxMTYuODQ5IDkxLjUwNzkgMTE2Ljk2MyA5MS42OTI4IDExNy4wOTUgOTEuODM5N0MxMTcuMjMzIDkxLjk4MiAxMTcuMzg5IDkyLjA4NjMgMTE3LjU2NSA5Mi4xNTI2QzExNy43NDUgOTIuMjE5IDExNy45NDIgOTIuMjUyMiAxMTguMTU1IDkyLjI1MjJDMTE4LjQyNSA5Mi4yNTIyIDExOC42NjUgOTIuMiAxMTguODczIDkyLjA5NTdDMTE5LjA4MiA5MS45OTE0IDExOS4yNTcgOTEuODI1NSAxMTkuNCA5MS41OTc5QzExOS41NDIgOTEuMzY1NiAxMTkuNjQ4IDkxLjA2NDYgMTE5LjcyIDkwLjY5NDhDMTE5Ljc5MSA5MC4zMjUgMTE5LjgyNiA4OS44ODE3IDExOS44MjYgODkuMzY1WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNMTI2LjgxNyA4OC41OTFWODguMjQ4N0MxMjYuODE3IDg4LjAwMjggMTI2Ljg3IDg3Ljc3OTEgMTI2Ljk3NyA4Ny41Nzc2QzEyNy4wODMgODcuMzc2MSAxMjcuMjM5IDg3LjIxNDYgMTI3LjQ0MyA4Ny4wOTMxQzEyNy42NDggODYuOTcxNiAxMjcuODk0IDg2LjkxMDkgMTI4LjE4MSA4Ni45MTA5QzEyOC40NzcgODYuOTEwOSAxMjguNzI2IDg2Ljk3MTYgMTI4LjkyOCA4Ny4wOTMxQzEyOS4xMzIgODcuMjE0NiAxMjkuMjg4IDg3LjM3NjEgMTI5LjM5NCA4Ny41Nzc2QzEyOS41MDEgODcuNzc5MSAxMjkuNTU0IDg4LjAwMjggMTI5LjU1NCA4OC4yNDg3Vjg4LjU5MUMxMjkuNTU0IDg4LjgzMSAxMjkuNTAxIDg5LjA1MTcgMTI5LjM5NCA4OS4yNTMyQzEyOS4yOTEgODkuNDU0NyAxMjkuMTM3IDg5LjYxNjIgMTI4LjkzMiA4OS43Mzc3QzEyOC43MzEgODkuODU5MiAxMjguNDgzIDg5LjkxOTkgMTI4LjE5IDg5LjkxOTlDMTI3LjkgODkuOTE5OSAxMjcuNjUxIDg5Ljg1OTIgMTI3LjQ0MyA4OS43Mzc3QzEyNy4yMzkgODkuNjE2MiAxMjcuMDgzIDg5LjQ1NDcgMTI2Ljk3NyA4OS4yNTMyQzEyNi44NyA4OS4wNTE3IDEyNi44MTcgODguODMxIDEyNi44MTcgODguNTkxWk0xMjcuNTU5IDg4LjI0ODdWODguNTkxQzEyNy41NTkgODguNzA5NSAxMjcuNTgxIDg4LjgyMjEgMTI3LjYyNSA4OC45Mjg3QzEyNy42NzMgODkuMDM1NCAxMjcuNzQ0IDg5LjEyMTMgMTI3LjgzOSA4OS4xODY1QzEyNy45MzQgODkuMjUxNyAxMjguMDUxIDg5LjI4NDMgMTI4LjE5IDg5LjI4NDNDMTI4LjMzMiA4OS4yODQzIDEyOC40NDggODkuMjUxNyAxMjguNTM3IDg5LjE4NjVDMTI4LjYyOCA4OS4xMjEzIDEyOC42OTcgODkuMDM1NCAxMjguNzQxIDg4LjkyODdDMTI4Ljc4NSA4OC44MjIxIDEyOC44MDggODguNzA5NSAxMjguODA4IDg4LjU5MVY4OC4yNDg3QzEyOC44MDggODguMTI3MiAxMjguNzg0IDg4LjAxMzIgMTI4LjczNyA4Ny45MDY1QzEyOC42OTIgODcuNzk2OSAxMjguNjI0IDg3LjcwOTQgMTI4LjUzMiA4Ny42NDQzQzEyOC40NCA4Ny41NzkxIDEyOC4zMjMgODcuNTQ2NSAxMjguMTgxIDg3LjU0NjVDMTI4LjA0NSA4Ny41NDY1IDEyNy45MjkgODcuNTc5MSAxMjcuODM0IDg3LjY0NDNDMTI3Ljc0MiA4Ny43MDk0IDEyNy42NzMgODcuNzk2OSAxMjcuNjI1IDg3LjkwNjVDMTI3LjU4MSA4OC4wMTMyIDEyNy41NTkgODguMTI3MiAxMjcuNTU5IDg4LjI0ODdaTTEyOS45MzcgOTIuMjM1NVY5MS44ODg5QzEyOS45MzcgOTEuNjQ1OSAxMjkuOTkgOTEuNDIzNyAxMzAuMDk3IDkxLjIyMjJDMTMwLjIwNiA5MS4wMjA3IDEzMC4zNjMgOTAuODU5MiAxMzAuNTY4IDkwLjczNzdDMTMwLjc3MiA5MC42MTYyIDEzMS4wMTggOTAuNTU1NSAxMzEuMzA2IDkwLjU1NTVDMTMxLjYwMiA5MC41NTU1IDEzMS44NTEgOTAuNjE2MiAxMzIuMDUyIDkwLjczNzdDMTMyLjI1NyA5MC44NTkyIDEzMi40MTEgOTEuMDIwNyAxMzIuNTE1IDkxLjIyMjJDMTMyLjYyMSA5MS40MjM3IDEzMi42NzUgOTEuNjQ1OSAxMzIuNjc1IDkxLjg4ODlWOTIuMjM1NUMxMzIuNjc1IDkyLjQ3ODUgMTMyLjYyMSA5Mi43MDA3IDEzMi41MTUgOTIuOTAyMkMxMzIuNDExIDkzLjEwMzcgMTMyLjI1OCA5My4yNjUyIDEzMi4wNTcgOTMuMzg2N0MxMzEuODU1IDkzLjUwODIgMTMxLjYwOSA5My41Njg5IDEzMS4zMTkgOTMuNTY4OUMxMzEuMDI2IDkzLjU2ODkgMTMwLjc3NSA5My41MDgyIDEzMC41NjggOTMuMzg2N0MxMzAuMzYzIDkzLjI2NTIgMTMwLjIwNiA5My4xMDM3IDEzMC4wOTcgOTIuOTAyMkMxMjkuOTkgOTIuNzAwNyAxMjkuOTM3IDkyLjQ3ODUgMTI5LjkzNyA5Mi4yMzU1Wk0xMzAuNjgzIDkxLjg4ODlWOTIuMjM1NUMxMzAuNjgzIDkyLjM1NDEgMTMwLjcwNyA5Mi40NjY3IDEzMC43NTQgOTIuNTczM0MxMzAuODA1IDkyLjY4IDEzMC44NzcgOTIuNzY3NCAxMzAuOTcyIDkyLjgzNTZDMTMxLjA2NyA5Mi45MDA3IDEzMS4xODEgOTIuOTMzMyAxMzEuMzE0IDkyLjkzMzNDMTMxLjQ2NiA5Mi45MzMzIDEzMS41ODcgOTIuOTAwNyAxMzEuNjc5IDkyLjgzNTZDMTMxLjc3MSA5Mi43Njc0IDEzMS44MzYgOTIuNjgxNSAxMzEuODc0IDkyLjU3NzhDMTMxLjkxNiA5Mi40NzExIDEzMS45MzcgOTIuMzU3IDEzMS45MzcgOTIuMjM1NVY5MS44ODg5QzEzMS45MzcgOTEuNzY3NCAxMzEuOTEzIDkxLjY1MzMgMTMxLjg2NiA5MS41NDY2QzEzMS44MjEgOTEuNDQgMTMxLjc1MiA5MS4zNTQgMTMxLjY1NyA5MS4yODg4QzEzMS41NjUgOTEuMjIzNiAxMzEuNDQ4IDkxLjE5MTEgMTMxLjMwNiA5MS4xOTExQzEzMS4xNjYgOTEuMTkxMSAxMzEuMDUxIDkxLjIyMzYgMTMwLjk1OSA5MS4yODg4QzEzMC44NjcgOTEuMzU0IDEzMC43OTcgOTEuNDQgMTMwLjc1IDkxLjU0NjZDMTMwLjcwNiA5MS42NTMzIDEzMC42ODMgOTEuNzY3NCAxMzAuNjgzIDkxLjg4ODlaTTEzMS41NzIgODcuOTI4N0wxMjguNDEyIDkyLjk4NjdMMTI3Ljg2NSA5Mi42NzExTDEzMS4wMjYgODcuNjEzMUwxMzEuNTcyIDg3LjkyODdaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjwvZz4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxOTkiIGhlaWdodD0iMTU5IiByeD0iMy41IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4xMiIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzM0NjFfNDYxMzQiIHg9Ijk3LjAyMDkiIHk9IjcyLjU4NTgiIHdpZHRoPSI0NS4wNjE4IiBoZWlnaHQ9IjI5Ljk1ODgiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iMS42MjQzNCIvPgo8ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMzQ2MV80NjEzNCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMzQ2MV80NjEzNCIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K", "description": "Widget indicates the level of liquid in Horizontal Cylinder tank.", "descriptor": { "type": "latest", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} +} \ No newline at end of file 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 9a33d349b2..cae54462f2 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", "name": "Horizontal Dish Ends tank", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUxLjY2MzYgNTcuMDc4MUgxNDguMzM2VjEyNi41OTVINTEuNjYzNlY1Ny4wNzgxWk01MS42NjM2IDEyNi41OTVMNTEuNjYzNSA1Ny4wNzgxQzUxLjY2MzUgNTcuMDc4MSA0MS44ODc3IDY3LjM5NzEgNDEuODg3NyA5MS44MzY4QzQxLjg4NzcgMTE2LjI3NiA1MS42NjM2IDEyNi41OTUgNTEuNjYzNiAxMjYuNTk1Wk0xNDguMzM2IDEyNi41OTVMMTQ4LjMzNiA1Ny4wNzgxQzE0OC4zMzYgNTcuMDc4MSAxNTguMTEyIDY3LjM5NzEgMTU4LjExMiA5MS44MzY4QzE1OC4xMTIgMTE2LjI3NiAxNDguMzM2IDEyNi41OTUgMTQ4LjMzNiAxMjYuNTk1WiIgZmlsbD0iIzYyMTZGRiIgZmlsbC1vcGFjaXR5PSIwLjAyIi8+CjxwYXRoIGQ9Ik0xNDguMzM2IDU3LjA3ODFIMTQ4Ljg3OVY1Ni41MzVIMTQ4LjMzNlY1Ny4wNzgxWk01MS42NjM2IDU3LjA3ODFWNTYuNTM1SDUxLjEyMDVWNTcuMDc4MUg1MS42NjM2Wk01MS42NjM1IDU3LjA3ODFMNTIuMjA2NiA1Ny4wNzgxTDUyLjIwNjYgNTUuNzE1Mkw1MS4yNjkyIDU2LjcwNDZMNTEuNjYzNSA1Ny4wNzgxWk0xNDguMzM2IDU3LjA3ODFMMTQ4LjczIDU2LjcwNDZMMTQ3Ljc5MyA1NS43MTUyVjU3LjA3ODFMMTQ4LjMzNiA1Ny4wNzgxWk0xNDguMzM2IDU2LjUzNUg1MS42NjM2VjU3LjYyMTJIMTQ4LjMzNlY1Ni41MzVaTTE0OC44NzkgMTI2LjU5NVY1Ny4wNzgxSDE0Ny43OTNWMTI2LjU5NUgxNDguODc5Wk01MS42NjM2IDEyNy4xMzhIMTQ4LjMzNlYxMjYuMDUySDUxLjY2MzZWMTI3LjEzOFpNNTEuMTIwNSA1Ny4wNzgxVjEyNi41OTVINTIuMjA2N1Y1Ny4wNzgxSDUxLjEyMDVaTTUyLjIwNjcgMTI2LjU5NUw1Mi4yMDY2IDU3LjA3ODFMNTEuMTIwNCA1Ny4wNzgxTDUxLjEyMDUgMTI2LjU5NUg1Mi4yMDY3Wk01MS42NjM1IDU3LjA3ODFDNTEuMjY5MiA1Ni43MDQ2IDUxLjI2OSA1Ni43MDQ5IDUxLjI2ODcgNTYuNzA1MkM1MS4yNjg2IDU2LjcwNTMgNTEuMjY4MiA1Ni43MDU3IDUxLjI2NzkgNTYuNzA2QzUxLjI2NzMgNTYuNzA2NiA1MS4yNjY2IDU2LjcwNzQgNTEuMjY1NyA1Ni43MDgzQzUxLjI2NCA1Ni43MTAyIDUxLjI2MTYgNTYuNzEyNyA1MS4yNTg3IDU2LjcxNTlDNTEuMjUyOSA1Ni43MjIyIDUxLjI0NDcgNTYuNzMxIDUxLjIzNDMgNTYuNzQyNEM1MS4yMTM1IDU2Ljc2NTIgNTEuMTgzNyA1Ni43OTgyIDUxLjE0NTYgNTYuODQxNkM1MS4wNjk0IDU2LjkyODUgNTAuOTU5OCA1Ny4wNTY3IDUwLjgyMTUgNTcuMjI3M0M1MC41NDUgNTcuNTY4NiA1MC4xNTM5IDU4LjA3OTQgNDkuNjg2OCA1OC43NjcyQzQ4Ljc1MjQgNjAuMTQyOCA0Ny41MTM2IDYyLjIyNjEgNDYuMjc3MyA2NS4wNzY1QzQzLjgwNCA3MC43NzkgNDEuMzQ0NiA3OS41NDIyIDQxLjM0NDYgOTEuODM2OEg0Mi40MzA4QzQyLjQzMDggNzkuNjkxNyA0NC44NTkzIDcxLjA3NTUgNDcuMjczOSA2NS41MDg3QzQ4LjQ4MTUgNjIuNzI0MyA0OS42ODY3IDYwLjcwMDQgNTAuNTg1MyA1OS4zNzc1QzUxLjAzNDYgNTguNzE2IDUxLjQwNzMgNTguMjI5NyA1MS42NjU0IDU3LjkxMTJDNTEuNzk0NSA1Ny43NTE5IDUxLjg5NDkgNTcuNjM0NiA1MS45NjE4IDU3LjU1ODNDNTEuOTk1MyA1Ny41MjAyIDUyLjAyMDUgNTcuNDkyMyA1Mi4wMzY2IDU3LjQ3NDZDNTIuMDQ0NyA1Ny40NjU3IDUyLjA1MDYgNTcuNDU5NCA1Mi4wNTQxIDU3LjQ1NTVDNTIuMDU1OSA1Ny40NTM2IDUyLjA1NzEgNTcuNDUyNCA1Mi4wNTc3IDU3LjQ1MTdDNTIuMDU4IDU3LjQ1MTQgNTIuMDU4MiA1Ny40NTEyIDUyLjA1ODIgNTcuNDUxMkM1Mi4wNTgyIDU3LjQ1MTIgNTIuMDU4MSA1Ny40NTEzIDUyLjA1ODEgNTcuNDUxM0M1Mi4wNTggNTcuNDUxNSA1Mi4wNTc4IDU3LjQ1MTYgNTEuNjYzNSA1Ny4wNzgxWk00MS4zNDQ2IDkxLjgzNjhDNDEuMzQ0NiAxMDQuMTMxIDQzLjgwNCAxMTIuODk1IDQ2LjI3NzQgMTE4LjU5N0M0Ny41MTM3IDEyMS40NDcgNDguNzUyNCAxMjMuNTMxIDQ5LjY4NjggMTI0LjkwNkM1MC4xNTQgMTI1LjU5NCA1MC41NDUgMTI2LjEwNSA1MC44MjE1IDEyNi40NDZDNTAuOTU5OCAxMjYuNjE3IDUxLjA2OTQgMTI2Ljc0NSA1MS4xNDU3IDEyNi44MzJDNTEuMTgzOCAxMjYuODc1IDUxLjIxMzUgMTI2LjkwOCA1MS4yMzQzIDEyNi45MzFDNTEuMjQ0NyAxMjYuOTQzIDUxLjI1MjkgMTI2Ljk1MSA1MS4yNTg4IDEyNi45NThDNTEuMjYxNyAxMjYuOTYxIDUxLjI2NCAxMjYuOTYzIDUxLjI2NTggMTI2Ljk2NUM1MS4yNjY3IDEyNi45NjYgNTEuMjY3NCAxMjYuOTY3IDUxLjI2OCAxMjYuOTY4QzUxLjI2ODMgMTI2Ljk2OCA1MS4yNjg2IDEyNi45NjggNTEuMjY4OCAxMjYuOTY4QzUxLjI2OTEgMTI2Ljk2OSA1MS44NjQ2IDEyNy4xIDUyLjIwNjcgMTI2LjU5NUg1MS4xMjA1QzUxLjQ2MjUgMTI2LjA5MSA1Mi4wNTggMTI2LjIyMiA1Mi4wNTgxIDEyNi4yMjJDNTIuMDU4MSAxMjYuMjIyIDUyLjA1ODIgMTI2LjIyMiA1Mi4wNTgyIDEyNi4yMjJDNTIuMDU4MiAxMjYuMjIyIDUyLjA1ODEgMTI2LjIyMiA1Mi4wNTc4IDEyNi4yMjJDNTIuMDU3MiAxMjYuMjIxIDUyLjA1NiAxMjYuMjIgNTIuMDU0MiAxMjYuMjE4QzUyLjA1MDYgMTI2LjIxNCA1Mi4wNDQ4IDEyNi4yMDggNTIuMDM2NyAxMjYuMTk5QzUyLjAyMDUgMTI2LjE4MSA1MS45OTU0IDEyNi4xNTMgNTEuOTYxOSAxMjYuMTE1QzUxLjg5NDkgMTI2LjAzOSA1MS43OTQ1IDEyNS45MjIgNTEuNjY1NSAxMjUuNzYyQzUxLjQwNzQgMTI1LjQ0NCA1MS4wMzQ3IDEyNC45NTggNTAuNTg1MyAxMjQuMjk2QzQ5LjY4NjggMTIyLjk3MyA0OC40ODE1IDEyMC45NDkgNDcuMjczOSAxMTguMTY1QzQ0Ljg1OTMgMTEyLjU5OCA0Mi40MzA4IDEwMy45ODIgNDIuNDMwOCA5MS44MzY4SDQxLjM0NDZaTTE0Ny43OTMgNTcuMDc4MUwxNDcuNzkzIDEyNi41OTVIMTQ4Ljg3OUwxNDguODc5IDU3LjA3ODFMMTQ3Ljc5MyA1Ny4wNzgxWk0xNTguNjU1IDkxLjgzNjhDMTU4LjY1NSA3OS41NDIyIDE1Ni4xOTYgNzAuNzc5IDE1My43MjIgNjUuMDc2NUMxNTIuNDg2IDYyLjIyNjEgMTUxLjI0NyA2MC4xNDI4IDE1MC4zMTMgNTguNzY3MkMxNDkuODQ2IDU4LjA3OTQgMTQ5LjQ1NSA1Ny41Njg2IDE0OS4xNzggNTcuMjI3M0MxNDkuMDQgNTcuMDU2NyAxNDguOTMgNTYuOTI4NSAxNDguODU0IDU2Ljg0MTZDMTQ4LjgxNiA1Ni43OTgyIDE0OC43ODYgNTYuNzY1MiAxNDguNzY1IDU2Ljc0MjRDMTQ4Ljc1NSA1Ni43MzEgMTQ4Ljc0NyA1Ni43MjIyIDE0OC43NDEgNTYuNzE1OUMxNDguNzM4IDU2LjcxMjcgMTQ4LjczNiA1Ni43MTAyIDE0OC43MzQgNTYuNzA4M0MxNDguNzMzIDU2LjcwNzQgMTQ4LjczMiA1Ni43MDY2IDE0OC43MzIgNTYuNzA2QzE0OC43MzEgNTYuNzA1NyAxNDguNzMxIDU2LjcwNTMgMTQ4LjczMSA1Ni43MDUyQzE0OC43MzEgNTYuNzA0OSAxNDguNzMgNTYuNzA0NiAxNDguMzM2IDU3LjA3ODFDMTQ3Ljk0MiA1Ny40NTE2IDE0Ny45NDIgNTcuNDUxNSAxNDcuOTQxIDU3LjQ1MTNDMTQ3Ljk0MSA1Ny40NTEzIDE0Ny45NDEgNTcuNDUxMiAxNDcuOTQxIDU3LjQ1MTJDMTQ3Ljk0MSA1Ny40NTEyIDE0Ny45NDIgNTcuNDUxNCAxNDcuOTQyIDU3LjQ1MTdDMTQ3Ljk0MiA1Ny40NTI0IDE0Ny45NDQgNTcuNDUzNiAxNDcuOTQ1IDU3LjQ1NTVDMTQ3Ljk0OSA1Ny40NTk0IDE0Ny45NTUgNTcuNDY1NyAxNDcuOTYzIDU3LjQ3NDZDMTQ3Ljk3OSA1Ny40OTIzIDE0OC4wMDQgNTcuNTIwMiAxNDguMDM4IDU3LjU1ODNDMTQ4LjEwNSA1Ny42MzQ2IDE0OC4yMDUgNTcuNzUxOSAxNDguMzM0IDU3LjkxMTJDMTQ4LjU5MiA1OC4yMjk3IDE0OC45NjUgNTguNzE2IDE0OS40MTQgNTkuMzc3NUMxNTAuMzEzIDYwLjcwMDQgMTUxLjUxOCA2Mi43MjQzIDE1Mi43MjYgNjUuNTA4N0MxNTUuMTQgNzEuMDc1NSAxNTcuNTY5IDc5LjY5MTcgMTU3LjU2OSA5MS44MzY4SDE1OC42NTVaTTE0Ny45NTIgMTI2Ljk3OUMxNDguMzQzIDEyNy4xMzggMTQ4LjczIDEyNi45NjkgMTQ4LjczMSAxMjYuOTY4QzE0OC43MzEgMTI2Ljk2OCAxNDguNzMxIDEyNi45NjggMTQ4LjczMiAxMjYuOTY4QzE0OC43MzIgMTI2Ljk2NyAxNDguNzMzIDEyNi45NjYgMTQ4LjczNCAxMjYuOTY1QzE0OC43MzYgMTI2Ljk2MyAxNDguNzM4IDEyNi45NjEgMTQ4Ljc0MSAxMjYuOTU4QzE0OC43NDcgMTI2Ljk1MSAxNDguNzU1IDEyNi45NDMgMTQ4Ljc2NSAxMjYuOTMxQzE0OC43ODYgMTI2LjkwOCAxNDguODE2IDEyNi44NzUgMTQ4Ljg1NCAxMjYuODMyQzE0OC45MyAxMjYuNzQ1IDE0OS4wNCAxMjYuNjE3IDE0OS4xNzggMTI2LjQ0NkMxNDkuNDU1IDEyNi4xMDUgMTQ5Ljg0NiAxMjUuNTk0IDE1MC4zMTMgMTI0LjkwNkMxNTEuMjQ3IDEyMy41MzEgMTUyLjQ4NiAxMjEuNDQ3IDE1My43MjIgMTE4LjU5N0MxNTYuMTk2IDExMi44OTUgMTU4LjY1NSAxMDQuMTMxIDE1OC42NTUgOTEuODM2OEgxNTcuNTY5QzE1Ny41NjkgMTAzLjk4MiAxNTUuMTQgMTEyLjU5OCAxNTIuNzI2IDExOC4xNjVDMTUxLjUxOCAxMjAuOTQ5IDE1MC4zMTMgMTIyLjk3MyAxNDkuNDE0IDEyNC4yOTZDMTQ4Ljk2NSAxMjQuOTU4IDE0OC41OTIgMTI1LjQ0NCAxNDguMzM0IDEyNS43NjJDMTQ4LjIwNSAxMjUuOTIyIDE0OC4xMDUgMTI2LjAzOSAxNDguMDM4IDEyNi4xMTVDMTQ4LjAwNCAxMjYuMTUzIDE0Ny45NzkgMTI2LjE4MSAxNDcuOTYzIDEyNi4xOTlDMTQ3Ljk1NSAxMjYuMjA4IDE0Ny45NDkgMTI2LjIxNCAxNDcuOTQ1IDEyNi4yMThDMTQ3Ljk0NCAxMjYuMjIgMTQ3Ljk0MiAxMjYuMjIxIDE0Ny45NDIgMTI2LjIyMkMxNDcuOTQyIDEyNi4yMjIgMTQ3Ljk0MSAxMjYuMjIyIDE0Ny45NDEgMTI2LjIyMkMxNDcuOTQxIDEyNi4yMjIgMTQ3Ljk0MSAxMjYuMjIyIDE0Ny45NDEgMTI2LjIyMkMxNDcuOTQyIDEyNi4yMjIgMTQ4LjMyOSAxMjYuMDUyIDE0OC43MiAxMjYuMjExTDE0Ny45NTIgMTI2Ljk3OVoiIGZpbGw9IiMyNDI3NzAiLz4KPG1hc2sgaWQ9Im1hc2swXzM0NjFfNDc1NTkiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQzIiB5PSI1OCIgd2lkdGg9IjExNCIgaGVpZ2h0PSI2NyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNTIuMjA2MyA1OC43MDc1SDE0Ny43OTNWMTI0Ljk2Nkg1Mi4yMDYzVjU4LjcwNzVaTTUyLjIwNjMgMTI0Ljk2Nkw1Mi4yMDYyIDU4LjcwNzVDNTIuMjA2MiA1OC43MDc1IDQzLjUxNjYgNjguNTQyOCA0My41MTY2IDkxLjgzNjlDNDMuNTE2NiAxMTUuMTMxIDUyLjIwNjMgMTI0Ljk2NiA1Mi4yMDYzIDEyNC45NjZaTTE0Ny43OTMgMTI0Ljk2NkwxNDcuNzkzIDU4LjcwNzVDMTQ3Ljc5MyA1OC43MDc1IDE1Ni40ODIgNjguNTQyOCAxNTYuNDgyIDkxLjgzNjlDMTU2LjQ4MiAxMTUuMTMxIDE0Ny43OTMgMTI0Ljk2NiAxNDcuNzkzIDEyNC45NjZaIiBmaWxsPSIjRjFGMUY5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF8zNDYxXzQ3NTU5KSI+CjxyZWN0IHg9IjQzLjUxNjYiIHk9Ijk2LjAxNzgiIHdpZHRoPSIxMTIuOTY2IiBoZWlnaHQ9IjY2LjI1ODciIGZpbGw9IiM3QThCRkYiLz4KPHJlY3QgeD0iNDMuNTE2NiIgeT0iOTYuMDE3OCIgd2lkdGg9IjExMi45NjYiIGhlaWdodD0iMC41NDMxMDQiIGZpbGw9IiM3QThCRkYiLz4KPHJlY3QgeD0iNDMuNTE2NiIgeT0iOTYuMDE3OCIgd2lkdGg9IjExMi45NjYiIGhlaWdodD0iMC41NDMxMDQiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuMSIvPgo8L2c+CjxwYXRoIGQ9Ik01MS42NjAyIDU3LjA3ODFWMTI2LjU5NSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTE0OC4zMzMgNTcuMDc4MVYxMjYuNTk1IiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8bWFzayBpZD0icGF0aC0xMS1pbnNpZGUtMV8zNDYxXzQ3NTU5IiBmaWxsPSJ3aGl0ZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA4LjE0NiA0Ny41MzUySDkyLjM5NjVWNTcuMzExQzkyLjM5NjUgNTguMjEwOSA5NS45MjIyIDU4Ljk0MDMgMTAwLjI3MSA1OC45NDAzQzEwNC42MjEgNTguOTQwMyAxMDguMTQ2IDU4LjIxMDkgMTA4LjE0NiA1Ny4zMTFWNDcuNTM1MloiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwOC4xNDYgNDcuNTM1Mkg5Mi4zOTY1VjU3LjMxMUM5Mi4zOTY1IDU4LjIxMDkgOTUuOTIyMiA1OC45NDAzIDEwMC4yNzEgNTguOTQwM0MxMDQuNjIxIDU4Ljk0MDMgMTA4LjE0NiA1OC4yMTA5IDEwOC4xNDYgNTcuMzExVjQ3LjUzNTJaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTIuMzk2NSA0Ny41MzUyVjQ2LjQ0ODlIOTEuMzEwM1Y0Ny41MzUySDkyLjM5NjVaTTEwOC4xNDYgNDcuNTM1MkgxMDkuMjMzVjQ2LjQ0ODlIMTA4LjE0NlY0Ny41MzUyWk05Mi4zOTY1IDQ4LjYyMTRIMTA4LjE0NlY0Ni40NDg5SDkyLjM5NjVWNDguNjIxNFpNOTMuNDgyNyA1Ny4zMTFWNDcuNTM1Mkg5MS4zMTAzVjU3LjMxMUg5My40ODI3Wk0xMDAuMjcxIDU3Ljg1NDFDOTguMTQ3OCA1Ny44NTQxIDk2LjI1NjMgNTcuNjc1MyA5NC45MjMxIDU3LjM5OTRDOTQuMjQ3NiA1Ny4yNTk3IDkzLjc3MjUgNTcuMTA2NCA5My40OTI2IDU2Ljk2OTVDOTMuMzUwNSA1Ni45IDkzLjMxNDcgNTYuODYxNCA5My4zMjg4IDU2Ljg3NTZDOTMuMzQ2MSA1Ni44OTMxIDkzLjQ4MjcgNTcuMDQyMSA5My40ODI3IDU3LjMxMUg5MS4zMTAzQzkxLjMxMDMgNTcuODA1IDkxLjU1NzEgNTguMTczNiA5MS43ODQyIDU4LjQwMzJDOTIuMDA4IDU4LjYyOTUgOTIuMjgxNyA1OC43OTU2IDkyLjUzODEgNTguOTIxQzkzLjA1NTIgNTkuMTczOSA5My43MzM0IDU5LjM3MTcgOTQuNDgyOSA1OS41MjY4Qzk1Ljk5OTkgNTkuODQwNyA5OC4wNDU5IDYwLjAyNjUgMTAwLjI3MSA2MC4wMjY1VjU3Ljg1NDFaTTEwNy4wNiA1Ny4zMTFDMTA3LjA2IDU3LjA0MjEgMTA3LjE5NyA1Ni44OTMxIDEwNy4yMTQgNTYuODc1NkMxMDcuMjI4IDU2Ljg2MTQgMTA3LjE5MyA1Ni45IDEwNy4wNSA1Ni45Njk1QzEwNi43NyA1Ny4xMDY0IDEwNi4yOTUgNTcuMjU5NyAxMDUuNjIgNTcuMzk5NEMxMDQuMjg3IDU3LjY3NTMgMTAyLjM5NSA1Ny44NTQxIDEwMC4yNzEgNTcuODU0MVY2MC4wMjY1QzEwMi40OTcgNjAuMDI2NSAxMDQuNTQzIDU5Ljg0MDcgMTA2LjA2IDU5LjUyNjhDMTA2LjgxIDU5LjM3MTcgMTA3LjQ4OCA1OS4xNzM5IDEwOC4wMDUgNTguOTIxQzEwOC4yNjEgNTguNzk1NiAxMDguNTM1IDU4LjYyOTUgMTA4Ljc1OSA1OC40MDMyQzEwOC45ODYgNTguMTczNiAxMDkuMjMzIDU3LjgwNSAxMDkuMjMzIDU3LjMxMUgxMDcuMDZaTTEwNy4wNiA0Ny41MzUyVjU3LjMxMUgxMDkuMjMzVjQ3LjUzNTJIMTA3LjA2WiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTExLWluc2lkZS0xXzM0NjFfNDc1NTkpIi8+CjxwYXRoIGQ9Ik0xMDcuODAyIDQ3LjkzNzlDMTA3LjkxNyA0Ny45OTAzIDEwOC4wMDEgNDguMDM4IDEwOC4wNiA0OC4wNzgzQzEwOC4wMDEgNDguMTE4NiAxMDcuOTE3IDQ4LjE2NjMgMTA3LjgwMiA0OC4yMTg2QzEwNy40MzMgNDguMzg3NCAxMDYuODY1IDQ4LjU1MzEgMTA2LjEyMSA0OC42OTcyQzEwNC42NDEgNDguOTgzNyAxMDIuNTcyIDQ5LjE2NDUgMTAwLjI3MiA0OS4xNjQ1Qzk3Ljk3MDggNDkuMTY0NSA5NS45MDI1IDQ4Ljk4MzcgOTQuNDIyMyA0OC42OTcyQzkzLjY3NzggNDguNTUzMSA5My4xMDk4IDQ4LjM4NzQgOTIuNzQxIDQ4LjIxODZDOTIuNjI2NiA0OC4xNjYzIDkyLjU0MjUgNDguMTE4NiA5Mi40ODI3IDQ4LjA3ODNDOTIuNTQyNSA0OC4wMzggOTIuNjI2NiA0Ny45OTAzIDkyLjc0MSA0Ny45Mzc5QzkzLjEwOTggNDcuNzY5MiA5My42Nzc4IDQ3LjYwMzUgOTQuNDIyMyA0Ny40NTk0Qzk1LjkwMjUgNDcuMTcyOSA5Ny45NzA4IDQ2Ljk5MjEgMTAwLjI3MiA0Ni45OTIxQzEwMi41NzIgNDYuOTkyMSAxMDQuNjQxIDQ3LjE3MjkgMTA2LjEyMSA0Ny40NTk0QzEwNi44NjUgNDcuNjAzNSAxMDcuNDMzIDQ3Ljc2OTIgMTA3LjgwMiA0Ny45Mzc5WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xMDcuODAyIDQ2LjMwODVDMTA3LjkxNyA0Ni4zNjA5IDEwOC4wMDEgNDYuNDA4NiAxMDguMDYgNDYuNDQ4OUMxMDguMDAxIDQ2LjQ4OTIgMTA3LjkxNyA0Ni41MzY5IDEwNy44MDIgNDYuNTg5MkMxMDcuNDMzIDQ2Ljc1OCAxMDYuODY1IDQ2LjkyMzcgMTA2LjEyMSA0Ny4wNjc4QzEwNC42NDEgNDcuMzU0MyAxMDIuNTcyIDQ3LjUzNTEgMTAwLjI3MiA0Ny41MzUxQzk3Ljk3MDggNDcuNTM1MSA5NS45MDI1IDQ3LjM1NDMgOTQuNDIyMyA0Ny4wNjc4QzkzLjY3NzggNDYuOTIzNyA5My4xMDk4IDQ2Ljc1OCA5Mi43NDEgNDYuNTg5MkM5Mi42MjY2IDQ2LjUzNjkgOTIuNTQyNSA0Ni40ODkyIDkyLjQ4MjcgNDYuNDQ4OUM5Mi41NDI1IDQ2LjQwODYgOTIuNjI2NiA0Ni4zNjA5IDkyLjc0MSA0Ni4zMDg1QzkzLjEwOTggNDYuMTM5OCA5My42Nzc4IDQ1Ljk3NDEgOTQuNDIyMyA0NS44M0M5NS45MDI1IDQ1LjU0MzUgOTcuOTcwOCA0NS4zNjI3IDEwMC4yNzIgNDUuMzYyN0MxMDIuNTcyIDQ1LjM2MjcgMTA0LjY0MSA0NS41NDM1IDEwNi4xMjEgNDUuODNDMTA2Ljg2NSA0NS45NzQxIDEwNy40MzMgNDYuMTM5OCAxMDcuODAyIDQ2LjMwODVaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8zNDYxXzQ3NTU5KSI+CjxyZWN0IHg9IjgwLjcxNzgiIHk9IjgwLjY0OTIiIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik05NC4wOTQ3IDk0LjU5OTJWOTUuOTY0Nkg4Ni42Mjc3TDg2LjU3MDggOTQuOTMzNUw5MS4wMzY4IDg3LjkzNTlIOTIuNDA5M0w5MC45MjMgOTAuNDgxN0w4OC4zNTU4IDk0LjU5OTJIOTQuMDk0N1pNOTIuODAwNCA4Ny45MzU5Vjk4LjI5SDkxLjA4NjVWODcuOTM1OUg5Mi44MDA0Wk0xMDEuOTg4IDkyLjI0NTRWOTMuOTM3OUMxMDEuOTg4IDk0Ljc0ODYgMTAxLjkwOCA5NS40NDA3IDEwMS43NDYgOTYuMDE0NEMxMDEuNTkgOTYuNTgzMyAxMDEuMzYyIDk3LjA0NTUgMTAxLjA2NCA5Ny40MDExQzEwMC43NjUgOTcuNzU2NyAxMDAuNDA3IDk4LjAxNzQgOTkuOTkgOTguMTgzNEM5OS41Nzc1IDk4LjM0OTMgOTkuMTE1MyA5OC40MzIzIDk4LjYwMzMgOTguNDMyM0M5OC4xOTU1IDk4LjQzMjMgOTcuODE2MyA5OC4zODAxIDk3LjQ2NTQgOTguMjc1OEM5Ny4xMTk0IDk4LjE3MTUgOTYuODA2NSA5OC4wMDggOTYuNTI2NyA5Ny43ODUxQzk2LjI0NyA5Ny41NjIzIDk2LjAwNzYgOTcuMjc1NSA5NS44MDg1IDk2LjkyNDdDOTUuNjE0MSA5Ni41NjkxIDk1LjQ2MjQgOTYuMTQ0OCA5NS4zNTM0IDk1LjY1MTdDOTUuMjQ5MSA5NS4xNTg3IDk1LjE5NjkgOTQuNTg3NCA5NS4xOTY5IDkzLjkzNzlWOTIuMjQ1NEM5NS4xOTY5IDkxLjQyOTkgOTUuMjc3NSA5MC43NDI1IDk1LjQzODcgOTAuMTgzMUM5NS41OTk5IDg5LjYxODkgOTUuODI5OCA4OS4xNjE0IDk2LjEyODUgODguODEwNkM5Ni40MjcyIDg4LjQ1NSA5Ni43ODI4IDg4LjE5NjYgOTcuMTk1MiA4OC4wMzU0Qzk3LjYxMjQgODcuODc0MiA5OC4wNzcgODcuNzkzNiA5OC41ODkgODcuNzkzNkM5OS4wMDE1IDg3Ljc5MzYgOTkuMzgwOCA4Ny44NDU4IDk5LjcyNjkgODcuOTUwMUMxMDAuMDc4IDg4LjA0OTcgMTAwLjM5MSA4OC4yMDg1IDEwMC42NjYgODguNDI2NkMxMDAuOTQ1IDg4LjY0NDYgMTAxLjE4MiA4OC45MjkxIDEwMS4zNzcgODkuMjc5OUMxMDEuNTc2IDg5LjYyNiAxMDEuNzI4IDkwLjA0NTYgMTAxLjgzMiA5MC41Mzg2QzEwMS45MzYgOTEuMDI3IDEwMS45ODggOTEuNTk1OSAxMDEuOTg4IDkyLjI0NTRaTTEwMC4yNzQgOTQuMTc5N1Y5MS45ODk0QzEwMC4yNzQgOTEuNTc2OSAxMDAuMjUxIDkxLjIxNDIgMTAwLjIwMyA5MC45MDEzQzEwMC4xNTYgOTAuNTgzNyAxMDAuMDg1IDkwLjMxNTggOTkuOTkgOTAuMDk3N0M5OS44OTk5IDg5Ljg3NDkgOTkuNzg2MSA4OS42OTQ4IDk5LjY0ODYgODkuNTU3M0M5OS41MTEyIDg5LjQxNSA5OS4zNTQ3IDg5LjMxMzEgOTkuMTc5MyA4OS4yNTE1Qzk5LjAwMzkgODkuMTg1MSA5OC44MDcxIDg5LjE1MTkgOTguNTg5IDg5LjE1MTlDOTguMzIzNiA4OS4xNTE5IDk4LjA4NjUgODkuMjA0MSA5Ny44Nzc5IDg5LjMwODRDOTcuNjY5MyA4OS40MDc5IDk3LjQ5MzkgODkuNTY5MSA5Ny4zNTE3IDg5Ljc5MTlDOTcuMjA5NCA5MC4wMTQ4IDk3LjEwMDQgOTAuMzA4NyA5Ny4wMjQ1IDkwLjY3MzhDOTYuOTUzNCA5MS4wMzQxIDk2LjkxNzkgOTEuNDcyNiA5Ni45MTc5IDkxLjk4OTRWOTQuMTc5N0M5Ni45MTc5IDk0LjU5NjkgOTYuOTQxNiA5NC45NjQzIDk2Ljk4OSA5NS4yODE5Qzk3LjAzNjQgOTUuNTk5NiA5Ny4xMDc1IDk1Ljg3MjIgOTcuMjAyMyA5Ni4wOTk3Qzk3LjI5NzEgOTYuMzIyNiA5Ny40MTA5IDk2LjUwNzUgOTcuNTQzNyA5Ni42NTQ0Qzk3LjY4MTIgOTYuNzk2NiA5Ny44Mzc2IDk2LjkwMDkgOTguMDEzIDk2Ljk2NzNDOTguMTkzMiA5Ny4wMzM3IDk4LjM4OTkgOTcuMDY2OSA5OC42MDMzIDk3LjA2NjlDOTguODczNSA5Ny4wNjY5IDk5LjExMjkgOTcuMDE0NyA5OS4zMjE1IDk2LjkxMDRDOTkuNTMwMSA5Ni44MDYxIDk5LjcwNTUgOTYuNjQwMiA5OS44NDc4IDk2LjQxMjZDOTkuOTkgOTYuMTgwMyAxMDAuMDk3IDk1Ljg3OTMgMTAwLjE2OCA5NS41MDk1QzEwMC4yMzkgOTUuMTM5NyAxMDAuMjc0IDk0LjY5NjQgMTAwLjI3NCA5NC4xNzk3WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNMTA3LjI2NSA5My40MDU3VjkzLjA2MzRDMTA3LjI2NSA5Mi44MTc1IDEwNy4zMTggOTIuNTkzOCAxMDcuNDI1IDkyLjM5MjNDMTA3LjUzMSA5Mi4xOTA4IDEwNy42ODcgOTIuMDI5MyAxMDcuODkxIDkxLjkwNzhDMTA4LjA5NiA5MS43ODYzIDEwOC4zNDIgOTEuNzI1NiAxMDguNjI5IDkxLjcyNTZDMTA4LjkyNiA5MS43MjU2IDEwOS4xNzQgOTEuNzg2MyAxMDkuMzc2IDkxLjkwNzhDMTA5LjU4IDkyLjAyOTMgMTA5LjczNiA5Mi4xOTA4IDEwOS44NDMgOTIuMzkyM0MxMDkuOTQ5IDkyLjU5MzggMTEwLjAwMyA5Mi44MTc1IDExMC4wMDMgOTMuMDYzNFY5My40MDU3QzExMC4wMDMgOTMuNjQ1NyAxMDkuOTQ5IDkzLjg2NjQgMTA5Ljg0MyA5NC4wNjc5QzEwOS43MzkgOTQuMjY5NCAxMDkuNTg1IDk0LjQzMDkgMTA5LjM4IDk0LjU1MjRDMTA5LjE3OSA5NC42NzM5IDEwOC45MzIgOTQuNzM0NiAxMDguNjM4IDk0LjczNDZDMTA4LjM0OCA5NC43MzQ2IDEwOC4wOTkgOTQuNjczOSAxMDcuODkxIDk0LjU1MjRDMTA3LjY4NyA5NC40MzA5IDEwNy41MzEgOTQuMjY5NCAxMDcuNDI1IDk0LjA2NzlDMTA3LjMxOCA5My44NjY0IDEwNy4yNjUgOTMuNjQ1NyAxMDcuMjY1IDkzLjQwNTdaTTEwOC4wMDcgOTMuMDYzNFY5My40MDU3QzEwOC4wMDcgOTMuNTI0MiAxMDguMDI5IDkzLjYzNjggMTA4LjA3NCA5My43NDM0QzEwOC4xMjEgOTMuODUwMSAxMDguMTkyIDkzLjkzNiAxMDguMjg3IDk0LjAwMTJDMTA4LjM4MiA5NC4wNjY0IDEwOC40OTkgOTQuMDk5IDEwOC42MzggOTQuMDk5QzEwOC43OCA5NC4wOTkgMTA4Ljg5NiA5NC4wNjY0IDEwOC45ODUgOTQuMDAxMkMxMDkuMDc3IDkzLjkzNiAxMDkuMTQ1IDkzLjg1MDEgMTA5LjE4OSA5My43NDM0QzEwOS4yMzQgOTMuNjM2OCAxMDkuMjU2IDkzLjUyNDIgMTA5LjI1NiA5My40MDU3VjkzLjA2MzRDMTA5LjI1NiA5Mi45NDE5IDEwOS4yMzIgOTIuODI3OSAxMDkuMTg1IDkyLjcyMTJDMTA5LjE0IDkyLjYxMTYgMTA5LjA3MiA5Mi41MjQxIDEwOC45OCA5Mi40NTlDMTA4Ljg4OSA5Mi4zOTM4IDEwOC43NzEgOTIuMzYxMiAxMDguNjI5IDkyLjM2MTJDMTA4LjQ5MyA5Mi4zNjEyIDEwOC4zNzcgOTIuMzkzOCAxMDguMjgzIDkyLjQ1OUMxMDguMTkxIDkyLjUyNDEgMTA4LjEyMSA5Mi42MTE2IDEwOC4wNzQgOTIuNzIxMkMxMDguMDI5IDkyLjgyNzkgMTA4LjAwNyA5Mi45NDE5IDEwOC4wMDcgOTMuMDYzNFpNMTEwLjM4NSA5Ny4wNTAyVjk2LjcwMzZDMTEwLjM4NSA5Ni40NjA2IDExMC40MzggOTYuMjM4NCAxMTAuNTQ1IDk2LjAzNjlDMTEwLjY1NSA5NS44MzU0IDExMC44MTIgOTUuNjczOSAxMTEuMDE2IDk1LjU1MjRDMTExLjIyIDk1LjQzMDkgMTExLjQ2NiA5NS4zNzAyIDExMS43NTQgOTUuMzcwMkMxMTIuMDUgOTUuMzcwMiAxMTIuMjk5IDk1LjQzMDkgMTEyLjUwMSA5NS41NTI0QzExMi43MDUgOTUuNjczOSAxMTIuODU5IDk1LjgzNTQgMTEyLjk2MyA5Ni4wMzY5QzExMy4wNjkgOTYuMjM4NCAxMTMuMTIzIDk2LjQ2MDYgMTEzLjEyMyA5Ni43MDM2Vjk3LjA1MDJDMTEzLjEyMyA5Ny4yOTMyIDExMy4wNjkgOTcuNTE1NCAxMTIuOTYzIDk3LjcxNjlDMTEyLjg1OSA5Ny45MTg0IDExMi43MDYgOTguMDc5OSAxMTIuNTA1IDk4LjIwMTRDMTEyLjMwMyA5OC4zMjI5IDExMi4wNTggOTguMzgzNiAxMTEuNzY3IDk4LjM4MzZDMTExLjQ3NCA5OC4zODM2IDExMS4yMjMgOTguMzIyOSAxMTEuMDE2IDk4LjIwMTRDMTEwLjgxMiA5OC4wNzk5IDExMC42NTUgOTcuOTE4NCAxMTAuNTQ1IDk3LjcxNjlDMTEwLjQzOCA5Ny41MTU0IDExMC4zODUgOTcuMjkzMiAxMTAuMzg1IDk3LjA1MDJaTTExMS4xMzIgOTYuNzAzNlY5Ny4wNTAyQzExMS4xMzIgOTcuMTY4OCAxMTEuMTU1IDk3LjI4MTQgMTExLjIwMyA5Ny4zODhDMTExLjI1MyA5Ny40OTQ3IDExMS4zMjYgOTcuNTgyMSAxMTEuNDIgOTcuNjUwM0MxMTEuNTE1IDk3LjcxNTQgMTExLjYyOSA5Ny43NDggMTExLjc2MyA5Ny43NDhDMTExLjkxNCA5Ny43NDggMTEyLjAzNSA5Ny43MTU0IDExMi4xMjcgOTcuNjUwM0MxMTIuMjE5IDk3LjU4MjEgMTEyLjI4NCA5Ny40OTYyIDExMi4zMjMgOTcuMzkyNUMxMTIuMzY0IDk3LjI4NTggMTEyLjM4NSA5Ny4xNzE3IDExMi4zODUgOTcuMDUwMlY5Ni43MDM2QzExMi4zODUgOTYuNTgyMSAxMTIuMzYxIDk2LjQ2OCAxMTIuMzE0IDk2LjM2MTNDMTEyLjI2OSA5Ni4yNTQ3IDExMi4yIDk2LjE2ODcgMTEyLjEwNSA5Ni4xMDM1QzExMi4wMTMgOTYuMDM4MyAxMTEuODk2IDk2LjAwNTggMTExLjc1NCA5Ni4wMDU4QzExMS42MTUgOTYuMDA1OCAxMTEuNDk5IDk2LjAzODMgMTExLjQwNyA5Ni4xMDM1QzExMS4zMTUgOTYuMTY4NyAxMTEuMjQ2IDk2LjI1NDcgMTExLjE5OCA5Ni4zNjEzQzExMS4xNTQgOTYuNDY4IDExMS4xMzIgOTYuNTgyMSAxMTEuMTMyIDk2LjcwMzZaTTExMi4wMjEgOTIuNzQzNEwxMDguODYgOTcuODAxNEwxMDguMzE0IDk3LjQ4NThMMTExLjQ3NCA5Mi40Mjc4TDExMi4wMjEgOTIuNzQzNFoiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPC9nPgo8cmVjdCB4PSIwLjUiIHk9IjAuNSIgd2lkdGg9IjE5OSIgaGVpZ2h0PSIxNTkiIHJ4PSIzLjUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIi8+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2JfMzQ2MV80NzU1OSIgeD0iNzcuNDY5MSIgeT0iNzcuNDAwNSIgd2lkdGg9IjQ1LjA2MTgiIGhlaWdodD0iMjkuOTU4OCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjYyNDM0Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ3NTU5Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ3NTU5IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", "description": "Widget indicates the level of liquid in Horizontal Dish Ends tank.", "descriptor": { "type": "latest", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} +} \ 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 bd9a352a63..6317bef188 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,iVBORw0KGgoAAAANSUhEUgAAA4AAAAGzCAYAAAB+RXl9AAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAbGVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAAh2kABAAAAAEAAABOAAAAAAARuVYAAD8HAAN9XQAADGoAAqACAAQAAAABAAADgKADAAQAAAABAAABswAAAAC032snAAAACXBIWXMAAAsSAAALEQH58C0/AABAAElEQVR4AezdB3wURfsH8Ce9Vzqh19BC771XQQWRJiAgithQEAUVK4gIr11U+KOINBFQKUqVIr13EmoIoYT0XvnPHB5XZvdySa7s7f32/eS9vdnZ3ZnvxHDP7RSX+2wjbBCAAAQgYFMB/Om1KTduplABFxcXhZYMxYIABCCgXgF39VYNNYMABCCgXAHjD74ICJXbViiZ5QSMf+8td2VcCQIQgAAEzBVAAGiuFPJBAAIQsKIAPhhbEReXhgAEIAABCEDgoYDrwz3sQAACEIAABCAAAQhAAAIQgICqBRAAqrp5UTkIQAACEIAABCAAAQhAAAI6AQSAOgvsQQACEIAABCAAAQhAAAIQULUAAkBVNy8qBwEIQAACEIAABCAAAQhAQCeAAFBngT0IQAACEIAABCAAAQhAAAKqFkAAqOrmReUgAAEIQAACEIAABCAAAQjoBBAA6iywBwEIQAACEIAABCAAAQhAQNUCCABV3byoHAQgAAEIQAACEIAABCAAAZ0AAkCdBfYgAAEIQAACEIAABCAAAQioWgABoKqbF5WDAAQgAAEIQAACEIAABCCgE0AAqLPAHgQgAAEIQAACEIAABCAAAVULIABUdfOichCAAAQgAAEIQAACEIAABHQCCAB1FtiDAAQgAAEIQAACEIAABCCgagEEgKpuXlQOAhCAAAQgAAEIQAACEICATgABoM4CexCAAAQgAAEIQAACEIAABFQtgABQ1c2LykEAAhCAAAQgAAEIQAACENAJIADUWWAPAhCAAAQgAAEIQAACEICAqgUQAKq6eVE5CEAAAhCAAAQgAAEIQAACOgEEgDoL7EEAAhCAAAQgAAEIQAACEFC1AAJAVTcvKgcBCEAAAhCAAAQgAAEIQEAngABQZ4E9CEAAAhCAAAQgAAEIQAACqhZAAKjq5kXlIAABCEAAAhCAAAQgAAEI6AQQAOossAcBCEAAAhCAAAQgAAEIQEDVAggAVd28qBwEIAABCEAAAhCAAAQgAAGdAAJAnQX2IAABCEAAAhCAAAQgAAEIqFoAAaCqmxeVgwAEIAABCEAAAhCAAAQgoBNAAKizwB4EIAABCEAAAhCAAAQgAAFVCyAAVHXzonIQgAAEIAABCEAAAhCAAAR0AggAdRbYgwAEIAABCEAAAhCAAAQgoGoBBICqbl5UDgIQgAAEIAABCEAAAhCAgE4AAaDOAnsQgAAEIAABCEAAAhCAAARULYAAUNXNi8pBAAIQgAAEIAABCEAAAhDQCSAA1FlgDwIQgAAEIAABCEAAAhCAgKoFEACqunlROQhAAAIQgAAEIAABCEAAAjoBBIA6C+xBAAIQgAAEIAABCEAAAhBQtQACQFU3LyoHAQhAAAIQgAAEIAABCEBAJ4AAUGeBPQhAAAIQgAAEIAABCEAAAqoWQACo6uZF5SAAAQhAAAIQgAAEIAABCOgEEADqLLAHAQhAAAIQgAAEIAABCEBA1QIIAFXdvKgcBCAAAQhAAAIQgAAEIAABnQACQJ0F9iAAAQhAAAIQgAAEIAABCKhaAAGgqpsXlYMABCAAAQhAAAIQgAAEIKATQACos8AeBCAAAQhAAAIQgAAEIAABVQsgAFR186JyEIAABCAAAQhAAAIQgAAEdAIIAHUW2IMABCAAAQhAAAIQgAAEIKBqAQSAqm5eVA4CEIAABCAAAQhAAAIQgIBOAAGgzgJ7EIAABCAAAQhAAAIQgAAEVC2AAFDVzYvKQQACEIAABCAAAQhAAAIQ0AkgANRZYA8CEIAABCAAAQhAAAIQgICqBRAAqrp5UTkIQAACEIAABCAAAQhAAAI6AQSAOgvsQQACEIAABCAAAQhAAAIQULUAAkBVNy8qBwEIQAACEIAABCAAAQhAQCeAAFBngT0IQAACEIAABCAAAQhAAAKqFkAAqOrmReUgAAEIQAACEIAABCAAAQjoBBAA6iywBwEIQAACEIAABCAAAQhAQNUCCABV3byoHAQgAAEIQAACEIAABCAAAZ0AAkCdBfYgAAEIQAACEIAABCAAAQioWgABoKqbF5WDAAQgAAEIQAACEIAABCCgE0AAqLPAHgQgAAEIQAACEIAABCAAAVULIABUdfOichCAAAQgAAEIQAACEIAABHQCCAB1FtiDAAQgAAEIQAACEIAABCCgagF3VdcOlYMABCAAAQhYWGDb9rOaK+7Z8+BVe/lDhy5qd4XX0yejhDTjhEaNaxsnad63alVXSO/YsYEmrUf3B69CBiRAAAIQgAAEZARc7rNN5hiSIQABCEAAAk4noB/gaYM6cwI4e0Jpg0dtsMgDRASH9mwR3BsCEICAcgUQACq3bVAyCEAAAhCwsoA22Js/f63mTkoP9IrDwYNDbWD43rtDi3MJnAMBCEAAAioSQACoosZEVSAAAQhAoHABHvTxgE+NwV7htX+QY/wzAzQ7CAjNFUM+CEAAAuoRQAConrZETSAAAQg4tYD2aZ4cgrMHfXIuPBhEICing3QIQAAC6hNAAKi+NkWNIAABCDitwKx3V9PiHzZYtf7a8Xb8JtqulXxfOzEL35faTI3JMxW8Gk82w6/NxyZa+gkmAkGpVkMaBCAAAfUJIABUX5uiRhCAAAScWsASQaA2yHvttccfWpoK4B5mstOONoDUBoslCRARCNqpEXFbCEAAAjYSQABoI2jcBgIQgAAEbCdQKWx0kW/249Lpqpw5s2+/DzQWRXliqFaLIv9S4AQIQAACKhTAOoAqbFRUCQIQgIAzC/AngMXZxo6eqzlNf9ZMR1pOQf8pYEmWr+BPAJX8tLM4bYtzIAABCEBAJ4AngDoL7EEAAhCAgIMLWKL7pykCbddQ/bF/PL/x+D9LBFDagE6/PPpdPLXpRXmypz1H6pXXjXd5tUTZpa6PNAhAAAIQUIYAAkBltANKAQEIQAACJRTgAZM2QJK6lLUnh5G6pyOkIfBzhFZCGSEAAQhYTgABoOUscSUIQAACEFCwAA8Q33t3GaWlZVLc3QQFl9Q2RateI4zq1K1Mixc9b5sb4i4QgAAEIKAIAQSAimgGFAICEIAABEoqwAM8vtaf8Xb/PtG9e0l0OzbO+BDe/yfQsnUDWrd2OjwgAAEIQMAJBBAAOkEjo4oQgAAEnEWAB4HayVycpc7aevr6+lBGRqb2bbFesQREsdhwEgQgAAGHEkAA6FDNhcJCAAIQgEBhAsUNArUTvGjX/pOaDIVf23icoXbGTW25LDkpi/aa2lft5DP6k84Yl5OXkW/achZ1TUAEgVptvEIAAhBQpwACQHW2K2oFAQhAwKkFiroOIA/+9IMr46DK0TD1g0BtgGpuYIpJYRyttVFeCEAAAkUTQABYNC/khgAEIAABBQvwwIePAzQ32CmsKvqBIc+rffKmhABRP8jjZStqoMfPMd54fTdvets4Ge8hAAEIQEBFAggAVdSYqAoEIAABZxbgAZE9xv/xoEl/0z5J1E8rzr42oNM/11KBrf41+b5/gB999fULWAPQGAbvIQABCKhQAAGgChsVVYIABCAAAZ1AXl4BVas6VpeAPUGgdduG9Nua14V0JEAAAhCAgPoEXNVXJdQIAhCAAAQgULgAn+zE2Tb+tJKv/4cNAhCAAAScV8DdeauOmkMAAhCAgDMLvPfuULYw/FANwax3Vz+kKOqsmQ9PVNiOtmsq75LKxy5qxy3aq6uswnhQHAhAAAJOK4AA0GmbHhWHAAQgAAGtgDYQ1L7nr8aTrPA07bg8a43F4/cwd9MGeDy/Nsjj+9pAj+9jgwAEIAABCBgLIAA0FsF7CEAAAhCAABPQBlLaVzkUbaCoPa5df0/7vriv2hlH9c8vrCz6ebEPAQhAAAIQkBJAACilgjQIQAACEICAmQLGQZnxezMvg2wQgAAEIAABmwhgEhibMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsIkAAkCbMOMmEIAABCAAAQhAAAIQgAAE7C+AAND+bYASQAACEIAABCAAAQhAAAIQsImAu03ugptAAAIQgAClpmZTWlompaRmUHpaNqWns58M3WtmZjZlZuaQi4srebi7kruHG3t1/+/V7cGrB3vPjnmwY64sH7bCBe7fLzyPs+fIzc2nbdvPFpnh/v0Cg3O4tYab7Wjd+a+pl6cHeXmxH083zaunlzt79SRP9t7Xx4O9epK3Nz6SGGDiDQQgAAErCeCvrZVgcVkIQEA9Atej4+jkyet08WIsXb12l27FxlP8vWRKTk6jTBbAFRQUsB/+gVf7yvcffhJ+8IFYPRwOVxNXVwTKhTVaSmo6jR09t7BsVj/u5u5Gbm78iw/2hcd/X37w99ovQ/gXHzw9KMSfypYJonLlgtlPCIWFhVClsFCqVKkUlS0bZPVy4gYQgAAEHFkAAaAjtx7KDgEIlEggJiaBTmgCu5t09eodunUrnu7FJVFScjplpGdSTnYu5efnl+geOBkCEDBfID8vn/hPTrb55xjn5EFkcEgAhYQEUqnSQf8FiiFUrnwwhVUsxQLFYBYolmGBYoDxqXgPAQhAwCkEEAA6RTOjkhBwXoEjR67Q9h2n6cSJy3Tt6m2Kj0+m7KwcBHbO+yuBmqtcgAeQ8eyLHP5zKVK+svqBYtWq5alO7TCqVz+MmjSuRjVqlJU/EUcgAAEIOLiAC+umhNERDt6IKD4EIEC0859z9M+us3Tm9FWKvn6HEhNSWKCXje6X+OUg3gWUd9M13sY/M0CT9N67Q40PqfY9H+c3f/5aOn0yyqCOtepWoUsXow3SnPmNl7cnVa5cjqrXqEh16oRRfRYYRjSqRtWrl3FmFtQdAhBQiQACQJU0JKoBAWcQSExKp717L9DePefp3PloirkRR8lJKZSTk+tQ1XchF015XVzZnsuDH1f+6uZKbixYYSMINWMI72vGFbJJNTQTauinaXI4RJ35+C1PPvkHm/DjwQ/bZx+u+b6tNm568sRFk7fTBoMdOzagHt0bmMzrSAd5wLdnz1k6dOiiEPTp16Ne/RpUUIzvg7W/y/rX0uyzX/EHv+UPjuTk5BCfaCaP/eTm5WmewPP3/GldHnvvKP8N+/h6UyUWGNasWZFq165IDepXokYRValK5VKa/5YFByRAAAIQUKAAAkAFNgqKBAEIkGaGzGXL99CWv49R5MUblJKSpvmwaC8b/mHWlU9OwWYz9PHxIn9/HwoKDqAybCKKoCA/zfsAlhYY5EtBgT5sDJIvBQf5U2ioP5Uu/WDCClc3/Y/EJa9JTk4eZbFxinysYnY2HzeVS1ksGM7OYftZ7DWXHcvKp9hbCWx8YyLdvp1Id+4kacY53ruXRAn3UtiHcfsEzzwoC2MfpOvVr0pt2tSlzh3rUZ26FUuOInOFTp1m0JXLMTJHxeRGjWtTq1Z1NQccJSjUD/Z4wY2f8om11KWMGNWL3nprMLmz33FX9sUE/+Eb+16Cba7/vbI9/kWFZk4d/sUFP2a5jcefyWz8bVJSJpsxl/9kUCqbLTclJYvS2H5KWhabPZfNoJuew7pyp1BiUiolJ7J09rdBM7Muy5PLfuftsfn5+7InhuXZE8NyrAtpTerUqR41bFgJQaE9GgP3hAAEChVAAFgoETJAAAK2ELgZk0iLl2xnTytO03U2Vi8jI9MWt2VPKVzYkgru5O3LgroAXxawBVH58iFUpWpZql6tHNWtU55atqypyWOTAtn4Jvfi0+jmzQSK5T8sUIyNTaS7LEi8czeR4u6msA/aSZTIxk3yZ47W3kJCgqhJs9rUpnVdFhTWoebNq1vslgcPXqLnn/+a7tyOL9E1eWDIN21wyPd5gKjdLP30UGppBu0TPe09ixLoac/Rf+3ctTn9suxl/SSH3edB5NWrd9nvbwrdZWMAb7KJnviXHrfY73ZcXLJmDHACCx6TElOsXseAQH+q36AaNW9Rh9q1rUvt29Vlf0cwI63V4XEDCECgUAEEgIUSIQMEIGANgX37LtKKVf/SsSOR7MPZPfb0Kscat9Fck0/2EBDgTxUqlKLadSpRREQ1atCgMvumvgpL97HafdV04dibiRTDgkT+4fpi5E26fPmWZlKdG9F3WPc967Sdf4AfNW5SiwXgdahli1rUtm1ttl5c8ecuS0nJpDlz19HyZVtt/jRZGzia+p0oaSBn6tpSx3hXxgnP9KUJ47tJHVZ1Gu9Wff16PMXExNO163fpwoVYze909PVbbJkX9vfICt3K+RdNdetVp6bNa1LzpjU1AWGFCsGqdkblIAABZQogAFRmu6BUEFCdwMpV++mvv47S2bPX2JOlBDYWKM/idfTy8qKQ0AA2Rqes5pt3/o17l871yc/Py+L3wgV1AteuxrExmTfZOok36dKlW3Tlyi02Ec9t1p0vVZfJAnve3l7UqHEtFhTWoBbNa7GnhLWpdCn/Il85OTmDVqzcR5s3H6ajh88X+XxHPsHX14c6dW1Cgwa2okcGNHfkqlit7Dw4vHzlLvtbdYPOX7jBAsM7rFfCHfaFR6zFeybUrFWJGjaqQU2aVGdPvmtTo0ZVrFYvXBgCEICAVgABoFYCrxCAgEUFvl+0nbZtPcHG70VruhDmS8zCWNwbenh4sEAvkHXTLEcRjWtQ926NqDMbc4NNWQLxCWl07txNusACw6hI9oSFBYbXr92m27FxFikon2CmXoMamtkZm7OAsHPneqz7btGeqPAy7th5lvbvu0DHjkfRZTbe1BbdXS0CYMZF/Px8mRHrhti8NuuqWk/zhYgZpyGLjMAlFhgeY0vLnDxzjS6cu6EZV3rvbpLFfmfKVyxD4eFVWCDIAkLWDbpzp3CZkiAZAhCAQPEFEAAW3w5nQgACegLJrHvdgv9toH92nNA8/bHUZAz8qU8Ye6LXvBn7MNS1EfXq0ZBNwmK7GST1qohdCwnk5RXQ2XMxdPz4VTp8OIrN0MnXaLxZ4qvzmUWbNq9L7drVp27dG1GTiKI/TcnIyKFIFqxGRt6mS1diWcAax8ZI3qOzp6/YbYIRc2D8A/1Y0FCTTURShqpXL8fWsStPdetWoFo1y5lzOvKUQIB3LT50mAWFJ6+y9Uav0NkzV9k42pKNNdUWp3LVCtSqdTh17dyQBrAntu7uGEOotcErBCBQfAEEgMW3w5kQcHqBI0ev0OLF2+jQwQuaDzwlXVbUlU0vGBQSwGaDrEw9ejSlUSM7YIyek/yWJSVl0IGDUXTgQCQdO3aJzp25QllsHceSbHXqshlGWTDYpXMD6tUzwqxLZfHZU/lMquw1h82marwlJqbR7TvJbCbVZIq7l0YJialszck0NnNlGuvyymatZDNR8pkqY27cMT61yO+rVq/Ifv/92CyzvhQS4q/p3ly6dCCVKxtE5coFU8UKISzgK0WBbNZZbMoS4JMr7d1zgQWGkeyLjit0KSqaMjOySlTIUqWDqVkLPmNuQ+rTtwmVLxdUouvhZAhAwHkFEAA6b9uj5hAolsCvaw7S6tV72LfcVyglOa1Y19Ce5Mm6clYIK0PN2NO9wYPbUJcu9bWH8AoBFhBeoiNHLrOA8DKdOnmZbt8qftfRsuVKUctW4ZoZO3t0b/iwq2hB/n3NUho86OPBXz57OlnczY09nfFkE314eLqRN1v7kE9Yw592pqVlsp9stnxBFhtDlkOZWWxNPBZcent7kC+bfdabrYvoH+Cl+bLDH+NVi8uv+PNOnIimffsv0kG2JuMJ1t04Pi6x2GXm6xHyGXPbtW1Affo0pnrhYcW+Fk6EAAScTwABoPO1OWoMgSIJpKVn0/ffb6W/Nh9lkyHEsCcjxX8q48W6c1apUoE9lQmnCeO6s8WU0T2tSI3h5JkvXoxlT1R4QHiFzpy+ShfOX6XiPHX2ZF1FGzepTS1asrX+2E9xPjzzJfB4oMeDPD67oydbHxJT/Dv5L2gRq89n1P17yyn2RccFNhnRRfYkObmIV3iQnS9l0yCCzZLbrh51Z12f27etg/UHiyWJkyDgPAIIAJ2nrVFTCJgtcInNerdw4Rb6d+9pio2Jo/wCsSucORfj4/f4LHeduzSisWO7arqsmXMe8kDAHIG7rCvmgUOX6ejRS2wSl/N07uxlc04T8tRgv6NNm7L1B9mkGx07yE8m5MWe6nl5PQj4vFjg5+pm4ZXQhZIhwZkEoqLu0I4dp+hfNiHR4UPnKZUtcF+crXrNMLZOZTjrURFBfdnTQYwbLI4izoGAugUQAKq7fVE7CJgtwLuqffTRb7RhwwG2Dlbxutrxb6L5OBU+7uq5Z/uyqc2LPgmH2QVGRggYCZw5E8Nm9DxFe/aco2NHLxbraXUFNgtjx04RrFtdU2pQvzJ5sW6aXuzpHu+uiSd8RuB4a1WBo0ev0oaNR2n37tMUdfE6FRRjJuVy5UuzJ4MNadCgFtSzh3njYK1aKVwcAhBQhAACQEU0AwoBAfsJbNh4nL77bjOb5fBysRY/5ksyVKtRkfr2bUmTJ/cmPzamCRsE7CXAlnCjzMwcuh4dT9u3ndKMtzp54hIlxCcVuUjt2jehAQNb0pND22iCwCJfACdAwEICSUnp9OeGY7R9+0k6eOBcsZ4O1g2vTj16NaUhbLx17VrlLVQyXAYCEHBEAQSAjthqKDMESiiQzsb1zZy5nHU3Ol6sD8Z8bbEItiD32LE9qH//JiUsDU6HQMkFcnLz2CyLbIIVFvzxp9n6G1+Dcs+e8//NMBpF0ddi9Q8Xul++Qmk2K21zeuyxNtS6dc1C8yMDBKwtsJ9NJrP+98O0dcvRIi85wSffasNmEu3ftwUNH9aeXF2xtIS12wvXh4DSBBAAKq1FUB4IWFFg0eIdtPyXnXT5Ugzl5xdtXF9wcCC1alufXnlpAEUUY301K1YLl3ZSAT4BTAYL+DIzstkMnnlmK5w8dZ09GYyio0ei6NSJyCJNJNOydQP2pUdLGvpEWyy/YLY4MlpTgM8uumbtPvbE+xjduH67SLfiC8937tyYHh3Ums2QW7dI5yIzBCDguAIIAB237VByCJglcO7CTfrk43Xs6cdZSktNN+scnolPb1GqbCh17dqEpk0bhAlczJZDRmsL5OTkPQj8WPBn7rINLi4u5O3DxvJpJnLxeDgxBp+Jcev205pxg/v2nKLsbPNmueVjXbuzp4KPPtqaOnUMt3aVcX0ImCUQFXmbVv36L23dymZtjoox6xxtpkaNa7P1MpvS0CfbUVjFUG0yXiEAARUKIABUYaOiShDgAnPmrqff1+2jm2xB6vvsf+ZuAYH+1IUFfbPeGfpwrTRzz0U+CFhLgK/Xx9fPy8jMZpO7mP+0jy/P4OPjzn68HgZ9cmW8di2O1vx2kP7+6widP3dFLpuQ3qRZXerXryU98UQbKsMWascGASUI8FlFf/z5H9rEJvaKuxNvdpF8fX2oXccIGtC/BRsv2Nrs85ARAhBwHAEEgI7TVigpBAoVuHT5Lr3++o908kRUkWZAdGfrmDVi60hNnfoYde4kPw1+oQVABghYWEDztI918czIzKWCfMOxfXK34ssz+Pp4ahZY57N3FmfbsvUU/c7GWO3ccZRSks2bjj8oKIC6saeCw4d3YAt01ynObXEOBKwisGv3eVq+fDft3H6MMjIyzb5H5SrlqVv3pjRxYm+qWgVPBc2GQ0YIKFwAAaDCGwjFg4A5AseOXaV3Zi1n45mizJ4qnC/ZEFa5HA0d2ommTOmPhYPNgUYemwlkZeVSOgv8+MQu5m5e3u4s8PMiH29Pi63RFxeXSr+u2U+bNh2hE8cumFsU6tazJY0c3ol6925s9jnICAFrC/AvVH5be5B+/XUvGwN7gXWhNm8sOO8ZMnBQe3p2Yk+qUaOstYuJ60MAAlYWQABoZWBcHgLWFNi+8xx9POdXunD2itndPH18valT5yb0wQcj2Li+YGsWD9eGQJEF+Cye6Szoy2Kv5mxu7q6se6en5omfJ1uc3Zrb3r185sWDtH3rMYqLSzDrVq3bNqJhwzrRE0PQlc4sMGSymcDt28n0w6JttPa3PRR317zfZz9/X7Y0SjuaML4n1QuvYLOy4kYQgIBlBRAAWtYTV4OATQTWrz9Mn322XjPI35zxffxpX5XqFdg/2n3o6ae72KSMuAkEiiKQwZ72pafnsElYcs06zZsFfT5sUhfe1ZNP8GLLjT+Z/HX1Adqw6RAd+Pe0WbduGFGbPW3vSOPw359ZXshkW4G16w7TsmU76dCBM2bdmI8T7DegLT0zoTs1aFDZrHOQCQIQUI4AAkDltAVKAoFCBZYu3U0LF26k6Ou3Cs3LM3iz7nCdujRls4COotKYnMIsM2SynQBfxoE/7ctIy6Kc3MK7orl7uD0M+jzYuFUlbMeOX6V16w5p1mOLuVH4FPw1a1Wixwd3YIFgVwoI8FFCFVAGCDwUiL6RwP6N2UJ/rN9DSUmpD9PldrxYd+t+/dvR+HHdqEmTanLZkA4BCChMAAGgwhoExYGAlMDX3/xNS5ZsoduxcVKHhbQybPmGZ58bQM8920M4hgQI2FuAz+iZlp7FJqPIFhZtlyqbp6cb+fl5sx8vqcOKSfv+++20atVuunjhaqFl4uuvPfZoBxo7tguFhYUUmh8ZIGBrgZ+X7aGF326g69cK/8KRLy7fp39bGvt0N2rVooati4r7QQACRRRAAFhEMGSHgC0FPp77O61YsYPi4xLNum2VqhVo+htP0KCBLczKj0wQsKVAXl4B6+aZpXnqZ86Mnl5szT4e9Pn6etqymCW+108/7aIVK3fTmVNRhV6Lzxz6CJtcY8yYzmxMVVih+ZEBArYW2LrtNH311UY6dvh8oWPN3dzdqXefVjR2THdq1662rYuK+0EAAmYKIAA0EwrZIGBLgbfeWUXrf9ttVhccPr6vTr1q9MH7I9g/uHVtWUzcCwJmCeTm5rHA78EYP97ts7CNz+bpxyYrcrTAz7heK1f+S8tX7KZjR84bHxLee3p6Uv9H2rFAsAu1aI4nKAIQEuwucPJUNC1Y8AebBOlQoWVxdXWlXn1a0+jRXalTx/BC8yMDBCBgWwEEgLb1xt0gYFJg2S97aN68NWY98XN1caXmrerR7Nmj8OTApCoO2kuAB3upqVmaH3MCPz6xix972sdn9VTT9tvaQywQ3EUH9xU+YQxfuH7UmN70+rRB5K/wLq9qaiPUxXyBmJgEmvfp77Rxwz42W292oScOerwzvTZlAFs+olyheZEBAhCwjQACQNs44y4QMClw5cpdmjTpWzp75rLJfPygm5sbte/UmOZ9PIbCKmHsUKFgyGAXgQw2uUtaaqZZk7tolnFgwY5PMRdtt0sFi3HTDRuP0y+/7KI9u44Vena1GmE08dl+NHpUx0LzIgME7CGQlJRBX3y5iVYu30kpKaYnjAktFUwjR3Wn1159hNzZ0i3YIAAB+wogALSvP+4OATZZy3f09+aDbDKMPJMafJB9t54t6NN5oyk42M9kXhyEgL0E+ELT/KkfX8+vsM3H10vzxM9b5YGfsQMfU7Vs2S6zutJ16tqMXnpxALVpXcv4MngPAUUI8C97Fn63lZb+tIXuFTJevW54dZowoTcNH95OEWVHISDgrAIIAJ215VFvuwt8+dVf9N23fxY6zo8v5dB/QDu24PtI1XWNs3sjoAAWE+BdPFPYE7+01GwqrLunHw/8/L3I2gu3W6xyVrrQ7j0X6Oefd9LmjftN3sHN3Y1Gje5N06YOpOAgX5N5cRAC9hLIy7tPP/60kxb98BcVtiRKl27NafLk/tS2Db7YsFd74b7OLYAA0LnbH7W3g8CRo1dYN5hFdPlSjMm7e7Anfk8O60Zz5oyw+ULXJguGgxAwEuDLOaSwp355hazl58PG9wX4ezt94GfERwcPX6Zvvt5c6BNBPsvvMxP70dNjOxtfAu8hoBgBPs/TshV7aQEbzx53N0G2XLxXyxNPdqWp0wZSGaxTK+uEAxCwhgACQGuo4poQkBEYOepzNv7nOBUUFMjkeJDcrkNj+vyz8VShQrDJfDgIAXsKmNvdky/n4M+e+KltchdL26/57SB9/91fdO6s6bHAfAzwi6xbaAfM+mvpJsD1LCjA/z7MX7CBlizezNb8zJS9coWwMmz22170wuTesnlwAAIQsKwAAkDLeuJqEJAUeP+DNfTLsm2UnpYheVybWJ1N/DB79hjqiGmztSR4VaAAX8g9NY1398xi64LJb25urprALyDARz4TjggCC9iH5p/YeKr4e0nCMW2Ci4sLjXyqN01l3UJLl/LXJuMVAooTiL2VRB9+uIY2/vkv5efny5avSbNwevbZ3vTIgOayeXAAAhCwjAACQMs44ioQkBT46++TNOudZXQz5o7kcW1icHAAvfraEzRuXBdtEl4hoEiBdNbdMzUlk01aZPoptn+AN1vGwBsz/hWzFa9H36PPPttIv67abvIKYZXK0YSJfemZ8d1M5sNBCNhb4MSJaJr13i909JDpdTH7DmhLU14ZSPXrhdm7yLg/BFQrgABQtU2LitlbYNiIBfTvrpPsCYn8MxI+ucOw4T1ozkcjyNXNxd5Fxv0hICvAF3NPSSl8dk++lh8P/LzZYu7YSi6wa9d5+vqbTbRv70mTF2vXIYLefGMINW1azWQ+HISAPQX4+MA/Nxyhd97+2eSMof4BfjRuQj96feoj9iwu7g0B1QogAFRt06Ji9hLga33NnLHEZPctXrbGTeuycX4TqFYtLI5rr7bCfc0TSE/PpuSUDOJdP+U2Tw838mddPX3ZRC/YLC+wdOluWrToL7pyWX7yKH9/P5r84iB68YU+li8ArggBCwrwpSM+mv2bZmhEXm6u7JXbd2xMs2YNw9NAWSEcgEDxBBAAFs8NZ0FAUmD8hG9oy18HTU6DHxIaRO+++xQNHtxK8hpIhIBSBHg3Tx74ZbIPa3Ibf3LNn/gFsC6ffFwaNusJZGbm0oL//UE//7SV0kyMJ+ZT7M+YMQQfmq3XFLiyhQTOX7hFr7zyA509fUn2iiGhgfT85EE06bmesnlwAAIQKJoAAsCieSE3BCQF9u+PZLPyfUe3b8VJHueJbm5umimv+ULu2CCgdAH+1C+FjfXLz5cf68fX8vP38yEPD1elV0dV5Tt3/iZ98cVG2vDHXtl68S+aXnhpED37TA/ZPDgAAaUILF22mz75eDUlJabIFql33zb0/rvDKKxSqGweHIAABMwTQABonhNyQUBW4OVXltD6tbtNzm4WXq86LVv2KpUvHyR7HRyAgBIE+FM/PskLn+xFbuPLOvAnft7eHnJZkG4Dgc2bT7CJYv6gs2fkn5706tOG3p45hKrXKGuDEuEWECi+QEpyBs14awX793SX7EX4pEcvT3mURgxrL5sHByAAgcIFEAAWboQcEJAUiIq6w9YuWkDR129JHueJ7h7u9PIrg9mMZv1l8+AABJQiwMfl8C6f+SZm+OSBX2CgL+vuqZRSO3c5+OQ8b721ko2l2iILUbZcKXrp5Udp7JjOsnlwAAJKEdj5zzma+toiunP7nmyRBj/RlebMHsHGHHvJ5sEBCEBAXgABoLwNjkBAVmAm+8C1fNlWyjUxeL1Wncr06+o3qEyZANnr4AAElCDAJ3dJTs1g61TKP/VzZ5O8BAX6YDF3JTSYRBn4IvKfzvuNYm7cljj6IGnAwA70zjtPUMUKIbJ5cAACShDg413fensFWwZlBxUUSHdDr1W3Ck199TEagHUDldBkKIODCSAAdLAGQ3HtK3D3bjI9+eQ8ioqMli0IX9ph0vOD6I3pj8rmwQEIKEUgIzOHeNcrU+v6+bFv2YOCfLFUiVIaTaYcfMHtd99dSZs27JPJQWz8VDmawrrQDUMXOlkjHFCOwL59UfTKlO8oNuaubKHGPN2XPnhvGP4+yQrhAAREAQSAoglSICAp8Mm8P+j7hX9SVpb8U5Kq1SrST0unUK2aWNpBEhGJihEoYAtypSRnstkks2TL5Ormqnnq5+eHblaySAo88P3329kSM2spOTlVtnSDh3Sld2Y9QaVC/WXz4AAElCDAv5ya+Q7r5vzTX7LFadIsnKa//jh17BgumwcHIAABnQACQJ0F9iAgKzD4iXl0cN9p2eMu5ELDR/WkT+aOks2DAxBQikBOTh6bbS+dcnLzZYvEF3QPCvRmM3xiQXdZJAUfOH36Bn3wwa+0798TsqWsViOMZs8eQ53woVnWCAeUI7Br13l64YWvKTFBeqZQbx8vtqTEYJYH62Aqp9VQEqUKIABUasugXIoR6NZ9FkVeuCpbnuDgQPriq0nUrWsD2Tw4AAGlCGRm5WqCP7nlHfiXGQFBbKIXtqg7NscX+Hju7/Tt1+tlZyn28/Old99/ioajS6jjN7YT1ODunWSaNPk7Orj/jGxtR4zsRZ98gi9jZYFwAAJMwO1dtkECAhAQBfhsiB07vEHXr94UD/6X0qZdI/rnn4+oenVMsS6LhAOKEeCzfCbEp9F91v1TauPLOwSH+BK6fErpOGZahw7h1LRpHboYeZvi7iYIleATWW3dcpTuu3hQu7Z1hONIgICSBPz8venJoe3Z76snHTkSKTlBzOnTl+nYiWh6dFBrcnHFdMVKaj+URTkCeAKonLZASRQkcObMDRo6dA4bI5UmWSpPDw96Y8YImjixu+RxJEJAaQKpqdlsTFi6bLGwvIMsjSoOmLNcxLARPdhMoqNVUV9UQv0CR49epWef/ZJu35JeLiK8Xg1asWIKm4kb6++q/7cBNSyqAALAooohv+oF1q47RK+8+A0V3Jeeerp8xTK0fdsHmlkRVY+BCqpCgD/NTk2RnuzFjU/0EuxLvmzMHzb1C6xefYDefvtHtuRHhmRlu3RvQcuWviR5DIkQUJpAeno2jX/mW9q765hk0UJLBdPX30xmvXnqSh5HIgScVQABoLO2POotKbDgfxtpwaerJI/xxBat6tP6dW/IHscBCChNIDEhndIzpGeu9fR0o+BgP/L0xEQvSms3a5Zn1+7zbMbEJbJrBjZoWJP+/nuWNYuAa0PAogKz3l1N//fDRrrP/ie1ffDReHp6bGepQ0iDgFMKIAB0ymZHpaUEXpu6lFat2CZ1SJM28qneNPfjkbLHcQACShLg4/zi7qbIzvTp4+tJIUF+WDtLSY1mw7JER9+j5yYtpFMnIiXvWrZcKdq69QMqVQrLREgCIVFxAitW/EszZ/wf5eTkSpZt3IQB9P57QyWPIRECziaAANDZWhz1lRTo1/8j9kHoouQxFxcX+viTZ2jkiA6Sx5EIAaUJ8HWz7rDZ8uQme+Hj/fjC7tgg8NSYL2nntsOSEG5ubrRu/TvUrFl1yeNIhIDSBPi4wDFj51OSzFIR3Xu3op/+7wWlFRvlgYDNBRAA2pwcN1SaQETES2xmxCTJYvn4etN69gGoQYNKkseRCAGlCfA1/u6yJ39yW0iIH2b5lMNx0vRXX/uJVq/cLlv7r799iQYNbCF7HAcgoCSB2FuJNGLkfLp0MVqyWOH1qtO2be9JHkMiBJxFAAGgs7Q06ikpULXq05SfJ70YdrnypenwofnoIicph0QlCvCxfnzMn9xWunQAeXt7yB1GuhMLfPbFJvp07kpZgTdmjKQXJveWPY4DEFCSAJ/1dvSYr2iPzOQwfP3eM2e/UlKRURYI2FQAAaBNuXEzJQlUCpOf7rxJ07q0YcNMJRUXZYGASYGUlEziP1Ib78ZctmwQeXi4Sh1GGgQ0ArvZ5DBPPfWJ7Jdiz04aRG+/NRhaEHAYganTltLK5fJj+2NuLnWYuqCgELCkAAJAS2riWg4jYCr4e+zxzvTll+Mdpi4oKARSUlnwlywd/Ll7uFE5FvyxGBAbBAoVyMjIobbtplF8XKJk3hkzR9Hzz/eSPIZECChR4LMvNrOn2ytki4YgUJYGB1QsgABQxY2LqkkLmAr+3mQfbibjw400HFIVKZDKgr9kmeDPh63th1kcFdlsii9Uv/4fys4Q+un8STRsWFvF1wEFhIBW4Le1h2jaq9+xWZGlZwhFEKiVwquzCCAAdJaWRj01AqaCv9W/zqR27bBYLH5VHEcgjS2CnJQoPeYPM306TjsqtaSmus9998MU6t+vqVKLjnJBQBA4ePgyjR41j9LTMoRjPAFBoCQLElUqgABQpQ2LaokCpoK/v7fNpgb1MNOnqIYUpQqks+AvUSb482fLPARjmQelNp1DlWvmWyvppyWbJMu8eMlU6t0rQvIYEiGgRIEzZ2JoyJCPKC1V+oszBIFKbDWUyRoCmBHAGqq4puIETAV/K1bPQPCnuBZDgUwJZPDZPmWCPz9fLwR/pvBwrEgCH304jIaP7Cl5zvinP6UdO89KHkMiBJQo0LBhJfr11xnkH+AnWTxTnxUkT0AiBBxUAAGggzYcim2+QLVq42Qzf7PwJerYPlz2OA5AQGkCfJKOBJmlHry93SkkVPqDjdLqgfI4jsC8T56iIU90lSzw6FFzaRebPRQbBBxFoFGjyrRq9ZuyQWDz5q86SlVQTggUWwABYLHpcKIjCNSp/SzlsfWApLY5n0ykgY9gcWMpG6QpUyAzkwd/aZKF82LBX+nSgZLHkAiBkgp89tnTNPDRTpKXGTl8Du3bFyV5DIkQUKJA44gqtHLldPLz9xWKd+f2PXpk0BwhHQkQUJMAAkA1tSbqYiDQuPFLlJEhPTX+62+MoKdGdjDIjzcQULJAVlau7JM/Ly8PKoPgT8nNp4qyffP1BOrTT3r2z3HjFtChQ5dVUU9UwjkEmjSpRitXvyH5JPD4kfM0+YXFzgGBWjqlAAJAp2x29Ve6bdvXKf5ekmRFx03oTy+92EfyGBIhoESBnJw8zZi/+/fvC8XTBH9lAoR0JEDAGgKLfphE3Xu2FC7NJ9V4fvI3dOzYVeEYEiCgVIGmjavRD4teJQ8Pd6GIv6/bRVNe/VFIRwIE1CCAAFANrYg6GAj07PUe3Yi+bZCmffPEk93o/fee1L7FKwQUL5DLujDzbp/5+QVCWT093agMgj/BBQnWFfjpxxepQ+cmwk1ux8bR85O+odOnbwjHkAABpQp07FCb5s1/llxdxY/Ev67aQW+8uUypRUe5IFBsAfG3vdiXwokQsL/Ac5O+o/Nnpbsh9RvQjv63YKz9C4kSQKAIAsnJGZSXJxH8ebhR6VIY81cESmS1oMDiHyZTs+b1hCvGxNyhmTN/FtKRAAElCwwZ3JrenDlSsojLlm6hbxdulTyGRAg4qgACQEdtOZRbEFi6dDdt/GOfkM4T2ndqTN9/95zkMSRCQKkCPPjLyhInMXJnwV9IqQBydXNRatFRLpUL+Pl50UL2N7VueHWhpseOXqBp0xAECjBIULTApOd60ohRvSTL+L/5a2jPnguSx5AIAUcUwELwjthqKLMgkJKSSS2avyI56Uv9BjVpy5ZZwjlIgICSBR4s9yDO+MmDv1KhAWzMCr6/U3L7OUvZLl6MpbFjP2fd7m8JVf5w9ngaO6azkI4ECChZ4KnRX9DO7UeEItaqW4X+WD+TAgN9hGNIgICjCeAThKO1GMorKdC373uSwV9oqWD6++93JM9BIgSUKsDH/SWxp3/GG3/eFxzki+DPGAbv7SZQt25Feve9keTqIn6cmDd3NR0/fs1uZcONIVAcgf9b/DzVqlNFOPXSxWh6ZcoSIR0JEHBEAfEvtiPWAmV2aoExY7+i69diBQM+q9eff7xNLi7oJifgIEHRArzrZ4HEpC+BQX7k7e2h6LKjcM4n0LtXBE2Z+oRQ8eTkVJo1a7mQjgQIKFmAf3ZYvuw1Cg4Wx1hv+esAzf3kdyUXH2WDgFkCCADNYkImpQrwgdnbtx4SisdDPt79qGq1MsIxJEBAyQJy4/78/L0oIMBLyUVH2ZxYYMor/dni2eLaqhgP6MS/FA5c9YphIbTwh5fJzV1cHuLLz3+jjZuOO3DtUHQIECEAxG+BwwrEs6nx53/6q2T5h7DlHkaOaC95DIkQUKoAH/eXmpolFI+v9ce7fmKDgJIFPpn7FNWrX0Mo4orlW+nHn3YJ6UiAgJIFOrSrTW+/M0qyiHPmrCb+GQQbBBxVAAGgo7Ycyk0DB35IWZnih2X+AQTLPeAXxNEE5Mb9ubIuzEFBPujK7GgN6oTlDQjwoffeH0G+vuIkGRgP6IS/ECqo8oTx3WjQY52Emly7cpOmT8dMtwIMEhxGAAGgwzQVCqov8MzEb+n6VXHcX0CgP23c+JZ+VuxDwCEE5Mb9BQX7kqen2A3JISqFQjqdQLu2dWjaG08K9cZ4QIEECQ4i8NWXE4jPAGq8/bVpP33+5V/GyXgPAYcQQADoEM2EQuoL/LJ8L/218YB+kmbfhVzom2+fx4dlQQYJSheQG/fnH+BNfL01bBBwJIFn2FOTYcN7CEXGeECBBAkOIMDnkfv26+fYZwtxAq6vv1hH+/dHOkAtUEQIGAogADT0wDsHEPjgvV/oPvuf8TZ6XF/q2qWhcTLeQ0DRAjk5eXT//n3yZ5O86P+EhPhh3J+iWw6FMyXw6aejqUXL+kIWjAcUSJDgAAL16lWiKa8NFUqakZHJuj2vEtKRAAGlCyAAVHoLoXwGAgMfnUNpaekGafxNrdqV6aMPhgnpSICA4gXYt8s+vp4GP76+XmwcFZ78Kb7tUECTAh9+OJJKlQ4W8iz8ZgMlJoh/x4WMSICAggRefKE3NWlWVyjRmVNRNPNtLHciwCBB0QIIABXdPCicvsCqVfvp2OHz+kmafS9vL9q8eZaQjgQIKF0gL69A8/TPuJzubm5s0hfjVLyHgGMJNGxYmd58c7hQ6JiYO/Tp//4U0pEAAaUL/N+iF8g/0E8o5s8/bqF//jkjpCMBAkoVQACo1JZBuQSB2XNWCmk8Yd6nE8nHx1PyGBIhoFQB3u2zoKBAKJ6bqxu5uiH6E2CQ4JACw4a1pfHPDBDKvnzpVjpy5IqQjgQIKFmgbLkg+vDDp4Ui8r/l8z5dL6QjAQJKFUAAqNSWQbkMBCY9/z3FxyUapPE3EU3q0OOPtRTSkQABpQvk5fORrIZjWflERu7u+LOs9LZD+YomwBeJr1SpnMFJuXm59OVXGw3S8AYCjiAwZHAr6tC5iVDUk8cjafactUI6EiCgRAF80lBiq6BMBgKH2LfEG//cZ5DG37i5u9GqldOEdCRAQOkCBSz4KyjIF4rJu35ig4DaBIKD/Wjs072Eam3fephWrxZndBYyIgECChOYP+9p8vIWex4t+mET8c8s2CCgdAEEgEpvIZSPXnt1kWRXueEjelJAACbKwK+I4wnkSwR/fMF3dP10vLZEic0TeO65ntS4qTiBxvffYx018wSRS0kCYWEh9OxzA4Ui5WTn0NyP1wjpSICA0gQQACqtRVAeA4Flv+yhq5djDNL4m5DQIPp4zgghHQkQULoAHytSwMb/GW987B82CKhZYOLE3kL1Lpy/wsZO/SGkIwECSheYNvURqlS5vFDMg/vP0Np1h4R0JEBASQIIAJXUGiiLIPDZZ9KDqme9O0rIiwQIKF2Ax3185k/jDRO/GIvgvRoFBg1sQT17txaq9tOSLXTp8h0hHQkQULKAC+u1MW/eODZyW5y066elO5RcdJQNAoQAEL8EihVY8L8NdDs2TihfeL0aNGSw+CFCyIgECChMID+fLfsgMfGLG2b9VFhLoTjWEpj8fF820ZG7weWTklLo888xIYwBCt44hEDHjuHUp38boaxHD52jNb8dFNKRAAGlCCAAVEpLoByCwJL/+1tI49+0zV8wTkhHAgSULsCXfZAc++fqytb8E79BVnp9UD4IFEegRYsa9OTw7sKp6377h7ZuPS2kIwECSheYMWOIZBF//hlPASVhkKgIAQSAimgGFMJY4M0ZyykxIdk4mVq3a0iNI6oI6UiAgNIF8vLEWT+x7IPSWw3ls4bAyy/3ozJlQ4VLf/PtJiENCRBQukD1amXosce7CMU8evg8ZrkVVJCgFAEEgEppCZTDQGDtmt0G7/kbNzZF/uJFk4V0JEBA6QKaZR8kJn7Bsg9KbzmUzxoCFSuE0OgxPYVLHz54lr5ftF1IRwIElC7w9tuDydPTQyjmsl92CmlIgIASBBAAKqEVUAYDgbdnraL09AyDNP6G97MPCvIV0pEAAaULSHb9xLIPSm82lM+KAnxx+Hr1awh3WPebuOarkAkJEFCYQNmyQTRkaBehVMeOnKc/Nx4V0pEAAXsLIAC0dwvg/oLAn7/vF9K8vDzp268mCulIgIDSBfjYPyz7oPRWQvnsITBhgrgsxOlTUbR9+1l7FAf3hECJBGa8+Tj5+HoL11i1cq+QhgQI2FsAAaC9WwD3NxBYuWo/3YtLMEjjb/o/0h6LZAsqSHAEgfx8cc0/LPruCC2HMlpb4Mkn21LDRrWF26xff0BIQwIElC4QHOzHxgJ2Eor5z46jtP/AJSEdCRCwpwACQHvq496CwPffiZMAuLJZEj9bMFbIiwQIOIIAX/jdeMOi78YieO+sAn36NReqvn3bUbp7R5wETMiIBAgoTOClF/tLlmjZsl2S6UiEgL0EEADaSx73FQSuXLlLUZHRQnrDiFp4+ieoIMERBPjkL1Lr/rm4YtkHR2g/lNH6Ak883oZ8fX0MbpSSkkarf8VTQAMUvHEIgUqVQqhr9xZCWbf8fZD4ZxxsEFCKAAJApbQEykFvvb2c+Hgp4+2N6dJr7Bjnw3sIKE1AcvIXzbp/SispygMB+wiEVQplH5ibCTffuPGQkIYECDiCwOTJ4lPAzIwsWrwE6wI6Qvs5SxkRADpLSztAPfmaOcYbXyuqU6dw42S8h4DiBeQmf3F1w9M/xTceCmhTgUceaSXcD5PBCCRIcBCBNq1rUv0G1YXS7tp5QkhDAgTsJYAA0F7yuK+BwA9s7af09EyDNP5m2PCuQhoSIOAIArKTv7DlH7BBAAI6gQH9m1KtulV0Cf/tYTIYgQQJDiIwblwfoaTXrsbS5s0IAgUYJNhFAAGgXdhxU2OBFcv/MU4iDw93en5SLyEdCRBwBAGpyV9c3PAn1xHaDmW0vUCf3i2Fm2IyGIEECQ4iMHhwSwoI9BdKuwFrAgomSLCPAD6N2Mcdd9UTyMnJo8uXYvRSHuxGNKlNAQGGkwMImZAAAQUKyE3+4uaCP7kKbC4USQECgwe3Jnd3d4OSYDIYAw68cSABPLjG9QAAQABJREFU/gV2j17iZDB7954k/pkHGwTsLYBPI/ZuAdyf3pyxnPLz8wWJyc+LA6mFTEiAgAIFpCZ/ccHkLwpsKRRJKQK1a5Wnzl2bCsXBZDACCRIcROCpkV2EksbHJdGq1fuFdCRAwNYCCABtLY77CQLbtx0T0oKDA6lXrwghHQkQULqA3OQvbhj7p/SmQ/nsLDBgACaDsXMT4PYWFGjVqgZVrFhWuOLff4ufeYRMSICAlQUQAFoZGJc3LXDtWhzdi0sQMvXsLXadEDIhAQIKFJCa/MWFBX+Y/VOBjYUiKUrgiSGtqUrVCkKZNm8+KqQhAQKOIDDo0fZCMY8euUhZWTlCOhIgYEsBBIC21Ma9BIGflu4S0lzIhd6c/piQjgQIOILA/fsFQjFdMfZPMEECBKQEevZqLiSfOXtdSEMCBBxBYOzYLkIxU1PSaOOm40I6EiBgSwEEgLbUxr0EgX37zglpIaWCqGy5ICEdCRBwBIH798VSumHtPxEFKRCQEGjZsraQGnUxmtIzsoV0JEBA6QJhYSGST7X37BE/+yi9LiifugQMp9xSV91QGwcQuHr5plDKRhE1hTQkQMARBPj4P/4//Y0/0eZdQLVbbm4u3bp1i2JjYykmJoYyMzMpJCSEgoODqUYNPmakojYrXiHgdAIdO9YlLy8vys7WBXx8f9++SOrZo5HTeaDCji/Qpm19ir5+y6AiR45EGrzHGwjYWgABoK3Fcb+HAlGXblNGhrj4++DBbR/mwQ4EiirAg6thw4YV9TSz8gcEBNCGDRtk80r0/mTBH1F6ejr9/vvvtH79ejp48CDxIFBuK1OmDDVu3JiGDBlCjzzyiEHwKHcO0iGgFoGgQF+qV78anTh+0aBKx45dQQBoIII3jiLQvVsErV653aC4167cZF8AJlClSqEG6XgDAVsJIAC0lTTuIwgsWbJDSONPS/r0biKkIwEC5gpER0dTVFSUudmLlI8HgKa2AqP+n/l5eTRvwQJavHiRwRMNU9eIi4ujbdu2aX7ef/99mjJlCo0cOdLUKTgGAVUJNG5SUwgAT526pqo6ojLOI9CrVyNyY2tc8n8P9LfNfx+nZ8Z310/CPgRsJoAxgDajxo2MBfbvP2+cROUqlCZfX08hHQkQMFfgxo0b5ma1eL6CAt0EMMePH6cePXrQN998bXbwZ1wg3k102rRpNHr0aEpOTjY+jPcQUKVAmzbiOMAL5zERjCob2wkqxReFj2gs/k4fOmidLyqdgBRVtIAAAkALIOISxRO4eeOucGKr1vWENCRAoCgCPGiy16Yd/3fo0CEa9uRQunr1qkWKwp8IDh06lE0dnmWR6+EiEFCyQI/ujcidPTHR3+7cvkd82SBsEHBEgXbtxM82FyPt92WlIxqizJYVQABoWU9crQgCUuP/HntUXAi4CJdEVghoJlexB0NB/oPJX65euUYTn5nAnvpZdp2n06dP07hx4+xRNdwTAjYV8PHxpPB61YV7HjhwSUhDAgQcQaBlC3Fyu+tX7PdlpSOYoYzWFUAAaF1fXF1GYNkve4UjfJ7ELl3qC+lIgEBRBG7fvl2U7BbLy8f/FRTcZ0HaWEpKetBdU2/yT4P78Jk++/btSy+88AK99dZbNGLECGrbti35+PgY5DN+888//9CmTZuMk/EeAqoTaNaillCnI0fRZU5AQYJDCLRpW0eY0Cs/P5+OHrVMLxGHQEAhFSVg2MdCUUVDYdQssGWLuAhqUEgQ8b7y2CBQEgG5AJAvtcAnVCnJxqenl9v4AvAbN/xpstunv78/vfTSSzR58mThwwC/7s2bN2nq1Km0a9cuudvQRx99RP369ZM9jgMQUINA5071aemSzQZVOXUSH5YNQPDGYQT8/byofMXSdOumYTfmw8cuU/Pm4tNuh6kYCuqwAvi07bBN59gFP3tG/Ie8bnhlx64USq8IgXv37kmWo3LlyjRhwgTJY5ZI5BOALly4UPZSPHhcu3YtNWzYUDZPWFgYrVixgsaOHUtbtmyRzMfHFZ45c8bkdSRPRCIEHEiAr/nH18/ka2tqt8iL17W7eIWAwwmEh1cVAsDTJ/E77XANqZICowuoShrS0aoRdzdBKHK3bo2FNCRAoKgC8fHxkqdYc4F1/iH1+vXrdPbsWcl780Q+m6ep4E//xNmzZ5vsDopuoPpa2FejgKurK9VvaDhuKo9No3/oyBU1Vhd1cgKBRhHVhFriSw2BBAk2EkAAaCNo3EYnkJqazcZK6abL1x4Z93RX7S5eIVAsgcTERNklFypUqFCsa5pzEl8APjLScOFq/fF/np6eNHHiRHMupcnDg9WOHTvK5j916pTsMRyAgFoE2rQJF6pyI1r6Cb+QEQkQUJhAs6aGX2jw4sXFJRs85VZYkVEcFQsgAFRx4yq1asnJ6ULR+ALwfOY3bBAoiQBfBF5uq1Spktwhi6RfviL/ZKJatWrCtPaF3bRGjRqyWRISxCfosplxAAIOKhAU5CeUPD4hVUhDAgQcQaBmjTJCMRMTUoh/gYgNArYWwBhAW4vjfnT5yh1Bwc3DTUhDAgSKKhATEyN7Ch8DaK2twOU+tW/Xnk3QMvvhLdzcXIh3Y+MbDwCLutWsKX5brL1GUlKSdhevEFCtQLBEAJgQjwBQtQ2u8opVrlyafdXNxrWy/2k3PhPordtJFBYWok3CKwRsIoAA0CbMuIm+wNUr4gLwnp4e+lmwD4FiCZgKAKtUqVKsa5p1EvsGt2GjhpofbX4PN3dyZUFgcTe5sYz8eqGhocW9LM6DgMMIBAX7CmWNRwAomCDBMQTc3V0pODSQEhMeLBOkLfXNmwkIALUYeLWZALqA2owaN9IK3IgRx3D4+HprD+MVAsUWkFsCgl+watWqxb5ucU50KeFf1wsXLsjetlatWrLHcAACahGQegKYmJimluqhHk4oUKZssFDrW7fRpV9AQYLVBfAE0OrEuIGxwG3W3cF4C/AXv+k1zoP3EChMIDY2VjKLr68vBQUFCcf47J38SVtwcHCRx+jpX0xvpnr95BLtm5roJSIiokTX1j85NzeXvvrqK9q7dy9dYeMY+XIVvPtp//79NQvU6+fFPgRsKRAcIv67kJiILqC2bAPcy7IC5SqUosgL1w0uGhsrfiYyyIA3ELCCAAJAK6DikqYFEiQG8QeH+Js+CUchYIaA3BPA0qVLa86+dOkSLV68mI4dO0Z3794lvmYgH4PB1xvji7Tzdfjat2+vCX7atGljxh21WaRG8Re/++cXX3yhCca0V9d/LVOmDI0aNUo/qdj7UVFRmrUR+av+xifT2blzJ61fv55++OEHyeBZPz/2IWANgZBgcRKYpERxEjFr3BvXhIA1BMqXFcf64UsNa0jjmoUJIAAsTAjHLS6QkZElXNPfT/ymV8iEBAgUIhAXFyeZg68fNnDgQDp69KjklNv8SWBqairxbpf8hweJjRo1ovfff59at24teU39RKkngCymLNa2e/duWrBggey5L774IvFlJUq6cZMJEyaQNvirXbu2ZumJzMxM2r59uyZA5k8Fp0+fbnKB+5KWA+dDQE4gJFQMAJOT0QVUzgvpyhcIkvhSIysrT/kFRwlVJ1DCUSqq80CFbCCQmZEt3CUgEGMABRQkFFlAbuIU3jX0yJEjksGf3E1Onz5Njz/+OPFF2W2xnT9/XvNkb/jw4ZSTkyN5yxYtWtDYsWMljxU18euvv34Y/PXp00cT9H344Yc0f/582rVrF/GAkG9//vknHThwQPby33zzjcnjsifiAAQKEZB6ApiCALAQNRxWskBggI9QvOws6b/3QkYkQMCCAngCaEFMXMo8gawsiQAwAE8AzdNDLjmBjIwMzVM8uePFSedPBvn4OB5Y8sBIbtOf1pvn4VN9S20zZ86ka9euPTzEu5/y4PTmzZvEn7yZ2ho2bEgrV64s0VhF/evzJ418c3Nzo7lz5xpcl4+XfOutt2jMmDGaoHnHjh0k1SWWj1OcM2cOFRQUaPJPmjRJ/xbYh0CJBXx9fSgjQ/ffBt/Pyytgv6/4/rrEuLiAzQWk1rbMysq1eTlwQwggAMTvgM0FsjLFb7sCgxAA2rwhVHZDHkRZa1uxYgWFh4fTM888U6Jb/PvvvxQZGVnka3To0EEzFo9PZmOpjU/4wrfy5csTH1dovLVr104zNpIHwRcvXjQ+rAkMp0yZohlDybuk9uzZU8iDBAiUVMDPzzAA5Ne7G5dMFSuIY6lKei+cDwFrCwRLLG2SlS1+JrJ2OXB9COArNPwO2Fwgm806aLwFS/SLN86D9xAwJcAnLjFnc3d3J74mIB/bxxeH1y7WXti5H3/88cMuk/p5eYBkvBV3/J/xdcqVK0e8i+Xq1astPhFLSkqK5nYhIdIfpP38/DRPB3kmPlmO8bZw4ULi3Vb5NnHiRMLSFMZCeG8JAX+JLnNxcZgJ1BK2uIbtBUJCxHGt2dniZyLblwx3dDYBBIDO1uIKqG+exB+74EDxj6ICiooiOJAA70LJgzupjXdzfOyxx2jbtm2a2TX5mLZ169bRwYMHic8MumbNGs0TPqlztWn8+h999JH2rU1e+ZIM/L5SQWZJC8CvzTe+DITUxu/Ju3byzdj11q1bD7vE8vUVp02bJnUJpEGgxAL+EksE3UMAWGJXXMA+AkGBYi+ObDwBtE9jOPldpT8tOTkKqm9dAXcvD+EGUktDaDPdZhM7npFfE1ubDa9WFgirwLoLlrXyTUpw+fadBtDBwz1YULePDu7fQ4cP72fdLS+Ql7c3C1a+pY6du2qunpphfBNvqtewHa1as5U+/eQDWvbzItatUWpZB2IB5A66cPE2latQXncRljUv3/C7NL6shJvEX1c28SYLqnSnFrZ37Vo0TZnyGpsV9HN6Y8b71K17r8JOMft4xYpVKCEhiW7ExFLig4eBBudeZV1E+VgrvlWuUssgz5RXp1NaWoami+jbsz6htEz237RumJbBdZT2JvYW0a27SisVyiMnEBcn/AdLV2P8adseuTOQDgH7CjQMZ/9Wir3qNYXKlAj2vLxKPquzfWuMuzuigMRHFEesBsrsSAKenhIBYJL82k58bowtOxyphuosa8tmRB6K/4vhTQ0juml+xj/Ln27lsEAlhUJCSlN8QmHt4kbPPPcuxbHxRRs3rpLMnMsiuCU//kTPPDtd7zif8MVN7738bsF9NxY06YJF/pTNeAIZqbOjb0TTSy+Mp7dmfUE9ez0mlaXIaZWr1KPTZ05pJs5ZsmQZDRxkuLbgd999z8r2YAurXP+h3+5dm9kagds0B7p1e4TqhHd8eKzIhbDDCSfOEp08bYcb45bFEkhJFr9ZOHE2gCKvFetyOAkCVheoWVX+Fhnp4jJYUp+J5K+AIxCwjIDiP85Zppq4ipIEvCWeACabCABDpYcoKalKKItCBTw8PDXBX1GKN/mlt+mfnZsoPUN6nNHx4weLcjmDvEt/2W7wviA/j80Aep2uX79EN6Kv0MY/V9HVa9KTxOSxGUM/fO8lzVO3Hj0fNbhOcd6MHf8K7djxB2VlZdL/5r9NKclJ1L3nQMplS1CsX/cz/bH+F81ly5ULY8HhCM1+dnYmLZg3Q7MfGBhMr71umyUyilM/nKMOgdxcMQD09glUR+VQC1UKmPrMkpEudrn39ha/FFclDCqlKAEEgIpqDucojLf3g7FH+rVNSZF/AhgUwHqXiZ8B9E/Hvg0Ecti/WywGUf3m7x9KTzw5nn5c8plkXS9FnmVdI+9rAjHJDEVKdKeKYTU1P23bEQ0dNok2/PEL/fDdx5SYFC9ciQeBn859k9q260Xe3uJYEuEEEwnly1elZ5+bQV9+PoutO5hN334zW/Ojf4qnhxe9MXMBGwPoo2n7Lz9/n+Lu3dFkeW7STOJWjvY7wR4K4++JfiMrfD831/CJibu7N2Vn46OLwpvNqYvHP7PIbWkSTwC9vPD7LOeFdOsJ4LfOera4soyAj68YAKammo7w+NgpickWZe6AZGsIsIdVTtMGEY3bsspKB4Dp6al0904slWVPxqyx9X9kJFWpVodemvw4FUhEV6mpybRyxUIaM/bVEt/+8SHjqWatBvTJx1Mp5saVh9fjYxjD6zWhmW9/rhn/x//bi4w8Rb+vX8ZciBo2akG8nI743yQf1igz783D+mNHGQK5OXz8n7Yj8oMyuXv4of2U0TwohYRAYTNAZ6SL6yBLfSkucWkkQcCiAggALcqJi5kj4OsrDnhOl/hWTP9armyIFQ9AsEHAFgLVa7BR/Ca2xKR7VgsA+W0bNWpJjw8eS2tWL5Ysxdo1S2j0mCkWeQrZuEkb+mXlXjYhTBxFXjxFvNts3fAI9nQv6OG9+VjFubNf0wSk/Pjrb85/eAw7ELCWQG5OmnBpTy9/IQ0JEFCKAP+sYmpLzxADQEwCY0oMx6wloJuNwFp3wHUhYCQQKLHkQ0qyfBdQfrobflONFPHWmgKhoWXIx0e+i2VyUqEzypS4eE+Nfln2GkmJ8XTrVrTs8eIc4HVu07Y7NW/R0SD449datXIhXYpis6ewbeiwiVS1am3NPv4PAtYUyM0Re4Z4eCIAtKY5rl0ygcI+q9y5kyTcIMDfW0hDAgSsLYCP1dYWxvUFgXLlxFld0tPFqb71T/TAGGl9DuzbQMDTy0f2LpmZpn9fZU8swoFgNnNpAJtoRW6LZhPH2GK7d+8W/bj4wRO/CmzpiPETptnitrgHBFhXT4kngJ5YMxa/GsoVKOyzSuxt8cvD8uXl/84rt6YomaMLoAuoo7egA5a/UuVSQqkzM8VuEfqZPD3vU3o6n24fGwSsL5DHZgpJSRb/odbeOThY/B3WHrPka1hYNbqQckLyktevR2me2EketGDip59MZ5OmPFjzb9r0eWx9wwffxuTn5WrGIp4+fZiir18mP/8AqsbGLvbtP5SaNetgwRLgUs4qIPkEEF1AnfXXwSHqzT+rEMl/VrkdK/67UrGy+KW4Q1QWhXRoAQSADt18jln46tXKCgXP4VNMmti8POX/oJo4DYecRGDd2v+jKDY7p9Q2ZOgEqlGjntQh2bSYm9fYBCeGk0/oZw4OEQPAZUu/oKxM6a7MffsPp7BK1fQvYda+q6t8J408G8xksnf3Ztr/7zZNWbuwNf9491C+RUWdoffemcSWrrisea/9v8gLp2jr379RvwHD6LWpHz8MFrXH8QqBogjk5oj/PXl5mZhisSgXR14IWEGgsM8qd++KAWClCuK/J1YoGi4JAQMBBIAGHHhjC4HaNcsLtynIyxfS9BO85Xvj6WfDvpMK8OBv458rJGvv5xdAk198V/KYXOL1a1Fyh4gHZWXLVBSO//H7MrpzO0ZI5wkBQSH05LDnJI+ZSuRrBMptoaXEL1Lk8hYnPTs7i60POENzakBAEL06dY5mn6e/OX0sxbGZUPlWqXINNitoS7agfCIdO7JX87SQtwV/SjqRLTOBDQLFFZAKAD08EQAW1xPnWV/A1GcV/qViwj1xDGClSggArd8yuIOxAAJAYxG8t7pASClxED9/1nIvPo1KSxzjBapemejaNb6HDQKiQKVK1cXE/1KOsqCkqNsfv/8se0rlKjXJx1cchxQcEiobAPK1A4u6paUlU7LEWoDa65QtKwah2mOWeF34zQd0T7vm3+S3KDDwQTel7xd+9DD469HzMXpr1lcPZyONuXGVJk8aSHySmlUrvqN+7MlnpcrybWOJcuIa6hWQ6gLq5Y0AUL0t7vg1q1ZFvg43byZSQQFbh0ZvCw4JYOusooeTHgl2bSQg37/IRgXAbZxPIDhIenbFtesOymK0biF7CAcgQC1adZJVuHrlAp06Kf+7ZXzixYsn6ejhPcbJD9/zZROkturV60kla9IOHNjBgqJ7sselDiz98TOpZE2ap6cXNYpoJXu8pAf4mn/r1y3VXIav+TeArfmn3Y78Z8OfrE59/ZOHwR8/zoO90WMezF6ax8YIHj68U3saXiFQZIHkhCvCOZ4IAAUTJChHoE1z+bIcOmzYZZ7nLFUq2OBvqPzZOAIBywogALSsJ65mpkBwSKCQc9uWk0KaNqFaJbYURCHr62jz4tX5BOrUiWBj7KSfNPFvXN9/bzJlpIszChpL8clfvvzsHZPj/3r2etz4NM37rt0GSKbzxJTkRPrg/Rdkjxsf4EHoml8XGSc/fN8woiXxINAam6k1//ix2P+6pco9CW3StN3DYl2+dP7hPnYgUFSBhHtiV+zQMnWKehnkh4BNBPhnFP5ZRW47dlwMAGvWCpPLjnQIWFUAAaBVeXFxOYE6dcV+EhcuXJPLrkkPxkzJJn2c/eCAR4bLEvDxai+/+Lhm8hK5THfv3KQJ4/rQ6VOH5bJQ/QbNKKJxa8njrVp3odBSZSSP8cQjh3bTG6+PJn4fU9umjSvp9ddGUb6JcbGDHh1t6hIlOrZ61Xeya/6lp6dQTs6DGXuDg0Ml7xPC1hPUbtoupNr3eIWAuQIJcRcpPz/LILt/QBj7ItDTIA1vIKAUgcBCeiefPXNdKGqjRlWFNCRAwBYCGANoC2XcQxDo3q0xHTpwxiA9MSHZ4L3xm2psHGB8vHEq3kPggcCwEZNo08ZVwsyUWp/Ii2do4vi+1LlLf2rEujVWrxnOFnv3o3NnjtKF8ydp/75tbCIT+d9BFxcXmjBxuvZywqurqxs9O2kmzfnwFeGYNoHPqDnq6L/Uo+ejVLNmPU0ZAgKC6fq1SPYTRQcO7CQ+k6aprRF7+telq/zTRlPnFnaMr/m3ZNGnmmxSa/55enpruivxJ4F5+XmSl+NPUbWbuxv+idFa4LVoAnG3xHGzQaHST/mLdmXkhoB1BKqI32sb3Cgq6obBe/6mRYtaQhoSIGALAfzrbAtl3EMQGPVUR5oz+xeDdP6hcuc/56hrl/oG6do39dkQq6MntO/wCgFDAR6AvTnzf/TKi088fEplmIOoID+fdm7/Q/NjfKyw9088+czDZRDk8vbpO5T+/muNZjZMuTzZWZmyM5bKnaNN5+Pupr3xIEDTplnyVW7NP+09eLfT0NCy7IuYOw8ngtEe077euKEbt8W7iWKDQHEE4tkTQOMtuFQN4yS8h4BiBJo0lC9KdHQcJSWkCBk6tEeXZgEFCTYRQBdQmzDjJsYCQYG+5OUlduVZb2IimPZsIhjMlWUsiff6Ag0atqB33/+Wzapm2e+2+Li251+YpX8r2f25837WdBWVzVDMA15sfvG585dR1aq1i3kF06fxrqnH2NNJvumv+Wd8ljaoi2ZrAPJF4I23P//QfbFTu04D48N4DwGzBJITrgr5SmH8n2CCBGUIsA4i1NbEBDAHDojj/6pWD8MEMMpoPqcsBQJAp2x2ZVS6YphurJC2RAcOnNPuSr76+UsmIxECDwXad+xDH85ZTIFs7T1LbL16D6YFn60w+x9q/pRswWerqH3HXpa4veYaZcuH0fzPVrKuqy0tdk3jC5UtF0Y/LdtJHTv1fbjmn3Ee/n702JcfdgN9Z+YE+nfPX8S7ffJZTr/9+n36Z8efmtP4+oCdO/eXugTSIGBS4O6tU8L4Pw9PfwoMKaSPncmr4iAErCfgX8hnk917xS7N9eqxcS3YIGAnAQSAdoLHbYlatQoXGG7FxlFurvTYIp65rBgzCtdAAgTatuvJgpl/qHWbrmYHbsZqIaGlacrU2TTznS/Jzd3D+LDJ93ydwNkf/0gz3/6CgkOKv8ivO7tvn35P0tKf/7Fq8KetTIUKVR4Ez/+t+adN139t3qIj9f9vwp2E+Dia8cY46tm9Jg0aEEErly/UzKDKg+AZb31WZDf9+2DfeQXi74qzxwYGY7IM5/2NUH7Ny5eTLyMb3UKHDl4QMrRqXVdIQwIEbCWAANBW0riPIDBqZCchjU/Z/9df8pNg1MQcAIIZEqQFQtlslJ/M/4UW/7iVunYfSAEB4tIjxme6snm8a9aqzyZzmUFr1h6hRx8ba5ylSO979RlCa9cfo+kzFlB4vSasa2rhgSSfbKZc+Uo0dNhEWr32sGZco9TC80UqiIUzT5v+Kb06bQ7xMYl842MrtVudug1p0Y9biHfHxQaB4ggk3tONI9WeHxSKAFBrgVflCYSbGMp39eodio25IxS6d6/GQhoSIGArAcsOlLFVqXEfVQg0bVadvLy9KDvrwbTy2kr9+tu/9MgjzbRvDV6bs7+XW3cYJOENBEwK8IDu3fcXavJcvnSOTpzczwbj36OkpAQ2WUwOBQUFU3BwKeKzXrZs1Zn8/YNMXq+oB/nTw379h2l+eFfJk2xR+sjI05q1AVNSEimPLfcQGBjEfkLYWoZVqVmzDuypYemi3sbm+Qc9OoYGDBhBUZfOUuTFUyzADqa64Y2pYkV8ULd5Y6johnl5WSQ1/i84tIaKaomqqEmAz01gavzfpk3i7HV8/F/VKsr/O6+mdkJdDAUQABp64J2NBapWLc8+PF43uOvJ45cM3uu/4YusBrIHOSniZFr62bAPAUkBHgzyH3tt7h6emplEeTdKNWw8uA0Pb6L5UUN9UAf7C8TfOS+M/+OlwgLw9m8blEBaoBSL40JNrFO8a+9p4cQWLUw8MhRyIwEClhdAF1DLm+KKRRBo1Zqt7WC0JdxLort35ddjayCeYnQFvIUABCAAAUcUSLgXKRQ7ILAyefuY+IQtnIEECNhOIMLE8g8F+ffp5NEooTAdO9rvi0ihMEhwSgEEgE7Z7Mqp9PDhHYTC3Kf7NH/BBiFdm/BYPyK25Bs2CEAAAhBQmcDtmGNCjYJCMfungIIERQiwYeP0WB/5oqxdf4gyMjINMgQE+lO/vk0N0vAGArYWQABoa3Hcz0CgcUQVNgbrwUQS+gf+2nxI/63BPvvbSRVMzLhlkBlvIAABCEDAIQRu3ThM6am3hLKWLt9ISEMCBJQgwGf/9DAxt9fqX/cIxWzWvC75+orrIAsZkQABKwogALQiLi5tnkDHzuJMWPH3EunAQfmxgG1bmXdt5IIABCAAAccQuBV9WCioX0AFqlStnZCOBAgoQaCFiQd58fFpdOjAeaGYvXuZOEnIjQQIWEcAAaB1XHHVIgjMmjWUXF3EX8X/ffa77FV6sDk0vL1lD+MABCAAAQg4kEBmejzdiT0ulLhCJXzbJ6AgQRECbE4v6ttNvig//7Kb8nJzDTKUKh1MTwxta5CGNxCwh4D4qdsepcA9nVqgQvlgqlqjomBw9NAFtr4YW0FVZqtZQ+YAkiEAAQhAwKEEYqMPstk/DZcEcnFxp0rV8fTPoRrSiQpbhc1KLrfxxd9/X79fONy+Y2Py8TbRZ1Q4AwkQsI7A/7d3H/BVVGkbwJ/0ACEJCQklhCQklBBCb4IUQRClWKhSRIplV117/dayropib+juqthdXUVRLIBRpChVOgESShoJaaSQEFLge08wmGRm7r0JyS25z/hj773nnJk5858s5L1zznsYADaOK49aR4GpU7XJYEpkfcC3lxov+jfOxDdvdTw9m1OAAhSggA0FMlK3as7eNqQvfHzbacpZQAF7EBg6yLgXu3anIKHWEleq9fgr+hnvxBoKWFGAAaAVsXkqY4G/3XYFmjXXjulc+s4qw506R8jaOwGG1aygAAUoQAEHEMjJjMeJHO2c7/Zhgx2g9+yiMwo0aw4M6W985a+//q2mMjyivQSAvTXlLKCALQQYANpCnefUFejTV7swakpSOvbuTdVtrwp7MTmcoQ0rKEABCjiCwLEkbdZnX/8wtAs18Ru2I1wY+9hkBTqFG1+aWsd49UptQqMRI7UJ74yPwhoKNK4AA8DG9eXR6yDw6GPXwkX+q76pGYBPLfpf9aIa76dPAjyZTbmGCT9QgAIUcBSBivJS/eQvoUz+4ij30Nn6qdYhVusRG22vv7ESZbWSv6gRTvPmcd6KkRnLrS/AAND65jyjgUBMdAgiu4Rqan/bsEdTVr1gAIfUV+fgewpQgAIOI5CWtBElp3Jr9Nfd3VuWfmCmxBoo/GA3AtFdgQ4mpqZ+/ukvmr6OvWwQoiK5gLEGhgU2E2AAaDN6nlhPYOEN4zTFpaVlWPzs15ryqoI5UwAfWRyeGwUoQAEKOJZARqp2qFybDv3QrEVrx7oQ9tYpBNSIo79cb3yp/3k7Dvn5hZoGs2eP0JSxgAK2FGAAaEt9nlsjMHvmxQgMaqUp/+D91Zqy6gUjh1b/xPcUoAAFKGDvAjmZ+5GZvlPTzZAwPv3ToLDALgT6yRru7jIE1Gh769/fa6pGjuqHiwZHacpZQAFbCjAAtKU+z60rMHGSdt2nE7n5eGax8VPACWOBwEDdw7GQAhSgAAXsUOBQ/HeaXvkHRCG4XU9NOQsoYGuBFi2AudOMe7F06RqkpWZqGkyfoV3mStOIBRSwsgADQCuD83TmBZ54fDpatGiuafjWf1ZoyqoXjJcgkBsFKEABCti/QMrhdfL0b4emoyHh2i8ANY1YQAEbCAw3MdKovPwMXn75K02v+vaPxsTxTFSggWGBzQUYANr8FrADegLXTBmuKT5VXIK/3f6OpryqQK3J0yGk6hNfKUABClDAHgXOnqnA4QMrNV0LDI5BRJdLNeUsoICtBdSaw1deZtyLN95cheysmsmMVOvZsy4x3ok1FLChAANAG+Lz1MYCi56aiVYBfpoGXy9fj6ws7QTrqoYzrgFcaq4kUVXFVwpQgAIUsAOBhL1fozA/WdOTyGgTufU1rVlAAesJXDHG+FxnKs7izSXfaBr0GxCNadMGa8pZQAF7EGAAaA93gX3QFZg3X/t1W3lZOW79279126vCqHCgc2fDalZcgEB5xQXszF0pYCcC5eV20hEn7cbJggwcSdAm9QqNGCFz/2KdVIWXbc8CITKy6GITy1I+/exy3cyfc+aMsufLYt+cXIABoJP/ANjz5d915wS0bR+k6eKva3di/foDmvKqgoWzJEuXR9UnvjaUQIHxg9eGOgWPQ4FGFyjkz3GjG5s6waF9K1BWerJGE09PX0R1n1CjjB8oYA8CakTRlEnGPUlLO4Glb2uTGfUb2B1TJg8y3pE1FLCxAANAG98Ant60wB13XKVpcFZK7rvPeC6gr6wJ2K+3ZjcWXKBARqaS50YBxxbIOO7Y/Xfk3mem70bK0bWaS4joOhYtWnKRbA0MC2wuENsDiDaxgsP9D74HlZ+g9jb3Oj79q23Cz/YlwADQvu4He1NLYPasYYiI7FCrFEhOSsfLr/6gKa8qmDcDCNY+PKyq5ms9BPJOuCAtvR47chcK2InAkRSgqMhOOuOE3Tiss+yDn38EOseYeMTihE68ZPsQUIlf/nq9cV++/34H1sT9rmkw6KIeuOZqE2NGNXuwgALWF2AAaH1znrGOAs+/sBCurtof1VdfXmbySDfO5VBQk0D1qNy+ux47cRcK2InAjl120hEn7MbRhDhkZ+7VXHmn6HGaMhZQwNYCbu7AgtnGvSgpKcODD76raeDp5Yn7H5iiKWcBBexNQPtbtb31kP1xeoGB/Tth/ETt2lAlp0pw3dxXDX06tANGDDWsZkU9BBIPAfEJ9diRu1DAxgK744GkZBt3wklPX152CkcOapd9aBsyACFhFzmpCi/bngWGy49lZJhxDx9/4nPdZR8W3nAF1O8s3Chg7wIMAO39DrF/lQJvLLkRgUGtNBo/x23F5q0SlRhsUycCodoRpAatWWyJQNwa4FiGJS3ZhgL2IZCUCqifW262EUjY9zWKCmv+peHq6i6JX8bbpkM8KwVMCKjfGaZr0w+c32PPnhS8v/T785+r3vTq0wUPPShrUXGjgAMIMAB0gJvELp4TeOhBmdhXazt79izmz32xVmnNj3f+BfDyqlnGT/UXUGn0v/oWSDxS/2NwTwpYS2B/IvC1NkmftU7v9OdJPforDsXLXxi1tvDOY+AfyCcltVj40cYCzbwlydytxp0oLz+DhQu1I4/UNJV77zERNRofkjUUsIkAA0CbsPOk9RGYPv0i9JWFVWtveXkFuPqaZ2oXn//cXP5CH3fp+Y980wACpaXACsnBs/oXQPi5UcDuBHLzgJU/Az+sBiq4hqVN7k9BXgr27/iv5twtfNpI4hcZnsGNAnYmMFEeSnuYWEbqwYc+QmpKzafZ6hLmXD8WI0dKylBuFHAQARd5gnLWQfrKblKgUqBr15tRdLJYo3H3vdNx5x3GQ4qeWyJPrYxHi2qOxwLLBTqGAiEy57KVjNL1NPGPp+VHZEsK1F3gtHwxcUICv9S0c3/qfgTu0ZACv8U9jZysfZpDxvafj7CokZpyFlDAlgIx3YHbFhj34Kef92LunMWo/WtzTGwUVv7wiPGOrKGAHQowALTDm8IumRZ4+52f8NjD76L2Nxdubm74YtnD6G9iAvbd8nc008Cb9mUtBShAgQsV2L31PSQlxmkO0zFyFHoOuF5TzgIK2FLAv9VZPP13WfXdYDuRV4Thwx7Aidz8Gi3c5XHhu+/eLU//JHrkRgEHEuAQUAe6WezqOYEF80dh2CX9NBwVMs7rppteQ2mpTFIz2K6R5aaM/4o32InFFKAABShgsYBa8kEv+PMPiESPfrMtPg4bUsAaAmrJh7kzjH8zUOPkbr9zqSb4U3278aaJDP6scZN4jgYXYADY4KQ8oDUEPv7wdgS3CdSc6nhGNuZcp52gXdVwaH9g4ICqT3ylAAUoQIGGFMjNPIj9Oz/THNLN1Qvd+8yQNV3lt21uFLATARX2Tb4SiI4y7tBbMurop1WbNQ0GDYmVrJ9M/KKBYYFDCDAAdIjbxE7qCbzxxq1Qwz5rbxvWbceip7+qXXz+8zxJJtqt6/mPfEMBClCAAg0goNb727v9Y5SXn9IcrUvsFAQE8S9eDQwLbCpw6ShglHaZ4fN9WrdhP554/MPzn6ve+Pq2xGOPaDOTV9XzlQL2LsAA0N7vEPtnKDBoUCRmzBytW7/k1S+xavUu3TpVeMeNkrSkvWE1KyhAAQpQoI4Ce7a9j/wThzV7hYQNQWT0ZZpyFlDAlgIDZUTQZOO8cUhOzsbNN7yKCrX2Ua3t1tuvQmysZD/jRgEHFWAA6KA3jt0+J/DM07PRPSZSw3FWUsT87dYlyM45qamrKnj4bkBN/OZGAQpQgAIXJpAoa/2lHt2gOYiPbwfE9J2lKWcBBWwpEN0NmH+tcQ9KSsowe84LyM8v1DSaMGko/nrzGE05CyjgSAIMAB3pbrGvugIrVvwf/P1baupOylIRU6Y8rSmvXqCyfqmFX7lRgAIUoED9BDKP7cKBnf/T3Tm69zR4emn/ftZtzEIKWEGgvYz+uf0G0ye68aY3cTgxVdMopkcUXnnZxFoRmj1YQAH7FGAAaJ/3hb2qg4Cnpzuee/FGSS6g/XFOPJiMufNeM3m0F58EVBYwbhSgAAUoUDeBkwXpMu/vQxlzcUazY5eYa9CmfW9NOQsoYCuBZs2BR2T0j6ntqUXL8NOPWzRNWvr64J9Pzob6nYMbBRxdQPsbs6NfEfvvlALjxvbCjGv15wPGSfau2/72jkmXV5/i8hAmgVhJAQpQoJZA6elC7Nj4bxQVZtSqgQR+fdEllhkSNTAssJmAi6T8fPGfpk+v1hle8pp+Erl775uGgSbWGTZ9ZNZSwL4EGADa1/1gby5AYPHiOejRs7PuEb78Yg0eeOAj3TpV6OoGPGTmW0HDnVlBAQpQwOkEzmL7r28iL/eQ5sqbNQ+SeX8zNeUsoIAtBZ54yPTZP/tsI/7x6Pu6jWbOHov580bq1rGQAo4owADQEe8a+2wo8MP3DyMg0E+3/sMPVuKpRfrf7KkdQmVewMI5uruykAIUoAAFqgls2/AGso7vrlby59tuvaaiuU/wnwV8RwEbC8ybDQQGGHfi+5U7ce89/8KZM9qhzIOH9MTiZ+QA3CjQhAQYADahm8lLOSewbt0zaN6imS7HkteW4c1/rdatU4X9ZbrKFI5aMvRhBQUoQIFdW95FespGXYheA29ASNhg3ToWUsAWAtOuBgb1MT7zpk2HcMtNr6CiokLTqN+AaHz80R2achZQwNEFGAA6+h1k/zUCfn7NsXLlP+HhoT9R+4nHP8A3K7Zp9qsquHQYcPOCqk98pQAFKECBKoH9O/6H5EM/VX2s8RrbfwFCO8lfoNwoYCcCc6bLQu8XG3dm69bDmDN7MUrLyjSNOkV1wHvv3s6kLxoZFjQFAZezsjWFC+E1UKC2wLbfj+CqiY9Jdjrtj7gLXPDFl49g4MDI2rud/3zgkEwYX3L+I99QgAIUcGqBhL3f4MBu/eUeevSbi/DOo53ahxdvXwJqSoca1WO0/S6/I8yY/jSKi09pmjRr7o21a59Bu3atNHUsoEBTEGAA2BTuIq/BUODHuN24/rpndetdJCXY+l+fQ1jHIN16VXgoCXjuFeiEkIa7sIICFKBAkxM4cmC1LPfwge51xfSZg4iuY3TrWEgBawtIsk/8ZSHQM9r4zDt3pWDq5Cd0gz+11/oNzyM83Ph3A+Mjs4YCjiHAIaCOcZ/Yy3oKXDo6Fq+8dqvu3urh97Ch9+JY+gndelUYGXYuO6ibm2ETVlCAAhRo0gIph9cbBn/d+8xi8Nek775jXZzK6H2X/JNvKvhTo4NMBX/f//Akgz/Huu3sbT0EGADWA427OJbANVcPxLPP3aTbaZXx66JBd5kMAlV20IfvAby8dA/BQgpQgAJNViA9ZRt2bv637vVF95qBTl0v061jIQWsLeDuATxwO9A5wvjMKvibPu0pwyd/H370AGJjQ40PwBoKNBEBDgFtIjeSl2Fe4PPPN+GO21/Xbejp4YGfZbx/WMfWuvWqMDcPePIFoKjIsAkrKEABCjQZgeNp27Fl3Yu61xMZPR7RvSTDBjcK2IGAt3xB+9BdQLDxP+Ey5eMA5s19HqeKS3R7/NXyR9G/f6RuHQsp0NQEGAA2tTvK6zEpsPzrrbjlLzKpT2dzdXHFyh8XIbpbO53ac0Uni4F/LAYKCw2bsIICFKCAwwsc3P0lDu79Uvc6QiNGoteg+bp1LKSAtQVatAAevQ/w9TE+86rVu3HTDS+hTCfbp9prddwzJv/tNz4yayjgmAIMAB3zvrHXFyDw7Xfb5R8C/W+11WFfee02XHP1AMMzlJYCf18EFBQYNmEFBShAAYcV2Lz2RWQe267b/7YhA9B/2G26dSykgLUFAgKAx+8H3PVXfarszgcfrsOD9//HsGubNr2EkA5yIG4UcCIBBoBOdLN5qX8KrFq1C/PnPfdnQa13d98zHXfeOb5Wac2PT0oMmZJas4yfKEABCjiywC/f/R8KC1J0LyEgKBpDRj+oW8dCClhboFtX4I4bTZ/11dd+wOJFn+guB6X23LPvTfjL2sHcKOBsAgwAne2O83rPC2zfeRQTr3jk/OfabyZPvQQvvzSvdnGNz+9/BmzcDJzRLjVYox0/UIACFLBngcL8VGz86RmcPp2v283g9n0wcPidunUspIA1Bdzkad+lI4GrLzd91of+/gneX/q9bqOWMl50165X4OFh4tGh7p4spEDTEGAA2DTuI6+ingLFxaWI6X6zzAso1z1C3/7d8PXyh3Trqgq37QI+/pzJYao8+EoBCjiWQMrhddi1+W15SnJGt+MRXcYhpu9M3ToWUsCaAr6+wA3Xmc70qfozf8HrWPXDJt2uhUW0x/p1i6DWAuZGAWcVYADorHee111DoF+/O3E8I6dGWdWHwNb++P6Hx9G+nX9Vke7ropeBpGTdKhZSgAIUsEuBA7uWIWHfV4Z969F3LsK7jDasZwUFrCUQ2Qm49xbTZzt6NBuzZj2HpKPHdBsOGNgdX375gG4dCyngTAIMAJ3pbvNaTQpMnrIYm37bo9vGQ5aJeOmVv+DKSf1166sKP1oGbNgoQ0Irqkr4SgEKUMA+BXZtXorkwz/rds7FxU2GfN6DoHYxuvUspIC1BNTi7sOHAjOuNH3G7yTB2513/QtFhZKuW2ebdNVwLHl9oU4NiyjgfAIMAJ3vnvOKTQjcdfd7+Oy/cbot1GCR6xeMxz8fN7321c544MNPuVSELiILKUABmwtUVJRh24bXDDN9NmseJMleHkKzFoE27ys74NwCPrK0w2z5J7d3d9MOj/3jf3jnrW9x5oz+MOYbb74Sjzw82fRBWEsBJxJgAOhEN5uXapnA8y+swIvPS3YXg61Pv2745mvT8wLVrs+8Bhw5YnAQFlOAAhSwgUBhfhp2bnoLebmHdM8eENStMvjTrWQhBawo0DFUFne/w/QJ8/KKcP28V7F18z7dhm5ubnj08esx//oRuvUspICzCjAAdNY7z+s2KbDsy824+843DZPD+Pr54MOP7kPfPuEmj/Pp18Da9UAFh4SadGIlBSjQ+ALJh9fi4J5lKCnO1T1ZSNgQ9LnoZt06FlLAWgJqyOcgmW0xd5rpM27cmIgbbngZJ3L1M9eq+fsvvHQzRl9i5vGh6dOwlgJNUoABYJO8rbyohhDYsycV06ctQn5+oe7hXF1ccd28cXjinzN066sKE+Qp4AcyJDQzq6qErxSgAAWsJ1BWWox92/+LlCNrDE8aFX0luvXiEDlDIFZYRSAoSAI/+Sc1Ktz4dGfPnsXj//wcb//HeMhn565hMiT0NkR0CjY+EGso4MQCDACd+Obz0s0LnKk4i0EX3Yv0tEzDxpGdQ/Hj6n+YXU/ov8slQcxvkKeKhodiBQUoQIEGFTieth37d32Bwnz9FMVubt6yxMMsdIzkELkGhefB6iTgLsvxDR4o8/3MfAdxLD0P8+e/ij27EgyPP+TiXvjs07sN61lBAQoADAD5U0ABCwRGj34UB/YbT+jz8vKUbySvl/TTF5s8Wm4e8MZSICXVZDNWUoACFLhggfidn+JQ/LeGx/FpGYIe/WejdRtm+jREYkWjC7RrJ2v7zQHatzF9qu+/34E7ZWrGSYMsn2rva6aMxCsvzzd9INZSgAIMAPkzQAFLBW659S18s3y9YZYxdZxhI/rik4/NzFqXdt/GAT/+BJwqsfTsbEcBClDAMoETOYmI3/E/5GZJSmKDrUP4cHTvMx2eXi0NWrCYAo0r4OF5bnmHqRPMn+e229/Bl5+vMWzo59cSt9x2Jf76l7GGbVhBAQr8KcAngH9a8B0FzArExe3F3Xf/B9lZ+kkU1AHUP0Svvf5XXHKJ+W/VX/gXcPCg2dOyAQUoQAGLBA7FfyeJXr6SxFP63y55e/ujc49rEBY10qLjsREFGkMgtAPw1wVAK1/TR9+x4yhuvnkJUlMyDBsOHtITjz4yDbGxHQ3bsIICFKgpwACwpgc/UcAigZmzX8K6n3/HWYPWLnDBxKuGWbTo7IatwPIVQIF+rhmDM7CYAhSgwJ8CRYXH5anfZ8hI2/JnYa13we37onvv6fDxlTF33ChgAwEvL+DSkcBECx7ULX72a/k3dDnKDSbOe3p64MabJ+GB+82sEG+D6+QpKWDvAgwA7f0OsX92K/D+h+uw6MlPUFhw0rCPwW0C8cEHdyMmRr7uNLO9+T6waxdwxiiqNLM/qylAAecUMLe8g5ubJzrHXIWo7haMtXNOQl61FQQiIoC7boIkTDN9stTUXNxw4xLs3mk8PCa2V2c8+OBUDB/WzfTBWEsBCugKMADUZWEhBSwXmDDhSezYfsBwBzdXV8yaexmeeuJawzZVFfsksdknXwBZXDKiioSvFKCAgcDpknzs3/mFyeUd1MLu3XpNQUDrLgZHYTEFGlcgIAAYN1rm+w02f57PPtuIh/++FEVFpwwbX3f9ODz15EzDelZQgALmBRgAmjdiCwqYFXj2uW/wrze+RknJacO2gUGtsHjxAlw2tqdhm6oKlSTm57XASeOHi1VN+UoBCjihwOEDK3FE/pwqzja8+k7drpAhn7KoGjcK2EDAxwcYORSYYMFwz6TkLNx111Js+m2PYU87RYXi3nuvwcQJ/QzbsIICFLBMgAGgZU5sRQGzAjm5RZh8zVNITEgx2bb/wO54++1bERgg/zqa2d77DNi2HSgtNdOQ1RSggFMIZKT+jkP7v8OJbOPhcS39QtG152S0DenrFCa8SPsS8JZ5fgMHADOvNt+v8vIzeO6F5fjPv77F6RLjf+iunjwCTz45G74t5eDcKECBCxZgAHjBhDwABWoK3HffB7II7c8oLy+vWVHtk4dMgpg7bxwee3RqtVL9t2r++5J3gQMyypTzA/WNWEqBpi5QkJeCQ/u+RVryryYvNTRipCzvMAMens1NtmMlBRpawF3m9vWS5NdqTT9Ltt9+O4h77nkHSUePGTZv2z4It99+FebMHmbYhhUUoEDdBRgA1t2Me1DArMC2349I6urXkZ6WabJtcHAgHnt8DiZNNP9N/aGkc/MDU9NMHpKVFKBAExKoKC9Bwt4VOJqwWr5UMp4X5d08AF1keYeOnYY3oavnpTiCgKsL0EWmmM6XaXm+5ge2ICf3JB577FN8+cUvJi/v0ssG4R+PTUdYx9Ym27GSAhSouwADwLqbcQ8KWCxw113vYflX63H6tPHcQHWwmNgovPjiAnSPDjF77A2bZSH51UCu8VKEZo/BBhSggP0LJCWuqZznd7LQ9Lc+HSNHobNk+GzWgr8o2/9dbTo9lLgPoaEy1HMKEG4+0TVOlZTh9dd+wNJ3fkB+vvG6R52iOmDB/HGYO5dfZjSdnxZeib0JMAC0tzvC/jQ5gdLScsy49nls2bhP1g00XuPB1cUVI0b3w1v/uRlesr6RuW3Z98B6GQ1WXGyuJespQAFHEsjK2IPD8d8j6/huk90OatsLkZLopXXbaJPtWEmBhhZoEwxceQXQN9b8kc9UnMVbb8dhyZJvkJ11wnCHlvL4cOasUXjwgWvg7u5q2I4VFKDAhQswALxwQx6BAhYJxMXtxcMPv4/kpHST7T09PTFt+iV4+ulZJttVVb71IbBnH2AiAWlVU75SgAJ2LFB8MhOJ+1Yg+fAak7308e2ATl3HoWMkn5CYhGJlgwqoJ37t2wOXjZIkL30sO/Snn26U0S3LkJqSYXKHCZOGyly/SYju1s5kO1ZSgAINI8AAsGEceRQKWCzw3PPf4J23fkBBgfEQGHUwn5YtcPsdk/GXmy+16NhfrAA2/w4ZWmNRczaiAAXsSCBh7zc4enClDBcvMOyVh0dzhHceg6iYSXBzMz9KwPBArKBAHQTUHL+OYfLE73IgOsqyHVf/uFuydn6KxIPJJnfo0z8af735clx+eW+T7VhJAQo0rAADwIb15NEoYLHAjTe9idUrN6OszDhbqDpYqwA/3HLLJEkqM8aiY2/YCvwkc+uPyYPGs8YjTi06FhtRgAKNJ1BWVoykxJ+RemQDThakmjxRSPhQREWPR0s/CyZbmTwSKylgmYCbOxDZCZg2Cehg4YO5n9fswzNPf4E9uxNMniSkQxvJhD1Ggr+xJtuxkgIUaBwBBoCN48qjUsAigbS0E1i48DXs2ZVgYnbguUP5+/tiwQ2X4847xlt07CT5ffIrmSeYeAgSZFq0CxtRgAJWEDhVlHMu8Du6ASWnckyeMSAoWub5jUObEAvH3Jk8GispYF7Aw1Oe9HUFZk0G/Fqab69arF27H4ue/h927zQd+Hl5e2L6jFG4/76r4OfHpUos02UrCjS8AAPAhjflESlQZ4HPv9iEpxd9hoz0LLP7+vr54Lq5Y/HA/VeZbVvV4IPPgR27gKKiqhK+UoAC1hZQa/klH/oFaUkbUFZq+v+MzVsEI6LLZYjoatmTf2tfC8/X9AS8vWUdP0nqMm+G5de2dm08nlm8DDu3y0K1ZrbRYwbi9r+NR9++EWZaspoCFGhsAQaAjS3M41OgDgKPPPoZPv0kTgI14/W+qg7Xwqc5Jk8diUf+Phne3pbNB1q5BtiwEcg0H2dWnYavFKDABQrkZh2QwG+tBH6/ybBs00O+XV3dESbz/NSyDp5eFj5+uRAdzAIAABrGSURBVMD+cXfnFmjRAugnD5hnXm2Zg5pasHbtPrzw0nJs2xxvdqeYHpFYeOM4TJ08yGxbNqAABawjwADQOs48CwXqJDBv/utY98sOlFiQ2lNlDb1kdF8semoWgoP9LDrPXvmy9rsfgeQUDg+1CIyNKFAPgePHdiBFAr+MNJmYa2ZzcXFDSNhQSfIyCv6BMvGKGwUaUcDNTTJ6yry+wQOA0RdbdiK1nMN77/8if1ZLchf5x8PMFtU5FJOnDMNtt44z05LVFKCAtQUYAFpbnOejQB0EbrnlLaxetUXW+jP/RNDN1Q39B3XHE4/PRHT3EIvP8m0csHU7cDwTOFNh8W5sSAEKGAikHf0NKYfXITtzj0GLP4vd3DwrA7+wqFHwC5BUi9wo0EgCahmHVgHnhnlOljX83CXJiyVbUdFpvPmv1fjowzhkHjc9Z1UdLyY2CtOnDcf8+SPVR24UoIAdCjAAtMObwi5RoLbAPfd+gG9X/IbCgpO1qzSfXeCCbt0j8H9/n4aRI7pr6o0K1KhTlTRmz14gL08yiBo1ZDkFKKArcDRBZfRci7xcybxkZlNLOoSEX4ywqEsks6flX9iYOSyrKaARUEM8O0cBl8v6fWF1SCJ7LP0EXn31eyz7Yi2KThZrjlu7oN+A7pgxYwSunXFR7Sp+pgAF7EyAAaCd3RB2hwKmBNQcQfWPcd4J47XCqu8fHByIqdNH4J67J8DDw8Kve+UAh2XpplVrgIREJo6p7sn3FKgtkJ97BGnJm3A8dZv8kny8drXms6enLzpI4BfeZRSa+wRr6llAgYYQ8JBp4R1DgWESiw3ua/kR1fy+uJ/24t13f8T6dbtQbkEK6aHDemHmzOG4cpKMJ+VGAQo4hAADQIe4TewkBWoKPLP4a3zycRyys07UrDD45C7BX5++XXHnnVdi+LBuBq30izfL8NC1v52bL1haqt+GpRRwJoGK8hKkHt2IjJQtyDq+26JL927WSgK/YZVz/Lybyzg8bhRoYAG1YHtQENBfErpMrOPyetnZJ/H+B2vw2adrkZqSYVHPRo0ZgDmzRmLMGEkdyo0CFHAoAQaADnW72FkK1BR4fckqLF26EhnHLE/rGRQcgClTRsji8mPh7y9jg+qw/fAzsEUCwgx50FFRXocd2ZQCTUAgR7J5HkuSp31p22T9Psu+fGneIggdIlTgN5pZPZvAz4C9XYIK+gICga6dgfGXynt/y3uokrps3pKAt96Ow09x21B62vw3fGokydhxgzDnulG4eIiclBsFKOCQAgwAHfK2sdMUqCnw3ntr8eab3yIlOb1mhYlP7pIBICY2Erf8dTyuuKK3iZb6VT+tB37fBaTJKU+Znx6ifxCWUsDOBU6XFCBNPe1L3Yrc7P0W97ZFy3YIjRheGfi5e3hbvB8bUsCcgEreEiyjh2NlivcVowEvWbi9Lpua2/fhh+uwYsVGHE5MtWjXFi2a4/Lxg3H93JHo3Tvcon3YiAIUsF8BBoD2e2/YMwrUWWDZl1vw8ktfyj/qaZLExfI0Lr6+LSuXkrj/vivRsWPrOp83XuYKbtgMHJLcF3n5kkDG8lPX+VzcgQLWEMhM34X0pM3ydP13WbTdfPKlqj75+ofJEz+Z4ydP/NSaftwo0BACXl5ASHugby/g0mF1P+KpU6X4fNlmfLnsV2zbEo+KigqLDtIuJBijZZmhBQtGSSKZthbtw0YUoID9CzAAtP97xB5SoM4CySnZePLJz7F+7W7k5xdavL/KIBoa3hbXXntJvdduUtlEV/0C7IuXoaKZss6g+VFFFvePDSnQmALFJzNlsfZNlev2qeQulm6eni3Rpn0ftOvYH8Ht6/403dLzsJ1zCajsnWEdJYlLP2CgzOurzxYXtxf/+3w94n7cJiM1Siw6hJssEjh4SE9MmNgfs64dKl9kuFq0HxtRgAKOI8AA0HHuFXtKgXoJ/Pe/G7D03TgciD+K8nLLJ+55Shq5LtHhMl9wKBbKt7/13Tb+DmyWP2rR+ZOWP0ip7+m4HwXqJKCCvsxjuySZyz5kZ+ySJyOWf2PRuk0PtO3QT9bxGwQPT586nZeNKVBbQKbzwddPlmzodC57Z9fI2i0s+7xu3X4s/3oz4uJ+l5/rXMt2klZh4e1w6Zh+mDrlIvToEWrxfmxIAQo4ngADQMe7Z+wxBeolUFZWjr8//ClWr9yKzEzzi/lWP4n6Rjgsoh3Gjx+EhQtHIzCgfr/sphyToaJbZKjoYSArGyix7Avp6l3hewpcsMCJ7EPIytiN7OPxOJG1v07DpX1ahqBNSF+07ziQC7df8J1w7gO4yQhhP1+gnYys7CLB3kBZrqGVfK7rVl5+BmvW7JWgbwvWrt2BnKw8iw/h6emBocN7YeLEgZg2ZbDF+7EhBSjg2AIMAB37/rH3FKiXwJpf9skCv99i5/aDEoSdrtMx1DDRtiFBGDWqNxbMH4UuXWRiSj23HEmkuE7mDh5MAI7LcNHiIi5AX09K7mZC4KxMSs1M34Gs9L3IkaCvsEAeR9dhU4u2q6GdbUMHoJ088eNGgfoINJNcQGqZhk4RQK8YIDqqPkc5t09JSRlWr96NFd9uwYZ1u5GXV1Cng0V27ojLLuuLqVOHcG5fneTYmAJNQ4ABYNO4j7wKCtRb4NnnvpHEAOuRkpRRpychVSf0l6+s+/TtgjmzR2DsWMlQcIHb2o3Azr1AahpQKENGz1iWq+ACz8rdm5rA6VP5EvTJ0M6MPciVp3yWLttQ3SEgKFqGePZFSMdB8GrmX72K7ylgUsDVTYZz+p5FaAcXxHQFhsj3Bp51zNZZ+wRpqSfw1fItWCMLtO/YdtDiOX1Vx2nRohmGjeiNK68ciIkT+EVGlQtfKeCMAgwAnfGu85opoCOQkJiBRYu+wG+/7pEnJPIorh6bl+Qjj+wcigkTBuHGG0bD29ujHkepuYvKMLp5G3D4KKCeGJaX1aznJwpUCRTmpUjQp4Z27kNu5gFUnKnb0211nOY+weeHeLYKvIBHNFWd4muTF3CRyXvNmgOBrYBImb+nErZ0kuQtF7qVl5/FuvXxWPnDdqzfsBdJh+uW3bnq/NHdI3HZuH6S3GuIZBINqCrmKwUo4MQCDACd+Obz0ilgJLDsy8347yfrsWdPIgry65e5xUV+K2rTrjX69+9amVRg9OhYo9PVqbxAurN7H5AgSRqPyRqEuRIUnpLMoxZmNa/TudjYvgXU8gw5WQdxIjsBORnxyDshk0vrsal5fYFtomWYZ0/J5sksnvUgdJpd3OU7LVk1B21kHb7IMBnK2QMIrf8oeI2b+iJu1cqdWLchHtu3xqNIpVWuxxYTG4UhQ7rjsrE9MXhwl3ocgbtQgAJNWYABYFO+u7w2CjSAwK+/HcQ778Rhy5b9MpQur17DRFU33NzdZPHiAPTqHYUp1wzBuMsvfLho9ctTGc7V0NFECQzV4vS5kvyuSBaor7A88Wn1w/G9HQqUni48H/DlZR+uDPjO1CFrZ/VL8m/VCa3bxCAopCcCg2SMHjcKVBOo/lSvgwR40RJD1XcphmqH1bxVAV9c3B78+ms8du1MRHaWfKNVj827mZf83doFF18cg3Hj+iC6W7t6HIW7UIACziLAANBZ7jSvkwINIJCUnC3JY77Dekk6kJ6WJUPsztT7qG6ytlTroFbo0TMSkycPxiRZc6oxNrXyxY49wAF5OJQmWUhzJDAsVk8MZSjpmbONcUYes6EE1Dy+nKwD8oQvsfIpX17uoXof2gWuCAjqhtZtY+RJXy/4tWqAMXr17g13tAcBteyCysSpFln3kTX3AmR0ZGM81at+rfvi0+Tvz/1YrwK+HQn1DvjUMVsF+KHfgG4YMSwG46/og+A2ftVPxfcUoAAFDAUYABrSsIICFDAloJaVePa5r7Fq1e9IPpKO0rILm5ynsov6tWqJzl1CMWZMX8yfN7JB5hCaugYVHCZLUJguGUgzsyQ4lNUxVDK9wsJzw0pVglQ155CBoinFhqsrKc6tfMKXk7m/MuArzK9bts7aPXF3b4aA4G4IkvX62oT0qpzfV7sNPzddAVm9BrKcKbybnYVPc/n7ReIjNXSzgzwcU3P02sr7xtyKik/jlzXx2LT5IHbsOIyDB5JlfnX9htRX9bNDaFsMGNgVl1wSK4lc+sr1SQTLjQIUoEAdBRgA1hGMzSlAAX2Bf//7R1mHapP8kpNU5+x0+kdUiRW8ERraBkOHxWLmtUNlWFOIUdNGLT8hQaF6epghQWKmrF94QkZpJcrDqFNcx/CC3NUi7GotPpWlM1fm8anPF7p5efsjMDgaQW1V0Ncbnl4yYYtbkxfoIkM0W0mAFxwogV0bIEqWWvCz8q3fuu0wNm8+hG3bEhC/LwnJSTIWvQG2Lt3CMPii7hgzupcEft0b4Ig8BAUo4OwCDACd/SeA10+BRhD4avlWSSKzDvH7jyIvt0AStDTMWg7qKWELn2Zo0zYAXbp2xEWDu+EKGfrUtq31hz4tfq0R4JroIU/kHEdOdpr8SZUne+nyM5GB/BMZOH26ftlmqzO5uXmidXBHecoXjtDw7ojo0gvubheefbb6OdT7M/IY+IysJ6geB597Ilz/4c9/HtsVrmocovxP5av8fKvkSWr+Gbe6CfSUdfXGXVK3ferbuiC/GBsl0Nux4wj27ktG4sFUpKZmynzjhplw3FrmSnfrGoY+/SJlaZ2e6NMrvL5d5X4UoAAFdAUYAOqysJACFGhIgU8/2yiLFm/Hnt1HkHk8B6WlFzZctHbf1HxCn5Yt0FayjkZ0aovYnhEYcXE39O4TXrspPzeSgFqYet++VAn603Dw4DEckuQWR4+mIzXlOMob6Bdj1fXWQQHo0aMTesovxX37RMhwuEj4+UoOfituamH506fL5ee4HGVlFZWvFRUNERCeuwgVBLq5u8JDEid5eLjBvfLVVV7dGRxa8T4fOZKFhMR0HD6ciaSkTOzfn4LDh9QXGXkN2ovwTiHyMx2BXr0i5EutzujdO7xBj8+DUYACFKgtwACwtgg/U4ACjS6wa1cKPpYnhJs3xVd+c15cz1Tn5jqqHqR4eHqgpa+PzP0JQERkW/nlqpNkyusm63W1QfPmnuYOwfpaApmZhdgXnyq/DKchIeGY/HKcjqSjGZWBfa2mDfIxStaV7N2nM/rIfevfvxNiYjo0yHEb+iBqTmxpqQSD8qqCw3IJDBtjOxcYSjAoc79UgOgmE908JUh0deNjw7p658uTPJWFMzHhOA7LPOakpCwcO5aD9GPZyEiXsd6NsKn71S06HH36RKFf/0gJ+LqgQweuzdcI1DwkBShgQoABoAkcVlGAAtYRUE+P3ntvDVb/uAMH9idLev8CqKcsjb2pJ4de3l6Vw0pbSQKaNm0DERbWGl06t5dAoyNCQgJkeKm/PHlxbeyu2PT4efKLcHp6Po4fz5M/+cjKzJekOPnIzi6QP3nIzSmUeY8Fcl8KJbgpbbS+ejfzRo/YTujbNwqDBnXGwP5RkulQ0jM64HamQp4SVgaFZZVPCEtPVzTqz7R6aqiCQDc1nFSCDDd57yrvVcChXl1dXOW9/Kmsb9rBovqrQz2RLSoqQWJiJo4cPV4Z3CWnZMkXTtk4np4jX1icQLFKB9zIm49Pc3SXp3sDBnTFYPmZHjq0Kzw9mbilkdl5eApQwIwAA0AzQKymAAVsI7BmzT58/sVv+H3bQRzPyGnUwMPcFapAUT1J9K4MFr3hK08UWwVIwNjGH+3bB6J165aSQt4HgYG+CJL3QUF+aNHCU54welltyJ4ajlgsWQeLikplmQt5PVmKU5Klpri4DJmZfwR2lQHducCuKqjLl6CuTKU6tcGmMhpGdw+TX447Y8hFMmS3d9NemuH8U0J5QqiCw8Z6SmjuVmqCxT+CR1fXPwNHFTSquYguEjiqzVU+uPxRZu74DVIvQdxZ9Z+MrM2Vn9H8/BIUFBSj8OTpytesrAJZ61PWhcw9KV9MnJQvKE5Km5NSVyRZfItxsrAIp0sa78sKvWt0lb8n2rUPQtduoRg4sBuGDYtGr56hek1ZRgEKUMCmAgwAbcrPk1OAAnURUIvSr1mzpzL5ghp2mJubjxIJetQviva6ya/Nlb84u8rTF/UURr26qycx8mRGze1yU/O7ZG6Xh6ea7+UpWSvd5Zfes5Xz5lTynPLyM/Ln3DyzMllqQwUN5bK6vXrCpH6RV20qpN6eDdT8TH8/n8plPs4Fyn4SLFs5RaOd/oBUJpepTCwj91C9yn1VZXa9qcBQ/ks8dEz6eka+6GgmX3h4VX7h8eewatc/v/xwkaehp87NmVTLxVTNm1RfPKifZzV0Vr2qAFk9lTslgZsK3krkCwxVZm+b+nluH9Ia4eFtERUVgq5d26F7945cfN3ebhT7QwEKGAowADSkYQUFKOAoArt2p+DH1Tvxu6y1deTwMWTLEy81r9CegyJHsWU/KeCsAsFtAhHaMRgREe0k0GsnmTnbIzY2tPLJv7Oa8LopQIGmIcAAsGncR14FBSigI6Cy+P2wcge2bk2QRA9pMr8tV4ZGFjfqXCydbrCIAhSwQwH1FN5f5v6q+b/tOwRLYqi26NJFPc0LRWyPUM7Vs8N7xi5RgAINI8AAsGEceRQKUMCBBNS8IZXs5OCBY5Vp3pOTsyUJSo6kd8+XeURFlU8PVbITNSyNTxEd6MayqxQQgfOBnczTDQz0q5yTGxzsX/nkrl27AJm32wodQgMkM7C/tFUJcpp2Uhz+UFCAAhSoLcAAsLYIP1OAAhSoJlBUdBp749OwX9a4O3zkOFJSsySDoGTGlAXuCyUpxSlJuHJG5uGpuVCV87dU1oo/ElhUOwzfUoACdRRQgZynl4fMkfWonBur3nt6ecLLwwP+knQpqLVfZVCnkjGpjL0h7eWPLKnQto1f5fzYOp6OzSlAAQo4jQADQKe51bxQClDA2gIqM2d2zknkqGUUcouglltQGQsLC09JNkPJaijZClWq+lMSZBZJMpuSEvWnTNJr4I8EMWrxb5Usxl3+VL3/Y2HwynJ576HK3StT/Fv7+ng+5xSoTFHzxzItVau1VF+25VyZPDv/o9JFsmM2b3Yui26zZp5o1swLzbw9ZfkVee/tLQlkPKTMu3JdTpVMxsdHlmZp4V35M++cwrxqClCAAo0rwACwcX15dApQgAIUoAAFKEABClCAAnYj0LRXN7YbZnaEAhSgAAUoQAEKUIACFKCA7QUYANr+HrAHFKAABShAAQpQgAIUoAAFrCLAANAqzDwJBShAAQpQgAIUoAAFKEAB2wswALT9PWAPKEABClCAAhSgAAUoQAEKWEWAAaBVmHkSClCAAhSgAAUoQAEKUIACthdgAGj7e8AeUIACFKAABShAAQpQgAIUsIoAA0CrMPMkFKAABShAAQpQgAIUoAAFbC/AAND294A9oAAFKEABClCAAhSgAAUoYBUBBoBWYeZJKEABClCAAhSgAAUoQAEK2F6AAaDt7wF7QAEKUIACFKAABShAAQpQwCoCDACtwsyTUIACFKAABShAAQpQgAIUsL0AA0Db3wP2gAIUoAAFKEABClCAAhSggFUEGABahZknoQAFKEABClCAAhSgAAUoYHsBBoC2vwfsAQUoQAEKUIACFKAABShAAasIMAC0CjNPQgEKUIACFKAABShAAQpQwPYCDABtfw/YAwpQgAIUoAAFKEABClCAAlYRYABoFWaehAIUoAAFKEABClCAAhSggO0FGADa/h6wBxSgAAUoQAEKUIACFKAABawiwADQKsw8CQUoQAEKUIACFKAABShAAdsLMAC0/T1gDyhAAQpQgAIUoAAFKEABClhFgAGgVZh5EgpQgAIUoAAFKEABClCAArYXYABo+3vAHlCAAhSgAAUoQAEKUIACFLCKAANAqzDzJBSgAAUoQAEKUIACFKAABWwvwADQ9veAPaAABShAAQpQgAIUoAAFKGAVAQaAVmHmSShAAQpQgAIUoAAFKEABCthegAGg7e8Be0ABClCAAhSgAAUoQAEKUMAqAgwArcLMk1CAAhSgAAUoQAEKUIACFLC9AANA298D9oACFKAABShAAQpQgAIUoIBVBBgAWoWZJ6EABShAAQpQgAIUoAAFKGB7AQaAtr8H7AEFKEABClCAAhSgAAUoQAGrCDAAtAozT0IBClCAAhSgAAUoQAEKUMD2AgwAbX8P2AMKUIACFKAABShAAQpQgAJWEWAAaBVmnoQCFKAABShAAQpQgAIUoIDtBRgA2v4esAcUoAAFKEABClCAAhSgAAWsIsAA0CrMPAkFKEABClCAAhSgAAUoQAHbCzAAtP09YA8oQAEKUIACFKAABShAAQpYRYABoFWYeRIKUIACFKAABShAAQpQgAK2F2AAaPt7wB5QgAIUoAAFKEABClCAAhSwigADQKsw8yQUoAAFKEABClCAAhSgAAVsL8AA0Pb3gD2gAAUoQAEKUIACFKAABShgFQEGgFZh5kkoQAEKUIACFKAABShAAQrYXoABoO3vAXtAAQpQgAIUoAAFKEABClDAKgIMAK3CzJNQgAIUoAAFKEABClCAAhSwvQADQNvfA/aAAhSgAAUoQAEKUIACFKCAVQQYAFqFmSehAAUoQAEKUIACFKAABShgewEGgLa/B+wBBShAAQpQgAIUoAAFKEABqwgwALQKM09CAQpQgAIUoAAFKEABClDA9gIMAG1/D9gDClCAAhSgAAUoQAEKUIACVhFgAGgVZp6EAhSgAAUoQAEKUIACFKCA7QUYANr+HrAHFKAABShAAQpQgAIUoAAFrCLAANAqzDwJBShAAQpQgAIUoAAFKEAB2wswALT9PWAPKEABClCAAhSgAAUoQAEKWEWAAaBVmHkSClCAAhSgAAUoQAEKUIACthdgAGj7e8AeUIACFKAABShAAQpQgAIUsIoAA0CrMPMkFKAABShAAQpQgAIUoAAFbC/AAND294A9oAAFKEABClCAAhSgAAUoYBUBBoBWYeZJKEABClCAAhSgAAUoQAEK2F6AAaDt7wF7QAEKUIACFKAABShAAQpQwCoCDACtwsyTUIACFKAABShAAQpQgAIUsL0AA0Db3wP2gAIUoAAFKEABClCAAhSggFUEGABahZknoQAFKEABClCAAhSgAAUoYHuB/wf5OUg8kdckQQAAAABJRU5ErkJggg==", + "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBvcGFjaXR5PSIwLjEiIGQ9Ik0xMTkuNTUyIDYwLjM3MTJDMTMxLjQ2MiA2MC4zNzEyIDE0Mi4yMiA2My40NDk4IDE0OS45ODIgNjguMzk4N0MxNTcuNzUyIDczLjM1MTUgMTYyLjQ1NyA4MC4xMjczIDE2Mi40NTcgODcuNTI2M0MxNjIuNDU3IDk0LjkyNTQgMTU3Ljc1MiAxMDEuNzAxIDE0OS45ODIgMTA2LjY1NEMxNDIuMjIgMTExLjYwMyAxMzEuNDYyIDExNC42ODIgMTE5LjU1MiAxMTQuNjgyQzEwNy42NDEgMTE0LjY4MiA5Ni44ODQgMTExLjYwMyA4OS4xMjEyIDEwNi42NTRDODEuMzUyIDEwMS43MDEgNzYuNjQ2NiA5NC45MjU0IDc2LjY0NjYgODcuNTI2M0M3Ni42NDY2IDgwLjEyNzMgODEuMzUyIDczLjM1MTUgODkuMTIxMiA2OC4zOTg3Qzk2Ljg4NCA2My40NDk4IDEwNy42NDEgNjAuMzcxMiAxMTkuNTUyIDYwLjM3MTJaIiBmaWxsPSIjNjIxNkZGIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJtYXNrMF8zNDYxXzEwNTU4MCIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMzkiIHk9IjYyIiB3aWR0aD0iMTIyIiBoZWlnaHQ9IjUyIj4KPG1hc2sgaWQ9InBhdGgtNS1pbnNpZGUtMV8zNDYxXzEwNTU4MCIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTc1LjU2MDYgNjIuMTgyNFY2Mi4wMDA1TDgwLjQzNjQgNjIuMDAwNUM4MC40NDA1IDYyLjAwMDUgODAuNDQ0NSA2Mi4wMDA1IDgwLjQ0ODYgNjIuMDAwNUM4MC40NTI2IDYyLjAwMDUgODAuNDU2NyA2Mi4wMDA1IDgwLjQ2MDcgNjIuMDAwNUwxMTkuNTUyIDYyLjAwMDVMMTI0Ljk4MyA2Mi4wMDA1VjYyLjIyNTRDMTQ0LjkxMSA2My44ODkzIDE2MC4yODUgNzQuNTgyOCAxNjAuMjg1IDg3LjUyNjNDMTYwLjI4NSAxMDAuNDcgMTQ0LjkxMSAxMTEuMTYzIDEyNC45ODMgMTEyLjgyN0wxMjQuOTgzIDExMy4wNTJIMTE5LjU1Mkw4MC40NTYxIDExMy4wNTJDODAuNDUzNiAxMTMuMDUyIDgwLjQ1MTEgMTEzLjA1MiA4MC40NDg2IDExMy4wNTJDODAuNDQ2MSAxMTMuMDUyIDgwLjQ0MzYgMTEzLjA1MiA4MC40NDExIDExMy4wNTJINzUuNTYwNlYxMTIuODdDNTUuMzY5MSAxMTEuMzU3IDM5LjcxNTggMTAwLjU4NyAzOS43MTU4IDg3LjUyNjNDMzkuNzE1OCA3NC40NjU0IDU1LjM2OTEgNjMuNjk1NiA3NS41NjA2IDYyLjE4MjRaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03NS41NjA2IDYyLjE4MjRWNjIuMDAwNUw4MC40MzY0IDYyLjAwMDVDODAuNDQwNSA2Mi4wMDA1IDgwLjQ0NDUgNjIuMDAwNSA4MC40NDg2IDYyLjAwMDVDODAuNDUyNiA2Mi4wMDA1IDgwLjQ1NjcgNjIuMDAwNSA4MC40NjA3IDYyLjAwMDVMMTE5LjU1MiA2Mi4wMDA1TDEyNC45ODMgNjIuMDAwNVY2Mi4yMjU0QzE0NC45MTEgNjMuODg5MyAxNjAuMjg1IDc0LjU4MjggMTYwLjI4NSA4Ny41MjYzQzE2MC4yODUgMTAwLjQ3IDE0NC45MTEgMTExLjE2MyAxMjQuOTgzIDExMi44MjdMMTI0Ljk4MyAxMTMuMDUySDExOS41NTJMODAuNDU2MSAxMTMuMDUyQzgwLjQ1MzYgMTEzLjA1MiA4MC40NTExIDExMy4wNTIgODAuNDQ4NiAxMTMuMDUyQzgwLjQ0NjEgMTEzLjA1MiA4MC40NDM2IDExMy4wNTIgODAuNDQxMSAxMTMuMDUySDc1LjU2MDZWMTEyLjg3QzU1LjM2OTEgMTExLjM1NyAzOS43MTU4IDEwMC41ODcgMzkuNzE1OCA4Ny41MjYzQzM5LjcxNTggNzQuNDY1NCA1NS4zNjkxIDYzLjY5NTYgNzUuNTYwNiA2Mi4xODI0WiIgZmlsbD0iIzdGODRGQiIvPgo8cGF0aCBkPSJNNzUuNTYwNiA2Mi4wMDA1VjYwLjkxNDNMNzQuNDc0NCA2MC45MTQzVjYyLjAwMDVINzUuNTYwNlpNNzUuNTYwNiA2Mi4xODI0TDc1LjY0MTggNjMuMjY1Nkw3Ni42NDY5IDYzLjE5MDJWNjIuMTgyNEg3NS41NjA2Wk04MC40MzY0IDYyLjAwMDVWNjMuMDg2N0w4MC40MzY2IDYzLjA4NjdMODAuNDM2NCA2Mi4wMDA1Wk04MC40NDg2IDYyLjAwMDVWNjMuMDg2N1Y2Mi4wMDA1Wk04MC40NjA3IDYyLjAwMDVMODAuNDYwNSA2My4wODY3SDgwLjQ2MDdWNjIuMDAwNVpNMTE5LjU1MiA2Mi4wMDA1VjYzLjA4NjdWNjIuMDAwNVpNMTI0Ljk4MyA2Mi4wMDA1SDEyNi4wNjlWNjAuOTE0M0wxMjQuOTgzIDYwLjkxNDNWNjIuMDAwNVpNMTI0Ljk4MyA2Mi4yMjU0SDEyMy44OTdWNjMuMjI0N0wxMjQuODkzIDYzLjMwNzlMMTI0Ljk4MyA2Mi4yMjU0Wk0xMjQuOTgzIDExMi44MjdMMTI0Ljg5MyAxMTEuNzQ1TDEyMy44OTcgMTExLjgyOEwxMjMuODk3IDExMi44MjdMMTI0Ljk4MyAxMTIuODI3Wk0xMjQuOTgzIDExMy4wNTJWMTE0LjEzOEgxMjYuMDY5TDEyNi4wNjkgMTEzLjA1MkwxMjQuOTgzIDExMy4wNTJaTTExOS41NTIgMTEzLjA1MlYxMTEuOTY2VjExMy4wNTJaTTgwLjQ1NjEgMTEzLjA1MlYxMTQuMTM4VjExMy4wNTJaTTc1LjU2MDYgMTEzLjA1Mkg3NC40NzQ0VjExNC4xMzhINzUuNTYwNlYxMTMuMDUyWk03NS41NjA2IDExMi44N0g3Ni42NDY5VjExMS44NjJMNzUuNjQxOCAxMTEuNzg3TDc1LjU2MDYgMTEyLjg3Wk03NC40NzQ0IDYyLjAwMDVWNjIuMTgyNEg3Ni42NDY5VjYyLjAwMDVINzQuNDc0NFpNODAuNDM2NCA2MC45MTQzTDc1LjU2MDYgNjAuOTE0M1Y2My4wODY3TDgwLjQzNjQgNjMuMDg2N1Y2MC45MTQzWk04MC40MzY2IDYzLjA4NjdDODAuNDQwNiA2My4wODY3IDgwLjQ0NDYgNjMuMDg2NyA4MC40NDg2IDYzLjA4NjdWNjAuOTE0M0M4MC40NDQ1IDYwLjkxNDMgODAuNDQwMyA2MC45MTQzIDgwLjQzNjIgNjAuOTE0M0w4MC40MzY2IDYzLjA4NjdaTTgwLjQ0ODYgNjMuMDg2N0M4MC40NTI1IDYzLjA4NjcgODAuNDU2NSA2My4wODY3IDgwLjQ2MDUgNjMuMDg2N0w4MC40NjA5IDYwLjkxNDNDODAuNDU2OCA2MC45MTQzIDgwLjQ1MjcgNjAuOTE0MyA4MC40NDg2IDYwLjkxNDNWNjMuMDg2N1pNMTE5LjU1MiA2MC45MTQzTDgwLjQ2MDcgNjAuOTE0M1Y2My4wODY3TDExOS41NTIgNjMuMDg2N1Y2MC45MTQzWk0xMjQuOTgzIDYwLjkxNDNMMTE5LjU1MiA2MC45MTQzVjYzLjA4NjdMMTI0Ljk4MyA2My4wODY3VjYwLjkxNDNaTTEyNi4wNjkgNjIuMjI1NFY2Mi4wMDA1SDEyMy44OTdWNjIuMjI1NEgxMjYuMDY5Wk0xNjEuMzcxIDg3LjUyNjNDMTYxLjM3MSA4MC41ODk2IDE1Ny4yNTEgNzQuMzg3NyAxNTAuNzM2IDY5Ljc2MDVDMTQ0LjIxNSA2NS4xMjg4IDEzNS4xOTUgNjEuOTg4MSAxMjUuMDczIDYxLjE0M0wxMjQuODkzIDYzLjMwNzlDMTM0LjcgNjQuMTI2NyAxNDMuMzMgNjcuMTY0NiAxNDkuNDc4IDcxLjUzMTZDMTU1LjYzMiA3NS45MDI5IDE1OS4xOTkgODEuNTE5NiAxNTkuMTk5IDg3LjUyNjNIMTYxLjM3MVpNMTI1LjA3MyAxMTMuOTFDMTM1LjE5NSAxMTMuMDY1IDE0NC4yMTUgMTA5LjkyNCAxNTAuNzM2IDEwNS4yOTJDMTU3LjI1MSAxMDAuNjY1IDE2MS4zNzEgOTQuNDYzMSAxNjEuMzcxIDg3LjUyNjNIMTU5LjE5OUMxNTkuMTk5IDkzLjUzMzEgMTU1LjYzMiA5OS4xNDk3IDE0OS40NzggMTAzLjUyMUMxNDMuMzMgMTA3Ljg4OCAxMzQuNyAxMTAuOTI2IDEyNC44OTMgMTExLjc0NUwxMjUuMDczIDExMy45MVpNMTI2LjA2OSAxMTMuMDUyTDEyNi4wNjkgMTEyLjgyN0wxMjMuODk3IDExMi44MjdMMTIzLjg5NyAxMTMuMDUyTDEyNi4wNjkgMTEzLjA1MlpNMTE5LjU1MiAxMTQuMTM4SDEyNC45ODNWMTExLjk2NkgxMTkuNTUyVjExNC4xMzhaTTgwLjQ1NjEgMTE0LjEzOEwxMTkuNTUyIDExNC4xMzhWMTExLjk2Nkw4MC40NTYxIDExMS45NjZWMTE0LjEzOFpNODAuNDU2MSAxMTEuOTY2QzgwLjQ1NjEgMTExLjk2NiA4MC40NTYxIDExMS45NjYgODAuNDU2MSAxMTEuOTY2QzgwLjQ1NjEgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZDODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZDODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZDODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZDODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZDODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZWMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4IDgwLjQ0ODYgMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4IDgwLjQ0ODYgMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4IDgwLjQ0ODYgMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4IDgwLjQ0ODYgMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4IDgwLjQ0ODYgMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYxIDExNC4xMzggODAuNDU2MSAxMTQuMTM4QzgwLjQ1NjEgMTE0LjEzOCA4MC40NTYxIDExNC4xMzggODAuNDU2MSAxMTQuMTM4VjExMS45NjZaTTgwLjQ0ODYgMTExLjk2NkM4MC40NDg2IDExMS45NjYgODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NkM4MC40NDg2IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NkM4MC40NDExIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NkM4MC40NDExIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NkM4MC40NDExIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NkM4MC40NDExIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NkM4MC40NDExIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NlYxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDExIDExNC4xMzggODAuNDQxMSAxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDExIDExNC4xMzggODAuNDQxMSAxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDExIDExNC4xMzggODAuNDQxMSAxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDExIDExNC4xMzggODAuNDQxMSAxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDExIDExNC4xMzggODAuNDQxMSAxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4QzgwLjQ0ODYgMTE0LjEzOCA4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4VjExMS45NjZaTTc1LjU2MDYgMTE0LjEzOEg4MC40NDExVjExMS45NjZINzUuNTYwNlYxMTQuMTM4Wk03NC40NzQ0IDExMi44N1YxMTMuMDUySDc2LjY0NjlWMTEyLjg3SDc0LjQ3NDRaTTc1LjY0MTggMTExLjc4N0M2NS43MDQ2IDExMS4wNDIgNTYuOTM5OCAxMDguMDIyIDUwLjY5MDEgMTAzLjYzOUM0NC40MzM0IDk5LjI1MTggNDAuODAyIDkzLjU4NzQgNDAuODAyIDg3LjUyNjNIMzguNjI5NkMzOC42Mjk2IDk0LjUyNjIgNDIuODI0OSAxMDAuNzc3IDQ5LjQ0MjggMTA1LjQxOEM1Ni4wNjc2IDExMC4wNjQgNjUuMjI1MiAxMTMuMTg1IDc1LjQ3OTUgMTEzLjk1M0w3NS42NDE4IDExMS43ODdaTTQwLjgwMiA4Ny41MjYzQzQwLjgwMiA4MS40NjUzIDQ0LjQzMzQgNzUuODAwOSA1MC42OTAxIDcxLjQxMzNDNTYuOTM5OCA2Ny4wMzA2IDY1LjcwNDYgNjQuMDEwMyA3NS42NDE4IDYzLjI2NTZMNzUuNDc5NSA2MS4wOTkyQzY1LjIyNTIgNjEuODY3NyA1Ni4wNjc2IDY0Ljk4ODkgNDkuNDQyOCA2OS42MzQ3QzQyLjgyNDkgNzQuMjc1NSAzOC42Mjk2IDgwLjUyNjUgMzguNjI5NiA4Ny41MjYzSDQwLjgwMloiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC01LWluc2lkZS0xXzM0NjFfMTA1NTgwKSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMzQ2MV8xMDU1ODApIj4KPHJlY3QgeD0iMzkuMTcyOSIgeT0iOTEuMzI4MSIgd2lkdGg9IjEyMS42NTUiIGhlaWdodD0iNTEuMDUxNyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzI5IiB5PSI5MS4zMjgxIiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzI5IiB5PSI5MS4zMjgxIiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPG1hc2sgaWQ9InBhdGgtOS1pbnNpZGUtMl8zNDYxXzEwNTU4MCIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTgxLjUzNDUgNTkuODM2NkM4MS4xNzM1IDU5LjgzMDkgODAuODExNCA1OS44MjgxIDgwLjQ0ODMgNTkuODI4MUM1Ni40NTI0IDU5LjgyODEgMzcgNzIuMjI5IDM3IDg3LjUyNjNDMzcgMTAyLjgyNCA1Ni40NTI1IDExNS4yMjUgODAuNDQ4MyAxMTUuMjI1QzgwLjgxMTQgMTE1LjIyNSA4MS4xNzM1IDExNS4yMjIgODEuNTM0NSAxMTUuMjE2TDgxLjUzNDUgMTE1LjIyNUwxMTguNDY1IDExNS4yMjVMMTE4LjQ2NSAxMTUuMjE2QzExOC44MjYgMTE1LjIyMiAxMTkuMTg5IDExNS4yMjUgMTE5LjU1MiAxMTUuMjI1QzE0My41NDggMTE1LjIyNSAxNjMgMTAyLjgyNCAxNjMgODcuNTI2M0MxNjMgNzIuMjI5IDE0My41NDggNTkuODI4MSAxMTkuNTUyIDU5LjgyODFDMTE5LjE4OSA1OS44MjgxIDExOC44MjYgNTkuODMwOSAxMTguNDY1IDU5LjgzNjZMMTE4LjQ2NSA1OS44MjgxTDgxLjUzNDUgNTkuODI4MUw4MS41MzQ1IDU5LjgzNjZaIi8+CjwvbWFzaz4KPHBhdGggZD0iTTgxLjUzNDUgNTkuODM2Nkw4MS41MTc1IDYwLjkyMjZMODIuNjIwNyA2MC45Mzk5TDgyLjYyMDcgNTkuODM2Nkw4MS41MzQ1IDU5LjgzNjZaTTgxLjUzNDUgMTE1LjIxNkw4Mi42MjA3IDExNS4yMTZMODIuNjIwNyAxMTQuMTEzTDgxLjUxNzUgMTE0LjEzTDgxLjUzNDUgMTE1LjIxNlpNODEuNTM0NSAxMTUuMjI1TDgwLjQ0ODMgMTE1LjIyNUw4MC40NDgzIDExNi4zMTFMODEuNTM0NSAxMTYuMzExTDgxLjUzNDUgMTE1LjIyNVpNMTE4LjQ2NSAxMTUuMjI1TDExOC40NjUgMTE2LjMxMUwxMTkuNTUyIDExNi4zMTFMMTE5LjU1MiAxMTUuMjI1TDExOC40NjUgMTE1LjIyNVpNMTE4LjQ2NSAxMTUuMjE2TDExOC40ODIgMTE0LjEzTDExNy4zNzkgMTE0LjExM0wxMTcuMzc5IDExNS4yMTZMMTE4LjQ2NSAxMTUuMjE2Wk0xMTguNDY1IDU5LjgzNjZMMTE3LjM3OSA1OS44MzY2TDExNy4zNzkgNjAuOTM5OUwxMTguNDgyIDYwLjkyMjZMMTE4LjQ2NSA1OS44MzY2Wk0xMTguNDY1IDU5LjgyODFMMTE5LjU1MiA1OS44MjgxTDExOS41NTIgNTguNzQxOUwxMTguNDY1IDU4Ljc0MTlMMTE4LjQ2NSA1OS44MjgxWk04MS41MzQ1IDU5LjgyODFMODEuNTM0NSA1OC43NDE5TDgwLjQ0ODMgNTguNzQxOUw4MC40NDgzIDU5LjgyODFMODEuNTM0NSA1OS44MjgxWk04MC40NDgzIDYwLjkxNDNDODAuODA1NyA2MC45MTQzIDgxLjE2MjEgNjAuOTE3MSA4MS41MTc1IDYwLjkyMjZMODEuNTUxNSA1OC43NTA1QzgxLjE4NDggNTguNzQ0NyA4MC44MTcxIDU4Ljc0MTkgODAuNDQ4MyA1OC43NDE5TDgwLjQ0ODMgNjAuOTE0M1pNMzguMDg2MiA4Ny41MjYzQzM4LjA4NjIgODAuMzc2OSA0Mi42MzM4IDczLjc0OTkgNTAuMzA5NiA2OC44NTY2QzU3Ljk3MjcgNjMuOTcxNCA2OC42MjU0IDYwLjkxNDMgODAuNDQ4MyA2MC45MTQzTDgwLjQ0ODMgNTguNzQxOUM2OC4yNzUzIDU4Ljc0MTkgNTcuMjAzOSA2MS44ODUyIDQ5LjE0MTggNjcuMDI0OEM0MS4wOTI0IDcyLjE1NjMgMzUuOTEzOCA3OS4zNzg0IDM1LjkxMzggODcuNTI2M0wzOC4wODYyIDg3LjUyNjNaTTgwLjQ0ODMgMTE0LjEzOEM2OC42MjU0IDExNC4xMzggNTcuOTcyNyAxMTEuMDgxIDUwLjMwOTYgMTA2LjE5NkM0Mi42MzM4IDEwMS4zMDMgMzguMDg2MiA5NC42NzU4IDM4LjA4NjIgODcuNTI2M0wzNS45MTM4IDg3LjUyNjNDMzUuOTEzOCA5NS42NzQzIDQxLjA5MjQgMTAyLjg5NiA0OS4xNDE4IDEwOC4wMjhDNTcuMjAzOSAxMTMuMTY3IDY4LjI3NTMgMTE2LjMxMSA4MC40NDgzIDExNi4zMTFMODAuNDQ4MyAxMTQuMTM4Wk04MS41MTc1IDExNC4xM0M4MS4xNjIyIDExNC4xMzYgODAuODA1NyAxMTQuMTM4IDgwLjQ0ODMgMTE0LjEzOEw4MC40NDgzIDExNi4zMTFDODAuODE3MSAxMTYuMzExIDgxLjE4NDggMTE2LjMwOCA4MS41NTE1IDExNi4zMDJMODEuNTE3NSAxMTQuMTNaTTgwLjQ0ODMgMTE1LjIxNkw4MC40NDgzIDExNS4yMjVMODIuNjIwNyAxMTUuMjI1TDgyLjYyMDcgMTE1LjIxNkw4MC40NDgzIDExNS4yMTZaTTgxLjUzNDUgMTE2LjMxMUwxMTguNDY1IDExNi4zMTFMMTE4LjQ2NSAxMTQuMTM4TDgxLjUzNDUgMTE0LjEzOEw4MS41MzQ1IDExNi4zMTFaTTExOS41NTIgMTE1LjIyNUwxMTkuNTUyIDExNS4yMTZMMTE3LjM3OSAxMTUuMjE2TDExNy4zNzkgMTE1LjIyNUwxMTkuNTUyIDExNS4yMjVaTTExOC40NDkgMTE2LjMwMkMxMTguODE1IDExNi4zMDggMTE5LjE4MyAxMTYuMzExIDExOS41NTIgMTE2LjMxMUwxMTkuNTUyIDExNC4xMzhDMTE5LjE5NCAxMTQuMTM4IDExOC44MzggMTE0LjEzNiAxMTguNDgyIDExNC4xM0wxMTguNDQ5IDExNi4zMDJaTTExOS41NTIgMTE2LjMxMUMxMzEuNzI1IDExNi4zMTEgMTQyLjc5NiAxMTMuMTY3IDE1MC44NTggMTA4LjAyOEMxNTguOTA4IDEwMi44OTYgMTY0LjA4NiA5NS42NzQzIDE2NC4wODYgODcuNTI2M0wxNjEuOTE0IDg3LjUyNjNDMTYxLjkxNCA5NC42NzU4IDE1Ny4zNjYgMTAxLjMwMyAxNDkuNjkgMTA2LjE5NkMxNDIuMDI3IDExMS4wODEgMTMxLjM3NSAxMTQuMTM4IDExOS41NTIgMTE0LjEzOEwxMTkuNTUyIDExNi4zMTFaTTE2NC4wODYgODcuNTI2M0MxNjQuMDg2IDc5LjM3ODQgMTU4LjkwOCA3Mi4xNTYzIDE1MC44NTggNjcuMDI0OEMxNDIuNzk2IDYxLjg4NTIgMTMxLjcyNSA1OC43NDE5IDExOS41NTIgNTguNzQxOUwxMTkuNTUyIDYwLjkxNDNDMTMxLjM3NSA2MC45MTQzIDE0Mi4wMjcgNjMuOTcxNCAxNDkuNjkgNjguODU2NkMxNTcuMzY2IDczLjc0OTkgMTYxLjkxNCA4MC4zNzY5IDE2MS45MTQgODcuNTI2M0wxNjQuMDg2IDg3LjUyNjNaTTExOS41NTIgNTguNzQxOUMxMTkuMTgzIDU4Ljc0MTkgMTE4LjgxNSA1OC43NDQ3IDExOC40NDkgNTguNzUwNUwxMTguNDgyIDYwLjkyMjZDMTE4LjgzOCA2MC45MTcxIDExOS4xOTQgNjAuOTE0MyAxMTkuNTUyIDYwLjkxNDNMMTE5LjU1MiA1OC43NDE5Wk0xMTkuNTUyIDU5LjgzNjZMMTE5LjU1MiA1OS44MjgxTDExNy4zNzkgNTkuODI4MUwxMTcuMzc5IDU5LjgzNjZMMTE5LjU1MiA1OS44MzY2Wk0xMTguNDY1IDU4Ljc0MTlMODEuNTM0NSA1OC43NDE5TDgxLjUzNDUgNjAuOTE0M0wxMTguNDY1IDYwLjkxNDNMMTE4LjQ2NSA1OC43NDE5Wk04MC40NDgzIDU5LjgyODFMODAuNDQ4MyA1OS44MzY2TDgyLjYyMDcgNTkuODM2Nkw4Mi42MjA3IDU5LjgyODFMODAuNDQ4MyA1OS44MjgxWiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTktaW5zaWRlLTJfMzQ2MV8xMDU1ODApIi8+CjxwYXRoIGQ9Ik04MC40NDgzIDYwLjM3MTJDOTIuMzU4NyA2MC4zNzEyIDEwMy4xMTYgNjMuNDQ5OCAxMTAuODc5IDY4LjM5ODdDMTE4LjY0OCA3My4zNTE1IDEyMy4zNTMgODAuMTI3MyAxMjMuMzUzIDg3LjUyNjNDMTIzLjM1MyA5NC45MjU0IDExOC42NDggMTAxLjcwMSAxMTAuODc5IDEwNi42NTRDMTAzLjExNiAxMTEuNjAzIDkyLjM1ODcgMTE0LjY4MiA4MC40NDgzIDExNC42ODJDNjguNTM3OSAxMTQuNjgyIDU3Ljc4MDUgMTExLjYwMyA1MC4wMTc3IDEwNi42NTRDNDIuMjQ4NSAxMDEuNzAxIDM3LjU0MzEgOTQuOTI1NCAzNy41NDMxIDg3LjUyNjNDMzcuNTQzMSA4MC4xMjczIDQyLjI0ODUgNzMuMzUxNSA1MC4wMTc3IDY4LjM5ODdDNTcuNzgwNSA2My40NDk4IDY4LjUzNzkgNjAuMzcxMiA4MC40NDgzIDYwLjM3MTJaIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8bWFzayBpZD0icGF0aC0xMi1pbnNpZGUtM18zNDYxXzEwNTU4MCIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExNC42NjQgNTEuMTM4NEg5OC45MTQxVjYwLjkxNDNDOTguOTE0MSA2MS44MTQxIDEwMi40NCA2Mi41NDM2IDEwNi43ODkgNjIuNTQzNkMxMTEuMTM4IDYyLjU0MzYgMTE0LjY2NCA2MS44MTQxIDExNC42NjQgNjAuOTE0M1Y1MS4xMzg0WiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTE0LjY2NCA1MS4xMzg0SDk4LjkxNDFWNjAuOTE0M0M5OC45MTQxIDYxLjgxNDEgMTAyLjQ0IDYyLjU0MzYgMTA2Ljc4OSA2Mi41NDM2QzExMS4xMzggNjIuNTQzNiAxMTQuNjY0IDYxLjgxNDEgMTE0LjY2NCA2MC45MTQzVjUxLjEzODRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTguOTE0MSA1MS4xMzg0VjUwLjA1MjJIOTcuODI3OVY1MS4xMzg0SDk4LjkxNDFaTTExNC42NjQgNTEuMTM4NEgxMTUuNzVWNTAuMDUyMkgxMTQuNjY0VjUxLjEzODRaTTk4LjkxNDEgNTIuMjI0NkgxMTQuNjY0VjUwLjA1MjJIOTguOTE0MVY1Mi4yMjQ2Wk0xMDAgNjAuOTE0M1Y1MS4xMzg0SDk3LjgyNzlWNjAuOTE0M0gxMDBaTTEwNi43ODkgNjEuNDU3NEMxMDQuNjY1IDYxLjQ1NzQgMTAyLjc3NCA2MS4yNzg1IDEwMS40NDEgNjEuMDAyN0MxMDAuNzY1IDYwLjg2MjkgMTAwLjI5IDYwLjcwOTcgMTAwLjAxIDYwLjU3MjhDOTkuODY4IDYwLjUwMzIgOTkuODMyMyA2MC40NjQ3IDk5Ljg0NjMgNjAuNDc4OEM5OS44NjM2IDYwLjQ5NjMgMTAwIDYwLjY0NTMgMTAwIDYwLjkxNDNIOTcuODI3OUM5Ny44Mjc5IDYxLjQwODIgOTguMDc0NyA2MS43NzY4IDk4LjMwMTggNjIuMDA2NUM5OC41MjU2IDYyLjIzMjggOTguNzk5MyA2Mi4zOTg4IDk5LjA1NTYgNjIuNTI0MkM5OS41NzI4IDYyLjc3NzIgMTAwLjI1MSA2Mi45NzUgMTAxLjAwMSA2My4xMzAxQzEwMi41MTcgNjMuNDQzOSAxMDQuNTYzIDYzLjYyOTggMTA2Ljc4OSA2My42Mjk4VjYxLjQ1NzRaTTExMy41NzggNjAuOTE0M0MxMTMuNTc4IDYwLjY0NTMgMTEzLjcxNCA2MC40OTYzIDExMy43MzIgNjAuNDc4OEMxMTMuNzQ2IDYwLjQ2NDcgMTEzLjcxIDYwLjUwMzIgMTEzLjU2OCA2MC41NzI4QzExMy4yODggNjAuNzA5NyAxMTIuODEzIDYwLjg2MjkgMTEyLjEzNyA2MS4wMDI3QzExMC44MDQgNjEuMjc4NSAxMDguOTEzIDYxLjQ1NzQgMTA2Ljc4OSA2MS40NTc0VjYzLjYyOThDMTA5LjAxNSA2My42Mjk4IDExMS4wNjEgNjMuNDQzOSAxMTIuNTc4IDYzLjEzMDFDMTEzLjMyNyA2Mi45NzUgMTE0LjAwNSA2Mi43NzcyIDExNC41MjIgNjIuNTI0MkMxMTQuNzc5IDYyLjM5ODggMTE1LjA1MyA2Mi4yMzI4IDExNS4yNzYgNjIuMDA2NUMxMTUuNTAzIDYxLjc3NjggMTE1Ljc1IDYxLjQwODIgMTE1Ljc1IDYwLjkxNDNIMTEzLjU3OFpNMTEzLjU3OCA1MS4xMzg0VjYwLjkxNDNIMTE1Ljc1VjUxLjEzODRIMTEzLjU3OFoiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC0xMi1pbnNpZGUtM18zNDYxXzEwNTU4MCkiLz4KPHBhdGggZD0iTTExNC4zMiA1MS41NDEyQzExNC40MzQgNTEuNTkzNiAxMTQuNTE4IDUxLjY0MTMgMTE0LjU3OCA1MS42ODE2QzExNC41MTggNTEuNzIxOCAxMTQuNDM0IDUxLjc2OTUgMTE0LjMyIDUxLjgyMTlDMTEzLjk1MSA1MS45OTA3IDExMy4zODMgNTIuMTU2MyAxMTIuNjM4IDUyLjMwMDRDMTExLjE1OCA1Mi41ODY5IDEwOS4wOSA1Mi43Njc4IDEwNi43ODkgNTIuNzY3OEMxMDQuNDg4IDUyLjc2NzggMTAyLjQyIDUyLjU4NjkgMTAwLjk0IDUyLjMwMDRDMTAwLjE5NSA1Mi4xNTYzIDk5LjYyNzQgNTEuOTkwNyA5OS4yNTg2IDUxLjgyMTlDOTkuMTQ0MiA1MS43Njk1IDk5LjA2MDEgNTEuNzIxOCA5OS4wMDAzIDUxLjY4MTZDOTkuMDYwMSA1MS42NDEzIDk5LjE0NDIgNTEuNTkzNiA5OS4yNTg2IDUxLjU0MTJDOTkuNjI3NCA1MS4zNzI0IDEwMC4xOTUgNTEuMjA2OCAxMDAuOTQgNTEuMDYyN0MxMDIuNDIgNTAuNzc2MiAxMDQuNDg4IDUwLjU5NTMgMTA2Ljc4OSA1MC41OTUzQzEwOS4wOSA1MC41OTUzIDExMS4xNTggNTAuNzc2MiAxMTIuNjM4IDUxLjA2MjdDMTEzLjM4MyA1MS4yMDY4IDExMy45NTEgNTEuMzcyNCAxMTQuMzIgNTEuNTQxMloiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8cGF0aCBkPSJNMTE0LjMyIDQ5LjkxMThDMTE0LjQzNCA0OS45NjQyIDExNC41MTggNTAuMDExOSAxMTQuNTc4IDUwLjA1MjJDMTE0LjUxOCA1MC4wOTI0IDExNC40MzQgNTAuMTQwMSAxMTQuMzIgNTAuMTkyNUMxMTMuOTUxIDUwLjM2MTMgMTEzLjM4MyA1MC41MjY5IDExMi42MzggNTAuNjcxQzExMS4xNTggNTAuOTU3NSAxMDkuMDkgNTEuMTM4NCAxMDYuNzg5IDUxLjEzODRDMTA0LjQ4OCA1MS4xMzg0IDEwMi40MiA1MC45NTc1IDEwMC45NCA1MC42NzFDMTAwLjE5NSA1MC41MjY5IDk5LjYyNzQgNTAuMzYxMyA5OS4yNTg2IDUwLjE5MjVDOTkuMTQ0MiA1MC4xNDAxIDk5LjA2MDEgNTAuMDkyNCA5OS4wMDAzIDUwLjA1MjJDOTkuMDYwMSA1MC4wMTE5IDk5LjE0NDIgNDkuOTY0MiA5OS4yNTg2IDQ5LjkxMThDOTkuNjI3NCA0OS43NDMxIDEwMC4xOTUgNDkuNTc3NCAxMDAuOTQgNDkuNDMzM0MxMDIuNDIgNDkuMTQ2OCAxMDQuNDg4IDQ4Ljk2NiAxMDYuNzg5IDQ4Ljk2NkMxMDkuMDkgNDguOTY2IDExMS4xNTggNDkuMTQ2OCAxMTIuNjM4IDQ5LjQzMzNDMTEzLjM4MyA0OS41Nzc0IDExMy45NTEgNDkuNzQzMSAxMTQuMzIgNDkuOTExOFoiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMF9iXzM0NjFfMTA1NTgwKSI+CjxyZWN0IHg9IjYxLjE2NiIgeT0iNzYuMTA2IiB3aWR0aD0iMzguNTY0MSIgaGVpZ2h0PSIyMy40NjE1IiByeD0iMi4xNjU3OSIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNNzQuNTQyOSA5MC4wNTZWOTEuNDIxNEg2Ny4wNzU5TDY3LjAxOTEgOTAuMzkwM0w3MS40ODUgODMuMzkyN0g3Mi44NTc1TDcxLjM3MTIgODUuOTM4NUw2OC44MDQgOTAuMDU2SDc0LjU0MjlaTTczLjI0ODYgODMuMzkyN1Y5My43NDY4SDcxLjUzNDhWODMuMzkyN0g3My4yNDg2Wk04Mi40MzY1IDg3LjcwMjJWODkuMzk0N0M4Mi40MzY1IDkwLjIwNTQgODIuMzU1OSA5MC44OTc1IDgyLjE5NDcgOTEuNDcxMkM4Mi4wMzgzIDkyLjA0MDEgODEuODEwNyA5Mi41MDIzIDgxLjUxMiA5Mi44NTc5QzgxLjIxMzQgOTMuMjEzNSA4MC44NTU0IDkzLjQ3NDIgODAuNDM4MiA5My42NDAyQzgwLjAyNTggOTMuODA2MSA3OS41NjM1IDkzLjg4OTEgNzkuMDUxNSA5My44ODkxQzc4LjY0MzggOTMuODg5MSA3OC4yNjQ1IDkzLjgzNjkgNzcuOTEzNyA5My43MzI2Qzc3LjU2NzYgOTMuNjI4MyA3Ny4yNTQ3IDkzLjQ2NDcgNzYuOTc1IDkzLjI0MTlDNzYuNjk1MyA5My4wMTkxIDc2LjQ1NTkgOTIuNzMyMyA3Ni4yNTY3IDkyLjM4MTRDNzYuMDYyNCA5Mi4wMjU5IDc1LjkxMDYgOTEuNjAxNiA3NS44MDE2IDkxLjEwODVDNzUuNjk3MyA5MC42MTU0IDc1LjY0NTIgOTAuMDQ0MiA3NS42NDUyIDg5LjM5NDdWODcuNzAyMkM3NS42NDUyIDg2Ljg4NjcgNzUuNzI1OCA4Ni4xOTkzIDc1Ljg4NjkgODUuNjM5OUM3Ni4wNDgxIDg1LjA3NTcgNzYuMjc4MSA4NC42MTgyIDc2LjU3NjcgODQuMjY3NEM3Ni44NzU0IDgzLjkxMTggNzcuMjMxIDgzLjY1MzQgNzcuNjQzNSA4My40OTIyQzc4LjA2MDcgODMuMzMxIDc4LjUyNTMgODMuMjUwNCA3OS4wMzczIDgzLjI1MDRDNzkuNDQ5NyA4My4yNTA0IDc5LjgyOSA4My4zMDI2IDgwLjE3NTEgODMuNDA2OUM4MC41MjU5IDgzLjUwNjQgODAuODM4OCA4My42NjUzIDgxLjExMzggODMuODgzM0M4MS4zOTM1IDg0LjEwMTQgODEuNjMwNiA4NC4zODU5IDgxLjgyNDkgODQuNzM2N0M4Mi4wMjQxIDg1LjA4MjggODIuMTc1OCA4NS41MDI0IDgyLjI4MDEgODUuOTk1NEM4Mi4zODQ0IDg2LjQ4MzcgODIuNDM2NSA4Ny4wNTI2IDgyLjQzNjUgODcuNzAyMlpNODAuNzIyNyA4OS42MzY0Vjg3LjQ0NjFDODAuNzIyNyA4Ny4wMzM3IDgwLjY5OSA4Ni42NzEgODAuNjUxNiA4Ni4zNTgxQzgwLjYwNDIgODYuMDQwNSA4MC41MzMgODUuNzcyNiA4MC40MzgyIDg1LjU1NDVDODAuMzQ4MSA4NS4zMzE3IDgwLjIzNDQgODUuMTUxNSA4MC4wOTY5IDg1LjAxNDFDNzkuOTU5NCA4NC44NzE4IDc5LjgwMjkgODQuNzY5OSA3OS42Mjc1IDg0LjcwODNDNzkuNDUyMSA4NC42NDE5IDc5LjI1NTQgODQuNjA4NyA3OS4wMzczIDg0LjYwODdDNzguNzcxOCA4NC42MDg3IDc4LjUzNDcgODQuNjYwOSA3OC4zMjYxIDg0Ljc2NTJDNzguMTE3NSA4NC44NjQ3IDc3Ljk0MjEgODUuMDI1OSA3Ny43OTk5IDg1LjI0ODdDNzcuNjU3NyA4NS40NzE2IDc3LjU0ODYgODUuNzY1NSA3Ny40NzI4IDg2LjEzMDVDNzcuNDAxNyA4Ni40OTA5IDc3LjM2NjEgODYuOTI5NCA3Ny4zNjYxIDg3LjQ0NjFWODkuNjM2NEM3Ny4zNjYxIDkwLjA1MzcgNzcuMzg5OCA5MC40MjExIDc3LjQzNzIgOTAuNzM4N0M3Ny40ODQ2IDkxLjA1NjQgNzcuNTU1NyA5MS4zMjkgNzcuNjUwNiA5MS41NTY1Qzc3Ljc0NTQgOTEuNzc5MyA3Ny44NTkyIDkxLjk2NDIgNzcuOTkxOSA5Mi4xMTEyQzc4LjEyOTQgOTIuMjUzNCA3OC4yODU4IDkyLjM1NzcgNzguNDYxMyA5Mi40MjQxQzc4LjY0MTQgOTIuNDkwNSA3OC44MzgyIDkyLjUyMzcgNzkuMDUxNSA5Mi41MjM3Qzc5LjMyMTcgOTIuNTIzNyA3OS41NjEyIDkyLjQ3MTUgNzkuNzY5OCA5Mi4zNjcyQzc5Ljk3ODQgOTIuMjYyOSA4MC4xNTM4IDkyLjA5NyA4MC4yOTYgOTEuODY5NEM4MC40MzgyIDkxLjYzNzEgODAuNTQ0OSA5MS4zMzYxIDgwLjYxNiA5MC45NjYzQzgwLjY4NzEgOTAuNTk2NSA4MC43MjI3IDkwLjE1MzIgODAuNzIyNyA4OS42MzY0WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNODcuNzEzIDg4Ljg2MjRWODguNTIwMkM4Ny43MTMgODguMjc0MyA4Ny43NjY0IDg4LjA1MDYgODcuODczIDg3Ljg0OTFDODcuOTc5NyA4Ny42NDc2IDg4LjEzNTMgODcuNDg2MSA4OC4zMzk3IDg3LjM2NDZDODguNTQ0MiA4Ny4yNDMxIDg4Ljc5MDEgODcuMTgyNCA4OS4wNzc1IDg3LjE4MjRDODkuMzczOCA4Ny4xODI0IDg5LjYyMjcgODcuMjQzMSA4OS44MjQyIDg3LjM2NDZDOTAuMDI4NyA4Ny40ODYxIDkwLjE4NDIgODcuNjQ3NiA5MC4yOTA5IDg3Ljg0OTFDOTAuMzk3NiA4OC4wNTA2IDkwLjQ1MDkgODguMjc0MyA5MC40NTA5IDg4LjUyMDJWODguODYyNEM5MC40NTA5IDg5LjEwMjUgOTAuMzk3NiA4OS4zMjMyIDkwLjI5MDkgODkuNTI0N0M5MC4xODcyIDg5LjcyNjIgOTAuMDMzMSA4OS44ODc3IDg5LjgyODcgOTAuMDA5MkM4OS42MjcyIDkwLjEzMDYgODkuMzc5NyA5MC4xOTE0IDg5LjA4NjQgOTAuMTkxNEM4OC43OTYgOTAuMTkxNCA4OC41NDcxIDkwLjEzMDYgODguMzM5NyA5MC4wMDkyQzg4LjEzNTMgODkuODg3NyA4Ny45Nzk3IDg5LjcyNjIgODcuODczIDg5LjUyNDdDODcuNzY2NCA4OS4zMjMyIDg3LjcxMyA4OS4xMDI1IDg3LjcxMyA4OC44NjI0Wk04OC40NTUzIDg4LjUyMDJWODguODYyNEM4OC40NTUzIDg4Ljk4MSA4OC40Nzc1IDg5LjA5MzYgODguNTIxOSA4OS4yMDAyQzg4LjU2OTMgODkuMzA2OSA4OC42NDA1IDg5LjM5MjggODguNzM1MyA4OS40NThDODguODMwMSA4OS41MjMyIDg4Ljk0NzEgODkuNTU1OCA4OS4wODY0IDg5LjU1NThDODkuMjI4NiA4OS41NTU4IDg5LjM0NDIgODkuNTIzMiA4OS40MzMxIDg5LjQ1OEM4OS41MjQ5IDg5LjM5MjggODkuNTkzMSA4OS4zMDY5IDg5LjYzNzUgODkuMjAwMkM4OS42ODIgODkuMDkzNiA4OS43MDQyIDg4Ljk4MSA4OS43MDQyIDg4Ljg2MjRWODguNTIwMkM4OS43MDQyIDg4LjM5ODcgODkuNjgwNSA4OC4yODQ2IDg5LjYzMzEgODguMTc4Qzg5LjU4ODYgODguMDY4MyA4OS41MjA1IDg3Ljk4MDkgODkuNDI4NiA4Ny45MTU3Qzg5LjMzNjggODcuODUwNiA4OS4yMTk3IDg3LjgxOCA4OS4wNzc1IDg3LjgxOEM4OC45NDEyIDg3LjgxOCA4OC44MjU3IDg3Ljg1MDYgODguNzMwOCA4Ny45MTU3Qzg4LjYzOSA4Ny45ODA5IDg4LjU2OTMgODguMDY4MyA4OC41MjE5IDg4LjE3OEM4OC40Nzc1IDg4LjI4NDYgODguNDU1MyA4OC4zOTg3IDg4LjQ1NTMgODguNTIwMlpNOTAuODMzMSA5Mi41MDdWOTIuMTYwM0M5MC44MzMxIDkxLjkxNzQgOTAuODg2NSA5MS42OTUxIDkwLjk5MzEgOTEuNDkzN0M5MS4xMDI4IDkxLjI5MjIgOTEuMjU5OCA5MS4xMzA3IDkxLjQ2NDMgOTEuMDA5MkM5MS42Njg3IDkwLjg4NzcgOTEuOTE0NyA5MC44MjcgOTIuMjAyMSA5MC44MjdDOTIuNDk4NCA5MC44MjcgOTIuNzQ3MyA5MC44ODc3IDkyLjk0ODggOTEuMDA5MkM5My4xNTMyIDkxLjEzMDcgOTMuMzA3MyA5MS4yOTIyIDkzLjQxMSA5MS40OTM3QzkzLjUxNzcgOTEuNjk1MSA5My41NzEgOTEuOTE3NCA5My41NzEgOTIuMTYwM1Y5Mi41MDdDOTMuNTcxIDkyLjc1IDkzLjUxNzcgOTIuOTcyMiA5My40MTEgOTMuMTczN0M5My4zMDczIDkzLjM3NTIgOTMuMTU0NyA5My41MzY3IDkyLjk1MzIgOTMuNjU4MkM5Mi43NTE3IDkzLjc3OTcgOTIuNTA1OCA5My44NDA0IDkyLjIxNTQgOTMuODQwNEM5MS45MjIxIDkzLjg0MDQgOTEuNjcxNyA5My43Nzk3IDkxLjQ2NDMgOTMuNjU4MkM5MS4yNTk4IDkzLjUzNjcgOTEuMTAyOCA5My4zNzUyIDkwLjk5MzEgOTMuMTczN0M5MC44ODY1IDkyLjk3MjIgOTAuODMzMSA5Mi43NSA5MC44MzMxIDkyLjUwN1pNOTEuNTc5OCA5Mi4xNjAzVjkyLjUwN0M5MS41Nzk4IDkyLjYyNTUgOTEuNjAzNSA5Mi43MzgxIDkxLjY1MDkgOTIuODQ0OEM5MS43MDEzIDkyLjk1MTUgOTEuNzczOSA5My4wMzg5IDkxLjg2ODcgOTMuMTA3QzkxLjk2MzUgOTMuMTcyMiA5Mi4wNzc2IDkzLjIwNDggOTIuMjExIDkzLjIwNDhDOTIuMzYyMSA5My4yMDQ4IDkyLjQ4MzYgOTMuMTcyMiA5Mi41NzU0IDkzLjEwN0M5Mi42NjczIDkzLjAzODkgOTIuNzMyNSA5Mi45NTMgOTIuNzcxIDkyLjg0OTNDOTIuODEyNSA5Mi43NDI2IDkyLjgzMzIgOTIuNjI4NSA5Mi44MzMyIDkyLjUwN1Y5Mi4xNjAzQzkyLjgzMzIgOTIuMDM4OSA5Mi44MDk1IDkxLjkyNDggOTIuNzYyMSA5MS44MTgxQzkyLjcxNzYgOTEuNzExNCA5Mi42NDggOTEuNjI1NSA5Mi41NTMyIDkxLjU2MDNDOTIuNDYxMyA5MS40OTUxIDkyLjM0NDMgOTEuNDYyNSA5Mi4yMDIxIDkxLjQ2MjVDOTIuMDYyOCA5MS40NjI1IDkxLjk0NzIgOTEuNDk1MSA5MS44NTU0IDkxLjU2MDNDOTEuNzYzNSA5MS42MjU1IDkxLjY5MzkgOTEuNzExNCA5MS42NDY1IDkxLjgxODFDOTEuNjAyMSA5MS45MjQ4IDkxLjU3OTggOTIuMDM4OSA5MS41Nzk4IDkyLjE2MDNaTTkyLjQ2ODcgODguMjAwMkw4OS4zMDg2IDkzLjI1ODJMODguNzYxOSA5Mi45NDI2TDkxLjkyMjEgODcuODg0Nkw5Mi40Njg3IDg4LjIwMDJaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjwvZz4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxOTkiIGhlaWdodD0iMTU5IiByeD0iMy41IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4xMiIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzM0NjFfMTA1NTgwIiB4PSI1Ny45MTczIiB5PSI3Mi44NTczIiB3aWR0aD0iNDUuMDYxOCIgaGVpZ2h0PSIyOS45NTg4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjEuNjI0MzQiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfMTA1NTgwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzEwNTU4MCIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K", "description": "Widget indicates the level of liquid in Horizontal Ellipse tank.", "descriptor": { "type": "latest", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} +} \ No newline at end of file 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 d973a08d5b..f2c1bf2cf0 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": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMzQ2MV85NDc3NSkiPgo8cmVjdCBvcGFjaXR5PSIwLjEiIHg9Ijg2LjQyMiIgeT0iNTkuODI4MyIgd2lkdGg9Ijc2LjAzNDUiIGhlaWdodD0iNTQuMzEwMyIgcng9IjI3LjE1NTIiIGZpbGw9IiM2MjE2RkYiIGZpbGwtb3BhY2l0eT0iMC4wMiIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPG1hc2sgaWQ9Im1hc2swXzM0NjFfOTQ3NzUiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjM5IiB5PSI2MSIgd2lkdGg9IjEyMiIgaGVpZ2h0PSI1MiI+CjxtYXNrIGlkPSJwYXRoLTUtaW5zaWRlLTFfMzQ2MV85NDc3NSIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTYzLjYxMjUgNjEuNDgwMlY2MS40NTc2TDY0LjY2MjEgNjEuNDU3NkM2NC42NzQzIDYxLjQ1NzUgNjQuNjg2NSA2MS40NTc1IDY0LjY5ODcgNjEuNDU3NUg4Ni45NjU5Qzg2Ljk3NzkgNjEuNDU3NSA4Ni45ODk5IDYxLjQ1NzUgODcuMDAxOSA2MS40NTc2TDExNS43MDggNjEuNDU3NkwxMTUuNzUgNjEuNDU3NUwxMzUuMzAyIDYxLjQ1NzVDMTQ5LjQgNjEuNDU3NSAxNjAuODI4IDcyLjg4NTggMTYwLjgyOCA4Ni45ODM0QzE2MC44MjggMTAxLjA4MSAxNDkuNCAxMTIuNTA5IDEzNS4zMDIgMTEyLjUwOUwxMzQuNzU5IDExMi41MDlMNjMuNjEyNSAxMTIuNTA5VjExMi40ODdDNTAuMDE4OCAxMTEuOTE3IDM5LjE3MjkgMTAwLjcxNyAzOS4xNzI5IDg2Ljk4MzRDMzkuMTcyOSA3My4yNDk3IDUwLjAxODggNjIuMDQ5MyA2My42MTI1IDYxLjQ4MDJaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02My42MTI1IDYxLjQ4MDJWNjEuNDU3Nkw2NC42NjIxIDYxLjQ1NzZDNjQuNjc0MyA2MS40NTc1IDY0LjY4NjUgNjEuNDU3NSA2NC42OTg3IDYxLjQ1NzVIODYuOTY1OUM4Ni45Nzc5IDYxLjQ1NzUgODYuOTg5OSA2MS40NTc1IDg3LjAwMTkgNjEuNDU3NkwxMTUuNzA4IDYxLjQ1NzZMMTE1Ljc1IDYxLjQ1NzVMMTM1LjMwMiA2MS40NTc1QzE0OS40IDYxLjQ1NzUgMTYwLjgyOCA3Mi44ODU4IDE2MC44MjggODYuOTgzNEMxNjAuODI4IDEwMS4wODEgMTQ5LjQgMTEyLjUwOSAxMzUuMzAyIDExMi41MDlMMTM0Ljc1OSAxMTIuNTA5TDYzLjYxMjUgMTEyLjUwOVYxMTIuNDg3QzUwLjAxODggMTExLjkxNyAzOS4xNzI5IDEwMC43MTcgMzkuMTcyOSA4Ni45ODM0QzM5LjE3MjkgNzMuMjQ5NyA1MC4wMTg4IDYyLjA0OTMgNjMuNjEyNSA2MS40ODAyWiIgZmlsbD0iIzdGODRGQiIvPgo8cGF0aCBkPSJNNjMuNjEyNSA2MS40NTc2VjYwLjM3MTNMNjIuNTI2MyA2MC4zNzEzVjYxLjQ1NzZINjMuNjEyNVpNNjMuNjEyNSA2MS40ODAyTDYzLjY1NzkgNjIuNTY1NUw2NC42OTg3IDYyLjUyMTlWNjEuNDgwMkg2My42MTI1Wk02NC42NjIxIDYxLjQ1NzZWNjIuNTQzOEw2NC42NjM2IDYyLjU0MzhMNjQuNjYyMSA2MS40NTc2Wk04Ny4wMDE5IDYxLjQ1NzZMODcuMDAwNCA2Mi41NDM4SDg3LjAwMTlWNjEuNDU3NlpNMTE1LjcwOCA2MS40NTc2VjYyLjU0MzhMMTE1LjcwOSA2Mi41NDM4TDExNS43MDggNjEuNDU3NlpNMTE1Ljc1IDYxLjQ1NzVWNjAuMzcxM0wxMTUuNzUgNjAuMzcxM0wxMTUuNzUgNjEuNDU3NVpNMTM1LjMwMiA2MS40NTc1VjYyLjU0MzdWNjEuNDU3NVpNMTM1LjMwMiAxMTIuNTA5VjExMS40MjNIMTM1LjMwMkwxMzUuMzAyIDExMi41MDlaTTEzNC43NTkgMTEyLjUwOVYxMTMuNTk1SDEzNC43NTlMMTM0Ljc1OSAxMTIuNTA5Wk02My42MTI1IDExMi41MDlINjIuNTI2M1YxMTMuNTk1SDYzLjYxMjVWMTEyLjUwOVpNNjMuNjEyNSAxMTIuNDg3SDY0LjY5ODdWMTExLjQ0NUw2My42NTc5IDExMS40MDFMNjMuNjEyNSAxMTIuNDg3Wk02Mi41MjYzIDYxLjQ1NzZWNjEuNDgwMkg2NC42OTg3VjYxLjQ1NzZINjIuNTI2M1pNNjQuNjYyMSA2MC4zNzEzSDYzLjYxMjVWNjIuNTQzOEg2NC42NjIxVjYwLjM3MTNaTTY0LjY2MzYgNjIuNTQzOEM2NC42NzUzIDYyLjU0MzcgNjQuNjg3IDYyLjU0MzcgNjQuNjk4NyA2Mi41NDM3VjYwLjM3MTNDNjQuNjg2IDYwLjM3MTMgNjQuNjczMyA2MC4zNzEzIDY0LjY2MDUgNjAuMzcxNEw2NC42NjM2IDYyLjU0MzhaTTY0LjY5ODcgNjIuNTQzN0g4Ni45NjU5VjYwLjM3MTNINjQuNjk4N1Y2Mi41NDM3Wk04Ni45NjU5IDYyLjU0MzdDODYuOTc3NCA2Mi41NDM3IDg2Ljk4ODkgNjIuNTQzNyA4Ny4wMDA0IDYyLjU0MzhMODcuMDAzNCA2MC4zNzEzQzg2Ljk5MDkgNjAuMzcxMyA4Ni45Nzg0IDYwLjM3MTMgODYuOTY1OSA2MC4zNzEzVjYyLjU0MzdaTTExNS43MDggNjAuMzcxM0w4Ny4wMDE5IDYwLjM3MTNWNjIuNTQzOEwxMTUuNzA4IDYyLjU0MzhWNjAuMzcxM1pNMTE1Ljc1IDYwLjM3MTNMMTE1LjcwNyA2MC4zNzEzTDExNS43MDkgNjIuNTQzOEwxMTUuNzUxIDYyLjU0MzdMMTE1Ljc1IDYwLjM3MTNaTTEzNS4zMDIgNjAuMzcxM0wxMTUuNzUgNjAuMzcxM1Y2Mi41NDM3TDEzNS4zMDIgNjIuNTQzN1Y2MC4zNzEzWk0xNjEuOTE0IDg2Ljk4MzRDMTYxLjkxNCA3Mi4yODU5IDE1MCA2MC4zNzEzIDEzNS4zMDIgNjAuMzcxM1Y2Mi41NDM3QzE0OC44IDYyLjU0MzcgMTU5Ljc0MiA3My40ODU3IDE1OS43NDIgODYuOTgzNEgxNjEuOTE0Wk0xMzUuMzAyIDExMy41OTVDMTUwIDExMy41OTUgMTYxLjkxNCAxMDEuNjgxIDE2MS45MTQgODYuOTgzNEgxNTkuNzQyQzE1OS43NDIgMTAwLjQ4MSAxNDguOCAxMTEuNDIzIDEzNS4zMDIgMTExLjQyM1YxMTMuNTk1Wk0xMzQuNzU5IDExMy41OTVMMTM1LjMwMiAxMTMuNTk1TDEzNS4zMDIgMTExLjQyM0wxMzQuNzU5IDExMS40MjNMMTM0Ljc1OSAxMTMuNTk1Wk02My42MTI1IDExMy41OTVMMTM0Ljc1OSAxMTMuNTk1VjExMS40MjNMNjMuNjEyNSAxMTEuNDIzVjExMy41OTVaTTYyLjUyNjMgMTEyLjQ4N1YxMTIuNTA5SDY0LjY5ODdWMTEyLjQ4N0g2Mi41MjYzWk02My42NTc5IDExMS40MDFDNTAuNjQzNSAxMTAuODU2IDQwLjI1OTEgMTAwLjEzMiA0MC4yNTkxIDg2Ljk4MzRIMzguMDg2NkMzOC4wODY2IDEwMS4zMDIgNDkuMzk0MSAxMTIuOTc4IDYzLjU2NzEgMTEzLjU3Mkw2My42NTc5IDExMS40MDFaTTQwLjI1OTEgODYuOTgzNEM0MC4yNTkxIDczLjgzNDQgNTAuNjQzNSA2My4xMTAzIDYzLjY1NzkgNjIuNTY1NUw2My41NjcxIDYwLjM5NUM0OS4zOTQxIDYwLjk4ODMgMzguMDg2NiA3Mi42NjUxIDM4LjA4NjYgODYuOTgzNEg0MC4yNTkxWiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTUtaW5zaWRlLTFfMzQ2MV85NDc3NSkiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzM0NjFfOTQ3NzUpIj4KPHJlY3QgeD0iMzkuMTcyOSIgeT0iOTEuMzI4MSIgd2lkdGg9IjEyMS42NTUiIGhlaWdodD0iNTEuMDUxNyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzI5IiB5PSI5MS4zMjgxIiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzI5IiB5PSI5MS4zMjgxIiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPG1hc2sgaWQ9InBhdGgtOS1pbnNpZGUtMl8zNDYxXzk0Nzc1IiBmaWxsPSJ3aGl0ZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjMuNjEyMSA1OS4zMDZDNDguODE4MiA1OS44NzY1IDM3IDcyLjA0OTggMzcgODYuOTgzNEMzNyAxMDEuOTE3IDQ4LjgxODIgMTE0LjA5IDYzLjYxMjEgMTE0LjY2MUw2My42MTIxIDExNC42ODJMNjQuNjc3MSAxMTQuNjgyQzY0LjY4NDEgMTE0LjY4MiA2NC42OTEyIDExNC42ODIgNjQuNjk4MyAxMTQuNjgyTDg2Ljk2NTUgMTE0LjY4MkM4Ni45NzM3IDExNC42ODIgODYuOTgxOCAxMTQuNjgyIDg2Ljk5IDExNC42ODJMMTEzLjU2MiAxMTQuNjgyTDExMy41NzggMTE0LjY4MkwxMzUuMzAyIDExNC42ODJDMTUwLjU5OSAxMTQuNjgyIDE2MyAxMDIuMjgxIDE2MyA4Ni45ODM0QzE2MyA3MS42ODYgMTUwLjU5OSA1OS4yODUxIDEzNS4zMDIgNTkuMjg1MUwxMzQuNzU5IDU5LjI4NTFMMTEzLjU3OCA1OS4yODUxTDY0LjY5ODMgNTkuMjg1MUw2My42MTIxIDU5LjI4NTFMNjMuNjEyMSA1OS4zMDZaIi8+CjwvbWFzaz4KPHBhdGggZD0iTTYzLjYxMjEgNTkuMzA2TDYzLjY1MzkgNjAuMzkxNEw2NC42OTgzIDYwLjM1MTFMNjQuNjk4MyA1OS4zMDZMNjMuNjEyMSA1OS4zMDZaTTYzLjYxMjEgMTE0LjY2MUw2NC42OTgzIDExNC42NjFMNjQuNjk4MyAxMTMuNjE2TDYzLjY1MzkgMTEzLjU3NUw2My42MTIxIDExNC42NjFaTTYzLjYxMjEgMTE0LjY4Mkw2Mi41MjU5IDExNC42ODJMNjIuNTI1OSAxMTUuNzY4TDYzLjYxMjEgMTE1Ljc2OEw2My42MTIxIDExNC42ODJaTTY0LjY3NzEgMTE0LjY4Mkw2NC42Nzc5IDExMy41OTVMNjQuNjc3MSAxMTMuNTk1TDY0LjY3NzEgMTE0LjY4MlpNNjQuNjk4MyAxMTQuNjgyTDY0LjY5ODMgMTEzLjU5NUw2NC42OTgzIDExNC42ODJaTTg2Ljk2NTUgMTE0LjY4Mkw4Ni45NjU1IDExNS43NjhMODYuOTY1NSAxMTQuNjgyWk04Ni45OSAxMTQuNjgyTDg2Ljk5IDExMy41OTVMODYuOTg5IDExMy41OTVMODYuOTkgMTE0LjY4MlpNMTEzLjU2MiAxMTQuNjgyTDExMy41NjMgMTEzLjU5NUwxMTMuNTYyIDExMy41OTVMMTEzLjU2MiAxMTQuNjgyWk0xMTMuNTc4IDExNC42ODJMMTEzLjU3NyAxMTUuNzY4TDExMy41NzggMTE1Ljc2OEwxMTMuNTc4IDExNC42ODJaTTEzNS4zMDIgMTE0LjY4MkwxMzUuMzAyIDExNS43NjhMMTM1LjMwMiAxMTQuNjgyWk0xMzUuMzAyIDU5LjI4NTFMMTM1LjMwMiA2MC4zNzEzTDEzNS4zMDIgNjAuMzcxM0wxMzUuMzAyIDU5LjI4NTFaTTEzNC43NTkgNTkuMjg1MUwxMzQuNzU5IDU4LjE5ODlMMTM0Ljc1OSA1OC4xOTg5TDEzNC43NTkgNTkuMjg1MVpNMTEzLjU3OCA1OS4yODUxTDExMy41NzggNTguMTk4OUwxMTMuNTc4IDU5LjI4NTFaTTY0LjY5ODMgNTkuMjg1MUw2NC42OTgzIDYwLjM3MTNMNjQuNjk4MyA2MC4zNzEzTDY0LjY5ODMgNTkuMjg1MVpNNjMuNjEyMSA1OS4yODUxTDYzLjYxMjEgNTguMTk4OUw2Mi41MjU5IDU4LjE5ODlMNjIuNTI1OSA1OS4yODUxTDYzLjYxMjEgNTkuMjg1MVpNMzguMDg2MiA4Ni45ODM0QzM4LjA4NjIgNzIuNjM1NyA0OS40NDEgNjAuOTM5NSA2My42NTM5IDYwLjM5MTRMNjMuNTcwMiA1OC4yMjA2QzQ4LjE5NTQgNTguODEzNSAzNS45MTM4IDcxLjQ2MzkgMzUuOTEzOCA4Ni45ODM0TDM4LjA4NjIgODYuOTgzNFpNNjMuNjUzOSAxMTMuNTc1QzQ5LjQ0MSAxMTMuMDI3IDM4LjA4NjIgMTAxLjMzMSAzOC4wODYyIDg2Ljk4MzRMMzUuOTEzOCA4Ni45ODM0QzM1LjkxMzggMTAyLjUwMyA0OC4xOTU0IDExNS4xNTMgNjMuNTcwMiAxMTUuNzQ2TDYzLjY1MzkgMTEzLjU3NVpNNjIuNTI1OSAxMTQuNjYxTDYyLjUyNTkgMTE0LjY4Mkw2NC42OTgzIDExNC42ODJMNjQuNjk4MyAxMTQuNjYxTDYyLjUyNTkgMTE0LjY2MVpNNjMuNjEyMSAxMTUuNzY4TDY0LjY3NzEgMTE1Ljc2OEw2NC42NzcxIDExMy41OTVMNjMuNjEyMSAxMTMuNTk1TDYzLjYxMjEgMTE1Ljc2OFpNNjQuNjk4MyAxMTMuNTk1QzY0LjY5MTUgMTEzLjU5NSA2NC42ODQ3IDExMy41OTUgNjQuNjc3OSAxMTMuNTk1TDY0LjY3NjMgMTE1Ljc2OEM2NC42ODM2IDExNS43NjggNjQuNjkwOSAxMTUuNzY4IDY0LjY5ODMgMTE1Ljc2OEw2NC42OTgzIDExMy41OTVaTTg2Ljk2NTUgMTEzLjU5NUw2NC42OTgzIDExMy41OTVMNjQuNjk4MyAxMTUuNzY4TDg2Ljk2NTUgMTE1Ljc2OEw4Ni45NjU1IDExMy41OTVaTTg2Ljk4OSAxMTMuNTk1Qzg2Ljk4MTIgMTEzLjU5NSA4Ni45NzM0IDExMy41OTUgODYuOTY1NSAxMTMuNTk1TDg2Ljk2NTUgMTE1Ljc2OEM4Ni45NzQgMTE1Ljc2OCA4Ni45ODI0IDExNS43NjggODYuOTkwOSAxMTUuNzY4TDg2Ljk4OSAxMTMuNTk1Wk04Ni45OSAxMTUuNzY4TDExMy41NjIgMTE1Ljc2OEwxMTMuNTYyIDExMy41OTVMODYuOTkgMTEzLjU5NUw4Ni45OSAxMTUuNzY4Wk0xMTMuNTYyIDExNS43NjhMMTEzLjU3NyAxMTUuNzY4TDExMy41NzggMTEzLjU5NUwxMTMuNTYzIDExMy41OTVMMTEzLjU2MiAxMTUuNzY4Wk0xMTMuNTc4IDExNS43NjhMMTM1LjMwMiAxMTUuNzY4TDEzNS4zMDIgMTEzLjU5NUwxMTMuNTc4IDExMy41OTVMMTEzLjU3OCAxMTUuNzY4Wk0xMzUuMzAyIDExNS43NjhDMTUxLjE5OSAxMTUuNzY4IDE2NC4wODYgMTAyLjg4MSAxNjQuMDg2IDg2Ljk4MzRMMTYxLjkxNCA4Ni45ODM0QzE2MS45MTQgMTAxLjY4MSAxNDkuOTk5IDExMy41OTUgMTM1LjMwMiAxMTMuNTk1TDEzNS4zMDIgMTE1Ljc2OFpNMTY0LjA4NiA4Ni45ODM0QzE2NC4wODYgNzEuMDg2MSAxNTEuMTk5IDU4LjE5ODkgMTM1LjMwMiA1OC4xOTg5TDEzNS4zMDIgNjAuMzcxM0MxNDkuOTk5IDYwLjM3MTMgMTYxLjkxNCA3Mi4yODU5IDE2MS45MTQgODYuOTgzNEwxNjQuMDg2IDg2Ljk4MzRaTTEzNS4zMDIgNTguMTk4OUwxMzQuNzU5IDU4LjE5ODlMMTM0Ljc1OSA2MC4zNzEzTDEzNS4zMDIgNjAuMzcxM0wxMzUuMzAyIDU4LjE5ODlaTTEzNC43NTkgNTguMTk4OUwxMTMuNTc4IDU4LjE5ODlMMTEzLjU3OCA2MC4zNzEzTDEzNC43NTkgNjAuMzcxM0wxMzQuNzU5IDU4LjE5ODlaTTExMy41NzggNTguMTk4OUw2NC42OTgzIDU4LjE5ODlMNjQuNjk4MyA2MC4zNzEzTDExMy41NzggNjAuMzcxM0wxMTMuNTc4IDU4LjE5ODlaTTY0LjY5ODMgNTguMTk4OUw2My42MTIxIDU4LjE5ODlMNjMuNjEyMSA2MC4zNzEzTDY0LjY5ODMgNjAuMzcxM0w2NC42OTgzIDU4LjE5ODlaTTYyLjUyNTkgNTkuMjg1MUw2Mi41MjU5IDU5LjMwNkw2NC42OTgzIDU5LjMwNkw2NC42OTgzIDU5LjI4NTFMNjIuNTI1OSA1OS4yODUxWiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTktaW5zaWRlLTJfMzQ2MV85NDc3NSkiLz4KPHJlY3QgeD0iMzcuNTQzMSIgeT0iNTkuODI4MyIgd2lkdGg9Ijc2LjU3NzYiIGhlaWdodD0iNTQuMzEwMyIgcng9IjI3LjE1NTIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJwYXRoLTEyLWluc2lkZS0zXzM0NjFfOTQ3NzUiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMjcuNjk4IDUwLjU5NTVIMTExLjk0OFY2MC4zNzEzQzExMS45NDggNjEuMjcxMiAxMTUuNDc0IDYyLjAwMDYgMTE5LjgyMyA2Mi4wMDA2QzEyNC4xNzIgNjIuMDAwNiAxMjcuNjk4IDYxLjI3MTIgMTI3LjY5OCA2MC4zNzEzVjUwLjU5NTVaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMjcuNjk4IDUwLjU5NTVIMTExLjk0OFY2MC4zNzEzQzExMS45NDggNjEuMjcxMiAxMTUuNDc0IDYyLjAwMDYgMTE5LjgyMyA2Mi4wMDA2QzEyNC4xNzIgNjIuMDAwNiAxMjcuNjk4IDYxLjI3MTIgMTI3LjY5OCA2MC4zNzEzVjUwLjU5NTVaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTExLjk0OCA1MC41OTU1VjQ5LjUwOTNIMTEwLjg2MlY1MC41OTU1SDExMS45NDhaTTEyNy42OTggNTAuNTk1NUgxMjguNzg0VjQ5LjUwOTNIMTI3LjY5OFY1MC41OTU1Wk0xMTEuOTQ4IDUxLjY4MTdIMTI3LjY5OFY0OS41MDkzSDExMS45NDhWNTEuNjgxN1pNMTEzLjAzNCA2MC4zNzEzVjUwLjU5NTVIMTEwLjg2MlY2MC4zNzEzSDExMy4wMzRaTTExOS44MjMgNjAuOTE0NEMxMTcuNyA2MC45MTQ0IDExNS44MDggNjAuNzM1NiAxMTQuNDc1IDYwLjQ1OTdDMTEzLjc5OSA2MC4zMiAxMTMuMzI0IDYwLjE2NjcgMTEzLjA0NCA2MC4wMjk4QzExMi45MDIgNTkuOTYwMyAxMTIuODY2IDU5LjkyMTcgMTEyLjg4MSA1OS45MzU5QzExMi44OTggNTkuOTUzNCAxMTMuMDM0IDYwLjEwMjQgMTEzLjAzNCA2MC4zNzEzSDExMC44NjJDMTEwLjg2MiA2MC44NjUzIDExMS4xMDkgNjEuMjMzOSAxMTEuMzM2IDYxLjQ2MzVDMTExLjU2IDYxLjY4OTggMTExLjgzMyA2MS44NTU5IDExMi4wOSA2MS45ODEyQzExMi42MDcgNjIuMjM0MiAxMTMuMjg1IDYyLjQzMiAxMTQuMDM1IDYyLjU4NzFDMTE1LjU1MiA2Mi45MDEgMTE3LjU5OCA2My4wODY4IDExOS44MjMgNjMuMDg2OFY2MC45MTQ0Wk0xMjYuNjEyIDYwLjM3MTNDMTI2LjYxMiA2MC4xMDI0IDEyNi43NDkgNTkuOTUzNCAxMjYuNzY2IDU5LjkzNTlDMTI2Ljc4IDU5LjkyMTcgMTI2Ljc0NCA1OS45NjAzIDEyNi42MDIgNjAuMDI5OEMxMjYuMzIyIDYwLjE2NjcgMTI1Ljg0NyA2MC4zMiAxMjUuMTcyIDYwLjQ1OTdDMTIzLjgzOCA2MC43MzU2IDEyMS45NDcgNjAuOTE0NCAxMTkuODIzIDYwLjkxNDRWNjMuMDg2OEMxMjIuMDQ5IDYzLjA4NjggMTI0LjA5NSA2Mi45MDEgMTI1LjYxMiA2Mi41ODcxQzEyNi4zNjEgNjIuNDMyIDEyNy4wNCA2Mi4yMzQyIDEyNy41NTcgNjEuOTgxMkMxMjcuODEzIDYxLjg1NTkgMTI4LjA4NyA2MS42ODk4IDEyOC4zMTEgNjEuNDYzNUMxMjguNTM4IDYxLjIzMzkgMTI4Ljc4NCA2MC44NjUzIDEyOC43ODQgNjAuMzcxM0gxMjYuNjEyWk0xMjYuNjEyIDUwLjU5NTVWNjAuMzcxM0gxMjguNzg0VjUwLjU5NTVIMTI2LjYxMloiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC0xMi1pbnNpZGUtM18zNDYxXzk0Nzc1KSIvPgo8cGF0aCBkPSJNMTI3LjM1NCA1MC45OTgyQzEyNy40NjggNTEuMDUwNiAxMjcuNTUyIDUxLjA5ODMgMTI3LjYxMiA1MS4xMzg2QzEyNy41NTIgNTEuMTc4OSAxMjcuNDY4IDUxLjIyNjYgMTI3LjM1NCA1MS4yNzg5QzEyNi45ODUgNTEuNDQ3NyAxMjYuNDE3IDUxLjYxMzQgMTI1LjY3MyA1MS43NTc1QzEyNC4xOTMgNTIuMDQ0IDEyMi4xMjQgNTIuMjI0OCAxMTkuODIzIDUyLjIyNDhDMTE3LjUyMyA1Mi4yMjQ4IDExNS40NTQgNTIuMDQ0IDExMy45NzQgNTEuNzU3NUMxMTMuMjMgNTEuNjEzNCAxMTIuNjYyIDUxLjQ0NzcgMTEyLjI5MyA1MS4yNzg5QzExMi4xNzggNTEuMjI2NiAxMTIuMDk0IDUxLjE3ODkgMTEyLjAzNSA1MS4xMzg2QzExMi4wOTQgNTEuMDk4MyAxMTIuMTc4IDUxLjA1MDYgMTEyLjI5MyA1MC45OTgyQzExMi42NjIgNTAuODI5NSAxMTMuMjMgNTAuNjYzOCAxMTMuOTc0IDUwLjUxOTdDMTE1LjQ1NCA1MC4yMzMyIDExNy41MjMgNTAuMDUyNCAxMTkuODIzIDUwLjA1MjRDMTIyLjEyNCA1MC4wNTI0IDEyNC4xOTMgNTAuMjMzMiAxMjUuNjczIDUwLjUxOTdDMTI2LjQxNyA1MC42NjM4IDEyNi45ODUgNTAuODI5NSAxMjcuMzU0IDUwLjk5ODJaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEyNy4zNTQgNDkuMzY4OEMxMjcuNDY4IDQ5LjQyMTIgMTI3LjU1MiA0OS40Njg5IDEyNy42MTIgNDkuNTA5MkMxMjcuNTUyIDQ5LjU0OTUgMTI3LjQ2OCA0OS41OTcyIDEyNy4zNTQgNDkuNjQ5NUMxMjYuOTg1IDQ5LjgxODMgMTI2LjQxNyA0OS45ODQgMTI1LjY3MyA1MC4xMjgxQzEyNC4xOTMgNTAuNDE0NiAxMjIuMTI0IDUwLjU5NTQgMTE5LjgyMyA1MC41OTU0QzExNy41MjMgNTAuNTk1NCAxMTUuNDU0IDUwLjQxNDYgMTEzLjk3NCA1MC4xMjgxQzExMy4yMyA0OS45ODQgMTEyLjY2MiA0OS44MTgzIDExMi4yOTMgNDkuNjQ5NUMxMTIuMTc4IDQ5LjU5NzIgMTEyLjA5NCA0OS41NDk1IDExMi4wMzUgNDkuNTA5MkMxMTIuMDk0IDQ5LjQ2ODkgMTEyLjE3OCA0OS40MjEyIDExMi4yOTMgNDkuMzY4OEMxMTIuNjYyIDQ5LjIwMDEgMTEzLjIzIDQ5LjAzNDQgMTEzLjk3NCA0OC44OTAzQzExNS40NTQgNDguNjAzOCAxMTcuNTIzIDQ4LjQyMyAxMTkuODIzIDQ4LjQyM0MxMjIuMTI0IDQ4LjQyMyAxMjQuMTkzIDQ4LjYwMzggMTI1LjY3MyA0OC44OTAzQzEyNi40MTcgNDkuMDM0NCAxMjYuOTg1IDQ5LjIwMDEgMTI3LjM1NCA0OS4zNjg4WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjwvZz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8zNDYxXzk0Nzc1KSI+CjxyZWN0IHg9IjU2LjgyMTMiIHk9Ijc1LjU2MjciIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik03MC4xOTgyIDg5LjUxMjhWOTAuODc4Mkg2Mi43MzEyTDYyLjY3NDMgODkuODQ3TDY3LjE0MDMgODIuODQ5NEg2OC41MTI4TDY3LjAyNjUgODUuMzk1M0w2NC40NTkzIDg5LjUxMjhINzAuMTk4MlpNNjguOTAzOSA4Mi44NDk0VjkzLjIwMzZINjcuMTkwMVY4Mi44NDk0SDY4LjkwMzlaTTc4LjA5MTggODcuMTU4OVY4OC44NTE0Qzc4LjA5MTggODkuNjYyMSA3OC4wMTEyIDkwLjM1NDMgNzcuODUgOTAuOTI4Qzc3LjY5MzYgOTEuNDk2OSA3Ny40NjYgOTEuOTU5MSA3Ny4xNjczIDkyLjMxNDdDNzYuODY4NiA5Mi42NzAzIDc2LjUxMDcgOTIuOTMxIDc2LjA5MzUgOTMuMDk2OUM3NS42ODEgOTMuMjYyOSA3NS4yMTg4IDkzLjM0NTggNzQuNzA2OCA5My4zNDU4Qzc0LjI5OTEgOTMuMzQ1OCA3My45MTk4IDkzLjI5MzcgNzMuNTY5IDkzLjE4OTRDNzMuMjIyOSA5My4wODUxIDcyLjkxIDkyLjkyMTUgNzIuNjMwMyA5Mi42OTg3QzcyLjM1MDUgOTIuNDc1OSA3Mi4xMTExIDkyLjE4OTEgNzEuOTEyIDkxLjgzODJDNzEuNzE3NiA5MS40ODI3IDcxLjU2NTkgOTEuMDU4MyA3MS40NTY5IDkwLjU2NTNDNzEuMzUyNiA5MC4wNzIyIDcxLjMwMDQgODkuNTAxIDcxLjMwMDQgODguODUxNFY4Ny4xNTg5QzcxLjMwMDQgODYuMzQzNSA3MS4zODEgODUuNjU2MSA3MS41NDIyIDg1LjA5NjZDNzEuNzAzNCA4NC41MzI1IDcxLjkzMzMgODQuMDc1IDcyLjIzMiA4My43MjQxQzcyLjUzMDcgODMuMzY4NiA3Mi44ODYzIDgzLjExMDIgNzMuMjk4NyA4Mi45NDlDNzMuNzE1OSA4Mi43ODc4IDc0LjE4MDUgODIuNzA3MiA3NC42OTI2IDgyLjcwNzJDNzUuMTA1IDgyLjcwNzIgNzUuNDg0MyA4Mi43NTk0IDc1LjgzMDQgODIuODYzN0M3Ni4xODEyIDgyLjk2MzIgNzYuNDk0MSA4My4xMjIgNzYuNzY5MSA4My4zNDAxQzc3LjA0ODggODMuNTU4MiA3Ny4yODU4IDgzLjg0MjcgNzcuNDgwMiA4NC4xOTM1Qzc3LjY3OTMgODQuNTM5NiA3Ny44MzEgODQuOTU5MiA3Ny45MzUzIDg1LjQ1MjJDNzguMDM5NiA4NS45NDA1IDc4LjA5MTggODYuNTA5NCA3OC4wOTE4IDg3LjE1ODlaTTc2LjM3OCA4OS4wOTMyVjg2LjkwMjlDNzYuMzc4IDg2LjQ5MDUgNzYuMzU0MiA4Ni4xMjc4IDc2LjMwNjggODUuODE0OUM3Ni4yNTk0IDg1LjQ5NzIgNzYuMTg4MyA4NS4yMjk0IDc2LjA5MzUgODUuMDExM0M3Ni4wMDM0IDg0Ljc4ODUgNzUuODg5NiA4NC42MDgzIDc1Ljc1MjIgODQuNDcwOEM3NS42MTQ3IDg0LjMyODYgNzUuNDU4MiA4NC4yMjY3IDc1LjI4MjggODQuMTY1MUM3NS4xMDc0IDg0LjA5ODcgNzQuOTEwNiA4NC4wNjU1IDc0LjY5MjYgODQuMDY1NUM3NC40MjcxIDg0LjA2NTUgNzQuMTkgODQuMTE3NiA3My45ODE0IDg0LjIyMTlDNzMuNzcyOCA4NC4zMjE1IDczLjU5NzQgODQuNDgyNyA3My40NTUyIDg0LjcwNTVDNzMuMzEzIDg0LjkyODMgNzMuMjAzOSA4NS4yMjIzIDczLjEyODEgODUuNTg3M0M3My4wNTY5IDg1Ljk0NzYgNzMuMDIxNCA4Ni4zODYyIDczLjAyMTQgODYuOTAyOVY4OS4wOTMyQzczLjAyMTQgODkuNTEwNCA3My4wNDUxIDg5Ljg3NzkgNzMuMDkyNSA5MC4xOTU1QzczLjEzOTkgOTAuNTEzMSA3My4yMTEgOTAuNzg1NyA3My4zMDU4IDkxLjAxMzNDNzMuNDAwNyA5MS4yMzYxIDczLjUxNDQgOTEuNDIxIDczLjY0NzIgOTEuNTY4QzczLjc4NDcgOTEuNzEwMiA3My45NDExIDkxLjgxNDUgNzQuMTE2NSA5MS44ODA5Qzc0LjI5NjcgOTEuOTQ3MyA3NC40OTM0IDkxLjk4MDUgNzQuNzA2OCA5MS45ODA1Qzc0Ljk3NyA5MS45ODA1IDc1LjIxNjQgOTEuOTI4MyA3NS40MjUgOTEuODI0Qzc1LjYzMzYgOTEuNzE5NyA3NS44MDkgOTEuNTUzOCA3NS45NTEzIDkxLjMyNjJDNzYuMDkzNSA5MS4wOTM5IDc2LjIwMDIgOTAuNzkyOSA3Ni4yNzEzIDkwLjQyMzFDNzYuMzQyNCA5MC4wNTMzIDc2LjM3OCA4OS42MSA3Ni4zNzggODkuMDkzMloiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPHBhdGggZD0iTTgzLjM2ODMgODguMzE5MlY4Ny45NzdDODMuMzY4MyA4Ny43MzExIDgzLjQyMTYgODcuNTA3MyA4My41MjgzIDg3LjMwNTlDODMuNjM1IDg3LjEwNDQgODMuNzkwNSA4Ni45NDI5IDgzLjk5NSA4Ni44MjE0Qzg0LjE5OTQgODYuNjk5OSA4NC40NDU0IDg2LjYzOTIgODQuNzMyOCA4Ni42MzkyQzg1LjAyOTEgODYuNjM5MiA4NS4yNzggODYuNjk5OSA4NS40Nzk1IDg2LjgyMTRDODUuNjgzOSA4Ni45NDI5IDg1LjgzOTUgODcuMTA0NCA4NS45NDYyIDg3LjMwNTlDODYuMDUyOCA4Ny41MDczIDg2LjEwNjIgODcuNzMxMSA4Ni4xMDYyIDg3Ljk3N1Y4OC4zMTkyQzg2LjEwNjIgODguNTU5MiA4Ni4wNTI4IDg4Ljc4IDg1Ljk0NjIgODguOTgxNUM4NS44NDI1IDg5LjE4MyA4NS42ODg0IDg5LjM0NDUgODUuNDgzOSA4OS40NjU5Qzg1LjI4MjQgODkuNTg3NCA4NS4wMzUgODkuNjQ4MiA4NC43NDE3IDg5LjY0ODJDODQuNDUxMyA4OS42NDgyIDg0LjIwMjQgODkuNTg3NCA4My45OTUgODkuNDY1OUM4My43OTA1IDg5LjM0NDUgODMuNjM1IDg5LjE4MyA4My41MjgzIDg4Ljk4MTVDODMuNDIxNiA4OC43OCA4My4zNjgzIDg4LjU1OTIgODMuMzY4MyA4OC4zMTkyWk04NC4xMTA1IDg3Ljk3N1Y4OC4zMTkyQzg0LjExMDUgODguNDM3OCA4NC4xMzI4IDg4LjU1MDMgODQuMTc3MiA4OC42NTdDODQuMjI0NiA4OC43NjM3IDg0LjI5NTcgODguODQ5NiA4NC4zOTA1IDg4LjkxNDhDODQuNDg1NCA4OC45OCA4NC42MDI0IDg5LjAxMjYgODQuNzQxNyA4OS4wMTI2Qzg0Ljg4MzkgODkuMDEyNiA4NC45OTk1IDg4Ljk4IDg1LjA4ODQgODguOTE0OEM4NS4xODAyIDg4Ljg0OTYgODUuMjQ4NCA4OC43NjM3IDg1LjI5MjggODguNjU3Qzg1LjMzNzMgODguNTUwMyA4NS4zNTk1IDg4LjQzNzggODUuMzU5NSA4OC4zMTkyVjg3Ljk3N0M4NS4zNTk1IDg3Ljg1NTUgODUuMzM1OCA4Ny43NDE0IDg1LjI4ODQgODcuNjM0OEM4NS4yNDM5IDg3LjUyNTEgODUuMTc1OCA4Ny40Mzc3IDg1LjA4MzkgODcuMzcyNUM4NC45OTIxIDg3LjMwNzMgODQuODc1IDg3LjI3NDcgODQuNzMyOCA4Ny4yNzQ3Qzg0LjU5NjUgODcuMjc0NyA4NC40ODA5IDg3LjMwNzMgODQuMzg2MSA4Ny4zNzI1Qzg0LjI5NDIgODcuNDM3NyA4NC4yMjQ2IDg3LjUyNTEgODQuMTc3MiA4Ny42MzQ4Qzg0LjEzMjggODcuNzQxNCA4NC4xMTA1IDg3Ljg1NTUgODQuMTEwNSA4Ny45NzdaTTg2LjQ4ODQgOTEuOTYzOFY5MS42MTcxQzg2LjQ4ODQgOTEuMzc0MiA4Ni41NDE3IDkxLjE1MTkgODYuNjQ4NCA5MC45NTA0Qzg2Ljc1OCA5MC43NDkgODYuOTE1MSA5MC41ODc1IDg3LjExOTUgOTAuNDY2Qzg3LjMyNCA5MC4zNDQ1IDg3LjU2OTkgOTAuMjgzNyA4Ny44NTczIDkwLjI4MzdDODguMTUzNyA5MC4yODM3IDg4LjQwMjYgOTAuMzQ0NSA4OC42MDQgOTAuNDY2Qzg4LjgwODUgOTAuNTg3NSA4OC45NjI2IDkwLjc0OSA4OS4wNjYzIDkwLjk1MDRDODkuMTczIDkxLjE1MTkgODkuMjI2MyA5MS4zNzQyIDg5LjIyNjMgOTEuNjE3MVY5MS45NjM4Qzg5LjIyNjMgOTIuMjA2OCA4OS4xNzMgOTIuNDI5IDg5LjA2NjMgOTIuNjMwNUM4OC45NjI2IDkyLjgzMiA4OC44MSA5Mi45OTM1IDg4LjYwODUgOTMuMTE1Qzg4LjQwNyA5My4yMzY1IDg4LjE2MTEgOTMuMjk3MiA4Ny44NzA3IDkzLjI5NzJDODcuNTc3MyA5My4yOTcyIDg3LjMyNyA5My4yMzY1IDg3LjExOTUgOTMuMTE1Qzg2LjkxNTEgOTIuOTkzNSA4Ni43NTggOTIuODMyIDg2LjY0ODQgOTIuNjMwNUM4Ni41NDE3IDkyLjQyOSA4Ni40ODg0IDkyLjIwNjggODYuNDg4NCA5MS45NjM4Wk04Ny4yMzUxIDkxLjYxNzFWOTEuOTYzOEM4Ny4yMzUxIDkyLjA4MjMgODcuMjU4OCA5Mi4xOTQ5IDg3LjMwNjIgOTIuMzAxNkM4Ny4zNTY2IDkyLjQwODMgODcuNDI5MiA5Mi40OTU3IDg3LjUyNCA5Mi41NjM4Qzg3LjYxODggOTIuNjI5IDg3LjczMjkgOTIuNjYxNiA4Ny44NjYyIDkyLjY2MTZDODguMDE3NCA5Mi42NjE2IDg4LjEzODggOTIuNjI5IDg4LjIzMDcgOTIuNTYzOEM4OC4zMjI1IDkyLjQ5NTcgODguMzg3NyA5Mi40MDk4IDg4LjQyNjMgOTIuMzA2Qzg4LjQ2NzcgOTIuMTk5NCA4OC40ODg1IDkyLjA4NTMgODguNDg4NSA5MS45NjM4VjkxLjYxNzFDODguNDg4NSA5MS40OTU2IDg4LjQ2NDggOTEuMzgxNiA4OC40MTc0IDkxLjI3NDlDODguMzcyOSA5MS4xNjgyIDg4LjMwMzMgOTEuMDgyMyA4OC4yMDg1IDkxLjAxNzFDODguMTE2NiA5MC45NTE5IDg3Ljk5OTYgOTAuOTE5MyA4Ny44NTczIDkwLjkxOTNDODcuNzE4MSA5MC45MTkzIDg3LjYwMjUgOTAuOTUxOSA4Ny41MTA3IDkxLjAxNzFDODcuNDE4OCA5MS4wODIzIDg3LjM0OTIgOTEuMTY4MiA4Ny4zMDE4IDkxLjI3NDlDODcuMjU3MyA5MS4zODE2IDg3LjIzNTEgOTEuNDk1NiA4Ny4yMzUxIDkxLjYxNzFaTTg4LjEyNCA4Ny42NTdMODQuOTYzOSA5Mi43MTVMODQuNDE3MiA5Mi4zOTk0TDg3LjU3NzMgODcuMzQxNEw4OC4xMjQgODcuNjU3WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8L2c+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iMTk5IiBoZWlnaHQ9IjE1OSIgcng9IjMuNSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLW9wYWNpdHk9IjAuMTIiLz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfYl8zNDYxXzk0Nzc1IiB4PSI1My41NzI2IiB5PSI3Mi4zMTQxIiB3aWR0aD0iNDUuMDYxOCIgaGVpZ2h0PSIyOS45NTg4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjEuNjI0MzQiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfOTQ3NzUiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfOTQ3NzUiIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMzQ2MV85NDc3NSI+CjxyZWN0IHdpZHRoPSIxMjYiIGhlaWdodD0iMTA4LjYyMSIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM3IDI3LjU1MjIpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==", "description": "Widget indicates the level of liquid in Horizontal Oval tank.", "descriptor": { "type": "latest", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} +} \ No newline at end of file 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 43b5eac52d..e858159358 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,iVBORw0KGgoAAAANSUhEUgAAA6MAAAG+CAYAAABmsdJwAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAbGVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAAh2kABAAAAAEAAABOAAAAAAAEeOIAAA/pAAi71gAAHxMAAqACAAQAAAABAAADo6ADAAQAAAABAAABvgAAAADbncXcAAAACXBIWXMAAAsRAAALEQF/ZF+RAABAAElEQVR4Ae3dB5wcdd0/8G96I5Q0SCH0EnqPNFFpUlREKYo+gIrPH7A9KCJgoYgIiDQLVaWoiIhKlfKANAUeQEoo0gKkGFogkF7/O6ubK7t7d0kuczOz7/F13OxvZuf3+72/h8fnZnam26LSEhYCBAgQIECAAAECBAgQIJCiQPcU+9IVAQIECBAgQIAAAQIECBAoCwijfhAIECBAgAABAgQIECBAIHUBYTR1ch0SIECAAAECBAgQIECAgDDqZ4AAAQIECBAgQIAAAQIEUhcQRlMn1yEBAgQIECBAgAABAgQICKN+BggQIECAAAECBAgQIEAgdQFhNHVyHRIgQIAAAQIECBAgQICAMOpngAABAgQIECBAgAABAgRSFxBGUyfXIQECBAgQIECAAAECBAgIo34GCBAgQIAAAQIECBAgQCB1AWE0dXIdEiBAgAABAgQIECBAgIAw6meAAAECBAgQIECAAAECBFIXEEZTJ9chAQIECBAgQIAAAQIECAijfgYIECBAgAABAgQIECBAIHUBYTR1ch0SIECAAAECBAgQIECAgDDqZ4AAAQIECBAgQIAAAQIEUhcQRlMn1yEBAgQIECBAgAABAgQICKN+BggQIECAAAECBAgQIEAgdQFhNHVyHRIgQIAAAQIECBAgQICAMOpngAABAgQIECBAgAABAgRSFxBGUyfXIQECBAgQIECAAAECBAgIo34GCBAgQIAAAQIECBAgQCB1AWE0dXIdEiBAgAABAgQIECBAgIAw6meAAAECBAgQIECAAAECBFIX6Jl6jzokQIAAAQKdKHDH/z61+Gj33tu0/tBD/1zcXll58vHnK6tL9X3Tzddr8b7tttugxeudd964/Hq3Xf/9vcVGLwgQIECAAIEWAt0WlZYWLV4QIECAAIGMCVQCZxI2KyFzWYNlWlNMAmwltCZhVVBNS14/BAgQIJB1AWE06xUyPgIECDSYQCV4nn32deWZ5yV0LmmZmofUk086cEnfbn8CBAgQIJB7AWE09yU0AQIECORfIAmgSfgsavDsSIUq4dTZ045o2YcAAQIEiiAgjBahiuZAgACBnAkk4bNyyW0jB9B6ZasEU2dM6wlpJ0CAAIEiCAijRaiiORAgQCBHAt876Zq47JIbO3XESXhLlspnM5P1ys2EkvXKsqyf16xcQlw5XvMbJiVty+PzrJ8/Yt8QSivivhMgQIBAkQSE0SJV01wIECCQcYEkzB32X2eUR1k5+5cEuPbOjjYPm5WQuazBMg2qyhngSl8dmWtl3+bfBdLmGtYJECBAoCgCwmhRKmkeBAgQyLhA8yCaDDUJmLfc/J1o60xpUUNYYrGkn5GteGW8zIZHgAABAgQ6LCCMdpjKjgQIECCwrAKtg+evrjiu/NnRjly2WzmTmowhL2dHk9CZLJXPxybr7Z0FTvZpvRQ1lLeep9cECBAg0FgCwmhj1dtsCRAg0OUCe+196lIFsrYG3vwy3tb7VYJrpX1pLu+thMrKMSrfm39mdHl8XjSZ19e/vr9nk1bAfSdAgACBQgkIo4Uqp8kQIEAgHwJJuKsEuY6cFc3HrDpvlEJo51k6EgECBAhkV0AYzW5tjIwAAQKFF6iE0uv//Ld44/WphZ9vRya4517vi1GjhriDbkew7EOAAAECuRYQRnNdPoMnQIBA/gSSALqkN+/J3yw7Z8SfPmT3OPPMz3bOwRyFAAECBAhkTEAYzVhBDIcAAQJFFxg18r+WeYr9+/eLmTNnLfNxlvcBknEmy7KM1SW7y7tKjk+AAAECXSUgjHaVvH4JECDQYAK1zogmQWvEiMFx6y0P1NRItm+33Qbt3j03OXayVD6HWjlY5aZCldfJ96W5m23yvmQsrZdkbJWl+Y2Sat0kqXJJcmX/Jf2srDvqVuR8J0CAAIGiCPQsykTMgwABAgTyJzBy5JAYOXJwuwNPQmbzsNf6DZXwV/neentWXidzSOaShOQk3C5tMM7KfIyDAAECBAgsi4Azo8ui570ECBAgsMQCnfFol8oZ00rnlaDalWG0cnY2GVPlDG3lzOyyhM5krh7vUqm07wQIECBQJAFhtEjVNBcCBAjkQKByueqSXqa6NFNrfWlt88tql/R4lWDZ/H3LEjKbH6fe+nnnfyk+8Ynt6m3WToAAAQIEci0gjOa6fAZPgACB/Aoc/rmfxu23PpjfCaQw8kcfvSCGrbpSCj3pggABAgQIpC/QPf0u9UiAAAECBGoLbLLZepHcqKeRluTsbeszuI00f3MlQIAAgcYVcAOjxq29mRMgQCBzAmPHbhAnn3Rg+SsZ3PdOumbxGJPLZJf3ZbGLO1tOK5XQmXwGNFmaf8a1Mx55s5yG7bAECBAgQGC5CAijy4XVQQkQIECgMwSSYNp6qdwoqHKToGR75fOcXRlWK0EzGU/ls6lZuLFSMh4LAQIECBDIooAwmsWqGBMBAgQI1BWonE2sfK+7Y2lDJbgm+zQPr229p962SrBsvr0jY2i+v3UCBAgQIECgSUAYbbKwRoAAAQIFE2geFpuvF2yapkOAAAECBHIp4AZGuSybQRMgQIAAAQIECBAgQCDfAsJovutn9AQIECBAgAABAgQIEMilgDCay7IZNAECBAgQIECAAAECBPItIIzmu35GT4AAAQIECBAgQIAAgVwKCKO5LJtBEyBAgAABAgQIECBAIN8Cwmi+62f0BAgQIECAAAECBAgQyKWAMJrLshk0AQIECBAgQIAAAQIE8i0gjOa7fkZPgAABAgQIECBAgACBXAoIo7ksm0ETIECAAAECBAgQIEAg3wLCaL7rZ/QECBAgQIAAAQIECBDIpYAwmsuyGTQBAgQIECBAgAABAgTyLSCM5rt+Rk+AAAECBAgQIECAAIFcCgijuSybQRMgQIAAAQIECBAgQCDfAsJovutn9AQIECBAgAABAgQIEMilgDCay7IZNAECBAgQIECAAAECBPItIIzmu35GT4AAAQIECBAgQIAAgVwKCKO5LJtBEyBAgAABAgQIECBAIN8Cwmi+62f0BAgQIECAAAECBAgQyKWAMJrLshk0AQIECBAgQIAAAQIE8i0gjOa7fkZPgAABAgQIECBAgACBXAoIo7ksm0ETIECAAAECBAgQIEAg3wLCaL7rZ/QECBAgQIAAAQIECBDIpYAwmsuyGTQBAgQIECBAgAABAgTyLSCM5rt+Rk+AAAECBAgQIECAAIFcCgijuSybQRMgQIAAAQIECBAgQCDfAsJovutn9AQIECBAgAABAgQIEMilgDCay7IZNAECBAgQIECAAAECBPItIIzmu35GT4AAAQIECBAgQIAAgVwK9MzlqA2aQEYFnnpqYrw0/rV48813Y+bMuRGLOnmg3btF927dolvpK/ke/pzUycAOl6bAjOlz0uwul31d+4cHo2fvHrkcu0ETWBaB6e/Njmnvzoz3Sl/vlr46+9fpgP59Y/jwVWL99YbH9jusHyNK6xYCBNIXEEbTN9djgQT+/sBzceONj8aDDz4bLzz/asyfN79AszMVAstXYMxG6yzfDgpw9PPP/2NMf29GAWZiCgSyLdCjR48YPmJofGi3reLbJ+4f/fv1zvaAjY5AQQSE0YIU0jTSFTj3/JvjD9feG+NfnJRux3ojQIAAAQIEOl1gwYIFMXHClLjilzeXv0aOWjW+dfyB8fH9tu30vhyQAIEmARf5NVlYI9CuwE9/dltsscXX4kdnXC2ItqtlBwIECBAgkE+BSRNfiy8ffUHssMNx8egj4/M5CaMmkAMBYTQHRTLErhd4ctyE2Gff0+L0066KN9+Y2vUDMgICBRW47JIb43snXVPQ2dWe1h3/+1TstfeptTdqJUCgSwVefeVf8dGPfi8OOvicLh2HzgkUVaDbotJS1MmZF4HOEPjV5XfHKSddEXPnzmv3cP0H9IsRI4fG4CErlT5v0idKdxpq9z1LtEPpX9fkX9nk39rSPzv01h49ukfvXq7I7xCWnVIVSG709cj/Pd1mn58/Yt/y9pNPOrDN/fK0MQmf9977VDz00D/jycefb3Po++y7Q8xfsLDNfWwkkBeByZOnxlNPvhALF7b/M13+3dWnd/Tu3Sv6lL53L93ArzOXOXPmxaxZc2LunLkdGk/S9/DS7/d77/lh9O3bqzOH4lgEGlpAGG3o8pt8ewI/OP26+NlP/tTmbuttsEbsvsfW8eE9No+ttlqrzX07c2MSSmfNKv0ynT03Zpe+t/V3pd6lu3EOGjQwevZ0MURn1sCxlk3gvAv+Emf98DdLdJBNN18vtttug/J7dt5549ht142X6P1p7pyEzmSpBM9kvb3wmexTWUavOSL+dv8PKy99J5BrgTPO/HNccN4f2pzDuuuvHrvssnnsvdfWMXZsejc4e/751+KnP7sl7v7rY/HG621f/ZT80fnaP5wYm206us252EiAQMcEhNGOOdmrAQVOOvn3cenFN9Sd+djtN43/d+SHY/ddN627T5ob3n13VrxXuhV+vVCa/JV56NAVBdI0i6KvdgW+cewVcfVv7mh3v/Z2SEJqslSCarKehNXmS2cE10rAbH7cJGwmS3KmM1mWJHCW31DjH6NWX630H8dHxtYp/oGrxjA0EegUgeNP/E1c+au/1D3WtmM3iq9+9WPxgV3G1N0nrQ2vv/5eHP658+Pxf/z73+da/fbq1StuuumU2GjjkbU2ayNAYAkEhNElwLJr4whc8JO/xBmn1z5jM2TYoPjWcQfFwQdvnzmQhQsWxbvTZ5UeBTG75tiSM6TDhq1Uc5tGAl0lcMstj8WFF91SumT3ma4aQrnfJNB2RpBclkkMXHGF+Mxndo/jjvuYPxwtC6T3ZkbgoovuiFNPuaLmeFYfvVp849hPxif2367m9q5sfPyJCfHfX7ygfIfdWuMYsEL/eOqpn/n3tBaONgJLICCMLgGWXRtD4PY7nojDD/1RzcmO3WHTuPiiI2PwoBVqbs9K44yZc+LtqbWfTdivf+/Mjz8rjsaRrsAjj46PP/7pobjzjkcjuWlIoyzJZ+J23PnflyYefPAOpY+ad+5n4xrF0TyzJ3D77U/G4YedVXNgye/TSy85KlZZeUDN7Vlp/K9DLyj9f9L/1RzOyNVXjQcfqD2/mm/QSIBAlYAwWkWiodEFxo49NpJburde9tpn+7jk4iNbN2f29ZzSDZemlgLpgvnVN4pYccV+kXxZCGRV4LnnpsQ99z5duvT1uXjyiZdiwqtTsjrUJR7XCisOiDFj1owtt1yn9NiIMbHrhzYSQJdY0RuyLvD6a9Ni192+XfrD6LSqoR5w0IfinB8fVtWe1YZTTr02Lr7w+prD+9Du28YVv/pyzW0aCRBoX0AYbd/IHg0kcMw3Lo9rfvu/VTP+4K7bxJVXfKWqPesNSSB9o/T5l1rLaqut7PKiWjDaMikwa9bcePbZyfHCi1PipZdei1dffSMmT34rHn342UgeVp/FZczG68TwEYNi9dWHxpprDI111x0e6683PEaOXCWLwzUmAp0q8D/H/Cp+/7s7q465517vi8suPaqqPesN3yvdR+KyGveR6BbdSn84OyvWWntY1qdgfAQyKSCMZrIsBtUVAuPGTYwP73lCVdfrbjA67rz91OjeI5+XztW7ZHfACn0yf3lUVTE0EKgj8M47M2LixLfjX1Pejtden1b6I8y00pUB02Pq29Nj2jvT4913Z5Zu8DUzJk14PebNm1/6av9RTZWuevToET1Lj0caPmJIrFD6nNjAgf1ipdKlhausvEIMGjwwhpS+Vl11pVh12Mr/Dp+jVnGms4Lne0MKjHuq9Pt0j+rfpxtvsm7ceut3c2vy6c+cG/fc9WjV+JO7AP/1rtOq2jUQINC+gIcPtm9kjwYROOfc2pfg/PAHh+U2iCalG9C/T+k/vBdU3dRoxvQ5scKAPtHLM0gb5Ce82NNcuRQOk69NNhm1RBNN/lgzc8bcmFl63uDs0tnX5N+Hvv16lZ4T3LsUPPu5emCJNO1M4N8CZ5/95yqK5I7uP//5/6tqz1PDb676WmyzzTEx5V9vthj2C89NiLvveTZ2ef+GLdq9IECgfQEPHWzfyB4NIDBx4tS49ZYHqmb6qUN2j/e9b92q9rw1rFj6j+paN0V5t85dd/M2P+MlsLQCyR9rhg4dGGuMHhIbbDAi1i5dajdi+CrlYOu5vEur6n2NLPBo6UZkt9/6YBXBoYfvXf73q2pDzhp+dPYRNUf8ve9eWbNdIwECbQsIo2372NogAldc+deqmfbr3ze+feInqtrz2JBcYjxwxb5VQ589q+OXKla9WQMBAgQIEGglcNPN1ZexrrTywDjh+I+32jOfL5NnoW6w4VpVg3/pxUlVbRoIEGhfQBht38geDSBw+22PVc1y34/sGCut1L+qPa8NK5Y+59b67OiiRYtilkCa15IaNwECBDIn8Ne7nqga038dtmf07durqj2vDeeeV312dOHChXHOuTfndUrGTaDLBITRLqPXcVYEppRuP//8cy9XDefgg3aqast7Q/JZuNbL7DlzWzd5TYAAAQIEllhg/PjX45/Pjq963z57bVXVlueGTUufTV9xxYFVU7jxxurLk6t20kCAQAsBYbQFhxeNKPDXu56umvZqI4bG2LHrVLXnvaFf395VU3CpbhWJBgIECBBYCoGbb6m+ymiNtUYs8Y3FlqLr1N+yzXbVNyt6+SWX6qZeCB3mXkAYzX0JTWBZBZ586pWqQ2y2WfGCaDLJfjXOjC5YsDCSy3UtBAgQIEBgWQRefvm1qrfv8oHNq9qK0PDZz36gahpzXGlUZaKBQHsCwmh7QrYXXuCVV16vmuOGGy7Z4yGqDpDRhuQzo7Wel7pggTCa0ZIZFgECBHIj8Prr71SNdfTqQ6vaitCw6wc3qTmNJ5+cULNdIwECtQWE0douWhtI4M03p1XNdo3RxfzlmUy0Z/fqf+0XLlxQZaCBAAECBAgsicDrb1T/Ph0xYuUlOURu9k3+sNujR4+q8T417tWqNg0ECNQXqP6v0vr72kKgkAKzZsyumtegwStUtRWloXvPblVTme/MaJWJBgIECBBYMoG33qw+Mzpi+KAlO0iO9u7Vu2fVaF+d+FZVmwYCBOoLCKP1bWxpEIEFpduxt15696r+BdN6n7y+7tGt+i+5ixa6TDev9TRuAgQIZEVgZo0/7g4dtmJWhtfp4+hZ478VZsyY0+n9OCCBIgsIo0WurrkRIECAAAECBAgQIEAgowLCaEYLY1gECBAgQIAAAQIECBAosoAwWuTqmhsBAgQIECBAgAABAgQyKiCMZrQwhkWAAAECBAgQIECAAIEiCwijRa6uuREgQIAAAQIECBAgQCCjAsJoRgtjWAQIECBAgAABAgQIECiygDBa5OqaGwECBAgQIECAAAECBDIqIIxmtDCGRYAAAQIECBAgQIAAgSILCKNFrq65ESBAgAABAgQIECBAIKMCwmhGC2NYBAgQIECAAAECBAgQKLKAMFrk6pobAQIECBAgQIAAAQIEMiogjGa0MIZFgAABAgQIECBAgACBIgsIo0WurrkRIECAAAECBAgQIEAgowLCaEYLY1gECBAgQIAAAQIECBAosoAwWuTqmhsBAgQIECBAgAABAgQyKiCMZrQwhkWAAAECBAgQIECAAIEiCwijRa6uuREgQIAAAQIECBAgQCCjAsJoRgtjWAQIECBAgAABAgQIECiygDBa5OqaGwECBAgQIECAAAECBDIqIIxmtDCGRYAAAQIECBAgQIAAgSILCKNFrq65ESBAgAABAgQIECBAIKMCwmhGC2NYBAgQIECAAAECBAgQKLKAMFrk6pobAQIECBAgQIAAAQIEMiogjGa0MIZFgAABAgQIECBAgACBIgsIo0WurrkRIECAAAECBAgQIEAgowLCaEYLY1gECBAgQIAAAQIECBAosoAwWuTqmhsBAgQIECBAgAABAgQyKiCMZrQwhkWAAAECBAgQIECAAIEiCwijRa6uuREgQIAAAQIECBAgQCCjAsJoRgtjWAQIECBAgAABAgQIECiygDBa5OqaGwECBAgQIECAAAECBDIqIIxmtDCGRYAAAQIECBAgQIAAgSILCKNFrq65ESBAgAABAgQIECBAIKMCwmhGC2NYBAgQIECAAAECBAgQKLKAMFrk6pobAQIECBAgQIAAAQIEMiogjGa0MIZFgAABAgQIECBAgACBIgsIo0WurrkRIECAAAECBAgQIEAgowLCaEYLY1gECBAgQIAAAQIECBAosoAwWuTqmhsBAgQIECBAgAABAgQyKiCMZrQwhkWAAAECBAgQIECAAIEiCwijRa6uuREgQIAAAQIECBAgQCCjAsJoRgtjWAQIECBAgAABAgQIECiygDBa5OqaGwECBAgQIECAAAECBDIqIIxmtDCGRYAAAQIECBAgQIAAgSILCKNFrq65ESBAgAABAgQIECBAIKMCwmhGC2NYBAgQIECAAAECBAgQKLKAMFrk6pobAQIECBAgQIAAAQIEMiogjGa0MIZFgAABAgQIECBAgACBIgsIo0WurrkRIECAAAECBAgQIEAgowLCaEYLY1gECBAgQIAAAQIECBAosoAwWuTqmhsBAgQIECBAgAABAgQyKiCMZrQwhkWAAAECBAgQIECAAIEiCwijRa6uuREgQIAAAQIECBAgQCCjAsJoRgtjWAQIECBAgAABAgQIECiygDBa5OqaGwECBAgQIECAAAECBDIqIIxmtDCGRYAAAQIECBAgQIAAgSILCKNFrq65ESBAgAABAgQIECBAIKMCwmhGC2NYBAgQIECAAAECBAgQKLKAMFrk6pobAQIECBAgQIAAAQIEMiogjGa0MIZFgAABAgQIECBAgACBIgsIo0WurrkRIECAAAECBAgQIEAgowLCaEYLY1gECBAgQIAAAQIECBAosoAwWuTqmhsBAgQIECBAgAABAgQyKiCMZrQwhkWAAAECBAgQIECAAIEiCwijRa6uuREgQIAAAQIECKQn0C29rvREoAgCwmgRqmgOBAgQIECAAAECBAgQyJmAMJqzghkuAQIECBAgQIAAAQIEiiAgjBahiuZAgAABAgQIECBAgACBnAkIozkrmOESIECAAAECBAgQIECgCALCaBGqaA4ECBAgQIAAAQIECBDImYAwmrOCGS4BAgQIECBAgAABAgSKICCMFqGK5kCAAAECBAgQIECAAIGcCQijOSuY4RIgQIAAAQIECBAgQKAIAsJoEapoDgQIECBAgAABAgQIEMiZgDCas4IZLgECBAgQIECAAAECBIogIIwWoYrmQIAAAQIECBAgQIAAgZwJCKM5K5jhEiBAgAABAgQIECBAoAgCwmgRqmgOBAgQIECAAAECBAgQyJmAMJqzghkuAQIECBAgQIAAAQIEiiAgjBahiuZAgAABAgQIECBAgACBnAkIozkrmOESIECAAAECBAgQIECgCALCaBGqaA4ECBAgQIAAAQIECBDImYAwmrOCGS4BAgQIECBAgAABAgSKICCMFqGK5kCAAAECBAgQIECAAIGcCQijOSuY4RIgQIAAAQIECBAgQKAIAsJoEapoDgQIECBAgAABAgQIEMiZgDCas4IZLgECBAgQIECAAAECBIogIIwWoYrmQIAAAQIECBAgQIAAgZwJCKM5K5jhEiBAgAABAgQIECBAoAgCwmgRqmgOBAgQIECAAAECBAgQyJmAMJqzghkuAQIECBAgQIAAAQIEiiAgjBahiuZAgAABAgQIECBAgACBnAkIozkrmOESIECAAAECBAgQIECgCALCaBGqaA4ECBAgQIAAAQIECBDImYAwmrOCGS4BAgQIECBAgAABAgSKICCMFqGK5kCAAAECBAgQIECAAIGcCQijOSuY4RIgQIAAAQIECBAgQKAIAsJoEapoDgQIECBAgAABAgQIEMiZgDCas4IZLgECBAgQIECAAAECBIogIIwWoYrmQIAAAQIECBAgQIAAgZwJCKM5K5jhEiBAgAABAgQIECBAoAgCwmgRqmgOBAgQIECAAAECBAgQyJmAMJqzghkuAQIECBAgQIAAAQIEiiAgjBahiuZAgAABAgQIECBAgACBnAkIozkrmOESIECAAAECBAgQIECgCALCaBGqaA4ECBAgQIAAAQIECBDImYAwmrOCGS4BAgQIECBAgAABAgSKICCMFqGK5kCAAAECBAgQIECAAIGcCfTM2XgNlwABAgSWo8C0adNi0qRJMWHChJgyZUr0798/Bg0aFIMHD46NN944evXqtRx7d2gCBAgQIECgkQSE0UaqtrkSIECghsATTzwR11xzTfzlL3+JyZMn19jj3029e/eO9ddfP3bcccf4whe+ECNHjqy77/LaMGvWrPjjH/8Yv//97+PJJ5+MZOxJYLYQIECAAAEC+RMQRvNXMyMmQIBApwgkQe5//ud/4plnnunQ8ebOnRvjxo0rf1166aWx6667xplnnhnDhg3r0PuXZad77rknfvOb38Qdd9wRM2fOXHyoRYsWLV63QoAAAQIECORLQBjNV72MlgABAsssMG/evPjBD34QSaBcsGDBUh0ved9tt90WDz74YJx11lmx7777LtVx2nrT888/H1dddVVcf/318dprr7W1q20ECBAgQIBADgWE0RwWzZAJECCwtALJmcTDDz887rzzzqU9RIv3JZ8xPfLII2P+/Pmx3377tdi2NC/eeeed+N3vfhd/+MMfymdgl+YY3kOAAAECBAjkQ0AYzUedjJIAAQKdInD88cd3WhCtDCg5S/q1r30thg8fHmPHjq00d/h7EmRvvvnmcgi97777IjlzayFAgAABAgSKLyCMFr/GZkiAAIGywHXXXRdXXHFFmxo9e/aMrbfeOtZZZ51Ye+21IzlT+dJLL8Wzzz5b/l7vzcnnSZc06D7yyCPlz4EmQTQ5w2ohQIAAAQIEGktAGG2sepstAQINLHDeeee1OfvkrOYZZ5xRvmNurR0vv/zyOP300+Pdd9+ttbkcWK+99tr45Cc/WXN788bvfOc7cdlllzVvsk6AAAECBAg0mED3Bpuv6RIgQKAhBW6//fZIbghUb9lrr73Kj0xJHt1Sbzn00EMjObvao0ePeruUt9fd2GzDe++91+yVVQIECBAgQKARBYTRRqy6ORMg0HACyU2B6i0jRoyIc889t97mFu0bbbRRHHzwwS3amr946KGHyjczat62LOtrrrnmsrzdewkQIECAAIEMCwijGS6OoREgQKCzBF599dW6h0rugjtw4MC621tv+OIXv9i6afHr5BmgbZ2BXbxjGytJAD366KPj7rvvLj/WpY1dbSJAgAABAgRyLOAzozkunqETIECgowKTJk2qu+sWW2xRd1utDWuttVb5Ut16zyhNngk6ZsyYWm+t2zZy5MjYe++946CDDork7GtlefPNNyurvhMgQIAAAQIFExBGC1ZQ0yFAgEAtgRNOOCEWLlxYa1PsvPPONdvrNSZ33F111VVj8uTJNXfpaIBMjrHnnnvGAQccUL6Db82DaSRAgAABAgQKKyCMFra0JkaAAIEmgUMOOaTpRSestXUDoiRktreceOKJHf6canvHsp0AAQIECBDIp4DPjOazbkZNgACBLhP417/+FW2F0U022aTdsQ0dOrTdfexAgAABAgQIFFvAmdFi19fsCBAg0OkCf//73+sec9iwYbHKKqvU3Z7XDY8//nj8/Oc/j+eeey5ef/31GD16dPlzsd/4xjdi+PDheZ2WcRMgQIAAgS4VEEa7lF/nBAgQyJfAtGnT4pRTTqk76LbutFv3TRnfcPrpp8fPfvazaH7DpqlTp8Zjjz0WN954Y5x22mnxyU9+MuOzMDwCBAgQIJA9AZfpZq8mRkSAAIFMCiSPbTnqqKPKZwZrDTD5rOgRRxxRa1Nu26677rq44IILykG0T58+se+++8aRRx4Z73//+6Nbt27ly5WTs6PL+jib3AIZOAECBAgQWAYBYXQZ8LyVAAECjSAwe/bs+MUvfhFjx46Nu+66q+aUkzvsnnnmmdGrV6+a2/PYOHfu3PjOd75THnoSRP/4xz/GxRdfXG67+uqry/NNNib7ffOb36w7xeQztieffHLMmjWr7j42ECBAgACBRhRwmW4jVt2cCRAg0Erg4YcfjnPOOadFa3JJ7oQJEyJ5VMuiRYtabGv+okePHuU74+6+++7Nm3O//sQTT8Tbb79dnsf+++8frZ/Hmtyh+PLLL49x48bFP/7xj7JRcra09XLcccfFHXfcETfccEPcfffdMWDAgNa7eE2AAAECBBpSQBhtyLKbNAECBFoKTJkype5Zz5Z7tnw1cODA+P73vx9JWCvakoTMyrL11ltXVlt833zzzcthNDk7+sILL8R6663XYvstt9xSDqJJ43bbbSeIttDxggABAgQaXcBluo3+E2D+BAgQWAqB5AzgRz/60bj//vvjgAMOWIojZP8tb7zxxuJBDh48ePF685Xmdw5OLsdtviSX5Z5wwgnlppVXXrl8o6Pm260TIECAAIFGFxBGG/0nwPwJECCwFALdu3eP5PLcGTNmLMW78/GW5pfTzps3r+agm7f37t27xT7JXYdfe+21ctuJJ55YyEfetJiwFwQIECBAYAkFhNElBLM7AQIECET57rLJDX123nnn+NKXvhTJnXaLtmy44YaLp/Tiiy8uXm++Mn78+MUvx4wZs3g9+bzpVVddVX69zTbbRPL5UgsBAgQIECDQUkAYbenhFQECBBpWIDnb2fyrIxDz58+P5PEnyXM2ixZIN9tss/LjWxKH3/72t5HMtfmSXJZ77733lpuGDh0aK620Unk9udnTMcccUw7sydnSH//4x83fZp0AAQIECBD4j4Aw6keBAAECBMrPz5w4cWI0/3rqqafi+uuvL99lNzmzlzzepN7y2GOPlW9iVKTHlwwZMiQOPPDA8pRfffXV2G+//eKBBx4o31349ttvbzHfL3/5y4tpLrzwwnj66afLr7/4xS/Guuuuu3ibFQIECBAgQKBJQBhtsrBGgAABAs0EkpvzJJeYHnTQQXHWWWfFfffdFx/+8Ieb7dFyNbk09YILLmjZmPNXyZ2C11xzzfIsHn300XIATc6YHnroofHKK6+U23faaaf4whe+UF5PzpaeffbZ5fXRo0fHscceW173DwIECBAgQKBaQBitNtFCgAABAjUERo4cGb/4xS8iCV/1luS5m0U6O5rcxOjOO+8sh89evXq1mHb//v3j+OOPj9/97neL25NniiaXKyd3G04CfOv3LN7RCgECBAgQIBDCqB8CAgQIEFgigfPOOy+S54vWWt5+++345S9/WWtTbtv69u0bp59+eiQ3Mbrtttvikksuibvvvjuef/75SC7PTYJnsjR/puhHPvKR8s2dcjtpAydAgAABAikICKMpIOuCAAECRRIYPnx4m5frJpezFnHp2bNnbLLJJrHPPvvEeuuttziEJnNt/UzRJLxaCBAgQIAAgbYFhNG2fWwlQIAAgRoCG2ywQY3WfzdNmDCh7raibkg+W+qZokWtrnkRIECAwPIS6Lm8Duy4BAgQIFBcgY022qju5CZPnlx3WxE3JDduuuKKK8pTa/1M0X/84x/lbc8991wklzCvtdZasfnmm5cv7+3Xr18ROcyJAAECBAh0WEAY7TCVHQkQIJBPgYcffjiSR5HUWkaNGhWf/exna21qs61Hjx51t8+dO7futqJtaP1M0cqddJN5nnzyyXHppZeWnzdamffLL78cd911V1xzzTVx/vnnxw477FDZ5DsBAgQIEGg4AWG04UpuwgQINJpAclau3iNXBg0atFRhtPIczVqWySNhGmW5+OKLWzxTNPksabIkNzm66KKLyuvJ81l33HHHGDp0aDz++OPx7LPPRnL2+Igjjig/LqeRvMog/kGAAAECBP4j4DOjfhQIECBQcIHVVlut7gynTp0ab7zxRt3t9TYkAbfeMmTIkHqbCtWePFM0eXxLsjR/puibb74ZZ5xxRrk9efzLDTfcEFdddVWcc8455cfEfP7zny9vSy7b/fa3v11e9w8CBAgQINCIAsJoI1bdnAkQaCiBTTfdNLp3r/9/98nZvSVZkvB68803133L2LFj624r0oZ6zxR94IEHys8aTeaaBM/kDrzNl+9+97ux6qqrlpvuv//+5pusEyBAgACBhhKo/18nDcVgsgQIECiuQHJ56MYbb1x3ghdeeGEknyvt6PL1r389pk2bVnf3fffdt+62omxo65miTz755OJpbr/99ovXKyu9evWKyg2gkmA/Y8aMyibfCRAgQIBAQwkIow1VbpMlQKBRBfbff/+6U1+wYEEceuih8etf/7ruPsmG5LLU5EzfHXfcUXe/5JEvW265Zd3tRdiQPFP0xBNPLE9lpZVWitbPFE0u060slTOgldeV75XPiSY3QJo0aVKl2XcCBAgQINBQAm5g1FDlNlkCBBpVIAmRyeNHxo8fX5Mg+fziscceG5dffnnstttusf7665e/kmCVfD70mWeeiT/96U+RBLF6S7du3eK0006rt7kw7ckzRadMmVKezwknnBCVYFmZYO/evSurMW/evMXrzVfmz5+/+GVbdyZevJMVAgQIECBQQAFhtIBFNSUCBAi0FujZs2f5Zjuf+tSn6gak5D3jxo0rf7V+f0deH3jggYV/VEnrZ4rWeixO5Y66idlLL70Um222WRXfxIkTy21JcF177bWrtmsgQIAAAQKNIOAy3UaosjkSIECgJJA80/KnP/1pLI8zcXvssUf8+Mc/LrxzcnY5uaw5CZHNnynafOLNw2etS5+TgJqE2mRJ7sKbnFG2ECBAgACBRhQQRhux6uZMgEDDCiQ3F0runtv60tKlBUmCVHJ2MHmuZiOEqh/96EeRXKZ7zDHHRPMzoM39ttlmm0i+kiW5W+5XvvKV8nNFk0tzkzvtHnLIIVG5TPfoo49u/lbrBAgQIECgoQRcpttQ5TZZAgQIROy1116x7bbbRnJX3ORmRMlNdJZmSc7q/eAHP4gPfehDS/P23L7nc5/7XLtjP//88yM5Wzx9+vS49tpry1/JGenkrGplSdwOOuigykvfCRAgQIBAwwk4M9pwJTdhAgQIRAwZMqR8s6J77rknPv3pT0fy+JeOLP369YvkcSWXXXZZ+SxfowXRjhgl+6y55prx17/+NXbaaafFb6kE0T59+sQ3v/nNuPLKKxdvs0KAAAECBBpRwJnRRqy6ORMgQOA/Auuss04kl54myyuvvBJ/+9vfyo9wmTp1arz33nuRhM/kkt7BgweXH9my1VZbpXo5bhKaJ0+e/J/R5uvbiBEj4pprril7Jp8RTR6NM2bMmNh0002jf//++ZqM0RIgQIAAgeUgIIwuB1SHJECAQB4F1lhjjUi+LJ0rMHz48Ei+LAQIECBAgEBLAZfptvTwigABAgQIECBAgAABAgRSEBBGU0DWBQECBAgQIECAAAECBAi0FBBGW3p4RYAAAQIECBAgQIAAAQIpCAijKSDrggABAgQIECBAgAABAgRaCgijLT28IkCAAAECBAgQIECAAIEUBITRFJB1QYAAAQIECBAgQIAAAQItBYTRlh5eESBAgAABAgQIECBAgEAKAsJoCsi6IECAAAECBAgQIECAAIGWAsJoSw+vCBAgQIAAAQIECBAgQCAFAWE0BWRdECBAgAABAgQIECBAgEBLAWG0pYdXBAgQIECAAAECBAgQIJCCgDCaArIuCBAgQIAAAQIECBAgQKClgDDa0sMrAgQIECBAgAABAgQIEEhBQBhNAVkXBAgQIECAAAECBAgQINBSQBht6eEVAQIECBAgQIAAAQIECKQgIIymgKwLAgQIECBAgAABAgQIEGgpIIy29PCKAAECBAgQIECAAAECBFIQEEZTQNYFAQIECBAgQIAAAQIECLQUEEZbenhFgAABAgQIECBAgAABAikICKMpIOuCAAECBAgQIECAAAECBFoKCKMtPbwiQIAAAQIECBAgQIAAgRQEhNEUkHVBgAABAgQIECBAgAABAi0FhNGWHl4RIECAAAECBAgQIECAQAoCwmgKyLogQIAAAQIECBAgQIAAgZYCwmhLD68IECBAgAABAgQIECBAIAUBYTQFZF0QIECAAAECBAgQIECAQEsBYbSlh1cECBAgQIAAAQIECBAgkIKAMJoCsi4IECBAgAABAgQIECBAoKWAMNrSwysCBAgQIECAAAECBAgQSEFAGE0BWRcECBAgQIAAAQIECBAg0FJAGG3p4RUBAgQIECBAgAABAgQIpCDQM4U+dEGgEAIXXRnx4ktFmMqA0iSSLwsBAgQIEOg8gVmzqo91xvndYoWB1e15a/nWVyIGrZK3URsvgewLODOa/RoZIQECBAgQIEAgpwILczpuwyZAIA0BZ0bTUNZHIQS6d4uYO7cQUzEJAgQIECDQ+QKLqg85b143vzurWbQQIPAfAWHUjwKBDgr07Rcxe3YHd7YbAQIECBBoMIEaWTTmzInoUYD/2uzTp8GKaboEUhJwmW5K0LohQIAAAQIECBAgQIAAgSYBYbTJwhoBAgQIECBAgAABAgQIpCQgjKYErRsCBAgQIECAAAECBAgQaBIQRpssrBEgQIAAAQIECBAgQIBASgLCaErQuiFAgAABAgQIECBAgACBJgFhtMnCGgECBAgQIECAAAECBAikJCCMpgStGwIECBAgQIAAAQIECBBoEhBGmyysESBAgAABAgQIECBAgEBKAsJoStC6IUCAAAECBAgQIECAAIEmAWG0ycIaAQIECBAgQIAAAQIECKQkIIymBK0bAgQIECBAgAABAgQIEGgSEEabLKwRIECAAAECBAgQIECAQEoCwmhK0LohQIAAAQIECBAgQIAAgSYBYbTJwhoBAgQIECBAgAABAgQIpCQgjKYErRsCBAgQIECAAAECBAgQaBIQRpssrBEgQIAAAQIECBAgQIBASgLCaErQuiFAgAABAgQIECBAgACBJgFhtMnCGgECBAgQIECAAAECBAikJCCMpgStGwIECBAgQIAAAQIECBBoEhBGmyysESBAgAABAgQIECBAgEBKAsJoStC6IUCAAAECBAgQIECAAIEmAWG0ycIaAQIECBAgQIAAAQIECKQkIIymBK0bAgQIECBAgAABAgQIEGgSEEabLKwRIECAAAECBAgQIECAQEoCwmhK0LohQIAAAQIECBAgQIAAgSYBYbTJwhoBAgQIECBAgAABAgQIpCQgjKYErRsCBAgQIECAAAECBAgQaBIQRpssrBEgQIAAAQIECBAgQIBASgLCaErQuiFAgAABAgQIECBAgACBJgFhtMnCGgECBAgQIECAAAECBAikJCCMpgStGwIECBAgQIAAAQIECBBoEhBGmyysESBAgAABAgQIECBAgEBKAsJoStC6IUCAAAECBAgQIECAAIEmAWG0ycIaAQIECBAgQIAAAQIECKQkIIymBK0bAgQIECBAgAABAgQIEGgSEEabLKwRIECAAAECBAgQIECAQEoCwmhK0LohQIAAAQIECBAgQIAAgSYBYbTJwhoBAgQIECBAgAABAgQIpCQgjKYErRsCBAgQ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gAABAgQIZFpAGM10eQyOAAECBAgQIECAAAECxRQQRotZV7MiQIAAAQIECBAgQIBApgWE0UyXx+AIECBAgAABAgQIECBQTAFhtJh1NSsCBAgQIECAAAECBAhkWkAYzXR5DI4AAQIECBAgQIAAAQLFFBBGi1lXsyJAgAABAgQIECBAgECmBYTRTJfH4AgQIECAAAECBAgQIFBMAWG0mHU1KwIECBAgQIAAAQIECGRaQBjNdHkMjgABAgQIECBAgAABAsUUEEaLWVezIkCAAAECBAgQIECAQKYFhNFMl8fgCBAgQIAAAQIECBAgUEwBYbSYdTUrAgQIECBAgAABAgQIZFpAGM10eQyOAAECBAgQIECAAAECxRQQRotZV7MiQIAAAQIECBAgQIBApgWE0UyXx+AIECBAgAABAgQIECBQTAFhtJh1NSsCBAgQIECAAAECBAhkWkAYzXR5DI4AAQIECBAgQIAAAQLFFBBGi1lXsyJAgAABAgQIECBAgECmBYTRTJfH4AgQIECAAAECBAgQIFBMAWG0mHU1KwIECBAgQIAAAQIECGRaQBjNdHkMjgABAgQIECBAgAABAsUUEEaLWVezIkCAAAECBAgQIECAQKYFhNFMl8fgCBAgQIAAAQIECBAgUEwBYbSYdTUrAgQIECBAgAABAgQIZFpAGM10eQyOAAECBAgQIECAAAECxRQQRotZV7MiQIAAAQIECBAgQIBApgWE0UyXx+AIECBAgAABAgQIECBQTAFhtJh1NSsCBAgQIECAAAECBAhkWkAYzXR5DI4AAQIECBAgQIAAAQLFFBBGi1lXsyJAgAABAgQIECBAgECmBYTRTJfH4AgQIECAAAECBAgQIFBMgf8PznqjffXnTmoAAAAASUVORK5CYII=", + "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBvcGFjaXR5PSIwLjEiIGQ9Ik00Mi40MzA3IDYyLjUwOTFDNDIuNDMwNyA2MC4xMDk2IDQ0LjM3NTkgNTguMTY0MyA0Ni43NzU1IDU4LjE2NDNINTEuMTIwM0M1My41MTk5IDU4LjE2NDMgNTUuNDY1MSA2MC4xMDk2IDU1LjQ2NTEgNjIuNTA5MVYxMjAuMDc4QzU1LjQ2NTEgMTIyLjQ3OCA1My41MTk5IDEyNC40MjMgNTEuMTIwMyAxMjQuNDIzSDQ2Ljc3NTVDNDQuMzc1OSAxMjQuNDIzIDQyLjQzMDcgMTIyLjQ3OCA0Mi40MzA3IDEyMC4wNzhWNjIuNTA5MVoiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJtYXNrMF8zNDYxXzI5MTM1IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI0NCIgeT0iNTkiIHdpZHRoPSIxMTIiIGhlaWdodD0iNjQiPgo8cGF0aCBkPSJNNDQuMDYwNSA2My4wNTI0QzQ0LjA2MDUgNjEuMjUyNyA0NS41MTk1IDU5Ljc5MzggNDcuMzE5MiA1OS43OTM4TDE1Mi4xMzggNTkuNzkzOEMxNTMuOTM4IDU5Ljc5MzggMTU1LjM5NyA2MS4yNTI3IDE1NS4zOTcgNjMuMDUyNFYxMTkuNTM1QzE1NS4zOTcgMTIxLjMzNSAxNTMuOTM4IDEyMi43OTQgMTUyLjEzOCAxMjIuNzk0TDQ3LjMxOTIgMTIyLjc5NEM0NS41MTk1IDEyMi43OTQgNDQuMDYwNSAxMjEuMzM1IDQ0LjA2MDUgMTE5LjUzNVY2My4wNTI0WiIgZmlsbD0iIzdBOEJGRiIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMzQ2MV8yOTEzNSkiPgo8cmVjdCB4PSI0NC4wNjA1IiB5PSI5NS42Mzg0IiB3aWR0aD0iMTExLjMzNiIgaGVpZ2h0PSI2MyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSI0NC4wNjA1IiB5PSI5NS42Mzg0IiB3aWR0aD0iMTExLjMzNiIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSI0NC4wNjA1IiB5PSI5NS42Mzg0IiB3aWR0aD0iMTExLjMzNiIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPHJlY3QgeD0iNDIuNDMwNyIgeT0iNTguMTY0MyIgd2lkdGg9IjExNC41OTUiIGhlaWdodD0iNjYuMjU4NiIgcng9IjQuMzQ0ODMiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xNDMuOTkxIDYyLjUwOTFDMTQzLjk5MSA2MC4xMDk2IDE0NS45MzYgNTguMTY0MyAxNDguMzM2IDU4LjE2NDNIMTUyLjY4MUMxNTUuMDggNTguMTY0MyAxNTcuMDI2IDYwLjEwOTYgMTU3LjAyNiA2Mi41MDkxVjEyMC4wNzhDMTU3LjAyNiAxMjIuNDc4IDE1NS4wOCAxMjQuNDIzIDE1Mi42ODEgMTI0LjQyM0gxNDguMzM2QzE0NS45MzYgMTI0LjQyMyAxNDMuOTkxIDEyMi40NzggMTQzLjk5MSAxMjAuMDc4VjYyLjUwOTFaIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8bWFzayBpZD0icGF0aC0xMC1pbnNpZGUtMV8zNDYxXzI5MTM1IiBmaWxsPSJ3aGl0ZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA1Ljk3NCA0OC42MjEzSDkwLjIyMzZWNTguMzk3MkM5MC4yMjM2IDU5LjI5NyA5My43NDk0IDYwLjAyNjUgOTguMDk4NiA2MC4wMjY1QzEwMi40NDggNjAuMDI2NSAxMDUuOTc0IDU5LjI5NyAxMDUuOTc0IDU4LjM5NzJWNDguNjIxM1oiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwNS45NzQgNDguNjIxM0g5MC4yMjM2VjU4LjM5NzJDOTAuMjIzNiA1OS4yOTcgOTMuNzQ5NCA2MC4wMjY1IDk4LjA5ODYgNjAuMDI2NUMxMDIuNDQ4IDYwLjAyNjUgMTA1Ljk3NCA1OS4yOTcgMTA1Ljk3NCA1OC4zOTcyVjQ4LjYyMTNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTAuMjIzNiA0OC42MjEzVjQ3LjUzNTFIODkuMTM3NFY0OC42MjEzSDkwLjIyMzZaTTEwNS45NzQgNDguNjIxM0gxMDcuMDZWNDcuNTM1MUgxMDUuOTc0VjQ4LjYyMTNaTTkwLjIyMzYgNDkuNzA3NUgxMDUuOTc0VjQ3LjUzNTFIOTAuMjIzNlY0OS43MDc1Wk05MS4zMDk4IDU4LjM5NzJWNDguNjIxM0g4OS4xMzc0VjU4LjM5NzJIOTEuMzA5OFpNOTguMDk4NiA1OC45NDAzQzk1Ljk3NSA1OC45NDAzIDk0LjA4MzUgNTguNzYxNSA5Mi43NTAyIDU4LjQ4NTZDOTIuMDc0NyA1OC4zNDU4IDkxLjU5OTYgNTguMTkyNiA5MS4zMTk4IDU4LjA1NTdDOTEuMTc3NiA1Ny45ODYxIDkxLjE0MTkgNTcuOTQ3NiA5MS4xNTU5IDU3Ljk2MTdDOTEuMTczMiA1Ny45NzkyIDkxLjMwOTggNTguMTI4MiA5MS4zMDk4IDU4LjM5NzJIODkuMTM3NEM4OS4xMzc0IDU4Ljg5MTEgODkuMzg0MiA1OS4yNTk4IDg5LjYxMTMgNTkuNDg5NEM4OS44MzUyIDU5LjcxNTcgOTAuMTA4OSA1OS44ODE3IDkwLjM2NTIgNjAuMDA3MUM5MC44ODIzIDYwLjI2MDEgOTEuNTYwNSA2MC40NTc5IDkyLjMxMDEgNjAuNjEzQzkzLjgyNzEgNjAuOTI2OCA5NS44NzMxIDYxLjExMjcgOTguMDk4NiA2MS4xMTI3VjU4Ljk0MDNaTTEwNC44ODcgNTguMzk3MkMxMDQuODg3IDU4LjEyODIgMTA1LjAyNCA1Ny45NzkyIDEwNS4wNDEgNTcuOTYxN0MxMDUuMDU1IDU3Ljk0NzYgMTA1LjAyIDU3Ljk4NjEgMTA0Ljg3NyA1OC4wNTU3QzEwNC41OTggNTguMTkyNiAxMDQuMTIzIDU4LjM0NTggMTAzLjQ0NyA1OC40ODU2QzEwMi4xMTQgNTguNzYxNSAxMDAuMjIyIDU4Ljk0MDMgOTguMDk4NiA1OC45NDAzVjYxLjExMjdDMTAwLjMyNCA2MS4xMTI3IDEwMi4zNyA2MC45MjY4IDEwMy44ODcgNjAuNjEzQzEwNC42MzcgNjAuNDU3OSAxMDUuMzE1IDYwLjI2MDEgMTA1LjgzMiA2MC4wMDcxQzEwNi4wODggNTkuODgxNyAxMDYuMzYyIDU5LjcxNTcgMTA2LjU4NiA1OS40ODk0QzEwNi44MTMgNTkuMjU5OCAxMDcuMDYgNTguODkxMSAxMDcuMDYgNTguMzk3MkgxMDQuODg3Wk0xMDQuODg3IDQ4LjYyMTNWNTguMzk3MkgxMDcuMDZWNDguNjIxM0gxMDQuODg3WiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTEwLWluc2lkZS0xXzM0NjFfMjkxMzUpIi8+CjxwYXRoIGQ9Ik0xMDUuNjI5IDQ5LjAyNDFDMTA1Ljc0NCA0OS4wNzY1IDEwNS44MjggNDkuMTI0MiAxMDUuODg4IDQ5LjE2NDVDMTA1LjgyOCA0OS4yMDQ3IDEwNS43NDQgNDkuMjUyNCAxMDUuNjI5IDQ5LjMwNDhDMTA1LjI2MSA0OS40NzM2IDEwNC42OTMgNDkuNjM5MiAxMDMuOTQ4IDQ5Ljc4MzRDMTAyLjQ2OCA1MC4wNjk4IDEwMC40IDUwLjI1MDcgOTguMDk4OCA1MC4yNTA3Qzk1Ljc5OCA1MC4yNTA3IDkzLjcyOTYgNTAuMDY5OCA5Mi4yNDk1IDQ5Ljc4MzRDOTEuNTA0OSA0OS42MzkyIDkwLjkzNyA0OS40NzM2IDkwLjU2ODIgNDkuMzA0OEM5MC40NTM3IDQ5LjI1MjQgOTAuMzY5NiA0OS4yMDQ3IDkwLjMwOTkgNDkuMTY0NUM5MC4zNjk2IDQ5LjEyNDIgOTAuNDUzNyA0OS4wNzY1IDkwLjU2ODIgNDkuMDI0MUM5MC45MzcgNDguODU1NCA5MS41MDQ5IDQ4LjY4OTcgOTIuMjQ5NSA0OC41NDU2QzkzLjcyOTYgNDguMjU5MSA5NS43OTggNDguMDc4MyA5OC4wOTg4IDQ4LjA3ODNDMTAwLjQgNDguMDc4MyAxMDIuNDY4IDQ4LjI1OTEgMTAzLjk0OCA0OC41NDU2QzEwNC42OTMgNDguNjg5NyAxMDUuMjYxIDQ4Ljg1NTQgMTA1LjYyOSA0OS4wMjQxWiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xMDUuNjI5IDQ3LjM5NDdDMTA1Ljc0NCA0Ny40NDcxIDEwNS44MjggNDcuNDk0OCAxMDUuODg4IDQ3LjUzNTFDMTA1LjgyOCA0Ny41NzU0IDEwNS43NDQgNDcuNjIzIDEwNS42MjkgNDcuNjc1NEMxMDUuMjYxIDQ3Ljg0NDIgMTA0LjY5MyA0OC4wMDk5IDEwMy45NDggNDguMTU0QzEwMi40NjggNDguNDQwNCAxMDAuNCA0OC42MjEzIDk4LjA5ODggNDguNjIxM0M5NS43OTggNDguNjIxMyA5My43Mjk2IDQ4LjQ0MDQgOTIuMjQ5NSA0OC4xNTRDOTEuNTA0OSA0OC4wMDk5IDkwLjkzNyA0Ny44NDQyIDkwLjU2ODIgNDcuNjc1NEM5MC40NTM3IDQ3LjYyMyA5MC4zNjk2IDQ3LjU3NTQgOTAuMzA5OSA0Ny41MzUxQzkwLjM2OTYgNDcuNDk0OCA5MC40NTM3IDQ3LjQ0NzEgOTAuNTY4MiA0Ny4zOTQ3QzkwLjkzNyA0Ny4yMjYgOTEuNTA0OSA0Ny4wNjAzIDkyLjI0OTUgNDYuOTE2MkM5My43Mjk2IDQ2LjYyOTcgOTUuNzk4IDQ2LjQ0ODkgOTguMDk4OCA0Ni40NDg5QzEwMC40IDQ2LjQ0ODkgMTAyLjQ2OCA0Ni42Mjk3IDEwMy45NDggNDYuOTE2MkMxMDQuNjkzIDQ3LjA2MDMgMTA1LjI2MSA0Ny4yMjYgMTA1LjYyOSA0Ny4zOTQ3WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2JfMzQ2MV8yOTEzNSkiPgo8cmVjdCB4PSI3Mi42OTM0IiB5PSI3Ny45NTQzIiB3aWR0aD0iNDMuODUyMSIgaGVpZ2h0PSIyNi42Nzg3IiByeD0iMi40NjI3NyIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNODcuOTAzNiA5My44OTc4Vjk1LjQ1MDRINzkuNDEyOEw3OS4zNDgxIDk0LjI3NzlMODQuNDI2NCA4Ni4zMjA4SDg1Ljk4NzFMODQuMjk3IDg5LjIxNTdMODEuMzc3OCA5My44OTc4SDg3LjkwMzZaTTg2LjQzMTkgODYuMzIwOFY5OC4wOTQ3SDg0LjQ4M1Y4Ni4zMjA4SDg2LjQzMTlaTTk2Ljg3OTYgOTEuMjIxMlY5My4xNDU4Qzk2Ljg3OTYgOTQuMDY3NiA5Ni43ODggOTQuODU0NyA5Ni42MDQ3IDk1LjUwN0M5Ni40MjY4IDk2LjE1NCA5Ni4xNjggOTYuNjc5NiA5NS44Mjg0IDk3LjA4MzlDOTUuNDg4OCA5Ny40ODgyIDk1LjA4MTcgOTcuNzg0NyA5NC42MDczIDk3Ljk3MzRDOTQuMTM4MyA5OC4xNjIxIDkzLjYxMjcgOTguMjU2NSA5My4wMzA1IDk4LjI1NjVDOTIuNTY2OCA5OC4yNTY1IDkyLjEzNTUgOTguMTk3MiA5MS43MzY2IDk4LjA3ODZDOTEuMzQzMSA5Ny45NiA5MC45ODczIDk3Ljc3NCA5MC42NjkyIDk3LjUyMDZDOTAuMzUxMSA5Ny4yNjcyIDkwLjA3ODkgOTYuOTQxMSA4OS44NTI1IDk2LjU0MjFDODkuNjMxNCA5Ni4xMzc4IDg5LjQ1ODkgOTUuNjU1MyA4OS4zMzQ5IDk1LjA5NDZDODkuMjE2MyA5NC41MzQgODkuMTU3IDkzLjg4NDMgODkuMTU3IDkzLjE0NThWOTEuMjIxMkM4OS4xNTcgOTAuMjkzOSA4OS4yNDg3IDg5LjUxMjIgODkuNDMyIDg4Ljg3NjFDODkuNjE1MyA4OC4yMzQ2IDg5Ljg3NjcgODcuNzE0MyA5MC4yMTYzIDg3LjMxNTRDOTAuNTU2IDg2LjkxMTEgOTAuOTYwMyA4Ni42MTczIDkxLjQyOTMgODYuNDM0QzkxLjkwMzcgODYuMjUwNyA5Mi40MzIxIDg2LjE1OSA5My4wMTQzIDg2LjE1OUM5My40ODMzIDg2LjE1OSA5My45MTQ2IDg2LjIxODMgOTQuMzA4MSA4Ni4zMzY5Qzk0LjcwNzEgODYuNDUwMiA5NS4wNjI5IDg2LjYzMDcgOTUuMzc1NSA4Ni44Nzg3Qzk1LjY5MzYgODcuMTI2NyA5NS45NjMyIDg3LjQ1MDIgOTYuMTg0MiA4Ny44NDkxQzk2LjQxMDYgODguMjQyNyA5Ni41ODMxIDg4LjcxOTggOTYuNzAxNyA4OS4yODA0Qzk2LjgyMDMgODkuODM1NyA5Ni44Nzk2IDkwLjQ4MjYgOTYuODc5NiA5MS4yMjEyWk05NC45MzA4IDkzLjQyMDdWOTAuOTMwMUM5NC45MzA4IDkwLjQ2MTEgOTQuOTAzOCA5MC4wNDg2IDk0Ljg0OTkgODkuNjkyOEM5NC43OTYgODkuMzMxNiA5NC43MTUxIDg5LjAyNzEgOTQuNjA3MyA4OC43NzkxQzk0LjUwNDkgODguNTI1NyA5NC4zNzU1IDg4LjMyMDggOTQuMjE5MiA4OC4xNjQ1Qzk0LjA2MjggODguMDAyOCA5My44ODQ5IDg3Ljg4NjkgOTMuNjg1NSA4Ny44MTY4QzkzLjQ4NiA4Ny43NDEzIDkzLjI2MjMgODcuNzAzNiA5My4wMTQzIDg3LjcwMzZDOTIuNzEyNCA4Ny43MDM2IDkyLjQ0MjggODcuNzYyOSA5Mi4yMDU2IDg3Ljg4MTVDOTEuOTY4NCA4Ny45OTQ3IDkxLjc2OSA4OC4xNzggOTEuNjA3MiA4OC40MzEzQzkxLjQ0NTUgODguNjg0NyA5MS4zMjE1IDg5LjAxOSA5MS4yMzUyIDg5LjQzNDFDOTEuMTU0NCA4OS44NDM4IDkxLjExNCA5MC4zNDI1IDkxLjExNCA5MC45MzAxVjkzLjQyMDdDOTEuMTE0IDkzLjg5NTEgOTEuMTQwOSA5NC4zMTI5IDkxLjE5NDggOTQuNjc0MUM5MS4yNDg3IDk1LjAzNTMgOTEuMzI5NiA5NS4zNDUzIDkxLjQzNzQgOTUuNjA0MUM5MS41NDUyIDk1Ljg1NzUgOTEuNjc0NiA5Ni4wNjc3IDkxLjgyNTYgOTYuMjM0OEM5MS45ODE5IDk2LjM5NjYgOTIuMTU5OCA5Ni41MTUyIDkyLjM1OTMgOTYuNTkwNkM5Mi41NjQxIDk2LjY2NjEgOTIuNzg3OSA5Ni43MDM4IDkzLjAzMDUgOTYuNzAzOEM5My4zMzc3IDk2LjcwMzggOTMuNjEgOTYuNjQ0NSA5My44NDcyIDk2LjUyNTlDOTQuMDg0NCA5Ni40MDczIDk0LjI4MzkgOTYuMjE4NyA5NC40NDU2IDk1Ljk1OTlDOTQuNjA3MyA5NS42OTU3IDk0LjcyODYgOTUuMzUzNCA5NC44MDk1IDk0LjkzMjlDOTQuODkwNCA5NC41MTI0IDk0LjkzMDggOTQuMDA4MyA5NC45MzA4IDkzLjQyMDdaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjxwYXRoIGQ9Ik0xMDIuNTQ5IDkyLjU0MDNWOTIuMTUxMUMxMDIuNTQ5IDkxLjg3MTUgMTAyLjYxIDkxLjYxNzEgMTAyLjczMSA5MS4zODhDMTAyLjg1MyA5MS4xNTg5IDEwMy4wMjkgOTAuOTc1MiAxMDMuMjYyIDkwLjgzNzFDMTAzLjQ5NCA5MC42OTg5IDEwMy43NzQgOTAuNjI5OSAxMDQuMTAxIDkwLjYyOTlDMTA0LjQzOCA5MC42Mjk5IDEwNC43MjEgOTAuNjk4OSAxMDQuOTUgOTAuODM3MUMxMDUuMTgzIDkwLjk3NTIgMTA1LjM1OSA5MS4xNTg5IDEwNS40ODEgOTEuMzg4QzEwNS42MDIgOTEuNjE3MSAxMDUuNjYzIDkxLjg3MTUgMTA1LjY2MyA5Mi4xNTExVjkyLjU0MDNDMTA1LjY2MyA5Mi44MTMyIDEwNS42MDIgOTMuMDY0MiAxMDUuNDgxIDkzLjI5MzRDMTA1LjM2MyA5My41MjI1IDEwNS4xODggOTMuNzA2MSAxMDQuOTU1IDkzLjg0NDNDMTA0LjcyNiA5My45ODI0IDEwNC40NDUgOTQuMDUxNSAxMDQuMTExIDk0LjA1MTVDMTAzLjc4MSA5NC4wNTE1IDEwMy40OTggOTMuOTgyNCAxMDMuMjYyIDkzLjg0NDNDMTAzLjAyOSA5My43MDYxIDEwMi44NTMgOTMuNTIyNSAxMDIuNzMxIDkzLjI5MzRDMTAyLjYxIDkzLjA2NDIgMTAyLjU0OSA5Mi44MTMyIDEwMi41NDkgOTIuNTQwM1pNMTAzLjM5MyA5Mi4xNTExVjkyLjU0MDNDMTAzLjM5MyA5Mi42NzUxIDEwMy40MTkgOTIuODAzMSAxMDMuNDY5IDkyLjkyNDRDMTAzLjUyMyA5My4wNDU3IDEwMy42MDQgOTMuMTQzNCAxMDMuNzEyIDkzLjIxNzVDMTAzLjgyIDkzLjI5MTcgMTAzLjk1MyA5My4zMjg3IDEwNC4xMTEgOTMuMzI4N0MxMDQuMjczIDkzLjMyODcgMTA0LjQwNCA5My4yOTE3IDEwNC41MDUgOTMuMjE3NUMxMDQuNjEgOTMuMTQzNCAxMDQuNjg3IDkzLjA0NTcgMTA0LjczOCA5Mi45MjQ0QzEwNC43ODggOTIuODAzMSAxMDQuODE0IDkyLjY3NTEgMTA0LjgxNCA5Mi41NDAzVjkyLjE1MTFDMTA0LjgxNCA5Mi4wMTMgMTA0Ljc4NyA5MS44ODMzIDEwNC43MzMgOTEuNzYyQzEwNC42ODIgOTEuNjM3MyAxMDQuNjA1IDkxLjUzNzkgMTA0LjUgOTEuNDYzOEMxMDQuMzk2IDkxLjM4OTcgMTA0LjI2MyA5MS4zNTI2IDEwNC4xMDEgOTEuMzUyNkMxMDMuOTQ2IDkxLjM1MjYgMTAzLjgxNSA5MS4zODk3IDEwMy43MDcgOTEuNDYzOEMxMDMuNjAyIDkxLjUzNzkgMTAzLjUyMyA5MS42MzczIDEwMy40NjkgOTEuNzYyQzEwMy40MTkgOTEuODgzMyAxMDMuMzkzIDkyLjAxMyAxMDMuMzkzIDkyLjE1MTFaTTEwNi4wOTcgOTYuNjg0NlY5Ni4yOTA0QzEwNi4wOTcgOTYuMDE0MSAxMDYuMTU4IDk1Ljc2MTQgMTA2LjI3OSA5NS41MzIzQzEwNi40MDQgOTUuMzAzMiAxMDYuNTgyIDk1LjExOTYgMTA2LjgxNSA5NC45ODE0QzEwNy4wNDcgOTQuODQzMyAxMDcuMzI3IDk0Ljc3NDIgMTA3LjY1NCA5NC43NzQyQzEwNy45OTEgOTQuNzc0MiAxMDguMjc0IDk0Ljg0MzMgMTA4LjUwMyA5NC45ODE0QzEwOC43MzYgOTUuMTE5NiAxMDguOTExIDk1LjMwMzIgMTA5LjAyOSA5NS41MzIzQzEwOS4xNSA5NS43NjE0IDEwOS4yMTEgOTYuMDE0MSAxMDkuMjExIDk2LjI5MDRWOTYuNjg0NkMxMDkuMjExIDk2Ljk2MDkgMTA5LjE1IDk3LjIxMzYgMTA5LjAyOSA5Ny40NDI4QzEwOC45MTEgOTcuNjcxOSAxMDguNzM3IDk3Ljg1NTUgMTA4LjUwOCA5Ny45OTM2QzEwOC4yNzkgOTguMTMxOCAxMDcuOTk5IDk4LjIwMDkgMTA3LjY2OSA5OC4yMDA5QzEwNy4zMzYgOTguMjAwOSAxMDcuMDUxIDk4LjEzMTggMTA2LjgxNSA5Ny45OTM2QzEwNi41ODIgOTcuODU1NSAxMDYuNDA0IDk3LjY3MTkgMTA2LjI3OSA5Ny40NDI4QzEwNi4xNTggOTcuMjEzNiAxMDYuMDk3IDk2Ljk2MDkgMTA2LjA5NyA5Ni42ODQ2Wk0xMDYuOTQ2IDk2LjI5MDRWOTYuNjg0NkMxMDYuOTQ2IDk2LjgxOTQgMTA2Ljk3MyA5Ni45NDc1IDEwNy4wMjcgOTcuMDY4OEMxMDcuMDg1IDk3LjE5IDEwNy4xNjcgOTcuMjg5NCAxMDcuMjc1IDk3LjM2NjlDMTA3LjM4MyA5Ny40NDExIDEwNy41MTIgOTcuNDc4MSAxMDcuNjY0IDk3LjQ3ODFDMTA3LjgzNiA5Ny40NzgxIDEwNy45NzQgOTcuNDQxMSAxMDguMDc5IDk3LjM2NjlDMTA4LjE4MyA5Ny4yODk0IDEwOC4yNTcgOTcuMTkxNyAxMDguMzAxIDk3LjA3MzhDMTA4LjM0OCA5Ni45NTI1IDEwOC4zNzIgOTYuODIyOCAxMDguMzcyIDk2LjY4NDZWOTYuMjkwNEMxMDguMzcyIDk2LjE1MjMgMTA4LjM0NSA5Ni4wMjI2IDEwOC4yOTEgOTUuOTAxM0MxMDguMjQgOTUuNzggMTA4LjE2MSA5NS42ODIzIDEwOC4wNTMgOTUuNjA4MUMxMDcuOTQ5IDk1LjUzNCAxMDcuODE2IDk1LjQ5NjkgMTA3LjY1NCA5NS40OTY5QzEwNy40OTYgOTUuNDk2OSAxMDcuMzY0IDk1LjUzNCAxMDcuMjYgOTUuNjA4MUMxMDcuMTU1IDk1LjY4MjMgMTA3LjA3NiA5NS43OCAxMDcuMDIyIDk1LjkwMTNDMTA2Ljk3MiA5Ni4wMjI2IDEwNi45NDYgOTYuMTUyMyAxMDYuOTQ2IDk2LjI5MDRaTTEwNy45NTcgOTEuNzg3MkwxMDQuMzY0IDk3LjUzODhMMTAzLjc0MiA5Ny4xNzk5TDEwNy4zMzYgOTEuNDI4NEwxMDcuOTU3IDkxLjc4NzJaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjwvZz4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxOTkiIGhlaWdodD0iMTU5IiByeD0iMy41IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4xMiIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzM0NjFfMjkxMzUiIHg9IjY4Ljk5OTIiIHk9Ijc0LjI2MDIiIHdpZHRoPSI1MS4yNDA4IiBoZWlnaHQ9IjM0LjA2NyIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjg0NzA3Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzI5MTM1Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzI5MTM1IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", "description": "Widget indicates the level of liquid in Rectangle tank.", "descriptor": { "type": "latest", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} +} \ No newline at end of file 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 a23c4f4c55..19ee91e362 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,iVBORw0KGgoAAAANSUhEUgAAAzkAAAIzCAYAAAAj/tfLAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAbGVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAAh2kABAAAAAEAAABOAAAAAAADJS8AAAswAAKciwAACU0AAqACAAQAAAABAAADOaADAAQAAAABAAACMwAAAADn/tp8AAAACXBIWXMAAAsSAAALDgE0qiOhAABAAElEQVR4AezdB5wUxbbA4UNcckYkSM5IEBQQ5CISVAQxIAZEkCSIGfVeE3DNihkzQUUFRUURRCSIShBRULJEkZyDgAgIvDnrnX3LdPXs7M70dPfMv97PuzNVNV1VX9Hn7dme6cl2MlCEggACCCCAAAIIIIAAAgjEQGDQoEEyYsQIy5F69+5trNeO9erVkylTplhek9WK7Fl9Ia9DAAEEEEAAAQQQQAABBCIVMCU+wdfefffdwYcx+ZmNKzkxceQgCCCAAAIIIIAAAggg8D+B6dOnR2zRpk2biPtG2pEkJ1Ip+iGAAAIIIIAAAggggIAvBHi7mi+2iUkigAACCCCAAAIIIIBApAIkOZFK0Q8BBBBAAAEEEEAAAQR8IUCS44ttYpIIIIAAAggggAACCCAQqQBJTqRS9EMAAQQQQAABBBBAAAFfCJDk+GKbmCQCCCCAAAIIIIAAAghEKkCSE6kU/RBAAAEEEEAAAQQQQMAXAiQ5vtgmJokAAggggAACCCCAAAKRCuSMtCP9EEAAAQT8KTB9xjLLxGfNstaFdpo/f2VqVePGNUKbjM9btKhzSn2b1qc+P6WRJwgggAACCDgowJeBOojLoRFAAAGnBYIJTDBpCSYmOu6SRaudHj7i49etXy21b/qEKZgUkQxFzEhHBBBAAIEIBUhyIoSiGwIIIOCmQPpkJpjIeCmJidZGk6DQBIjkJ1pVXo8AAggkrwBJTvLuPStHAAEPC2hSo1dnNKFJpGQms+S9+nRIfYle9SHpyawe/RFAAIHkFSDJSd69Z+UIIOAxAU1snn12fFInNRltSTDp+e+QLhl1pR0BBBBAIIkFSHKSePNZOgIIxEcgmLyEG80LV2uCn5sJN89gmxfmqwkPyU5wR/iJAAIIIJBegCQnvQaPEUAAAYcEgomO08lBMFEJfr4l+OH+9Mty8m1fus70JXhDBK1z6rNEJDvpxXmMAAIIIKACJDn8O0AAAQTiKHBx+0eifjta+kQmmMQ4mbg4xaMJUWgSlNUkkETHqV3iuAgggIA/BUhy/LlvzBoBBHwqoL/Y97jhqUzPXhObgQOvSIoP3w8eMi5LN1xQoy8nP5RpW16AAAIIIJB4AiQ5ibenrAgBBDwsEKsrOenfjubHqzi6RcG3tgXvIqd1XMlRBQoCCCCAQLQCJDnRCvJ6BBBAIAIB/YU+HndOS/9WtuC0gm9pCz53MikKJi7BsYJvRwt+Hkfrs5rIBI+Z/mcyXeFKv24eI4AAAgiEFyDJCe9DKwIIIBATAb2CY1f0qszI4ZPsmuNaH0ySwg0ayyQl3Djh2nSe6sbd1cIp0YYAAggkrwBJTvLuPStHAAGPCfTq/aosXLBKdu7Y47GZeWc6JU8rJkOf6ZMUn03yjjozQQABBPwnQJLjvz1jxggg4EMB/TC9XZk7Z3lq04rl6+y6UB8icO11bVNrhg7tFtLCUwQQQAABBERygoAAAggg4LyAfi4mK3dVc35m/hxh7JhpqRPPlz9F1NbJzxn5U4hZI4AAAsktwJWc5N5/Vo8AAnEUiOXNB4KfnWnTpmHqCpYv/13KlSuR+jj4IX8vfHYmyBucrz7Xz9IUKpQ/tSk4b51zNPPle3KC0vxEAAEEEFABkhz+HSCAAAJxFihX9oZMj6hJQjTfk2N317NMT8TmBaF3cNNuWb26ktXvySHRsdkcqhFAAIEkFCDJScJNZ8kIIOCegP4CH82d1IJ3FQuuwO9v1QomX9F+V4668EWgwX8V/EQAAQQQIMnh3wACCCAQJ4FYfBFouKkG3xIW/KJQ7Zv+CktWr6yEG9OuLZi8BNvTJzFaF81b04LHDP58e/S/s3zVKHgMfiKAAAIIJJYASU5i7SerQQABjwoE34Jlmt7SxWvk5MmTpiZH64JJUSwGiWXSEul8yp1xusyb93Sk3emHAAIIIJBEAiQ5SbTZLBUBBLwpULlSbzl69Kg3J+fhWbVo2VDGjrnDwzNkaggggAACbglkd2tgxkUAAQQQsBc4s1410Q/SJ3vRq036X6XKZZOdgvUjgAACCGRCgO/JyQQWXRFAAIF4CTRpUkP+O6RL6n86ZvovE432dsvxWkNmxwm+fU4/UxR6QwX9PBMFAQQQQACBSAVIciKVoh8CCCDgooAmPKFFP9yvH+gPFi9+P05wbvozmMTo42Aio4+1xPOmCP+MyP8igAACCCSyAElOIu8ua0MAgYQW0MQgo+TAdJezUJRgchRaH8nz9Hdy0/7p7+YWfH1Gcwz24ycCCCCAAAKxEiDJiZUkx0EAAQQ8KBCaYIQ+9+CUmRICCCCAAAJRC3DjgagJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SYAkx0u7wVwQQAABBBBAAAEEEEAgagGSnKgJOQACCCCAAAIIIIAAAgh4SSCnlybDXBBAAIFkEfj++1Xy7awVMv+Hlcmy5Jiv89ixv2N+TA6IAAIIIJAYAiQ5ibGPrAIBBDwusH79Tvlq2iKZ9d0y+emnX+XgH4fSZpw7d+60xzyIXGDv3oNSs1Z/OfvsmtLiX3Xkwrb1pWLFkpEfgJ4IIIAAAgkrkO1koCTs6lgYAggg4KKAXq2ZPOWXQGKzWNas2mA7E01yjh49ammvW7+aDBx4hbRpXcfSliwVg4eMS13qyOGTLEuuUauyrFyx7pT6qtXLBxKeetL+ogZy7rnVT2njCQIIIIBA8giQ5CTPXrNSBBCIg8DXM5fJpEk/ybff/CLbt+2OaES7JCf4Yk12tGjCoyWRk57pM5bJrFnLUtdpSmxSG/73P6YkJ317qdOLS8vzG0iHDmfLBa2SN1FMb8JjBBBAIFkESHKSZadZJwIIOCYwe+5K+Wz8DzJ9+kLZtXNPpscpX6G0bPh9a8SvCyY9jRvXkBYt/vnl3Y+JT/qEZv78lbJk0eqIDbSjOkT6mhIli0mbNg3lsiuayHnNamRqHDojgAACCPhPgCTHf3vGjBFAwAMCa9Zulw8+mC2TJ/8oG9ZvyfKMTitVXJo0riPfffeL7N//R5aPoy8MJj/6OH0CpM+1xDMR0gRGS/CqjD7WREZLpIlJameb/6laraKsWb3epjV8dfmKZaR9+3PkmmvOk6pVSoXvTCsCCCCAgC8FSHJ8uW1MGgEE3BJ4b8xsGf/JHJk/759f4jM7jzx5U6RRo9rS/Lza0ur8M6VWzbKph9i0aY888dRH8sXEOZk9ZJb6p0+ITAfQJCm0BJOU0Hp9HovExXTc0LqUlNzSq28H6XjJOTLzm6UyZ/ZyWbBgufx1+Eho14ieN25aR664srlcf915EfWnEwIIIICAPwRIcvyxT8wSAQRcFFjx62Z5551vZdLnc2XfvsxfbSlbtpQ0b1E3cCWlvrQL3AEsXFm2bJOM/eBb+XLKfNm9c2+4rknVVqNmJenYqanc0LWVFCqUx7L2qYE7102fsUjmzFoimzdvt7RnVFGkSCHpcGkz6d69ZVrimdFraEcAAQQQ8K4ASY5394aZIYCAywKfT1og7737jcydvSjTM6lS9QxpdcFZcsnFjeSssypl+vX6gtlzVsjMmUtk7vcrZMWytVk6hl9fpFe8zmpYQ5o1qy1t29SXmjX+ueIVyXp+/vk3+eLLBTLz659l7ZqNkbzklD7Nzqsv13c7Xy7t0OiUep4ggAACCPhHgCTHP3vFTBFAIE4Cr70+TcaOnSnr1mzK1Ij6WY+2bc+Wyy5tInXrnpGp12bU+eDBIzL/x1Wy4Od1gV/ct8hv67bJxg3b5M8/D2f0Us+3FyteWM4of7pUqVxaatQsF3g7X1U5u2HlmMx7yZKN8tnnP8i0aT9l+rNTlauWk2uvbSX9+7WNyVw4CAIIIIBA/ARIcuJnzUgIIOBhgf37/5SXX/4qcDOBr2Xvnv0Rz7Rw4YLS9sLGcuXlzQLfy/LPrZ4jfnEMOu7ff1h+W79Nfv99l2zcvEu2btotW3fslZ079snu3ftl354DriZChQI+RYsVlBIlCstppYpK6VLFpEzZYnJGuRJSoULJQGJTSnLlis/3Un///Wr55NO5Mu2r+YGbPByIWL9oscKBmxRcILfccqEULpwv4tfREQEEEEDAPQGSHPfsGRkBBDwgsHXbPnlp2GT5cOzXcvSI9Qs57abYtFk9uSKQ2HS5qpldF8/UHz58VHbsPCC7AknP3t0HZM/eQ7Jv/yHZ/8efcuCPQ3LwwF9y6M9//vvjj8Ny7OjfqV9Oqj//Pn48NQnJlTunpOTKLfkL5JF8+VJS/yuQL68UKJhXChbKK4UL5ZMiRQoEEpoCUqK4JjWFpFTJwpI9RzbPOKSfyLiP5sr4QMIzb+7i9NVhH+cO3PTg6msvkNtubS+lTy8Sti+NCCCAAALuCpDkuOvP6Agg4JLAlq375IXnJ8oHY2fIiRMnIppFsRJF5NJLm0u3rudLFW49HJGZ1zutDdwK/N33v5HPP58je3bti2i62bNnl2uubS133NlRypQm2YkIjU4IIIBAnAVIcuIMznAIIOCuwN49h+TpZyfImNFT5XiEyc2Z9arJNVefL9d3beHu5BndUYH33p8lH3z4jSxdHNmXkuYIJDvX3dBO7h3YKXAFK7+jc+PgCCCAAAKZEyDJyZwXvRFAwKcCJ0+elMceHy9vvzUl4u9UuaBtY7nxhtbSokUtn66aaWdFYNasFfLW6Bny9bT5Eb1c7wTX48aL5IH7r5Bs2bz59ryIFkInBBBAIIEESHISaDNZCgIImAVee22avP7GpIi+dyabZJMrOreSvn0ulBo1SpsPSG1SCKxcuVXeHP6VjP94ppwM/F9GpXjJotLvpg7Svz93Y8vIinYEEEDAaQGSHKeFOT4CCLgm8PnEn+T55yfI6pW/ZziH3LlzSZer28iAARfzofIMtZKrg96c4pVXvpRxH04P3JDhWIaLr1ajgtx5Zye5tOPZGfalAwIIIICAMwIkOc64clQEEHBRYPmKzfLYYx/LtzMXZDiLXLlyybVd28odt3WQYoE7g1EQsBPYs+egvPDSJBn7/jQ5dizjZKdlq0bywAOdpXatyL/I1G5s6hFAAAEEMidAkpM5L3ojgIDHBQYPGScjh0+KaJbXdm0ndwX+4l6yRMGI+tMJARXYueuAPBe4Qjj2/akRgfTq00H+O6RLRH3phAACCCAQGwGSnNg4chQEEHBZ4JPx82Xo0x/Lpo3bMpxJx07/koF3XiYVK5bIsC8dELATWL9+lzz7/GcyccJ3dl3S6sudcbrcc29nufKKxml1PEAAAQQQcE6AJMc5W46MAAJxENDPSzz44Bj56st5GY7W7LyzAslNJ2nUqHKGfemAQKQCCxasCyQ7E2Tu7J8zfMmFFzeVRx+9js99ZShFBwQQQCA6AZKc6Px4NQIIuCjw5ogZ8uzQj+TQwT/DzqJKtTPkttuukE4dG4XtRyMC0QhMmLhAXnppvKxdvTHsYfIXyCcD77lK+vZuHbYfjQgggAACWRcgycm6Ha9EAAGXBNav3yn33f++zPp2YdgZ6PeX9OvfKfWmAmE70ohADAX05gSvvzYhw+9jatGyoTzxeNfA2yZLxnB0DoUAAgggoAIkOfw7QAABXwkMH/m1PP3kB3L4z7/Czrv9Jc3loYeu5m1BYZVodEpA30b5yCMfyuQv5oQdIm++PHLvf66RPr0uCNuPRgQQQACBzAmQ5GTOi94IIOCSwL59h+TOgW/LtCk/hJ1Bxcpl5d57u0j7i84K249GBOIhMHnKz/L00+Nk/brNYYdre1ETef7ZHlKkSP6w/WhEAAEEEIhMgCQnMid6IYCAiwL6pZ6DB70nO3fsCTuLHj07yJBB3Ko3LBKNrggMeXicvD0q/K3NS55WTP778PV8iagrO8SgCCCQaAIkOYm2o6wHgQQTeOChD+SdUZPDrqrOmVUDb027Tpo2qRq2H40IuCkw74c1gbewjZFlS9eEnUb3nu3lsUeuCduHRgQQQACB8AIkOeF9aEUAAZcE1q3bIXfcOVIW/rQi7Az63NRJHrjvyrB9aETASwKPPfGJDH9jQtgpNTy7lrzwfC+pXPm0sP1oRAABBBAwC5DkmF2oRQABFwU+/uQHefCBt+XggUO2s6havXzgW+S7SfNmNWz70ICAVwXmzF0pg4e8K2tWbbCdYoGC+eXRx3pI5yub2PahAQEEEEDALECSY3ahFgEEXBIY8t+PZMSbE8OOfvU1beSpJ28I24dGBPwg8O//jJYPP5gedqq9+3aUIYOvCtuHRgQQQACBUwVIck714BkCCLgk8OefR6VP39fk25kLbGdQuEghGTSom1x5BX/ZtkWiwXcCn4z/QR5++F3Zv+8P27m3bNVIhr/ZX/Lly23bhwYEEEAAgf8XIMn5fwseIYCASwILF/4mt93+Ztjb7DY5t64890wvKVu2mEuzZFgEnBPYvHmP3HX3SPnh+yW2g+jt0V96sa80bFjJtg8NCCCAAAL/CJDk8C8BAQRcFfjo4x/k3/cOl6NHjtrOo2fvjjLoQd6uYwtEQ8IIPPzoRzJqhP3bNXOn5Jannu4jV3XmambCbDoLQQABRwRIchxh5aAIIBCJwLPPTQp8AeI4264FCuSThx/pKVdc3ti2Dw0IJJrA+E/ny6CHRsnBg3/aLu3OgV1k4F0dbNtpQAABBJJdgCQn2f8FsH4EXBK4+57R8sEY+w9c165TJXAL3b5SvXppl2bIsAi4J7Bq1dbALdTflOXL1tpO4prr2sgzQ7kBhy0QDQggkNQCJDlJvf0sHgF3BG7oMUy+nvaj7eAXX9JMXnuln207DQgki0D/Aa/Ll1/MtV3uBW3PkdFv32rbTgMCCCCQrAIkOcm686wbARcE9u45JN26vyi/LPzVdvT+N18R+IzOZbbtNCCQbAJPPf2ZvPbqeNtlN2hYU95953YpWiy/bR8aEEAAgWQTIMlJth1nvQi4JLBm7Xbp2fNFWbdmk3EG2bJlk8cf7yPXXnuesZ1KBJJZYOzY2XL//cPl5MmTRobKVcvJqFG3S9UqpYztVCKAAALJJkCSk2w7znoRcEFAbxHdp89Lsn3bbuPoxUsWlRee6y8tWtQ0tlOJAAIis2b9Knfc9Zrs3rnXyFHq9OIyfPht3GLaqEMlAggkmwBJTrLtOOtFIM4Cs+b8Kjf1GSZ/7D9gHLlq9fLy5uu3SuXK/AXaCEQlAukE1q3bLn37DZM1qzakq/3/h4UKF5Q3ht8qLZrzB4P/V+ERAggkowBJTjLuOmtGIE4C06cvkX6BX8j+OvyXccRzGteRt0fdIfkLpBjbqUQAAavAoYNHpEfPF+TH+cusjYGaPHnzyOuBPxy0aVPX2E4lAgggkAwCJDnJsMusEQEXBKZ8tUj63/SiHDv2t3H01m0by8jhtxjbqEQAgYwFevV5WWZMm2/smCtXTnntjdvlogvrG9upRAABBBJdIHuiL5D1IYBA/AW+/PKXwFvUXrBNcDpd3pIEJ/7bwogJJqB/JNBzyVT0jwt6Duq5SEEAAQSSUYAkJxl3nTUj4KDAV1MXB96i9qIcP37cOMo117WVF5/vZWyjEgEEMieg55KeU6ai56Cei3pOUhBAAIFkEyDJSbYdZ70IOCgw85vlqW9RO/63OcHpfuMl8uTj3RycAYdGIPkE9JzSc8tU9FzUt43quUlBAAEEkkmAz+Qk026zVgQcFJg3b410v+EZOXToT+MoPXt3lEEPXmVsoxIBBKIXePjRj2TUiInGA+XPn0/eGX23NG1a1dhOJQIIIJBoAlzJSbQdZT0IuCCwdOlG6dv3RdsEp1efS0lwXNgXhkwuAf0jgp5rpqJ/fNBzVM9VCgIIIJAMAiQ5ybDLrBEBBwU2bdojvXq9JHt27zeOcmOvDvLQA52NbVQigEBsBfRc03POVPQc1XNVz1kKAgggkOgCJDmJvsOsDwEHBQ4fPio9erwkmzdtN45yfbeLZfBDXYxtVCKAgDMCes7puWcqeq7qOavnLgUBBBBIZAGSnETeXdaGgMMC19/wovy6Yp1xlM5dWsujj1xrbKMSAQScFdBzT89BU9FzVs9dCgIIIJDIAiQ5iby7rA0BBwVu6veG/DB3iXGE9h2ayzNPdze2UYkAAvER0HNQz0VT0XNXz2EKAgggkKgCJDmJurOsCwEHBQYNHidfTJxjHKFFy4by6ss3GduoRACB+ArouajnpKnoOaznMgUBBBBIRAGSnETcVdaEgIMCb745I3Cb2knGEerWry7vvnOHsY1KBBBwR0DPST03TUXPZT2nKQgggECiCfA9OYm2o6wHAQcFpk5bLD17PGMc4YzypWX8xw9KydMKGtupRAAB9wR27jggV3R+VDZu2GqcxKi375Z2besZ26hEAAEE/CjAlRw/7hpzRsAFgd9+2yED7xpuHLlAgXzyyisDSHCMOlQi4L6A/vFBz1E9V01Fz209xykIIIBAogiQ5CTKTrIOBBwW6D/gDdm7x/xdOEOf6Sf16pZ3eAYcHgEEohHQc1TPVVPRc1vPcQoCCCCQKAIkOYmyk6wDAQcFBtwyQpYuWm0c4f4HusnFFzUwtlGJAALeEtBzVc9ZU9FzXM91CgIIIJAIAiQ5ibCLrAEBBwWGvTxFJnz6nXGErtdfJH37tDW2UYkAAt4U0HNWz11T0XNdz3kKAggg4HcBbjzg9x1k/gg4KPDttyuk63VPGEdoft5Z8v57dxrbqEQAAe8LdL3+eZkz+2fjRN8fc5+0bFnL2EYlAggg4AcBkhw/7BJzRMAFgUOHjkjrCx6UTZu2W0Yvd8bpMvmLh6VQoTyWNioQQMAfAn/88Ze0v2SQbNq4zTLhcuVKyYyvH5X8+VMsbVQggAACfhDg7Wp+2CXmiIALArfcOsKY4OhUhg7tQ4Ljwp4wJAKxFNA/Uui5bCr6xw2NARQEEEDArwIkOX7dOeaNgIMCLw6bItO++sE4wgMP3iDnNq1mbKMSAQT8JaDnsp7TpqIxQGMBBQEEEPCjAEmOH3eNOSPgoMBPP62ToU+OMY7Q6fKW0qd3G2MblQgg4E8BPaf13DYVjQUaEygIIICA3wT4TI7fdoz5IuCwQNu2Q2TFcusvNdWqV5RpUx92eHQOjwACbgm0bTdIVq9abxm+Vu3KMm3aEEs9FQgggICXBbiS4+XdYW4IxFngvgfGGBMcncaTT/SI82wYDgEE4ilgd47rHz00NlAQQAABPwmQ5Phpt5grAg4KfDV1kbz7tvn99/fc21UaNars4OgcGgEE3BbQc1zPdVPR2KAxgoIAAgj4RYC3q/llp5gnAg4LNGv2b9nw+1bLKOe3Olvefus2Sz0VCCCQmAI9bnxJvpn5k2Vx5SuUlrlzn7LUU4EAAgh4UYArOV7cFeaEQJwF7r5ntDHBKVK0kAx96sY4z4bhEEDATQE95/XcDy36RxCNFRQEEEDADwIkOX7YJeaIgIMC06YtkQ/GTDeOcN9910rJ0woa26hEAIHEFNBzXs99U9FYoTGDggACCHhdgCTH6zvE/BBwWODRxz4wjnBJx/Pk6i7NjW1UIoBAYgvoua8xwFTsYoapL3UIIICAWwIkOW7JMy4CHhD47yMfy9rVGy0zKV6yqDz5uPkLAi2dqUAAgYQU0BigsSC0aMzQ2EFBAAEEvCxAkuPl3WFuCDgosHjJBhn++ufGEe65p4sULJjH2EYlAggkh4DGAI0FpqKxQ2MIBQEEEPCqAEmOV3eGeSHgsMAjD48zjtC6XRO5hrepGW2oRCDZBDQWaEwwFbsYYupLHQIIIBBvAZKceIszHgIeEHj3/Vny/dzFlpnkyZsi/x1k/sCxpTMVCCCQFAIaEzQ2hBaNIRpLKAgggIAXBUhyvLgrzAkBhwVefP5T4wgDbrlSypUrZmyjEgEEklNAY4LGBlOxiyWmvtQhgAAC8RQgyYmnNmMh4AGBwUPGybatuywzqVO3qtw64CJLPRUIIICAxgaNEaFFY4nGFAoCCCDgNQGSHK/tCPNBwEGBNWu3y8jhk4wj3HN3Z2M9lQgggIAK2MUIjSkaWygIIICAlwRIcry0G8wFAYcFnnxyvHGEjp3+Jee3rG1soxIBBBBQAY0RGitMxS62mPpShwACCMRDgCQnHsqMgYAHBL77boVMmfy9ZSa5U3LL/fdxFccCQwUCCFgENFZozAgtGls0xlAQQAABrwiQ5HhlJ5gHAg4LPP+C+Ttx+vTuKKVPL+Lw6BweAQQSQUBjhcYMU7GLMaa+1CGAAAJOC5DkOC3M8RHwgMBnn/0oP/6wzDKT0mVPC3zZXydLPRUIIICAnYDGDI0doUVjjMYaCgIIIOAFAZIcL+wCc0DAYYFXX51sHKF/P/NfZI2dqUQAAQT+J2AXO+xiDXAIIIBAvAVIcuItzngIxFlg7Ng5snzZWsuotWpXlhu6tbTUU4EAAghkJKCxQ2NIaNFYozGHggACCLgtQJLj9g4wPgIOC7wx/EvjCP36cxXHCEMlAghEJGAXQ+xiTkQHpRMCCCAQIwGSnBhBchgEvCjw3pjZsmblBsvUGjaqJZ06NrLUU4EAAghEKqAxRGNJaNGYo7GHggACCLgpQJLjpj5jI+CwwMgRXxlH6NevvbGeSgQQQCAzAnaxxC72ZObY9EUAAQSiESDJiUaP1yLgYYGPPp4nq1f+bpnhOY3rSLu29S31VCCAAAKZFdBYojEltGjs0RhEQQABBNwSIMlxS55xEXBYYOSoacYR+vS5yFhPJQIIIJAVAbuYYheDsjIGr0EAAQQyK0CSk1kx+iPgA4Gvpi6SpYtWW2Z6VsOaXMWxqFCBAALRCOjVHI0toUVjkMYiCgIIIOCGAEmOG+qMiYDDAqNGTTeOcOON7Yz1VCKAAALRCNjFFrtYFM1YvBYBBBCIRIAkJxIl+iDgI4Gff14vc2ZZ/3pavWYlubTj2T5aCVNFAAG/CGhs0RgTWjQWaUyiIIAAAvEWIMmJtzjjIeCwwKi3ZhhH6HZ9a2M9lQgggEAsBOxijF1MisWYHAMBBBCwE8h2MlDsGqlHAAF/Cezdd0ga1LtFjh8/fsrES51eQn6Y99wpdTxBAAEEYi3QpOldsn3brlMOmyNHDvll8ctStEj+U+p5ggACCDgpwJUcJ3U5NgJxFhgxYoYlwdEpXHXV+XGeCcMhgEAyCphijf7RRWMTBQEEEIinAElOPLUZCwGHBT752Pot4zly5pDevXmrmsP0HB4BBAICvXu3FY05ocUUm0L78BwBBBCIpQBJTiw1ORYCLgp8PnGhbNq4zTKDDh3OkyKFeZuIBYYKBBCIuUCRwnlFY05o0dikMYqCAAIIxEuAJCde0oyDgMMCH344yzjC9defb6ynEgEEEHBCwC7m2MUoJ+bAMRFAAAGSHP4NIJAAAps375VvZy6wrOTMetXlnLOrWOqpQAABBJwS0JijsSe0aIzSWEVBAAEE4iFAkhMPZcZAwGGB98aYr+JceaX1bSMOT4XDI4AAAmIXe+xiFWQIIIBArAVIcmItyvEQcEFg0sTvLaPmy5dXul/f0lJPBQIIIOC0gMYejUGhxRSrQvvwHAEEEIiFAElOLBQ5BgIuCsyevVJ+W7vZMoN2FzaR7DmyWeqpQAABBJwW0NijMSi0aKzSmEVBAAEEnBYgyXFamOMj4LDAJ+PnGUfo3LmZsZ5KBBBAIB4CdjHILmbFY06MgQACySNAkpM8e81KE1Rg+rSfLCurULGMnNe8pqWeCgQQQCBeAhqDNBaFFlPMCu3DcwQQQCBaAZKcaAV5PQIuCnzxxc+yd89+ywwuvOgcSx0VCCCAQLwFTLFIY5bGLgoCCCDgpABJjpO6HBsBhwUmTppvHOHKy3mrmhGGSgQQiKuAXSyyi11xnRyDIYBAQguQ5CT09rK4RBf49ptFliXWrlNFatQobamnAgEEEIi3gMYijUmhxRS7QvvwHAEEEIhGgCQnGj1ei4CLAl9M/lkO/HHQMoO27RpZ6qhAAAEE3BIwxSSNXRrDKAgggIBTAiQ5TslyXAQcFpgyZaFxhE4d+TyOEYZKBBBwRcAuJtnFMFcmyaAIIJBwAiQ5CbelLChZBGZ9t9iy1Jq1KkvlyqUs9VQggAACbgloTNLYFFpMMSy0D88RQACBrAqQ5GRVjtch4KLA3O9Xya6dey0zaNWqgaWOCgQQQMBtAVNs0himsYyCAAIIOCFAkuOEKsdEwGGBr6ZabzigQ158UUOHR+bwCCCAQOYF7GKTXSzL/Ai8AgEEEDhVgCTnVA+eIeALgdmzllrmWaZcKalXr7ylngoEEEDAbQGNTRqjQosploX24TkCCCCQFQGSnKyo8RoEXBTYum2frFzxm2UGzc6tY6mjAgEEEPCKgClGaSzTmEZBAAEEYi1AkhNrUY6HgMMC06YvMY7Q6vx6xnoqEUAAAS8I2MUou5jmhTkzBwQQ8K8ASY5/946ZJ6nA7FnLLCvPkSOHtGtHkmOBoQIBBDwjoDFKY1VoMcW00D48RwABBDIrQJKTWTH6I+CywE8/rrTMoP5ZNSRXrpyWeioQQAABrwhojNJYFVpMMS20D88RQACBzAqQ5GRWjP4IuCiwcuUW2bF9t2UGTZvWstRRgQACCHhNwBSrNKZpbKMggAACsRQgyYmlJsdCwGGBb2etMI7Q4rzaxnoqEUAAAS8J2MUqu9jmpbkzFwQQ8JcASY6/9ovZJrnA/B+sX5yXN18eObdptSSXYfkIIOAHAY1VGrNCiym2hfbhOQIIIJAZAZKczGjRFwGXBRYtWmuZwZl1q1rqqEAAAQS8KmCKWabY5tX5My8EEPCHAEmOP/aJWSIgmzfvla2bd1gkGjbkKo4FhQoEEPCsgClmaWzTGEdBAAEEYiVAkhMrSY6DgMMC3/+w2jhCk8ZcyTHCUIkAAp4UsItZdjHOk4tgUggg4HkBkhzPbxETROAfgYULrW9V05amTa23ZMUMAQQQ8KqAXcyyi3FeXQfzQgABbwuQ5Hh7f5gdAmkCS5esT3scfFCl6hmSL2/u4FN+IoAAAp4X0JilsSu0mGJcaB+eI4AAApEKkOREKkU/BFwWWLVyg2UGtWpXsNRRgQACCHhdwBS7TDHO6+tgfggg4F0Bkhzv7g0zQyBNYPXq7XLwwKG058EHdetWCj7kJwIIIOAbAVPs0hinsY6CAAIIxEKAJCcWihwDAYcFflm83jhC/XokOUYYKhFAwNMCdrHLLtZ5ejFMDgEEPClAkuPJbWFSCJwqsGyp9a1q2qNhA5KcU6V4hgACfhCwi112sc4Pa2KOCCDgLQGSHG/tB7NBwCiwcuVmS/0Z5UtL7pQclnoqEEAAAa8LaOzSGBZaTLEutA/PEUAAgUgESHIiUaIPAi4L/LZui2UGlauUtdRRgQACCPhFwBTDTLHOL+thnggg4C0Bkhxv7QezQcAicOL4Sdm80fph3KpVy1j6UoEAAgj4RcAUwzTWacyjIIAAAtEKkOREK8jrEXBYYPmKzXIy8H+hpXp1ruSEmvAcAQT8I2CKYRrrNOZREEAAgWgFSHKiFeT1CDgssGq19a1qOmTN6lzJcZiewyOAgIMCdjHMLuY5OBUOjQACCShAkpOAm8qSEktg7VrrW9V0hdWrWz+0m1grZzUIIJDIAnYxzC7mJbIFa0MAgdgLkOTE3pQjIhBTgd837LAcr3iJopI3b25LPRUIIICAXwQ0hmksCy2mmBfah+cIIIBARgIkORkJ0Y6AywKbN+2yzKB06RKWOioQQAABvwmYYpkp5vltXcwXAQTcFyDJcX8PmAECYQW2bd1taS9TtriljgoEEEDAbwKmWGaKeX5bF/NFAAH3BUhy3N8DZoBAWIGdO/da2suU4UqOBYUKBBDwnYAplplinu8WxoQRQMB1AZIc17eACSBgL7B7z0H56/ARS4eyZYpZ6qhAAAEE/CZgimUa8zT2URBAAIFoBHJG82JeiwACzgps2rTHOMCH476RqdMWGNuoRAABBPwisHfvAeNUNfYVL1bA2EYlAgggEIkASU4kSvRBwCWBbdusb1XTqaxZtcGlGTEsAggg4LyAxr769co7PxAjIIBAwgrwdrWE3VoWlggC27btT4RlsAYEEEAgUwLEvkxx0RkBBAwCJDkGFKoQ8IrArl1/eGUqzAMBBBCImwCxL27UDIRAwgqQ5CTs1rKwRBDYvcf8fvVEWBtrQAABBOwEiH12MtQjgECkAnwmJ1Ip+iHggsC+vYcso6akpMiZ9apY6qlAAAEE/CiwdPFaOXLk1LtImmKfH9fGnBFAwD0Bkhz37BkZgQwF/vjDmuRUqlxWPvnoPxm+lg4IIICAHwQuuniI/Lpi3SlTNcW+UzrwBAEEEMhAgLerZQBEMwJuChw4cNgyfIGCeS11VCCAAAJ+FTDFNFPs8+v6mDcCCLgjQJLjjjujIhCRwKFDf1n65c9PkmNBoQIBBHwrYIppptjn2wUycQQQcEWAJMcVdgZFIDKBw4dNSU5KZC+mFwIIIOADgfz5rTHNFPt8sBSmiAACHhIgyfHQZjAVBEIFjvx1NLRK8ua1/kJg6UQFAggg4BMBU0wzxT6fLIdpIoCARwRIcjyyEUwDAZPAkSPHLNV5UnJb6qhAAAEE/Cpgimmm2OfX9TFvBBBwR4Akxx13RkUgIoFjx/629EvJk8tSRwUCCCDgVwFTTDPFPr+uj3kjgIA7AiQ57rgzKgIRCfz993FLv1w5ufO7BYUKBBDwrYAppplin28XyMQRQMAVAZIcV9gZFIHIBE4ctyY5OXNx2kamRy8EEPCDgCmmmWKfH9bCHBFAwDsC/Lbknb1gJghYBE6cPGmpy56d09aCQgUCCPhWwBTTTLHPtwtk4ggg4IoAvy25ws6gCEQmcNKQ5GTLFtlr6YUAAgj4QcAU00yxzw9rYY4IIOAdAZIc7+wFM0EAAQQQQAABBBBAAIEYCJDkxACRQyCAAAIIIIAAAggggIB3BEhyvLMXzAQBBBBAAAEEEEAAAQRiIECSEwNEDoEAAggggAACCCCAAALeESDJ8c5eMBMEEEAAAQQQQAABBBCIgQBJTgwQOQQCCCCAAAIIIIAAAgh4R4Akxzt7wUwQQAABBBBAAAEEEEAgBgIkOTFA5BAIIIAAAggggAACCCDgHQGSHO/sBTNBAAEEEEAAAQQQQACBGAiQ5MQAkUMggAACCCCAAAIIIICAdwRIcryzF8wEAQQQQAABBBBAAAEEYiBAkhMDRA6BAAIIIIAAAggggAAC3hEgyfHOXjATBBBAAAEEEEAAAQQQiIEASU4MEDkEAggggAACCCCAAAIIeEeAJMc7e8FMEEAAAQQQQAABBBBAIAYCJDkxQOQQCCCAAAIIIIAAAggg4B0Bkhzv7AUzQQABBBBAAAEEEEAAgRgIkOTEAJFDIIAAAggggAACCCCAgHcESHK8sxfMBAEEEEAAAQQQQAABBGIgQJITA0QOgQACCCCAAAIIIIAAAt4RIMnxzl4wEwQQQAABBBBAAAEEEIiBAElODBA5BAIIIIAAAggggAACCHhHgCTHO3vBTBBAAAEEEEAAAQQQQCAGAiQ5MUDkEAgggAACCCCAAAIIIOAdAZIc7+wFM0EAAQQQQAABBBBAAIEYCJDkxACRQyCAAAIIIIAAAggggIB3BEhyvLMXzAQBBBBAAAEEEEAAAQRiIECSEwNEDoEAAggggAACCCCAAALeESDJ8c5eMBMEEEAAAQQQQAABBBCIgUDOGByDQyCAAAJxFciW7Z/hgj/jOjiDIRClwMmTIvofBQEEEEDAOQGSHOdsOTICCMRYIHvg2nM2rj/HWJXDxVvgfzm6nDwhckKTHRKeeG8B4yGAQBIIkOQkwSazRAT8LqBXbLLn8PsqmD8Cpwpowq7/rFOTnUDCQ0EAAQQQiJ0AfxONnSVHQgABBwRIcBxA5ZCeEtBkR69SUhBAAAEEYidAWI2dJUdCAIEYC5DgxBiUw3lWgETHs1vDxBBAwKcCJDk+3TimjUAyCPAWtWTYZdYYFNBEh5tpBDX4iQACCEQnQJITnR+vRgABhwR4+45DsBzW0wLZg3cl8PQsmRwCCCDgfQGSHO/vETNEICkF9K/aFASSToCrOUm35SwYAQScEeDXCGdcOSoCCEQhwFt2osDjpb4X4N+/77eQBSCAgAcESHI8sAlMAQEEEEAAgaAA71gLSvATAQQQyLoASU7W7XglAgg4JMBfsh2C5bD+EOD/M/tjn5glAgh4WoBQ6untYXIIIIAAAggggAACCCCQWQGSnMyK0R8BBBBAAAEEEEAAAQQ8LUCS4+ntYXIIIIAAAggggAACCCCQWQGSnMyK0R8BBBBAAAEEEEAAAQQ8LUCS4+ntYXIIIIAAAggggAACCCCQWQGSnMyK0R8BBBBAAAEEEEAAAQQ8LUCS4+ntYXIIIIAAAggggAACCCCQWQGSnMyK0R8BBBBAAAEEEEAAAQQ8LUCS4+ntYXIIIIAAAggggAACCCCQWQGSnMyK0R8BBBBAAAEEEEAAAQQ8LUCS4+ntYXIIIIAAAggggAACCCCQWQGSnMyK0R8BBBBAAAEEEEAAAQQ8LUCS4+ntYXIIIIAAAggggAACCCCQWQGSnMyK0R8BBBBAAAEEEEAAAQQ8LUCS4+ntYXIIIIAAAggggAACCCCQWQGSnMyK0R8BBBBAAAEEEEAAAQQ8LUCS4+ntYXIIIIAAAggggAACCCCQWQGSnMyK0R8BBBBAAAEEEEAAAQQ8LUCS4+ntYXIIIIAAAggggAACCCCQWQGSnMyK0R8BBBBAAAEEEEAAAQQ8LZDT07NjcggggIDPBVavXi0TJ34uGzdulG3btsmOHTtk9+7dkiNHDilYsGDqf1WqVJFzzmkszZo1l0qVKmZpxdu375CFCxdk6bWxeFGxosWkSdMmsTgUx0AAAQQQQCBqAZKcqAk5AAIIIHCqwJ49e+XDD8bK+E/Hy/Lly09tTPdMkx4tCxculI8++ij1cd26daVnz95yxRWXS86ckYfoOXNmy6233pJ6DDf+58wzz5SvvprqxtCMiQACCCCAgEWAt6tZSKhAAAEEsi7w4YcfyrnnNpFHH3s0bIJjN8KSJUvkzjtvl1atzpfFixfbdaMeAQQQQAABBMIIkOSEwaEJAQQQiFTg4MFDctNNfeWuu+6UgwcPRvoy237r1q2TSy/tKG+NGmXbhwYEEEAAAQQQMAtE/l4I8+upRQABBJJe4MCBg3LhhW3l999/j6nFsWPHZNDgQZK/QEHp0uWqmB6bgyGAAAIIIJDIAlzJSeTdZW0IIBAXgX79+sY8wQlO/MSJE3LPPQPll19+CVZ58me9uvU8OS8mhQACCCCQnAJcyUnOfWfVCCAQI4HnnntWvvnmmwyPVqpUKalVq5ZUr1ZDqlWvFrjT2tbUz+wsWrRItmzZEvb1f//9tzz00IOBu7RNsu2XK1fu1Du12XaIsuHo0aNy5MgR41H0TnE3D3DvpgfGSVGJAAIIIJDUAiQ5Sb39LB4BBKIRWLfuN3nhhRfCHkLvkHZLIAG4++57JFv2bJa+msA89uhjMnLUCDl+/LilPVihd2CbOnWatGvXNlh1ys+OHTuI/udU6d79Bpk+fbrx8C1atMjyra+NB6QSAQQQQACBKAV4u1qUgLwcAQSSV2DUyPCJSfHixVOvvtxz773GBEflNAkaPGSwDB8+UrJlsyZB6XUnTpyQ/mncHmsyN3PmTNvx+vXrb9tGAwIIIIAAAm4IkOS4oc6YCCDgewG9KcBnEz4Lu4777rtf6tWL7LMqF17YTi666KKwx5s1a1bYdqcahw170fYqU82aNUWv5FAQQAABBBDwkgBJjpd2g7kggIBvBCZOnCh79+61na9+Oea1115r225qeOSRRyV37tymptS6nTt3in7RaDzLrl27ZMIE+ytIPXv2iud0GAsBBBBAAIGIBEhyImKiEwIIIHCqwI/z559aEfKsf/+bQ2oyflq6dGmpUKFC2I7bt28L2x7rxtdeedX2hgMlSpQI3Nq6S6yH5HgIIIAAAghELUCSEzUhB0AAgWQU2LI1/B3R6tSpkyWWihUrhn3djh07w7bHsvHw4cMy5oMxtofsel1XyZUrl207DQgggAACCLglQJLjljzjIoCArwU2b95sO3+9pXKlSpVs28M1VKwQ/nVFihQO9/KYto0aOVL++OMP4zFTUlKkd5++xjYqEUAAAQQQcFuAW0i7vQOMjwACvhTIkyePlC1b1jh3fduZ3jUtK2XP3t1hX1alStWw7bFqPHnipIx6a5Tt4S655BIpVqyobTsNCCCAAAIIuCmQtf8v7OaMGRsBBBDwgMCkSV84Movff//d9rhFixaVAgXy27bHsuHDcR8GvrDU/PkfvdX1zTcPiOVwxmNt2LBBVq9eHbgqVlkqVw5/hct4ACoRQAABBJJWgCQnabeehSOAgNcE9DMwK1eutJ1WlSpVbNti3fDGG6/bHrJJkyZSq1Yt2/ZoGvTW3PrlqGMDnwU6ePBg2qHy5s0b+LLTjvLYY49Lvnz50up5gAACCCCAgEmAz+SYVKhDAAEEXBAY8/77cuDAAduRr776Gtu2WDbMmDFDVq1aZXvIvn372bZF06C3yG7V6nwZPuLNUxIcPaYmgOPGjZOWLf8la9eujWYYXosAAgggkAQCJDlJsMksEQEEvC+gn4F5+523bSdasGBBufLKzrbtsWwYNuwl28Pp3d/0i0udKHfddaf89ttvqYfW9Q4IvCXu+edflNtvu12KFy+eWr9lyxbRfhQEEEAAAQTCCZDkhNOhDQEEEIiTwPMvPCfr1q2zHa3DJR0kJSW3bXusGhYtWiQ//vij7eF63tjTti2aBr169PXXX6ceQhOcqVOnyf0PPBD4Hp6r5N5//1tmzPhaSpYsmdr+008/yccffWw73J9//il9+vSWNWvW2PahAQEEEEAgsQVIchJ7f1kdAgj4QGDFihUybNgw25nq51Fuu/122/ZYNrzwwvO2hytcuLB0vb6bbXs0DbO+m5X28h7de0j58uXTnusDTXBuveXWtLo5c2enPQ598MjDD8vkyZOlXbu28tVXU0ObeY4AAgggkAQCJDlJsMksEQEEvCtw5MhRGTDgZjl69KjtJPXtWqG/9Nt2jqJB7+ymV1TsSperrpY8eVLsmqOq/3XlirTXNw7c2MBU0tfrXddMRa9EvT/m/dSm/PnzS9Om5mOZXksdAggggEDiCJDkJM5eshIEEPChwM039wt7R7WaNWvKLemuYDi5xGEvvSTHjx83DpErVy65qd9NxrZYVOpNB4JFv2fIVNLXb9++3dJFP9c0cOBdaWt46KHBolefKAgggAACySdAkpN8e86KEUDAIwJPPP64TJkyxXY2OXLkCHzw/gXJlj2bbZ9YNezZs1fGfzre9nBt27aV9EmGbccsNqT/8tSTJ08aj2JXH+z8+uuvib71T0vTpk1TP88TbOMnAggggEByCZDkJNd+s1oEEPCIwPjx4+WVV18JO5s77rhD6tWrF7ZPrBpff+1VOXLkiO3hBgy4xbYtFg3p345n94Wo69evTxuqTJkyaY/1wdatW+W5559LrUtJSZFnnvnn8SmdeIIAAgggkDQCJDlJs9UsFAEEvCIwa9as1LdVhbsyoV98edddA+My5b/+OpL2ORbTgA0aNBD9z8lSvVr1tMPPmD497XH6BzP/d/c1ratRvUb6Jrn33ntE76qmpX+//lKpUsXAIwoCCCCAQLIKkOQk686zbgQQcEVAPxjfs+eNYW80ULdu3cDd1l6O2/zefmuU7Nu3z3a8Pn362rbFquGSDh1E356nZdxH4yx3RdPbRg8fMTy1PVu2bHJx+/apj/V/vvjii7TbT1euXFnuvOuutDYeIIAAAggkp0DO5Fw2q0YAAQTiL7B27Vrp2vW6tCsOphmcfvrp8t5774t+0D8eRT+sP3LUSNuh9G1hnS7tZNseq4batWtLn1595PU3X0+9cUCvXjdK48aNpWqVqrJx00aZO3eu/P3336nD6VWuVq1apT7WqzcPPfRg6mNNfp5++hlJ//meWM2P4yCAAAII+EuAJMdf+8VsEUDApwL6mZFrrrla9u7da7uCfPnyybvvviclSpSw7RPrho8+/li2bNlie9juN3SPy40PdAL/uf8+2bZjm0yYMEH0rXw//PBD6n/pJ9eyZUt58smn0qr0O3GCd1q78sor5dxzm6a18QABBBBAIHkFeLta8u49K0cAgTgJ7N+/P/VOX+GSCf2w/KhRb4le0YhneeON12yHK1CggPS4sadte6wb9OrVK6+8Ku+8M1qaN28upUqVEr06U7x4cTnnnHPkueeelzFjxqbdFnrx4sVpnyUqVqyYPPzwI7GeEsdDAAEEEPCpAFdyfLpxTBsBBPwhoB/q1ys469ats52wfhbl5ZdfkRYtWtj2caJh5syZ8uuvv9oe+vLLLpcCBfLbtjvV0Lp1a9H/tOhb1ExvP9O32d111518J45Tm8BxEUAAAZ8LcCXH5xvI9BFAwLsC+gt69+7dRK842JXs2bPL0KHPSPt0H6S36xvr+mHDXrI9pCZe/W++2bY9Xg2mBEfH5jtx4rUDjIMAAgj4U4Akx5/7xqwRQMAHAgMG3CyzZ8+2nam+FWvwoMFy9dVX2/ZxqkETr/nz59seXj/7UqFCBdt2Nxv4Thw39RkbAQQQ8IcAb1fzxz4xSwQQ8JnAff/5j0yaNCnsrG+/7Xbp3adP2D5ONb700oupH+63O37//u5fxbGbW7jvxFmxYoWMHDFCfl35q2zatCn1cz01atQIvGXwWmnWrJndIalHAAEEEEgwAZKcBNtQloMAAu4LPDN0qIx+d3TYidzY40a55957w/ZxqnHDhg0ydepU28PXqlXLswnB5MmT074Tp1KlSqd8J87Qp5+WV159RY4dO5a2tp07d8rSpUvl008/lWuuvkYefexxSUnJndbOAwQQQACBxBQgyUnMfWVVCCDgksDbb70lL7z4QtjR9VbHjz72WNg+Tja+PGxY2gf2TeP07u3O1SXTXNLX6XfiPPjgA6lV+la/oUOfTbspweuvvXaKu37fkCZBeke733//XU6cOCFjDHS6CgAAOLxJREFUxo5J7f/Ek0+mPyyPEUAAAQQSUIDP5CTgprIkBBBwR+Czzz6TQYMHhX0bWNu2beXFF+w/8O/0zPft2yfjPx1vO0zJkiWlc+fOtu1uNqT/Tpwrrrgi7TtxNm3aLM8+92za1O77z32yYMFC+fjjTwJfIvp9qnfwy1XfH/O+/PTTT2l9eYAAAgggkJgCJDmJua+sCgEE4izw7bffyZ133hH2Csm5554rw4ePiNuXa5oI9IrH4cOHTU2pdV2v65p2dcS2kwsN6b8Tp2jRovLII4+mzeKzQNKmV3m0XHDBBXLLrbemtemDzld1luu7Xp9ad/z4cfnwgw9OaecJAggggEDiCZDkJN6esiIEEIizwKJFi6R3755y9OhR25Hr1asn7777ngSvKNh2dLDhyJGj8t7779mOkDdvXunTt69tu1sN1u/EGZT2haA6pxW/rkibWseOndIep39w2eWXpz1dtXpV2mMeIIAAAggkpgBJTmLuK6tCAIE4Caxdu1a6dr0u7UqCadhq1arJBx98KJpEuFneHf2O7N2713YKHTp0kCJFiti2u9Xwxhuvi941TUuTJk0st9xev359apv+T+XKldIep39QuXKVtKcbN25Me8wDBBBAAIHEFODGA4m5r6wKAQTiIKDf13LNNVeHTRwKFSokgwcPSf3weyynVLt27Uy9rUyvhrw5/E3bKegH+QcMuMW23a0GNQ5+3iYlJUWeffZ5y1T0LWjBkju3+c5p6a+gpb/7WvB1/EQAAQQQSCwBkpzE2k9WgwACcRLQpKFLl6tS794Vbsg//vhDrr++a7guWWr75ZdFojcJiLR8+tmnsnnzZtvuTZs2Fb3i5LXyn//8O+0qWf9+/QN3TKtomWLx4sXT6vbu3Zf2OP2DXbt2pT0tWLBg2mMeIIAAAggkpgBvV0vMfWVVCCDgsMDhvw7LunXrHB4ldod/NfD9MeGKF7/8U78TZ/r06anTDv1OnPRrqV6tRtrTJYsXpT1O/2DJkiVpT72YzKVNjgcIIIAAAjERIMmJCSMHQQABBLwrMGvWrLTPtJhmWblyZWndurWpydW6nTt2pH6OSd9K9/TTQ23fntewUaO0eY4YOUIOHjyU9lwf6FW3YcNeTKurX79+2mMeIIAAAggkpgBJTmLuK6tCAAEE0gRezODLSXv17JXW10sPuvfoITNmfC1DAp9patasme3UOnbsIGeffXZq+86dO6VNmwtk3LiPUhO7KVOmSIeOl8jy5ctT28uUKSNevGpluzgaEEAAAQSyJMBncrLExosQQAABfwjoL/fz5s2znax+58y1ge/G8WqpUKGC9O7TJ8PpvRD4gtUOHdqLftmp3j3tzjtvt7xG72733HPPu36XO8vEqEAAAQQQiLkAV3JiTsoBEUAAAe8I6FWckydP2k7o6quulpQU8x3JbF/kwYZKlSrKd9/Nkosvvtg4u7POOkumTp0uLVq0MLZTiQACCCCQWAJcyUms/WQ1CCAQJ4F8+fIF7la2JU6jZX2YN96wv2101o/qzVfqXdZGjBgp+pa1xYsXy+pVq6RsuTOkfv16Ur58eW9OmlkhgAACCDgiQJLjCCsHRQABBBBwS0Bvra03UvDizRTcMmFcBBBAINkEeLtasu0460UAAQQQQAABBBBAIMEFSHISfINZHgIIIIAAAggggAACySZAkpNsO856EUAAAQQQQAABBBBIcAGSnATfYJaHAAIIIIAAAggggECyCZDkJNuOs14EEEAAAQQQQAABBBJcgCQnwTeY5SGAAAIIIIAAAgggkGwCJDnJtuOsFwEEEEAAAQQQQACBBBcgyUnwDWZ5CCCAAAIIIIAAAggkmwBJTrLtOOtFAAEEEEAAAQQQQCDBBUhyEnyDWR4CCCCAAAIIIIAAAskmQJKTbDvOehFAAAEEEEAAAQQQSHABkpwE32CWhwACCCCAAAIIIIBAsgmQ5CTbjrNeBBBAAAEEEEAAAQQSXIAkJ8E3mOUhgAACCCCAAAIIIJBsAiQ5ybbjrBcBBBBAAAEEEEAAgQQXIMlJ8A1meQgggAACCCCAAAIIJJsASU6y7TjrRQABBBBAAAEEEEAgwQVIchJ8g1keAggggAACCCCAAALJJkCSk2w7znoRQAABBBBAAAEEEEhwAZKcBN9glocAAggg4DOBEz6bL9NFAAEEPChAkuPBTWFKCCS7wMmTyS7A+pNZgH/+ybz7rB0BBGIlQJITK0mOgwACMRMgyYkZJQfyoQD//n24aUwZAQQ8J0CS47ktYUIIIKACJ3nLDv8QklSAJCdJN55lI4BATAVIcmLKycEQQCBWAid4z06sKDmOjwROHPfRZJkqAggg4GEBkhwPbw5TQyCpBQJJDr/wJfW/gORbfODqJVdxkm/bWTECCDgjQJLjjCtHRQCBGAjoL3y8bS0GkBzC+wKBBOc4b9H0/j4xQwQQ8I0ASY5vtoqJIpCcAif0r9v88pecm58sqybBSZadZp0IIBBHgZxxHIuhEEAAgSwJaKKTLXBVJ3u2wMv500yWDHmRNwX0LZm8Rc2be8OsEEDA3wIkOf7eP2aPQNII6C+CxwP/yf+SHc13UgtJT1CCn34Q0CuTgXmmvhVTH1AQQAABBBwRIMlxhJWDIoCAYwKBXwxPufMab2VzjJoDI4AAAggg4FcB/gbq151j3ggggAACCCCAAAIIIGAUIMkxslCJAAIIIIAAAggggAACfhUgyfHrzjFvBBBAAAEEEEAAAQQQMAqQ5BhZqEQAAQQQQAABBBBAAAG/CpDk+HXnmDcCCCCAAAIIIIAAAggYBUhyjCxUIoAAAggggAACCCCAgF8FSHL8unPMGwEEEEAAAQQQQAABBIwCJDlGFioRQAABBBBAAAEEEEDArwIkOX7dOeaNAAIIIIAAAggggAACRgGSHCMLlQgggAACCCCAAAIIIOBXAZIcv+4c80YAAQQQQAABBBBAAAGjAEmOkYVKBBBAAAEEEEAAAQQQ8KsASY5fd455I4AAAggggAACCCCAgFGAJMfIQiUCCCCAAAIIIIAAAgj4VYAkx687x7wRQAABBBBAAAEEEEDAKECSY2ShEgEEEEAAAQQQQAABBPwqQJLj151j3ggggAACCCCAAAIIIGAUIMkxslCJAAIIIIAAAggggAACfhUgyfHrzjFvBBBAAAEEEEAAAQQQMAqQ5BhZqEQAAQQQQAABBBBAAAG/CpDk+HXnmDcCCCCAAAIIIIAAAggYBUhyjCxUIoAAAggggAACCCCAgF8FSHL8unPMGwEEEEAAAQQQQAABBIwCJDlGFioRQAABBBBAAAEEEEDArwIkOX7dOeaNAAIIIIAAAggggAACRgGSHCMLlQgggAACCCCAAAIIIOBXAZIcv+4c80YAAQQQQAABBBBAAAGjAEmOkYVKBBBAAAEEEEAAAQQQ8KsASY5fd455I4AAAggggAACCCCAgFGAJMfIQiUC3hDIli2bdSInrVXUIIAAAr4VMMQ0Y+zz7QKZOAIIuCFAkuOGOmMiEKFAdrEmOSdOGn4jiPB4dEMAAQS8JmCKaabY57V5Mx8EEPC2AEmOt/eH2SW5QPYc1lP072MnklyF5SOAQCIJmGKaKfYl0ppZCwIIOC9g/Q3K+TEZAQEEIhTIkTOHpeexv49Z6qhAAAEE/Cpgimmm2OfX9TFvBBBwR4Akxx13RkUgIoFcuXJa+h09+reljgoEEEDArwKmmGaKfX5dH/NGAAF3BEhy3HFnVAQiEsidO5el319/HbXUUYEAAgj4VcAU00yxz6/rY94IIOCOAEmOO+6MikBEAikpuS39Dh8+YqmjAgEEEPCrgCmmmWKfX9fHvBFAwB0Bkhx33BkVgYgE8ua1Jjl//smVnIjw6IQAAr4QMMU0U+zzxWKYJAIIeEaAJMczW8FEELAK5CuQ11J56NBhSx0VCCCAgF8FTDHNFPv8uj7mjQAC7giQ5LjjzqgIRCRQoEAeS7+DB0hyLChUIICAbwVMMc0U+3y7QCaOAAKuCFhv3eTKNBgUAQRMAoUL5bdUb9q4XR574hNLPRUIIICAHwU0poUWU+wL7cNzBBBAIJwASU44HdoQcFmgcGFrkrN//wEZ/sYEl2fG8AgggIBzAqbY59xoHBkBBBJRgLerJeKusqaEEShevGDCrIWFIIAAApEKEPsilaIfAgjYCZDk2MlQj4AHBEqUIMnxwDYwBQQQiLMAsS/O4AyHQAIKkOQk4KaypMQROO20womzGFaCAAIIRChA7IsQim4IIGArwGdybGloQMB9gdKlixonkZInRXJk528URhwqEUDANwLHT5yQI39Zv+DYLvb5ZmFMFAEEXBcgyXF9C5gAAvYCZcsUMzY+8MD1ckO3lsY2KhFAAAG/CIx+91sZ9NBIy3TtYp+lIxUIIICAjQB/CraBoRoBLwiULl1EcuTMYZnKps17LHVUIIAAAn4TMMUyjXka+ygIIIBANAJcyYlGj9ciEAeBkiWLyratu04ZacuWnac8Dz75ZbnI338Hn/ETAQQQ8IZAzsBvGw1qW+diimUa8ygIIIBAtAIkOdEK8noEHBYodXpxQ5Kz2zjqd/NEtm0zNlGJAAIIuCZw+ul2SY41lmnMoyCAAALRCvB2tWgFeT0CDguULWv9f/hbtpx6ZSc4haLcjC1IwU8EEPCQgF1sMsUyU8zz0FKYCgII+ESAKzk+2SimmbwC5cuXtCx+e8jb14IdigS+VueI9UZFwWZ+IoAAAq4IaGwyFVMsM8U802upQwABBMIJkOSE06ENAQ8IVK4ceJ9HSDl58qSsXLlVatQofUpLscBndUlyTiHhCQIIeEBAY1No0RimsSy0mGJeaB+eI4AAAhkJ8Ha1jIRoR8BlgerVTk1kgtNZuWpz8GHaz9NLpT3kAQIIIOAZAVNsMsUwnbBdzPPMYpgIAgj4QoAkxxfbxCSTWaBmrbLG5a9avcVSX5okx2JCBQIIuC9gik2mGKYztYt57q+CGSCAgJ8ESHL8tFvMNSkFCuRPkZKnWW8+sHq19UpOvjwiRQ1vC0lKOBaNAAKeENCYpLEptJhimMY6jXkUBBBAIFoBkpxoBXk9AnEQaHdhI8soM6f/ZKnTirMbGKupRAABBFwRsItJphhminWuTJpBEUDA9wIkOb7fQhaQDAK1a5e3LPPosWOydOlGS325MpYqKhBAAAHXBEwxSWOXxrDQYop1oX14jgACCEQiQJITiRJ9EHBZoH49a5KjU/pl0W+WmVUoZ6miAgEEEHBNwBSTTLFLJ2gX61ybPAMjgIBvBUhyfLt1TDyZBBo0qCi5cuWyLHnxkvWWuhLFRAoVslRTgQACCMRdQGORxqTQYopdGuM01lEQQACBWAiQ5MRCkWMgEAeBqtXOsIyyfNnvljqtKGe+IZuxL5UIIICAUwJ2scgUu0wxzql5cVwEEEh8AZKcxN9jVpggAnXOrGBZyaqV6y11WlHBmg8Z+1GJAAIIOClgF4tMscsU45ycG8dGAIHEFiDJSez9ZXUJJHBWgyqW1Rw9ekx+nL/WUl/Vmg9Z+lCBAAIIOC1gikUaszR2hRZTjAvtw3MEEEAgUgGSnEil6IeAywKNm1QzzmDe/JWW+ioVRbJns1RTgQACCMRNQGOQxqLQYopZ2scuxoW+nucIIIBAJAIkOZEo0QcBDwjUqllaihS13lFgwYI1ltnlzBF4yxpXcywuVCCAQPwENAZpLAotppilsU1jHAUBBBCIlQBJTqwkOQ4CcRA4s15lyyhLlliTHO1UtaKlKxUIIIBA3ATsYpApZpliW9wmykAIIJCQAiQ5CbmtLCpRBc45u7plabt37ZNlyzZZ6qtZP8Jj6UMFAggg4JSAKQZprNKYFVpMsS20D88RQACBzAiQ5GRGi74IuCxwXotaxhnMmr3cUl8r8BGenLks1VQggAACjgto7NEYFFpMsUr72MW20NfzHAEEEIhUgCQnUin6IeABgSbnVJECBfNbZjJ37gpLnd53oKr13W2WflQggAACsRbQ2GO694kpVmlM09hGQQABBGIpQJITS02OhUAcBM5qWMMyysKFv1rqtKJGVWM1lQgggICjAnaxxxSrTDHN0clxcAQQSAoBkpyk2GYWmUgCzZtb37J28MAhmTPHmujUseZDiUTBWhBAwKMCptijMUpjVWgxxbTQPjxHAAEEMitAkpNZMfoj4LJA69ZnGmcw/evFlvoyp4mcVtJSTQUCCCDgmIDGHI09ocUUo7SPXUwLfT3PEUAAgcwIkORkRou+CHhAoFbNslK2XCnLTObMXmap04paXM0xulCJAALOCNjFHFOM0limMY2CAAIIxFqAJCfWohwPgTgINGtexzLKqpW/ycaNuy319azvbrP0oQIBBBCIlYAp5mhs0hgVWkyxLLQPzxFAAIGsCJDkZEWN1yDgskCbNvWNM5j85UJLfY3ATYsKF7ZUU4EAAgjEXEBjjcac0GKKTdrHLpaFvp7nCCCAQGYFSHIyK0Z/BDwgcEn7syRP3jyWmcz4+mdLnVaYPgRs7EglAgggEIWAXawxxSaNYRrLKAgggIATAiQ5TqhyTATiIHBu87qWUebPWyr79h+21DewdrX0oQIBBBCIVsAUazQmaWwKLaYYFtqH5wgggEBWBUhysirH6xBwWeDCdg2MM/hswg+W+tqBbx7nLWsWFioQQCCGAhpjNNaEFlNM0j52MSz09TxHAAEEsiJAkpMVNV6DgAcELr+ssWTLZv1O8SlTfjLOrr71XgXGflQigAACWRGwizGmmKSxS2MYBQEEEHBKgCTHKVmOi4DDAvnzp0jzf9W3jDJv7mLZvfugpb6RtaulDxUIIIBAVgVMMUZjkcak0KKxS2MYBQEEEHBKgCTHKVmOi0AcBNq3P9s4yseffG+pr1JBpHRpSzUVCCCAQNQCGls0xoQWUyzSPnaxK/T1PEcAAQSyKkCSk1U5XoeABwS6dD5XcubKaZnJF5PnW+q0olE9YzWVCCCAQFQCdrHFFIs0ZmnsoiCAAAJOCpDkOKnLsRFwWCBPnlxy/gUNLaMs/mWlrFy51VLfhLu1WkyoQACB6AVMsUVjkMai0KIxS2MXBQEEEHBSgCTHSV2OjUAcBC6/rKlxlA8/mm2pL1pE5ExuQGBxoQIBBLIuoDFFY0toMcUg7WMXs0Jfz3MEEEAgGgGSnGj0eC0CHhDodOnZUqy49TeMyV/MM87u3EbGaioRQACBLAnYxRRTDNJYpTGLggACCDgtQJLjtDDHRyAOAhddbL0V67atO2XSFwsto9evLVKyhKWaCgQQQCDTAhpLNKaEFo09GoNCiylWhfbhOQIIIBALAZKcWChyDARcFrj2mvOMMxg3bpaxvjFXc4wuVCKAQOYE7GKJXeyxi1WZG5XeCCCAQMYCJDkZG9EDAc8LnHVWRalbv7plnt99u0B+37DbUt8icOHH8D2iln5UIIAAAnYCGkM0loQWjTkae0KLxiiNVRQEEEAgHgIkOfFQZgwE4iDQuXMz4yjvjP7aUl8gv0gT3hZvcaECAQQiF9AYorEktJhijvaxi1Ghr+c5AgggEAsBkpxYKHIMBDwg0KvnBVKgoPU3jgmfmd+y9i/zTdk8sBKmgAACfhCwiyGmmKOxSWMUBQEEEIiXAElOvKQZB4E4CFzaqblllN279snod7+11JcvK1K7lqWaCgQQQCBDAY0dGkNCi8YajTmhxRSbQvvwHAEEEIilAElOLDU5FgIuC/To0co4g7FjZxrrW3I1x+hCJQIIhBewix12scYuNoUfhVYEEEAg6wIkOVm345UIeE6gdq2ycl7LBpZ5rVi+TqZOW2Spr1NDpHIlSzUVCCCAgK2AxgyNHaFFY4zGmtCiMUljEwUBBBCIpwBJTjy1GQuBOAj06NbaOMpbb88w1rc811hNJQIIIGAUsIsZdjHGLiYZD04lAgggECMBkpwYQXIYBLwicNHF9aVmLevlme/n/CI//rTWMs1G9UTOKGeppgIBBBCwCGis0JgRWjS2aIwJLRqLNCZREEAAgXgLkOTEW5zxEIiDQDebqzlvDv/KOPoFLYzVVCKAAAKnCNjFCrvYYheLTjkoTxBAAAEHBEhyHEDlkAi4LdC9+7+kTLnTLNOY9tU8Wbp0o6X+nMAfWsufYammAgEEEEgT0BihsSK0aEzR2BJaNAZpLKIggAACbgiQ5LihzpgIxEGgW7c2xlFefX2ysb41V3OMLlQigMA/AnYxwi6m2MUgPBFAAIF4CJDkxEOZMRBwQeDWWy6S4iWKWEaePGmOLF1mvZqj77OvUtnSnQoEEEAgNTaYPoujsURjSmjR2KMxiIIAAgi4JUCS45Y84yIQB4FuN7Q1jvLyK5OM9e1aGqupRACBJBewiw12scQu9iQ5I8tHAIE4CpDkxBGboRCIt8DdAztK0WKFLcNOmfy9LFhg/T4L/e6LunUs3alAAIEkFtCYYPpeHI0hGktCi8YcjT0UBBBAwE0Bkhw39RkbgTgI9LjxQuMoL7400Vjf3vw1O8a+VCKAQOIL2MUEuxhiF3MSX4oVIoCAlwRIcry0G8wFAQcEBt7VQUqeVsxy5O++XSAzvl5iqT+jjEiLZpZqKhBAIAkFNBZoTAgtGjs0hoQWjTUacygIIICA2wIkOW7vAOMjEAeBPn3aG0d5adjnxvoOgY/y5MtnbKISAQSSREBjgMYCU7GLHXaxxnQM6hBAAAEnBUhynNTl2Ah4RODmm9tJhUrWP8cu+nmlvD9mlmWW+fOKXHiBpZoKBBBIIgGNARoLQovGDI0doUVjjMYaCgIIIOAFAZIcL+wCc0AgDgIDBpg/CPzKq+arOa3PE6lQPg4TYwgEEPCcgJ77GgNMxS5m2MUY0zGoQwABBJwWIMlxWpjjI+ARgeuubS4NGta0zGbLpu3y+JOfWuq1ogN/lDW6UIlAogvYnfsaKzRmhBaNLRpjKAgggIBXBEhyvLITzAOBOAgMHHiZcZQRb06Q337bYWmrVVWkWRNLNRUIIJDAAnrO67kfWjRGaKwwFbvYYupLHQIIIBAPAZKceCgzBgIeEWh1fm25uIP11mknTpyQRx/7yDjLKwP3LChs/aodY18qEUDA3wJ6rus5byoaIzRWhBaNKRpbKAgggICXBEhyvLQbzAWBOAg8eN+VkiNnDstIM6b/IBM+/9FSn5Iicqn5q3YsfalAAAF/C+i5rud8aNHYoDEitGgs0ZhCQQABBLwmQJLjtR1hPgg4LFChYknp17+TcZRnnvnYWN+koUiD+sYmKhFAIEEE9BzXc91U7GKDxhKNKRQEEEDAawIkOV7bEeaDQBwE7vvPZVKpSjnLSBs3bJVBQz6w1GtFl8D3++XPb2yiEgEEfC6QL3Bud7Z5m5rGBI0NoUVjiMYSCgIIIOBFAZIcL+4Kc0IgDgL33mt+i8notyfL9/NWW2ZQqKBIp4st1VQggEACCFwWOLeLBD6PE1o0FmhMMBW7GGLqSx0CCCAQbwGSnHiLMx4CHhHo2KGRtDfchECn9+ijY42zbHa2yNkNjE1UIoCATwX0nNZz21TsYoHGDo0hFAQQQMCrAiQ5Xt0Z5oVAHAQefaSrFChkfQ/asqVr5ImnPjXO4OrAu1OKFjE2UYkAAj4T0HNZz2lT0RigsSC0aMzQ2EFBAAEEvCxAkuPl3WFuCDgscNppBWXg3VcZR3njtU9l/o/WX3Dy5hG5qpPxJVQigIDPBPRc1nM6tOi5rzHAVDRmaOygIIAAAl4WIMnx8u4wNwTiINCn1wVyXssGxpEGDXrPWF+vlkib841NVCKAgE8E2rQU0XPZVOzOfY0VGjMoCCCAgNcFSHK8vkPMD4E4CDzx2PWSksf65Ri/rlgnDw02fz7nsotEqlaJw+QYAgEEYi6g567ebMBU9JzXcz+0aIzQWEFBAAEE/CBAkuOHXWKOCDgsUKnSaXLPvVcbR3n3nS9l8uSfjW3XBW7Qli+fsYlKBBDwqICes3rumoqe63rOm4rGCI0VFAQQQMAPAiQ5ftgl5ohAHAT63dRGzm9tvsXSkP+Oln37D1lmcVox+w8tWzpTgQACnhDQGw3ouRta9BzXc91UNDZojKAggAACfhEgyfHLTjFPBOIg8MzQ7lKkaCHLSDu275Y77xplqdeKRvVE2rUyNlGJAAIeE9BzVc9ZU9FzXM/10KIxQWMDBQEEEPCTAEmOn3aLuSLgsMDppQrLoEHm99zPnPGjPPfCROMMLr1QpG4dYxOVCCDgEQE9R/VcNRU9t/UcNxWNCRobKAgggICfBEhy/LRbzBWBOAh06dJUrr62tXGkl174SGbMXGJsu7GLBH4RMjZRiQACLgvoudkjcI6aip7Tem6bisYCjQkUBBBAwG8CJDl+2zHmi0AcBJ59prvUrF3ZONL9970lu3YdsLTlDtycrXvg3gW5c1uaqEAAARcF9JzUczMlcI6GFj2X9Zw2FY0BGgsoCCCAgB8FSHL8uGvMGYE4CDwztIfkyJnDMtL2bbvkltvesNRrxRllRLp2NjZRiQACLgnoOannpqnouazndGjRc19jAAUBBBDwqwBJjl93jnkj4LBAgwYVZfBg819x581dLA88OMY4A/1Qc6dLjE1UIoBAnAX0XLS70YCew3oum4qe+xoDKAgggIBfBUhy/LpzzBuBOAj07Hm+dLnG/Pmc99+bIiNHzTDOom0LkZbnGZuoRACBOAnoOajnoqnouavnsKnoOa/nPgUBBBDws0C2k4Hi5wUwdwQQcF6gQ8fH5ZeFvxoHGvXWv+WCVnWMbW99ILLgF2MTlQgg4KBAowYiN15jHuDrmcuk541PGRsbNKwpkybeb2yjEgEEEPCTAFdy/LRbzBUBlwReeaWvFCtuvoXswIGvy9p1240z01+yalQ3NlGJAAIOCeg5Z5fg6Lmq56yp6Dmu5zoFAQQQSAQBkpxE2EXWgIDDAhXKl5Chz/Q2jrJ3z37p3/9VOXrkuLH9pq4i5c8wNlGJAAIxFtBzTc85U9FzVM9VPWdNRc9xPdcpCCCAQCIIkOQkwi6yBgTiIHBhu/py3wPmLwpdtfI36dHrJeMs9NbSfbqJlDrN2EwlAgjESEDPMT3X9JwzFT1H9Vw1FT239RynIIAAAokiQJKTKDvJOhCIg8CAm9tJ127tjCPNnf2z3Hb7CGNb0UIifW8QKVrE2EwlAghEKaDnVuo5FjjXTEXPTT1HTUXPaT23KQgggEAiCZDkJNJushYE4iDw1JPXS6vWZxtH+nzCdzJoSOBuA4ZSKvAumJsCd6QubP5oj+EVVCGAQCQCek7puaXnmKnoOannpqnouaznNAUBBBBINAGSnETbUdaDQBwERo++TerUrWocafTbk+XZ5z83tpUrHfhlLHBFp1BBYzOVCCCQSQE9l/QKjp5bpqLnop6TpqLnsJ7LFAQQQCARBUhyEnFXWRMCDgtkCxx/1MhbpXRZ8wdthr34sbzx5jTjLMqX/V+iY/O2GuOLqEQAAYtAocA5pH80qBA4p0xFz0E9F01Fz109h/VcpiCAAAKJKECSk4i7ypoQiINA2bJF5Y3XB0iBAvmMoz3x+Lsy+t1vjW0VAneA6t9DpEhRvqbLCEQlAhkI6LnTL/AWNT2XTEXPPT0HTUXPWT139RymIIAAAokqQJKTqDvLuhCIg0DDhpVk2CsDAn8NNv89eNBDI2XsB7ONMzmjjCY62aREcWMzlQggYCOg54yeO3pV1FT0nNNzz1T0XNVzVs9dCgIIIJDIAiQ5iby7rA2BOAi0bVNXnnvpZtuR/q+9O4Gv6dr3AP7LhMSQSRIzETREkBhiiBqqxpirLlerxmp1cm9bpW7RZ6jevqeTVimqXJ6qqWIsNcfQSBBBRYIIEZFIDAkyvf+Ol360PXufcyQn5+Sc3+rn9Mhea++91nfnkH/2Xv815b1FWLP2sM76mj7Aq2OA6irzCXTuxI0UsGEB5bOifGaUz46uonzWlM+cWlE+q8pnloUCFKCAtQswyLH2K8zxUaAUBIYMDsGs2fKTl0qZ/M7XqoGOtwfwhuzqW09lZ26mAAUKBXzrPfqsKJ8ZXUUJcJTPmlpRPqPKZ5WFAhSggC0IOMyQYgsD5RgpQAHTCrRoUQ/OFSvhwP5TOk+06+dIeHtXRWBg3b/Uly8HtA0CLicDqTf/Us0NFLB5gSaNgddHARUq6KZYteqA3MH5RnelbH3/Xy9g3NiuqvWsoAAFKGBtAgxyrO2KcjwUMKNA61Z+cJTl1g8dPK2zF7t3R8FVVi0MavHX+QB2cl+5dQsgLQO4ek3n7txIAZsUCJFlqcYOB5TPiK6ybPke1Tk4Svt33/sbXpvYU9eu3EYBClDAagUY5FjtpeXAKGAegZCQhoB9ORyOiNXZgX17T8CpXAW0aS3tdJTmTYCcPCDhko5KbqKAjQk82wV4vp/6oBd8tQ1zZq9QbfCPt4firTf7qNazggIUoIC1CjDIsdYry3FRwIwC7do1gp2DeqATceg0Hjy0Q2gHf5299Jd1RuXJN5w5p7OaGylgEwJDBgA9OqsPdd7HG/HZp2tVG/zznaH4xyQGOKpArKAABaxawK5AilWPkIOjAAXMJvDFl9sxb+4q1fMPG95d1vIYoVp/WoKclbKW4d27qk1YQQGrE6gkAf6I54Cmun8HUDjeKVNXYvWqnapjnzxlOF5/jY+oqQKxggIUsHoBBjlWf4k5QAqYV+CbxbvwXzO+V+1Ez97tsPCrV1TrUyQRwfc/SFKCRNUmrKCA1QjUrQO8+DzgU1V9SBNe/Rrbt+pOy67s9a8ZL+Llcd3UD8AaClCAAjYgwCDHBi4yh0gBcwusWCmZnyYvVu1GqzYBWLL4Dbi6Oqu2+V6eyjl2XLWaFRQo8wJtWkqAM0R9GJmZ2Rgz7nNEHtM9303Zc+68cXhhREf1g7CGAhSggI0IMMixkQvNYVLA3AIbN0XizTe+Ql5urs6u1PWtiS8/f0VSTMuvslXKzv3AT1tVKrmZAmVYoF9voPvT6gOIiUnEa298jcsXr+ps5ODoiM9koc8B/SUVGwsFKEABCoBBDr8JKECBUhPYt+8sJk5cgIxbt3We06WiCz6W30SHhcmvtFXKmThgzQZJNZ2u0oCbKVCGBDxlYc+hA4EmupMNFo4kPPw43pU7oVn3snSOzM29ChYsmIhOnWQxHRYKUIACFCgUYJDDbwQKUKBUBWJjkzD+5S/lN9Lqi+FM+udQvPm6elaoe9nAf9YDp2JKtes8GQVKVKBZIPD3QZJJUP0pTXz2xRbM/+81quet61sDi755DQEBtVTbsIICFKCALQowyLHFq84xU8DMAmlpdzFq9BeIijyr2pP+Azvhs/ljVOuVCj6+psnDSgsW0Pd4mtL1NyctwaYN+1RHEdyqMZYtfR2enpKOjYUCFKAABf4gwCDnDxz8ggIUKE2BceMXYtuWCNVTNm3WSAKdcfDz81Ftc1Gyrq3ZBCTpnqqguh8rKGAOgVo15fG0/oCv+tQzxMenSICzGKdPnVftYq8+7bF40QTVelZQgAIUsHUBBjm2/h3A8VPAzAIzZq7Ft4s2q/aiUuWK+HDmSxg0KES1jVLxYziw96BmE1ZSwKwCnUOB58K0u7B+/VF8MP073L1zT7Xh2PF9MWO6Rho21T1ZQQEKUMB2BBjk2M615kgpYLECy5fvw7SpS1Eg/6mVkaP6YOb0oWrVhduVxUPXbwFupGo2YyUFSlXA2wsYJFPMtBb3VDo0feYaLF8m38AqxQ52mDVnNEaO7KTSgpspQAEKUKBIgEFOkQTfKUABswpERMRh0qRFuJqUotoPZQ7Cv+eN1nx8Tdn5B7kxtP+Q6mFYQYFSE3i6A/B8X+3TKY+nvTN5qeYctZq1fDB//ni0b6+Rhk37NKylAAUoYFMCDHJs6nJzsBSwbIGMjCxMmPANDh6IVu2os0sFTJ06QhY81FhURPY+ewHYtI1zdVQhWWFSAWXuTf9eQOMG2qdZsXI/5sxZieys+6oNQzsGYeHCl+Hm5qLahhUUoAAFKPBHAQY5f/TgVxSggAUITJd5Oks05ukoXezTNxSffPwSnJ3LafZ4yy/A9p+BAvUn4TT3ZyUFjBGwswN6Pivfn12198rOfoi33/0OWzZrTyQbI/NvZnL+jTYmaylAAQroEGCQowOFmyhAAfMLrFt/DB9MW47MzDuqnalW3QvT3h+uuXiosnPKTeCnncDJU6qHYgUFii3QvBnQrzvgU1X7UMrinrNmr8L1ZPXJY66ulfHhrJEYPKiN9sFYSwEKUIACOgUY5Ohk4UYKUMASBBKv3JR5Oktx9PBpze4Mfq4rPpo7Ak5OjprtouUw23YB165rNmMlBYwSqFEN6NUNCGqqvVtOTi7em7IS636U24saJaRdU5l/Mxp1auuJljSOwSoKUIACti7AIMfWvwM4fgqUAYFZs9dh4VeyGI5GqVbDC5PfGYqBA/X/5vvnA8DPe4GsexoHZBUF9Ai4VASe7SyvjnoaSvWGDccw799rcP2a+t0b5SgTXu0vdycH6z8gW1CAAhSggKYAgxxNHlZSgAKWIvDLnlhMm7YCiZeuaXapZ+92ModhGHx83DTbZcs87627gT0S8LBQwFiBLhLY9H4GcK6gvWdKSoakhl6N7VsPazasU68GZs16AV27BGi2YyUFKEABChgmwCDHMCe2ogAFLEBASR7w1qRlWLd2j2ZvXFyc8dobg/DqhB6a7ZTKG+nADnl66Gik3qZsQAGEtAJ6SFIBbw/9GF8t3IEvP1+PrKxszcaDh3TBp/NHQUlawEIBClCAAiUjwCCnZBx5FApQoBQF1m/4FbNnr0ZKsmQU0ChNAxvi7bcHo3OnJhqtHlUlJcsjbPuA4yf0NmUDGxRo2UIeS5M1OGtV1z/4vfvO4JNP1uF0TJxmY5/qVfH++8MwaGBrzXaspAAFKEAB4wUY5Bhvxj0oQAELEMi+n4N3J6/Ahh/36u1NWL9QTJk8BDVruutte0Wehtslj7AdV1+qR+8x2MB6BFoGAd3k0bTaNfSP6erVW5g7by3Cf9JOC60caeBznfHxvBfkcTcn/QdmCwpQgAIUMFqAQY7RZNyBAhSwJIHwLdGYO3cNLl/Unqvj5OSEUWPCMPW9gQZ1/2qKzNeRn1WP/GpQczayMoG2cnOlSyhQ08ewgc35aAOWLQlHTk6O5g51fWtgypShCOsj0RMLBShAAQqYTIBBjsloeWAKUKA0BT6Y/gOWfhuu95TePp4YPz4MY8fIrHEDSnoGsE/mjEdIsJOdZcAObFJmBZxdgPYS3HRqC3jov+lXOM5vl+zGokXhuJGSpnfco8eG4cOZz+ttxwYUoAAFKFB8AQY5xTfkEShAAQsRiI6+hFlz1uJoRIzeHvk1qI3xL4dh6JB2etsqDXLzJNg5Ahw+BlyXuzws1iNQTe7WtJPM40pw4+hg2LjWrD2MRd+EI/7CFb07hLQPxLSpQxAUVE9vWzagAAUoQIGSEWCQUzKOPAoFKGBBAitWHsBnn27UXFG+qLtNAvwwbnwvDOwvP+UaWGLOPbqzExNr4A5sZpECgZKtWblzE+hvePc2bDqGxYu24UxsvN6dqlX3wptvDcALI2RSDwsFKEABCpSqAIOcUuXmyShAgdIUmPHhWixdvAX5+fl6TxvQtAFGj+6BwYNC9LYtapB2S4KdKCBKkhSkaid6K9qF72YW8KoKBMt0mPbBgKeBj6QpXV63/iiWLt2B2NMX9I7A3t4eo8f1wYwPhuhtywYUoAAFKGAaAQY5pnHlUSlAAQsRuHQpFR/NWy8Zrw4Z1KOGjerhxRe7yW/fnzaofVGj2N+ASEk/fVLu7jx8WLSV75YgUK4c0Fzu2rSSNNABTxnXoxUr9+P773ch7vwlg3YM69cB700ehHr1vAxqz0YUoAAFKGAaAQY5pnHlUSlAAQsTOHLkAv5n/iZEHDxpUM9q1PDG0GFd8Mr4nihX3sCJGnLkfJm7c1SCnRMS7MSeMehUbGQigQBZHqmFBDchEtzYG34J8fBBHr5etB1rVu/BtWs3DOpd+9Dm+Mek/mjbtoFB7dmIAhSgAAVMK8Agx7S+PDoFKGBhAtt3nMSCBVsQfVwm1hhQXFyc0X9AR4x66Rk0amTASpCPHTPrPhB9Gjglwc45udOTJwEQi+kEHCSQ8Zc7Nc0kuAlqCrhUMO5c588nY9l3u7Fp4wFkZWUbtHNQS39MnNgHPXs0N6g9G1GAAhSgQOkIMMgpHWeehQIUsDCBTT9FYuHC7Yg5ed7gnnUIDcKwvz2NsLCWBu9T1DA3Vx5lk2BHeaztN5nWkZlZVMP34gi4ugJPyc0T5TG05hLcODoaf7Tw8ONY/b/7ceigTK4ysAQ2b4QJE3qif79WBu7BZhSgAAUoUJoCDHJKU5vnogAFLE5ACXYWL96JE1GG3dlRBqA8yqbMvfj78FDUrfNkcy8uJUnAI/FVXDyQkCCPuRVYHI1FdsjeDqhfH2joJ4FNI6BerSfr5uXEVPxn1cHCuVqGPpKmnKlFsD/GjevO4ObJ2LkXBShAgVITYJBTatQ8EQUoYMkCO38+VRjsHD50yqhuKmugDOjbDsOGhRq13+ONlTV4lLs7Fy4C8ZeBxCuyLk/u4y1s98/KnZk6tQG/ukAD30d3bQxdy0aX2urVB7Fx82GD1lJ6fP92HZoVBjfdn232+Gb+mQIUoAAFLFSAQY6FXhh2iwIUMI/AsWPxWLJ0F7ZsNiwbW1Evlbk7XboGo2/fEJmfITPdi1mUYCchEbgsd3yuXQVu2EiKam9J8VyjJlBX7tDUr/MouCkmJbbvOIHNm49izy9RBs+1KTpnn74dMGZ0N7RpI7eOWChAAQpQoMwIMMgpM5eKHaUABUpTICkpHYu/3YX16w7gVrpxE2jcPFzRuVMQevVqiR7dS2ZCupLE4IoEO0nJEvRcB65L0i9lbZ6srNJUKblzubgAypo11bwlqKkG1JKcDrUluDE2WYBaj3bsPIlt245j775oZBh5/dzl+g0a3BHjxnZDrVoeaqfgdgpQgAIUsGABBjkWfHHYNQpQwDIEli/fhzU/HMCpE4YnKSjqeeUqldC+QyCe6docvXsGo1JlI1N+FR1I5T1D4q8UCXZS04CbyisDuHULuH2nAJkZdmab66PMnXF1K0CVynZwdwequsnLUwIbeflIcOMmCQNKsty9cx9bt0dh9y8nEXEoBndu3zX68M1aNMLQ5zti5MhORu/LHShAAQpQwLIEGORY1vVgbyhAAQsWiDyegFWrDmDrliO4e+feE/U0KLgxOoQGoEvnpmgZLDPoTVyUIEjpaubtR+/3JDOycvfnvtwZuv8AeJDzaPHSHHlXUlwrr/x8oOD/EyHYSbBibw8o6ZmVl5MToCyuWV7eK5SXl8Rsyl2Zis5A5YoS2FR59F7SQYwupuNRCdiz97RkRYtFdNRZXU30bqskne7dpy2GD++IVi1Nfz30dogNKEABClCgRAQY5JQIIw9CAQrYmsBKycy1ccNhHImIeeKhK4+1BQc3QkiIP0LbN0ZAgExEYVEViI1NwsGIszh69Byios4b/Rja4wduqySMGNgOIyRDHgsFKEABClifAIMc67umHBEFKFCKAldl7s6atYdl/kckzsbGF+vMbu6uCGhaH8FBfmjZsgFC2jSAs7PcNrHBkp39EEePXcDx4xcQFR2P2NMJyLhl3NyoP7M1DvCTeVKtMHRIO9TkXJs/8/BrClCAAlYlwCDHqi4nB0MBCphT4Oy5ZGzcdBS7dkbjt3OSD7oESr36NeHvXwdNGtdFYKC8mtZB1aqVS+DIlnOImzfvIOZ0ImJiLuPM2cs4dy4RlxIky0IJlKf8fdGtexAG9A9BY3/JbsBCAQpQgAI2IcAgxyYuMwdJAQqUtkBcXArCt0Riz55TiIp8svkian328HRDnbrV4OtbHfV9feBXvzr8/KrJIpleMmdGFpaxwJKTkyuLnqYiPv464hOSkXAxBRcvJiPx8nWkp0m2hBIswa0ao0uXZgjr0woNG/qU4JF5KApQgAIUKCsCDHLKypViPylAgTIrkJGZhW1bo2WSfIzMJzmLtFRJf2ai4ilpzLy8POBdzR0+Xm7w9lG+dpV0za6S3awyPDwqwV1ebq4ucHSUjALFKLm5+VDGdiv9LtLldTPtjqS1zkRqaiZupGQgJTUDN67fkq/TkaakfTNR8fRyl3lNEth0DkSv3kGFYzPRqXhYClCAAhQoIwIMcsrIhWI3KUAB6xGIjr4kAU8sjhw5J2mp43D3rnkWuyknadIqyJwf5b2cpEtzcnSAo5MD7O0cYKfkgJZSkF8gaajzkJuTh5zcPDyUdGwPHz7EfZkzo7ybo1Sq5IJmLRqibVt/CWwCEBRUzxzd4DkpQAEKUMCCBRjkWPDFYdcoQAHbEDgWmYCIiHOFk+xjYy7KXRBZ8IbldwFvH08EBPoWJmNo394fbVox1fPvOPwDBShAAQroFGCQo5OFGylAAQqYTyDxSjp+/fUCok9cxJnYy4iLu4JbacXLLGa+0Rh3ZndPV5lHUxtNAuoiqIUvWrdugDq1PYw7CFtTgAIUoIDNCzDIsflvAQJQgAJlQSA5OQOnJPuYslZMXNxVmbSfgqQrKZJWWVb5LIPFzb0KatX2keQJPhLU1CxcI6iZZI+rXt2tDI6GXaYABShAAUsTYJBjaVeE/aEABShghEBGxj2cvyCZyhJuIDHxBpKS0pCcnI7UG7eQln4bmfLKy8834ojFb+pgbw9XjyrwlJeXt7sELh6oVcsTdep4w7e+Nxo18IGbW8Xin4hHoAAFKEABCqgIMMhRgeFmClCAAtYikHrztszzuY00yX6mZEHLlIxot+9kS8KD+7iX9UCSCDzAgwe5eJiTg1xJLpCXV4CCgoLC4dvZ2cHBwU4ysTmgnJMTypd3lGQF5VHRpTwqVaqAKpWd4SqZ2pSsbZ6Svc3bRwKbqlWshY7joAAFKECBMirAIKeMXjh2mwIUoAAFKEABClCAAhTQLVC8RRJ0H5NbKUABClCAAhSgAAUoQAEKmE2AQY7Z6HliClCAAhSgAAUoQAEKUMAUAgxyTKHKY1KAAhSgAAUoQAEKUIACZhNgkGM2ep6YAhSgAAUoQAEKUIACFDCFAIMcU6jymBSgAAUoQAEKUIACFKCA2QQY5JiNniemAAUoQAEKUIACFKAABUwhwCDHFKo8JgUoQAEKUIACFKAABShgNgEGOWaj54kpQAEKUIACFKAABShAAVMIOO7evbtwZeu8vDxZ0doR+fn5hedRVrl+vCj1Dg4Ov6+CrdTZ29v/3r5oP2Xbn7crXxe1z83N/cN5lDplZW2e33r8Cy+2/E/5nuC15/c+P/uP/q7k3338u//xf2P5bx//7efPPvzZjz/7mvZn3/8DwJRY2dfa4i8AAAAASUVORK5CYII=", + "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cmVjdCB4PSI2OC41MDAxIiB5PSIxNDEuMzE5IiB3aWR0aD0iOTYuNjcyNCIgaGVpZ2h0PSI2MyIgcng9IjMxLjUiIHRyYW5zZm9ybT0icm90YXRlKC05MCA2OC41MDAxIDE0MS4zMTkpIiBmaWxsPSIjNjIxNkZGIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJtYXNrMF8zNDYxXzQ3NDU2IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI3MCIgeT0iNDYiIHdpZHRoPSI2MCIgaGVpZ2h0PSI5NCI+CjxyZWN0IHg9IjcwLjY3MyIgeT0iMTM5LjE0NyIgd2lkdGg9IjkyLjMyNzYiIGhlaWdodD0iNTguNjU1MiIgcng9IjI5LjMyNzYiIHRyYW5zZm9ybT0icm90YXRlKC05MCA3MC42NzMgMTM5LjE0NykiIGZpbGw9IiNGMUYxRjkiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF8zNDYxXzQ3NDU2KSI+CjxyZWN0IHg9IjcwLjEyOTkiIHk9Ijk4LjAxNzgiIHdpZHRoPSI1OS43NDE0IiBoZWlnaHQ9IjkzLjQxMzgiIGZpbGw9IiM3QThCRkYiLz4KPHJlY3QgeD0iNzAuMTI5OSIgeT0iOTguMDE3OCIgd2lkdGg9IjU5Ljc0MTQiIGhlaWdodD0iMC41NDMxMDMiIGZpbGw9IiM3QThCRkYiLz4KPHJlY3QgeD0iNzAuMTI5OSIgeT0iOTguMDE3OCIgd2lkdGg9IjU5Ljc0MTQiIGhlaWdodD0iMC41NDMxMDMiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuMSIvPgo8L2c+CjxwYXRoIGQ9Ik02OC4yMjg1IDExMi44NDVIMTMxLjIyOSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTY4Ljc3MTUgNzMuNDMxNkgxMzEuNzcxIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8bWFzayBpZD0icGF0aC0xMC1pbnNpZGUtMV8zNDYxXzQ3NDU2IiBmaWxsPSJ3aGl0ZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA4LjE0NiAzNS45NTc1SDkyLjM5NjVWNDUuNzMzNEM5Mi4zOTY1IDQ2LjYzMzIgOTUuOTIyMiA0Ny4zNjI3IDEwMC4yNzEgNDcuMzYyN0MxMDQuNjIxIDQ3LjM2MjcgMTA4LjE0NiA0Ni42MzMyIDEwOC4xNDYgNDUuNzMzNFYzNS45NTc1WiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA4LjE0NiAzNS45NTc1SDkyLjM5NjVWNDUuNzMzNEM5Mi4zOTY1IDQ2LjYzMzIgOTUuOTIyMiA0Ny4zNjI3IDEwMC4yNzEgNDcuMzYyN0MxMDQuNjIxIDQ3LjM2MjcgMTA4LjE0NiA0Ni42MzMyIDEwOC4xNDYgNDUuNzMzNFYzNS45NTc1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTkyLjM5NjUgMzUuOTU3NVYzNC44NzEzSDkxLjMxMDNWMzUuOTU3NUg5Mi4zOTY1Wk0xMDguMTQ2IDM1Ljk1NzVIMTA5LjIzM1YzNC44NzEzSDEwOC4xNDZWMzUuOTU3NVpNOTIuMzk2NSAzNy4wNDM3SDEwOC4xNDZWMzQuODcxM0g5Mi4zOTY1VjM3LjA0MzdaTTkzLjQ4MjcgNDUuNzMzNFYzNS45NTc1SDkxLjMxMDNWNDUuNzMzNEg5My40ODI3Wk0xMDAuMjcxIDQ2LjI3NjVDOTguMTQ3OCA0Ni4yNzY1IDk2LjI1NjMgNDYuMDk3NiA5NC45MjMxIDQ1LjgyMThDOTQuMjQ3NiA0NS42ODIgOTMuNzcyNSA0NS41Mjg3IDkzLjQ5MjYgNDUuMzkxOUM5My4zNTA1IDQ1LjMyMjMgOTMuMzE0NyA0NS4yODM3IDkzLjMyODggNDUuMjk3OUM5My4zNDYxIDQ1LjMxNTQgOTMuNDgyNyA0NS40NjQ0IDkzLjQ4MjcgNDUuNzMzNEg5MS4zMTAzQzkxLjMxMDMgNDYuMjI3MyA5MS41NTcxIDQ2LjU5NTkgOTEuNzg0MiA0Ni44MjU2QzkyLjAwOCA0Ny4wNTE5IDkyLjI4MTcgNDcuMjE3OSA5Mi41MzgxIDQ3LjM0MzNDOTMuMDU1MiA0Ny41OTYzIDkzLjczMzQgNDcuNzk0MSA5NC40ODI5IDQ3Ljk0OTJDOTUuOTk5OSA0OC4yNjMgOTguMDQ1OSA0OC40NDg5IDEwMC4yNzEgNDguNDQ4OVY0Ni4yNzY1Wk0xMDcuMDYgNDUuNzMzNEMxMDcuMDYgNDUuNDY0NCAxMDcuMTk3IDQ1LjMxNTQgMTA3LjIxNCA0NS4yOTc5QzEwNy4yMjggNDUuMjgzNyAxMDcuMTkzIDQ1LjMyMjMgMTA3LjA1IDQ1LjM5MTlDMTA2Ljc3IDQ1LjUyODcgMTA2LjI5NSA0NS42ODIgMTA1LjYyIDQ1LjgyMThDMTA0LjI4NyA0Ni4wOTc2IDEwMi4zOTUgNDYuMjc2NSAxMDAuMjcxIDQ2LjI3NjVWNDguNDQ4OUMxMDIuNDk3IDQ4LjQ0ODkgMTA0LjU0MyA0OC4yNjMgMTA2LjA2IDQ3Ljk0OTJDMTA2LjgxIDQ3Ljc5NDEgMTA3LjQ4OCA0Ny41OTYzIDEwOC4wMDUgNDcuMzQzM0MxMDguMjYxIDQ3LjIxNzkgMTA4LjUzNSA0Ny4wNTE5IDEwOC43NTkgNDYuODI1NkMxMDguOTg2IDQ2LjU5NTkgMTA5LjIzMyA0Ni4yMjczIDEwOS4yMzMgNDUuNzMzNEgxMDcuMDZaTTEwNy4wNiAzNS45NTc1VjQ1LjczMzRIMTA5LjIzM1YzNS45NTc1SDEwNy4wNloiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC0xMC1pbnNpZGUtMV8zNDYxXzQ3NDU2KSIvPgo8cGF0aCBkPSJNMTA3LjgwMiAzNi4zNjAzQzEwNy45MTcgMzYuNDEyNyAxMDguMDAxIDM2LjQ2MDQgMTA4LjA2IDM2LjUwMDdDMTA4LjAwMSAzNi41NDA5IDEwNy45MTcgMzYuNTg4NiAxMDcuODAyIDM2LjY0MUMxMDcuNDMzIDM2LjgwOTggMTA2Ljg2NSAzNi45NzU0IDEwNi4xMjEgMzcuMTE5NUMxMDQuNjQxIDM3LjQwNiAxMDIuNTcyIDM3LjU4NjkgMTAwLjI3MiAzNy41ODY5Qzk3Ljk3MDggMzcuNTg2OSA5NS45MDI1IDM3LjQwNiA5NC40MjIzIDM3LjExOTVDOTMuNjc3OCAzNi45NzU0IDkzLjEwOTggMzYuODA5OCA5Mi43NDEgMzYuNjQxQzkyLjYyNjYgMzYuNTg4NiA5Mi41NDI1IDM2LjU0MDkgOTIuNDgyNyAzNi41MDA2QzkyLjU0MjUgMzYuNDYwNCA5Mi42MjY2IDM2LjQxMjcgOTIuNzQxIDM2LjM2MDNDOTMuMTA5OCAzNi4xOTE1IDkzLjY3NzggMzYuMDI1OSA5NC40MjIzIDM1Ljg4MThDOTUuOTAyNSAzNS41OTUzIDk3Ljk3MDggMzUuNDE0NCAxMDAuMjcyIDM1LjQxNDRDMTAyLjU3MiAzNS40MTQ0IDEwNC42NDEgMzUuNTk1MyAxMDYuMTIxIDM1Ljg4MThDMTA2Ljg2NSAzNi4wMjU5IDEwNy40MzMgMzYuMTkxNSAxMDcuODAyIDM2LjM2MDNaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEwNy44MDIgMzQuNzMwOUMxMDcuOTE3IDM0Ljc4MzMgMTA4LjAwMSAzNC44MzEgMTA4LjA2IDM0Ljg3MTNDMTA4LjAwMSAzNC45MTE1IDEwNy45MTcgMzQuOTU5MiAxMDcuODAyIDM1LjAxMTZDMTA3LjQzMyAzNS4xODA0IDEwNi44NjUgMzUuMzQ2IDEwNi4xMjEgMzUuNDkwMUMxMDQuNjQxIDM1Ljc3NjYgMTAyLjU3MiAzNS45NTc1IDEwMC4yNzIgMzUuOTU3NUM5Ny45NzA4IDM1Ljk1NzUgOTUuOTAyNSAzNS43NzY2IDk0LjQyMjMgMzUuNDkwMUM5My42Nzc4IDM1LjM0NiA5My4xMDk4IDM1LjE4MDQgOTIuNzQxIDM1LjAxMTZDOTIuNjI2NiAzNC45NTkyIDkyLjU0MjUgMzQuOTExNSA5Mi40ODI3IDM0Ljg3MTNDOTIuNTQyNSAzNC44MzEgOTIuNjI2NiAzNC43ODMzIDkyLjc0MSAzNC43MzA5QzkzLjEwOTggMzQuNTYyMSA5My42Nzc4IDM0LjM5NjUgOTQuNDIyMyAzNC4yNTI0Qzk1LjkwMjUgMzMuOTY1OSA5Ny45NzA4IDMzLjc4NSAxMDAuMjcyIDMzLjc4NUMxMDIuNTcyIDMzLjc4NSAxMDQuNjQxIDMzLjk2NTkgMTA2LjEyMSAzNC4yNTI0QzEwNi44NjUgMzQuMzk2NSAxMDcuNDMzIDM0LjU2MjEgMTA3LjgwMiAzNC43MzA5WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2JfMzQ2MV80NzQ1NikiPgo8cmVjdCB4PSI4MC43MTc4IiB5PSI4MS41NjI3IiB3aWR0aD0iMzguNTY0MSIgaGVpZ2h0PSIyMy40NjE1IiByeD0iMi4xNjU3OSIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNOTQuMDk0NyA5NS41MTI4Vjk2Ljg3ODJIODYuNjI3N0w4Ni41NzA4IDk1Ljg0N0w5MS4wMzY4IDg4Ljg0OTRIOTIuNDA5M0w5MC45MjMgOTEuMzk1M0w4OC4zNTU4IDk1LjUxMjhIOTQuMDk0N1pNOTIuODAwNCA4OC44NDk0Vjk5LjIwMzZIOTEuMDg2NVY4OC44NDk0SDkyLjgwMDRaTTEwMS45ODggOTMuMTU4OVY5NC44NTE0QzEwMS45ODggOTUuNjYyMSAxMDEuOTA4IDk2LjM1NDMgMTAxLjc0NiA5Ni45MjhDMTAxLjU5IDk3LjQ5NjkgMTAxLjM2MiA5Ny45NTkxIDEwMS4wNjQgOTguMzE0N0MxMDAuNzY1IDk4LjY3MDMgMTAwLjQwNyA5OC45MzEgOTkuOTkgOTkuMDk2OUM5OS41Nzc1IDk5LjI2MjkgOTkuMTE1MyA5OS4zNDU4IDk4LjYwMzMgOTkuMzQ1OEM5OC4xOTU1IDk5LjM0NTggOTcuODE2MyA5OS4yOTM3IDk3LjQ2NTQgOTkuMTg5NEM5Ny4xMTk0IDk5LjA4NTEgOTYuODA2NSA5OC45MjE1IDk2LjUyNjcgOTguNjk4N0M5Ni4yNDcgOTguNDc1OSA5Ni4wMDc2IDk4LjE4OTEgOTUuODA4NSA5Ny44MzgyQzk1LjYxNDEgOTcuNDgyNyA5NS40NjI0IDk3LjA1ODMgOTUuMzUzNCA5Ni41NjUzQzk1LjI0OTEgOTYuMDcyMiA5NS4xOTY5IDk1LjUwMSA5NS4xOTY5IDk0Ljg1MTRWOTMuMTU4OUM5NS4xOTY5IDkyLjM0MzUgOTUuMjc3NSA5MS42NTYxIDk1LjQzODcgOTEuMDk2NkM5NS41OTk5IDkwLjUzMjUgOTUuODI5OCA5MC4wNzUgOTYuMTI4NSA4OS43MjQxQzk2LjQyNzIgODkuMzY4NiA5Ni43ODI4IDg5LjExMDIgOTcuMTk1MiA4OC45NDlDOTcuNjEyNCA4OC43ODc4IDk4LjA3NyA4OC43MDcyIDk4LjU4OSA4OC43MDcyQzk5LjAwMTUgODguNzA3MiA5OS4zODA4IDg4Ljc1OTQgOTkuNzI2OSA4OC44NjM3QzEwMC4wNzggODguOTYzMiAxMDAuMzkxIDg5LjEyMiAxMDAuNjY2IDg5LjM0MDFDMTAwLjk0NSA4OS41NTgyIDEwMS4xODIgODkuODQyNyAxMDEuMzc3IDkwLjE5MzVDMTAxLjU3NiA5MC41Mzk2IDEwMS43MjggOTAuOTU5MiAxMDEuODMyIDkxLjQ1MjJDMTAxLjkzNiA5MS45NDA1IDEwMS45ODggOTIuNTA5NCAxMDEuOTg4IDkzLjE1ODlaTTEwMC4yNzQgOTUuMDkzMlY5Mi45MDI5QzEwMC4yNzQgOTIuNDkwNSAxMDAuMjUxIDkyLjEyNzggMTAwLjIwMyA5MS44MTQ5QzEwMC4xNTYgOTEuNDk3MiAxMDAuMDg1IDkxLjIyOTQgOTkuOTkgOTEuMDExM0M5OS44OTk5IDkwLjc4ODUgOTkuNzg2MSA5MC42MDgzIDk5LjY0ODYgOTAuNDcwOEM5OS41MTEyIDkwLjMyODYgOTkuMzU0NyA5MC4yMjY3IDk5LjE3OTMgOTAuMTY1MUM5OS4wMDM5IDkwLjA5ODcgOTguODA3MSA5MC4wNjU1IDk4LjU4OSA5MC4wNjU1Qzk4LjMyMzYgOTAuMDY1NSA5OC4wODY1IDkwLjExNzYgOTcuODc3OSA5MC4yMjE5Qzk3LjY2OTMgOTAuMzIxNSA5Ny40OTM5IDkwLjQ4MjcgOTcuMzUxNyA5MC43MDU1Qzk3LjIwOTQgOTAuOTI4MyA5Ny4xMDA0IDkxLjIyMjMgOTcuMDI0NSA5MS41ODczQzk2Ljk1MzQgOTEuOTQ3NiA5Ni45MTc5IDkyLjM4NjIgOTYuOTE3OSA5Mi45MDI5Vjk1LjA5MzJDOTYuOTE3OSA5NS41MTA0IDk2Ljk0MTYgOTUuODc3OSA5Ni45ODkgOTYuMTk1NUM5Ny4wMzY0IDk2LjUxMzEgOTcuMTA3NSA5Ni43ODU3IDk3LjIwMjMgOTcuMDEzM0M5Ny4yOTcxIDk3LjIzNjEgOTcuNDEwOSA5Ny40MjEgOTcuNTQzNyA5Ny41NjhDOTcuNjgxMiA5Ny43MTAyIDk3LjgzNzYgOTcuODE0NSA5OC4wMTMgOTcuODgwOUM5OC4xOTMyIDk3Ljk0NzMgOTguMzg5OSA5Ny45ODA1IDk4LjYwMzMgOTcuOTgwNUM5OC44NzM1IDk3Ljk4MDUgOTkuMTEyOSA5Ny45MjgzIDk5LjMyMTUgOTcuODI0Qzk5LjUzMDEgOTcuNzE5NyA5OS43MDU1IDk3LjU1MzggOTkuODQ3OCA5Ny4zMjYyQzk5Ljk5IDk3LjA5MzkgMTAwLjA5NyA5Ni43OTI5IDEwMC4xNjggOTYuNDIzMUMxMDAuMjM5IDk2LjA1MzMgMTAwLjI3NCA5NS42MSAxMDAuMjc0IDk1LjA5MzJaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjxwYXRoIGQ9Ik0xMDcuMjY1IDk0LjMxOTJWOTMuOTc3QzEwNy4yNjUgOTMuNzMxMSAxMDcuMzE4IDkzLjUwNzMgMTA3LjQyNSA5My4zMDU5QzEwNy41MzEgOTMuMTA0NCAxMDcuNjg3IDkyLjk0MjkgMTA3Ljg5MSA5Mi44MjE0QzEwOC4wOTYgOTIuNjk5OSAxMDguMzQyIDkyLjYzOTIgMTA4LjYyOSA5Mi42MzkyQzEwOC45MjYgOTIuNjM5MiAxMDkuMTc0IDkyLjY5OTkgMTA5LjM3NiA5Mi44MjE0QzEwOS41OCA5Mi45NDI5IDEwOS43MzYgOTMuMTA0NCAxMDkuODQzIDkzLjMwNTlDMTA5Ljk0OSA5My41MDczIDExMC4wMDMgOTMuNzMxMSAxMTAuMDAzIDkzLjk3N1Y5NC4zMTkyQzExMC4wMDMgOTQuNTU5MiAxMDkuOTQ5IDk0Ljc4IDEwOS44NDMgOTQuOTgxNUMxMDkuNzM5IDk1LjE4MyAxMDkuNTg1IDk1LjM0NDUgMTA5LjM4IDk1LjQ2NTlDMTA5LjE3OSA5NS41ODc0IDEwOC45MzIgOTUuNjQ4MiAxMDguNjM4IDk1LjY0ODJDMTA4LjM0OCA5NS42NDgyIDEwOC4wOTkgOTUuNTg3NCAxMDcuODkxIDk1LjQ2NTlDMTA3LjY4NyA5NS4zNDQ1IDEwNy41MzEgOTUuMTgzIDEwNy40MjUgOTQuOTgxNUMxMDcuMzE4IDk0Ljc4IDEwNy4yNjUgOTQuNTU5MiAxMDcuMjY1IDk0LjMxOTJaTTEwOC4wMDcgOTMuOTc3Vjk0LjMxOTJDMTA4LjAwNyA5NC40Mzc4IDEwOC4wMjkgOTQuNTUwMyAxMDguMDc0IDk0LjY1N0MxMDguMTIxIDk0Ljc2MzcgMTA4LjE5MiA5NC44NDk2IDEwOC4yODcgOTQuOTE0OEMxMDguMzgyIDk0Ljk4IDEwOC40OTkgOTUuMDEyNiAxMDguNjM4IDk1LjAxMjZDMTA4Ljc4IDk1LjAxMjYgMTA4Ljg5NiA5NC45OCAxMDguOTg1IDk0LjkxNDhDMTA5LjA3NyA5NC44NDk2IDEwOS4xNDUgOTQuNzYzNyAxMDkuMTg5IDk0LjY1N0MxMDkuMjM0IDk0LjU1MDMgMTA5LjI1NiA5NC40Mzc4IDEwOS4yNTYgOTQuMzE5MlY5My45NzdDMTA5LjI1NiA5My44NTU1IDEwOS4yMzIgOTMuNzQxNCAxMDkuMTg1IDkzLjYzNDhDMTA5LjE0IDkzLjUyNTEgMTA5LjA3MiA5My40Mzc3IDEwOC45OCA5My4zNzI1QzEwOC44ODkgOTMuMzA3MyAxMDguNzcxIDkzLjI3NDcgMTA4LjYyOSA5My4yNzQ3QzEwOC40OTMgOTMuMjc0NyAxMDguMzc3IDkzLjMwNzMgMTA4LjI4MyA5My4zNzI1QzEwOC4xOTEgOTMuNDM3NyAxMDguMTIxIDkzLjUyNTEgMTA4LjA3NCA5My42MzQ4QzEwOC4wMjkgOTMuNzQxNCAxMDguMDA3IDkzLjg1NTUgMTA4LjAwNyA5My45NzdaTTExMC4zODUgOTcuOTYzOFY5Ny42MTcxQzExMC4zODUgOTcuMzc0MiAxMTAuNDM4IDk3LjE1MTkgMTEwLjU0NSA5Ni45NTA0QzExMC42NTUgOTYuNzQ5IDExMC44MTIgOTYuNTg3NSAxMTEuMDE2IDk2LjQ2NkMxMTEuMjIgOTYuMzQ0NSAxMTEuNDY2IDk2LjI4MzcgMTExLjc1NCA5Ni4yODM3QzExMi4wNSA5Ni4yODM3IDExMi4yOTkgOTYuMzQ0NSAxMTIuNTAxIDk2LjQ2NkMxMTIuNzA1IDk2LjU4NzUgMTEyLjg1OSA5Ni43NDkgMTEyLjk2MyA5Ni45NTA0QzExMy4wNjkgOTcuMTUxOSAxMTMuMTIzIDk3LjM3NDIgMTEzLjEyMyA5Ny42MTcxVjk3Ljk2MzhDMTEzLjEyMyA5OC4yMDY4IDExMy4wNjkgOTguNDI5IDExMi45NjMgOTguNjMwNUMxMTIuODU5IDk4LjgzMiAxMTIuNzA2IDk4Ljk5MzUgMTEyLjUwNSA5OS4xMTVDMTEyLjMwMyA5OS4yMzY1IDExMi4wNTggOTkuMjk3MiAxMTEuNzY3IDk5LjI5NzJDMTExLjQ3NCA5OS4yOTcyIDExMS4yMjMgOTkuMjM2NSAxMTEuMDE2IDk5LjExNUMxMTAuODEyIDk4Ljk5MzUgMTEwLjY1NSA5OC44MzIgMTEwLjU0NSA5OC42MzA1QzExMC40MzggOTguNDI5IDExMC4zODUgOTguMjA2OCAxMTAuMzg1IDk3Ljk2MzhaTTExMS4xMzIgOTcuNjE3MVY5Ny45NjM4QzExMS4xMzIgOTguMDgyMyAxMTEuMTU1IDk4LjE5NDkgMTExLjIwMyA5OC4zMDE2QzExMS4yNTMgOTguNDA4MyAxMTEuMzI2IDk4LjQ5NTcgMTExLjQyIDk4LjU2MzhDMTExLjUxNSA5OC42MjkgMTExLjYyOSA5OC42NjE2IDExMS43NjMgOTguNjYxNkMxMTEuOTE0IDk4LjY2MTYgMTEyLjAzNSA5OC42MjkgMTEyLjEyNyA5OC41NjM4QzExMi4yMTkgOTguNDk1NyAxMTIuMjg0IDk4LjQwOTggMTEyLjMyMyA5OC4zMDZDMTEyLjM2NCA5OC4xOTk0IDExMi4zODUgOTguMDg1MyAxMTIuMzg1IDk3Ljk2MzhWOTcuNjE3MUMxMTIuMzg1IDk3LjQ5NTYgMTEyLjM2MSA5Ny4zODE2IDExMi4zMTQgOTcuMjc0OUMxMTIuMjY5IDk3LjE2ODIgMTEyLjIgOTcuMDgyMyAxMTIuMTA1IDk3LjAxNzFDMTEyLjAxMyA5Ni45NTE5IDExMS44OTYgOTYuOTE5MyAxMTEuNzU0IDk2LjkxOTNDMTExLjYxNSA5Ni45MTkzIDExMS40OTkgOTYuOTUxOSAxMTEuNDA3IDk3LjAxNzFDMTExLjMxNSA5Ny4wODIzIDExMS4yNDYgOTcuMTY4MiAxMTEuMTk4IDk3LjI3NDlDMTExLjE1NCA5Ny4zODE2IDExMS4xMzIgOTcuNDk1NiAxMTEuMTMyIDk3LjYxNzFaTTExMi4wMjEgOTMuNjU3TDEwOC44NiA5OC43MTVMMTA4LjMxNCA5OC4zOTk0TDExMS40NzQgOTMuMzQxNEwxMTIuMDIxIDkzLjY1N1oiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPC9nPgo8cmVjdCB4PSIwLjUiIHk9IjAuNSIgd2lkdGg9IjE5OSIgaGVpZ2h0PSIxNTkiIHJ4PSIzLjUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIi8+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2JfMzQ2MV80NzQ1NiIgeD0iNzcuNDY5MSIgeT0iNzguMzE0MSIgd2lkdGg9IjQ1LjA2MTgiIGhlaWdodD0iMjkuOTU4OCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjYyNDM0Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ3NDU2Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ3NDU2IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", "description": "Widget indicates the level of liquid in Vertical Capsule tank.", "descriptor": { "type": "latest", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} +} \ No newline at end of file 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 02049ad181..899420cda2 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,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", + "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8bWFzayBpZD0ibWFzazBfMzQ2MV80NzA3NyIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iNTgiIHk9IjYyIiB3aWR0aD0iODQiIGhlaWdodD0iNjYiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTU4LjE4MTYgNjIuNjAyOFYxMTkuMTIxQzU4LjE4MTYgMTIzLjYwOCA3Ni42NDcyIDEyNy42ODIgMTAwLjAwMSAxMjcuNjgyQzEzMC45NTggMTI3LjY4MiAxNDEuODIgMTIxLjk3OSAxNDEuODIgMTE5LjEyMVY2Mi42MDI4QzEzNi42NjkgNjYuOTM2NiAxMTkuODk2IDcwLjExMjcgMTAwLjAwMSA3MC4xMTI3QzgwLjEwNDggNzAuMTEyNyA2My4zMzIzIDY2LjkzNjYgNTguMTgxNiA2Mi42MDI4WiIgZmlsbD0iIzdBOEJGRiIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTU4LjE4MTYgNjIuNjAyOFYxMTkuMTIxQzU4LjE4MTYgMTIzLjYwOCA3Ni42NDcyIDEyNy42ODIgMTAwLjAwMSAxMjcuNjgyQzEzMC45NTggMTI3LjY4MiAxNDEuODIgMTIxLjk3OSAxNDEuODIgMTE5LjEyMVY2Mi42MDI4QzEzNi42NjkgNjYuOTM2NiAxMTkuODk2IDcwLjExMjcgMTAwLjAwMSA3MC4xMTI3QzgwLjEwNDggNzAuMTEyNyA2My4zMzIzIDY2LjkzNjYgNTguMTgxNiA2Mi42MDI4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF8zNDYxXzQ3MDc3KSI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8zNDYxXzQ3MDc3KSI+CjxyZWN0IHg9IjU4LjE4MTYiIHk9IjkwLjc1MDciIHdpZHRoPSI4My42Mzc5IiBoZWlnaHQ9IjY2LjI1ODYiIGZpbGw9IiM3QThCRkYiLz4KPGVsbGlwc2UgY3g9IjEwMC4wMDEiIGN5PSI5MC43NTA3IiByeD0iNDEuODE5IiByeT0iOC42ODk2NiIgZmlsbD0iIzdBOEJGRiIvPgo8ZWxsaXBzZSBjeD0iMTAwLjAwMSIgY3k9IjkwLjc1MDciIHJ4PSI0MS44MTkiIHJ5PSI4LjY4OTY2IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjEiLz4KPC9nPgo8L2c+CjxtYXNrIGlkPSJwYXRoLTctaW5zaWRlLTFfMzQ2MV80NzA3NyIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0Mi45MDUgMTIwLjIyNVY1OS45NDAySDE0My45OTJWMTIwLjIyNUMxNDMuOTkyIDEyMS4wNzQgMTQzLjYwNiAxMjEuODU4IDE0Mi45NjggMTIyLjU2QzE0Mi4zMzEgMTIzLjI2IDE0MS40MTkgMTIzLjkwOCAxNDAuMjg5IDEyNC41MDlDMTM4LjAyOSAxMjUuNzEyIDEzNC43OTQgMTI2Ljc3OCAxMzAuODQyIDEyNy42NjdDMTIyLjkzIDEyOS40NDcgMTEyLjAyNiAxMzAuNTQ0IDEwMCAxMzAuNTQ0Qzg3Ljk3NDUgMTMwLjU0NCA3Ny4wNzA1IDEyOS40NDcgNjkuMTU4NCAxMjcuNjY3QzY1LjIwNjcgMTI2Ljc3OCA2MS45NzE2IDEyNS43MTIgNTkuNzExMiAxMjQuNTA5QzU4LjU4MTUgMTIzLjkwOCA1Ny42NjkgMTIzLjI2IDU3LjAzMjggMTIyLjU2QzU2LjM5MzkgMTIxLjg1OCA1Ni4wMDg4IDEyMS4wNzQgNTYuMDA4OCAxMjAuMjI1VjU5Ljk0MDJINTcuMDk1VjEyMC4yMjVDNTcuMDk1IDEyMC43MjUgNTcuMzE3OCAxMjEuMjU5IDU3LjgzNjQgMTIxLjgyOUM1OC4zNTc4IDEyMi40MDMgNTkuMTUyNSAxMjIuOTgyIDYwLjIyMTMgMTIzLjU1QzYyLjM1ODEgMTI0LjY4NyA2NS40ODU5IDEyNS43MjcgNjkuMzk2OCAxMjYuNjA3Qzc3LjIwOTkgMTI4LjM2NSA4OC4wMzAxIDEyOS40NTcgMTAwIDEyOS40NTdDMTExLjk3IDEyOS40NTcgMTIyLjc5IDEyOC4zNjUgMTMwLjYwNCAxMjYuNjA3QzEzNC41MTQgMTI1LjcyNyAxMzcuNjQyIDEyNC42ODcgMTM5Ljc3OSAxMjMuNTVDMTQwLjg0OCAxMjIuOTgyIDE0MS42NDMgMTIyLjQwMyAxNDIuMTY0IDEyMS44MjlDMTQyLjY4MyAxMjEuMjU5IDE0Mi45MDUgMTIwLjcyNSAxNDIuOTA1IDEyMC4yMjVaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNDIuOTA1IDEyMC4yMjVWNTkuOTQwMkgxNDMuOTkyVjEyMC4yMjVDMTQzLjk5MiAxMjEuMDc0IDE0My42MDYgMTIxLjg1OCAxNDIuOTY4IDEyMi41NkMxNDIuMzMxIDEyMy4yNiAxNDEuNDE5IDEyMy45MDggMTQwLjI4OSAxMjQuNTA5QzEzOC4wMjkgMTI1LjcxMiAxMzQuNzk0IDEyNi43NzggMTMwLjg0MiAxMjcuNjY3QzEyMi45MyAxMjkuNDQ3IDExMi4wMjYgMTMwLjU0NCAxMDAgMTMwLjU0NEM4Ny45NzQ1IDEzMC41NDQgNzcuMDcwNSAxMjkuNDQ3IDY5LjE1ODQgMTI3LjY2N0M2NS4yMDY3IDEyNi43NzggNjEuOTcxNiAxMjUuNzEyIDU5LjcxMTIgMTI0LjUwOUM1OC41ODE1IDEyMy45MDggNTcuNjY5IDEyMy4yNiA1Ny4wMzI4IDEyMi41NkM1Ni4zOTM5IDEyMS44NTggNTYuMDA4OCAxMjEuMDc0IDU2LjAwODggMTIwLjIyNVY1OS45NDAySDU3LjA5NVYxMjAuMjI1QzU3LjA5NSAxMjAuNzI1IDU3LjMxNzggMTIxLjI1OSA1Ny44MzY0IDEyMS44MjlDNTguMzU3OCAxMjIuNDAzIDU5LjE1MjUgMTIyLjk4MiA2MC4yMjEzIDEyMy41NUM2Mi4zNTgxIDEyNC42ODcgNjUuNDg1OSAxMjUuNzI3IDY5LjM5NjggMTI2LjYwN0M3Ny4yMDk5IDEyOC4zNjUgODguMDMwMSAxMjkuNDU3IDEwMCAxMjkuNDU3QzExMS45NyAxMjkuNDU3IDEyMi43OSAxMjguMzY1IDEzMC42MDQgMTI2LjYwN0MxMzQuNTE0IDEyNS43MjcgMTM3LjY0MiAxMjQuNjg3IDEzOS43NzkgMTIzLjU1QzE0MC44NDggMTIyLjk4MiAxNDEuNjQzIDEyMi40MDMgMTQyLjE2NCAxMjEuODI5QzE0Mi42ODMgMTIxLjI1OSAxNDIuOTA1IDEyMC43MjUgMTQyLjkwNSAxMjAuMjI1WiIgZmlsbD0iIzYyMTZGRiIgZmlsbC1vcGFjaXR5PSIwLjAyIi8+CjxwYXRoIGQ9Ik0xNDIuOTA1IDU5Ljk0MDJWNTguODU0SDE0MS44MTlWNTkuOTQwMkgxNDIuOTA1Wk0xNDMuOTkyIDU5Ljk0MDJIMTQ1LjA3OFY1OC44NTRIMTQzLjk5MlY1OS45NDAyWk0xNDIuOTY4IDEyMi41NkwxNDIuMTY0IDEyMS44MjlMMTQyLjk2OCAxMjIuNTZaTTE0MC4yODkgMTI0LjUwOUwxMzkuNzc5IDEyMy41NUgxMzkuNzc5TDE0MC4yODkgMTI0LjUwOVpNMTMwLjg0MiAxMjcuNjY3TDEzMS4wOCAxMjguNzI3TDEzMC44NDIgMTI3LjY2N1pNNjkuMTU4NCAxMjcuNjY3TDY4LjkxOTkgMTI4LjcyN0g2OC45MTk5TDY5LjE1ODQgMTI3LjY2N1pNNTkuNzExMiAxMjQuNTA5TDYwLjIyMTMgMTIzLjU1SDYwLjIyMTNMNTkuNzExMiAxMjQuNTA5Wk01Ny4wMzI4IDEyMi41Nkw1Ny44MzY0IDEyMS44MjlINTcuODM2NEw1Ny4wMzI4IDEyMi41NlpNNTYuMDA4OCA1OS45NDAyVjU4Ljg1NEg1NC45MjI2VjU5Ljk0MDJINTYuMDA4OFpNNTcuMDk1IDU5Ljk0MDJINTguMTgxMlY1OC44NTRINTcuMDk1VjU5Ljk0MDJaTTU3LjgzNjQgMTIxLjgyOUw1OC42NCAxMjEuMDk5TDU4LjY0IDEyMS4wOTlMNTcuODM2NCAxMjEuODI5Wk02MC4yMjEzIDEyMy41NUw1OS43MTEyIDEyNC41MDlINTkuNzExMkw2MC4yMjEzIDEyMy41NVpNNjkuMzk2OCAxMjYuNjA3TDY5LjE1ODQgMTI3LjY2N0g2OS4xNTg0TDY5LjM5NjggMTI2LjYwN1pNMTMwLjYwNCAxMjYuNjA3TDEzMC44NDIgMTI3LjY2N0wxMzAuNjA0IDEyNi42MDdaTTEzOS43NzkgMTIzLjU1TDEzOS4yNjkgMTIyLjU5MUwxMzkuNzc5IDEyMy41NVpNMTQyLjE2NCAxMjEuODI5TDE0Mi45NjggMTIyLjU2TDE0Mi45NjggMTIyLjU2TDE0Mi4xNjQgMTIxLjgyOVpNMTQxLjgxOSA1OS45NDAyVjEyMC4yMjVIMTQzLjk5MlY1OS45NDAySDE0MS44MTlaTTE0My45OTIgNTguODU0SDE0Mi45MDVWNjEuMDI2NEgxNDMuOTkyVjU4Ljg1NFpNMTQ1LjA3OCAxMjAuMjI1VjU5Ljk0MDJIMTQyLjkwNVYxMjAuMjI1SDE0NS4wNzhaTTE0My43NzEgMTIzLjI5MUMxNDQuNTMgMTIyLjQ1NyAxNDUuMDc4IDEyMS40MjQgMTQ1LjA3OCAxMjAuMjI1SDE0Mi45MDVDMTQyLjkwNSAxMjAuNzI0IDE0Mi42ODMgMTIxLjI1OSAxNDIuMTY0IDEyMS44MjlMMTQzLjc3MSAxMjMuMjkxWk0xNDAuNzk5IDEyNS40NjhDMTQxLjk5IDEyNC44MzUgMTQzLjAyIDEyNC4xMTcgMTQzLjc3MSAxMjMuMjkxTDE0Mi4xNjQgMTIxLjgyOUMxNDEuNjQzIDEyMi40MDMgMTQwLjg0OCAxMjIuOTgyIDEzOS43NzkgMTIzLjU1TDE0MC43OTkgMTI1LjQ2OFpNMTMxLjA4IDEyOC43MjdDMTM1LjA3MyAxMjcuODI5IDEzOC40MTUgMTI2LjczNyAxNDAuNzk5IDEyNS40NjhMMTM5Ljc3OSAxMjMuNTVDMTM3LjY0MiAxMjQuNjg3IDEzNC41MTQgMTI1LjcyNyAxMzAuNjA0IDEyNi42MDdMMTMxLjA4IDEyOC43MjdaTTEwMCAxMzEuNjNDMTEyLjA4MSAxMzEuNjMgMTIzLjA2OSAxMzAuNTI5IDEzMS4wOCAxMjguNzI3TDEzMC42MDQgMTI2LjYwN0MxMjIuNzkgMTI4LjM2NSAxMTEuOTcgMTI5LjQ1NyAxMDAgMTI5LjQ1N1YxMzEuNjNaTTY4LjkxOTkgMTI4LjcyN0M3Ni45MzEyIDEzMC41MjkgODcuOTE4OSAxMzEuNjMgMTAwIDEzMS42M1YxMjkuNDU3Qzg4LjAzMDEgMTI5LjQ1NyA3Ny4yMDk5IDEyOC4zNjUgNjkuMzk2OCAxMjYuNjA3TDY4LjkxOTkgMTI4LjcyN1pNNTkuMjAxMSAxMjUuNDY4QzYxLjU4NTEgMTI2LjczNyA2NC45Mjc1IDEyNy44MjkgNjguOTE5OSAxMjguNzI3TDY5LjM5NjggMTI2LjYwN0M2NS40ODU5IDEyNS43MjcgNjIuMzU4MiAxMjQuNjg3IDYwLjIyMTMgMTIzLjU1TDU5LjIwMTEgMTI1LjQ2OFpNNTYuMjI5MiAxMjMuMjkxQzU2Ljk4MDEgMTI0LjExNyA1OC4wMTA0IDEyNC44MzUgNTkuMjAxMSAxMjUuNDY4TDYwLjIyMTMgMTIzLjU1QzU5LjE1MjUgMTIyLjk4MiA1OC4zNTc4IDEyMi40MDMgNTcuODM2NCAxMjEuODI5TDU2LjIyOTIgMTIzLjI5MVpNNTQuOTIyNiAxMjAuMjI1QzU0LjkyMjYgMTIxLjQyNCA1NS40NzAzIDEyMi40NTcgNTYuMjI5MiAxMjMuMjkxTDU3LjgzNjQgMTIxLjgyOUM1Ny4zMTc0IDEyMS4yNTkgNTcuMDk1IDEyMC43MjQgNTcuMDk1IDEyMC4yMjVINTQuOTIyNlpNNTcuMDk1IDEyMC4yMjVWNTkuOTQwMkg1NC45MjI2VjEyMC4yMjVINTcuMDk1Wk01Ni4wMDg4IDYxLjAyNjRINTcuMDk1VjU4Ljg1NEg1Ni4wMDg4VjYxLjAyNjRaTTU2LjAwODggNTkuOTQwMlYxMjAuMjI1SDU4LjE4MTJWNTkuOTQwMkg1Ni4wMDg4Wk01OC42NCAxMjEuMDk5QzU4LjI0MjQgMTIwLjY2MSA1OC4xODEyIDEyMC4zNzYgNTguMTgxMiAxMjAuMjI1SDU2LjAwODhDNTYuMDA4OCAxMjEuMDc0IDU2LjM5MzIgMTIxLjg1NyA1Ny4wMzI4IDEyMi41Nkw1OC42NCAxMjEuMDk5Wk02MC43MzE1IDEyMi41OTFDNTkuNzIzNCAxMjIuMDU1IDU5LjA0NjYgMTIxLjU0NiA1OC42NCAxMjEuMDk5TDU3LjAzMjggMTIyLjU2QzU3LjY2OSAxMjMuMjYgNTguNTgxNSAxMjMuOTA4IDU5LjcxMTIgMTI0LjUwOUw2MC43MzE1IDEyMi41OTFaTTY5LjYzNTMgMTI1LjU0OEM2NS43NjUxIDEyNC42NzcgNjIuNzQ0NyAxMjMuNjYyIDYwLjczMTUgMTIyLjU5MUw1OS43MTEyIDEyNC41MDlDNjEuOTcxNiAxMjUuNzEyIDY1LjIwNjcgMTI2Ljc3OCA2OS4xNTg0IDEyNy42NjdMNjkuNjM1MyAxMjUuNTQ4Wk0xMDAgMTI4LjM3MUM4OC4wODU2IDEyOC4zNzEgNzcuMzQ5MiAxMjcuMjgzIDY5LjYzNTMgMTI1LjU0OEw2OS4xNTg0IDEyNy42NjdDNzcuMDcwNSAxMjkuNDQ3IDg3Ljk3NDUgMTMwLjU0NCAxMDAgMTMwLjU0NFYxMjguMzcxWk0xMzAuMzY1IDEyNS41NDhDMTIyLjY1MSAxMjcuMjgzIDExMS45MTUgMTI4LjM3MSAxMDAgMTI4LjM3MVYxMzAuNTQ0QzExMi4wMjYgMTMwLjU0NCAxMjIuOTMgMTI5LjQ0NyAxMzAuODQyIDEyNy42NjdMMTMwLjM2NSAxMjUuNTQ4Wk0xMzkuMjY5IDEyMi41OTFDMTM3LjI1NiAxMjMuNjYyIDEzNC4yMzUgMTI0LjY3NyAxMzAuMzY1IDEyNS41NDhMMTMwLjg0MiAxMjcuNjY3QzEzNC43OTQgMTI2Ljc3OCAxMzguMDI5IDEyNS43MTIgMTQwLjI4OSAxMjQuNTA5TDEzOS4yNjkgMTIyLjU5MVpNMTQxLjM2IDEyMS4wOTlDMTQwLjk1NCAxMjEuNTQ2IDE0MC4yNzcgMTIyLjA1NSAxMzkuMjY5IDEyMi41OTFMMTQwLjI4OSAxMjQuNTA5QzE0MS40MTkgMTIzLjkwOCAxNDIuMzMxIDEyMy4yNiAxNDIuOTY4IDEyMi41NkwxNDEuMzYgMTIxLjA5OVpNMTQxLjgxOSAxMjAuMjI1QzE0MS44MTkgMTIwLjM3NiAxNDEuNzU4IDEyMC42NjEgMTQxLjM2IDEyMS4wOTlMMTQyLjk2OCAxMjIuNTZDMTQzLjYwNyAxMjEuODU3IDE0My45OTIgMTIxLjA3NCAxNDMuOTkyIDEyMC4yMjVIMTQxLjgxOVoiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC03LWluc2lkZS0xXzM0NjFfNDcwNzcpIi8+CjxwYXRoIG9wYWNpdHk9IjAuMSIgZD0iTTE0My40NDggNTkuOTQwMkMxNDMuNDQ4IDU0Ljc4MDcgMTIzLjA4MiA1MC4xNjQzIDEwMCA1MC4xNjQzQzc2LjAwNDIgNTAuMTY0MyA1Ni41NTE4IDU1LjA1MjIgNTYuNTUxOCA1OS45NDAyIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8cGF0aCBkPSJNMTAwIDcwLjgwMjNDNzAuNjcyNCA3MC44MDIzIDU2LjU1MTggNjUuNjEzNCA1Ni41NTE4IDYwLjAyNzVDNTYuNTUxOCA1NC40NDE3IDg2LjE1MyA0Ny43Mjg0IDg5LjY0MDUgNDYuOTA1OCIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEwMCA3MC44MDIzQzEyOS4zMjggNzAuODAyMyAxNDMuNDQ4IDY1LjYxMzQgMTQzLjQ0OCA2MC4wMjc1QzE0My40NDggNTQuNDQxNyAxMTMuODQ3IDQ3LjcyODQgMTEwLjM1OSA0Ni45MDU4IiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8bWFzayBpZD0icGF0aC0xMi1pbnNpZGUtMl8zNDYxXzQ3MDc3IiBmaWxsPSJ3aGl0ZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTAuMjIzOSA0NC40MjI5VjQ2LjQ5NDlDOTAuMjk5NyA0Ni41NTMgOTAuNDQ0NCA0Ni42MzIxIDkwLjY4MTcgNDYuNzIwN0M5MS4xNTM2IDQ2Ljg5NjkgOTEuODY3OCA0Ny4wNjU2IDkyLjc4NzkgNDcuMjEwOUM5NC42MTk1IDQ3LjUwMDEgOTcuMTY5NiA0Ny42ODE1IDk5Ljk5OTggNDcuNjgxNUMxMDIuODMgNDcuNjgxNSAxMDUuMzggNDcuNTAwMSAxMDcuMjEyIDQ3LjIxMDlDMTA4LjEzMiA0Ny4wNjU2IDEwOC44NDYgNDYuODk2OSAxMDkuMzE4IDQ2LjcyMDdDMTA5LjU1NSA0Ni42MzIxIDEwOS43IDQ2LjU1MyAxMDkuNzc2IDQ2LjQ5NDlWNDQuNDIyOUgxMTAuODYyVjQ2LjU5NTNDMTEwLjg2MiA0Ni45NTc3IDExMC42MyA0Ny4yMDc4IDExMC40NDEgNDcuMzUzNkMxMTAuMjQxIDQ3LjUwNzYgMTA5Ljk4MSA0Ny42MzI2IDEwOS42OTggNDcuNzM4M0MxMDkuMTI1IDQ3Ljk1MTkgMTA4LjMyOCA0OC4xMzQzIDEwNy4zODEgNDguMjgzOEMxMDUuNDc4IDQ4LjU4NDMgMTAyLjg2OSA0OC43Njc3IDk5Ljk5OTggNDguNzY3N0M5Ny4xMzEgNDguNzY3NyA5NC41MjE2IDQ4LjU4NDMgOTIuNjE4NSA0OC4yODM4QzkxLjY3MTIgNDguMTM0MyA5MC44NzQxIDQ3Ljk1MTkgOTAuMzAxOCA0Ny43MzgzQzkwLjAxODYgNDcuNjMyNiA4OS43NTgyIDQ3LjUwNzYgODkuNTU4NyA0Ny4zNTM2Qzg5LjM2OTYgNDcuMjA3OCA4OS4xMzc3IDQ2Ljk1NzcgODkuMTM3NyA0Ni41OTUzVjQ0LjQyMjlIOTAuMjIzOVoiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkwLjIyMzkgNDQuNDIyOVY0Ni40OTQ5QzkwLjI5OTcgNDYuNTUzIDkwLjQ0NDQgNDYuNjMyMSA5MC42ODE3IDQ2LjcyMDdDOTEuMTUzNiA0Ni44OTY5IDkxLjg2NzggNDcuMDY1NiA5Mi43ODc5IDQ3LjIxMDlDOTQuNjE5NSA0Ny41MDAxIDk3LjE2OTYgNDcuNjgxNSA5OS45OTk4IDQ3LjY4MTVDMTAyLjgzIDQ3LjY4MTUgMTA1LjM4IDQ3LjUwMDEgMTA3LjIxMiA0Ny4yMTA5QzEwOC4xMzIgNDcuMDY1NiAxMDguODQ2IDQ2Ljg5NjkgMTA5LjMxOCA0Ni43MjA3QzEwOS41NTUgNDYuNjMyMSAxMDkuNyA0Ni41NTMgMTA5Ljc3NiA0Ni40OTQ5VjQ0LjQyMjlIMTEwLjg2MlY0Ni41OTUzQzExMC44NjIgNDYuOTU3NyAxMTAuNjMgNDcuMjA3OCAxMTAuNDQxIDQ3LjM1MzZDMTEwLjI0MSA0Ny41MDc2IDEwOS45ODEgNDcuNjMyNiAxMDkuNjk4IDQ3LjczODNDMTA5LjEyNSA0Ny45NTE5IDEwOC4zMjggNDguMTM0MyAxMDcuMzgxIDQ4LjI4MzhDMTA1LjQ3OCA0OC41ODQzIDEwMi44NjkgNDguNzY3NyA5OS45OTk4IDQ4Ljc2NzdDOTcuMTMxIDQ4Ljc2NzcgOTQuNTIxNiA0OC41ODQzIDkyLjYxODUgNDguMjgzOEM5MS42NzEyIDQ4LjEzNDMgOTAuODc0MSA0Ny45NTE5IDkwLjMwMTggNDcuNzM4M0M5MC4wMTg2IDQ3LjYzMjYgODkuNzU4MiA0Ny41MDc2IDg5LjU1ODcgNDcuMzUzNkM4OS4zNjk2IDQ3LjIwNzggODkuMTM3NyA0Ni45NTc3IDg5LjEzNzcgNDYuNTk1M1Y0NC40MjI5SDkwLjIyMzlaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTAuMjIzOSA0Ni40OTQ5SDg5LjEzNzdWNDcuMDMxNEw4OS41NjM3IDQ3LjM1NzVMOTAuMjIzOSA0Ni40OTQ5Wk05MC4yMjM5IDQ0LjQyMjlIOTEuMzEwMVY0My4zMzY2SDkwLjIyMzlWNDQuNDIyOVpNOTAuNjgxNyA0Ni43MjA3TDkxLjA2MTUgNDUuNzAzTDkwLjY4MTcgNDYuNzIwN1pNOTIuNzg3OSA0Ny4yMTA5TDkyLjk1NzMgNDYuMTM4SDkyLjk1NzNMOTIuNzg3OSA0Ny4yMTA5Wk0xMDcuMjEyIDQ3LjIxMDlMMTA3LjA0MiA0Ni4xMzhMMTA3LjIxMiA0Ny4yMTA5Wk0xMDkuMzE4IDQ2LjcyMDdMMTA4LjkzOCA0NS43MDNWNDUuNzAzTDEwOS4zMTggNDYuNzIwN1pNMTA5Ljc3NiA0Ni40OTQ5TDExMC40MzYgNDcuMzU3NUwxMTAuODYyIDQ3LjAzMTRWNDYuNDk0OUgxMDkuNzc2Wk0xMDkuNzc2IDQ0LjQyMjlWNDMuMzM2NkgxMDguNjg5VjQ0LjQyMjlIMTA5Ljc3NlpNMTEwLjg2MiA0NC40MjI5SDExMS45NDhWNDMuMzM2NkgxMTAuODYyVjQ0LjQyMjlaTTExMC40NDEgNDcuMzUzNkwxMTEuMTA0IDQ4LjIxMzZMMTExLjEwNCA0OC4yMTM2TDExMC40NDEgNDcuMzUzNlpNMTA5LjY5OCA0Ny43MzgzTDExMC4wNzggNDguNzU1OUwxMTAuMDc4IDQ4Ljc1NTlMMTA5LjY5OCA0Ny43MzgzWk0xMDcuMzgxIDQ4LjI4MzhMMTA3LjIxMiA0Ny4yMTA5TDEwNy4zODEgNDguMjgzOFpNOTIuNjE4NSA0OC4yODM4TDkyLjc4NzkgNDcuMjEwOUg5Mi43ODc5TDkyLjYxODUgNDguMjgzOFpNOTAuMzAxOCA0Ny43MzgzTDg5LjkyMTkgNDguNzU1OUw4OS45MjE5IDQ4Ljc1NTlMOTAuMzAxOCA0Ny43MzgzWk04OS41NTg3IDQ3LjM1MzZMODguODk1MSA0OC4yMTM2TDg5LjU1ODcgNDcuMzUzNlpNODkuMTM3NyA0NC40MjI5VjQzLjMzNjZIODguMDUxNVY0NC40MjI5SDg5LjEzNzdaTTkxLjMxMDEgNDYuNDk0OVY0NC40MjI5SDg5LjEzNzdWNDYuNDk0OUg5MS4zMTAxWk05MS4wNjE1IDQ1LjcwM0M5MC45NzMzIDQ1LjY3MDEgOTAuOTE1NyA0NS42NDM5IDkwLjg4MjcgNDUuNjI3MkM5MC44NDU5IDQ1LjYwODYgOTAuODUyOCA0NS42MDg0IDkwLjg4NDEgNDUuNjMyNEw4OS41NjM3IDQ3LjM1NzVDODkuNzYyMyA0Ny41MDk1IDkwLjAyMDYgNDcuNjMzMyA5MC4zMDE4IDQ3LjczODNMOTEuMDYxNSA0NS43MDNaTTkyLjk1NzMgNDYuMTM4QzkyLjA2NDMgNDUuOTk3IDkxLjQzMzEgNDUuODQxOCA5MS4wNjE1IDQ1LjcwM0w5MC4zMDE4IDQ3LjczODNDOTAuODc0MiA0Ny45NTIgOTEuNjcxMyA0OC4xMzQzIDkyLjYxODUgNDguMjgzOEw5Mi45NTczIDQ2LjEzOFpNOTkuOTk5OCA0Ni41OTUzQzk3LjIwODIgNDYuNTk1MyA5NC43MTc0IDQ2LjQxNTkgOTIuOTU3MyA0Ni4xMzhMOTIuNjE4NSA0OC4yODM4Qzk0LjUyMTYgNDguNTg0MyA5Ny4xMzEgNDguNzY3NyA5OS45OTk4IDQ4Ljc2NzdWNDYuNTk1M1pNMTA3LjA0MiA0Ni4xMzhDMTA1LjI4MiA0Ni40MTU5IDEwMi43OTEgNDYuNTk1MyA5OS45OTk4IDQ2LjU5NTNWNDguNzY3N0MxMDIuODY5IDQ4Ljc2NzcgMTA1LjQ3OCA0OC41ODQzIDEwNy4zODEgNDguMjgzOEwxMDcuMDQyIDQ2LjEzOFpNMTA4LjkzOCA0NS43MDNDMTA4LjU2NiA0NS44NDE4IDEwNy45MzUgNDUuOTk3IDEwNy4wNDIgNDYuMTM4TDEwNy4zODEgNDguMjgzOEMxMDguMzI4IDQ4LjEzNDMgMTA5LjEyNSA0Ny45NTIgMTA5LjY5OCA0Ny43MzgzTDEwOC45MzggNDUuNzAzWk0xMDkuMTE1IDQ1LjYzMjRDMTA5LjE0NyA0NS42MDg0IDEwOS4xNTQgNDUuNjA4NSAxMDkuMTE3IDQ1LjYyNzJDMTA5LjA4NCA0NS42NDM5IDEwOS4wMjYgNDUuNjcwMSAxMDguOTM4IDQ1LjcwM0wxMDkuNjk4IDQ3LjczODNDMTA5Ljk3OSA0Ny42MzMzIDExMC4yMzcgNDcuNTA5NSAxMTAuNDM2IDQ3LjM1NzVMMTA5LjExNSA0NS42MzI0Wk0xMTAuODYyIDQ2LjQ5NDlWNDQuNDIyOUgxMDguNjg5VjQ2LjQ5NDlIMTEwLjg2MlpNMTA5Ljc3NiA0NS41MDkxSDExMC44NjJWNDMuMzM2NkgxMDkuNzc2VjQ1LjUwOTFaTTEwOS43NzYgNDQuNDIyOVY0Ni41OTUzSDExMS45NDhWNDQuNDIyOUgxMDkuNzc2Wk0xMTEuMTA0IDQ4LjIxMzZDMTExLjM5MiA0Ny45OTE4IDExMS45NDggNDcuNDYxMiAxMTEuOTQ4IDQ2LjU5NTNIMTA5Ljc3NkMxMDkuNzc2IDQ2LjU2NzkgMTA5Ljc4IDQ2LjUzOTMgMTA5Ljc4OSA0Ni41MTMyQzEwOS43OTcgNDYuNDg4MiAxMDkuODA2IDQ2LjQ3MjIgMTA5LjgxIDQ2LjQ2NTNDMTA5LjgxNSA0Ni40NTkgMTA5LjgxNSA0Ni40NTk4IDEwOS44MDggNDYuNDY2N0MxMDkuODAyIDQ2LjQ3MzUgMTA5Ljc5MSA0Ni40ODI4IDEwOS43NzcgNDYuNDkzNkwxMTEuMTA0IDQ4LjIxMzZaTTExMC4wNzggNDguNzU1OUMxMTAuNDA1IDQ4LjYzMzYgMTEwLjc4MSA0OC40NjMzIDExMS4xMDQgNDguMjEzNkwxMDkuNzc3IDQ2LjQ5MzZDMTA5LjcwMiA0Ni41NTE5IDEwOS41NTcgNDYuNjMxNSAxMDkuMzE4IDQ2LjcyMDdMMTEwLjA3OCA0OC43NTU5Wk0xMDcuNTUgNDkuMzU2N0MxMDguNTI1IDQ5LjIwMjkgMTA5LjQwNSA0OS4wMDcgMTEwLjA3OCA0OC43NTU5TDEwOS4zMTggNDYuNzIwN0MxMDguODQ2IDQ2Ljg5NjkgMTA4LjEzMiA0Ny4wNjU2IDEwNy4yMTIgNDcuMjEwOUwxMDcuNTUgNDkuMzU2N1pNOTkuOTk5OCA0OS44NTM5QzEwMi45MDcgNDkuODUzOSAxMDUuNTc2IDQ5LjY2ODUgMTA3LjU1IDQ5LjM1NjdMMTA3LjIxMiA0Ny4yMTA5QzEwNS4zOCA0Ny41MDAxIDEwMi44MyA0Ny42ODE1IDk5Ljk5OTggNDcuNjgxNVY0OS44NTM5Wk05Mi40NDkgNDkuMzU2N0M5NC40MjM2IDQ5LjY2ODUgOTcuMDkyNCA0OS44NTM5IDk5Ljk5OTggNDkuODUzOVY0Ny42ODE1Qzk3LjE2OTYgNDcuNjgxNSA5NC42MTk1IDQ3LjUwMDEgOTIuNzg3OSA0Ny4yMTA5TDkyLjQ0OSA0OS4zNTY3Wk04OS45MjE5IDQ4Ljc1NTlDOTAuNTk0NiA0OS4wMDcgOTEuNDc0NSA0OS4yMDI5IDkyLjQ0OSA0OS4zNTY3TDkyLjc4NzkgNDcuMjEwOUM5MS44Njc4IDQ3LjA2NTYgOTEuMTUzNyA0Ni44OTY5IDkwLjY4MTcgNDYuNzIwN0w4OS45MjE5IDQ4Ljc1NTlaTTg4Ljg5NTEgNDguMjEzNkM4OS4yMTg3IDQ4LjQ2MzMgODkuNTk0NCA0OC42MzM2IDg5LjkyMTkgNDguNzU1OUw5MC42ODE3IDQ2LjcyMDdDOTAuNDQyOSA0Ni42MzE1IDkwLjI5NzcgNDYuNTUxOSA5MC4yMjIyIDQ2LjQ5MzZMODguODk1MSA0OC4yMTM2Wk04OC4wNTE1IDQ2LjU5NTNDODguMDUxNSA0Ny40NjEyIDg4LjYwNzcgNDcuOTkxOCA4OC44OTUxIDQ4LjIxMzZMOTAuMjIyMiA0Ni40OTM2QzkwLjIwODIgNDYuNDgyOCA5MC4xOTc5IDQ2LjQ3MzUgOTAuMTkxMyA0Ni40NjY3QzkwLjE4NDYgNDYuNDU5OCA5MC4xODUgNDYuNDU5IDkwLjE4OTEgNDYuNDY1M0M5MC4xOTM1IDQ2LjQ3MjIgOTAuMjAyOCA0Ni40ODgyIDkwLjIxMDggNDYuNTEzMkM5MC4yMTkyIDQ2LjUzOTMgOTAuMjIzOSA0Ni41Njc5IDkwLjIyMzkgNDYuNTk1M0g4OC4wNTE1Wk04OC4wNTE1IDQ0LjQyMjlWNDYuNTk1M0g5MC4yMjM5VjQ0LjQyMjlIODguMDUxNVpNOTAuMjIzOSA0My4zMzY2SDg5LjEzNzdWNDUuNTA5MUg5MC4yMjM5VjQzLjMzNjZaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMTItaW5zaWRlLTJfMzQ2MV80NzA3NykiLz4KPHBhdGggZD0iTTExMC4zMjMgNDQuMzk2MUMxMTAuMzIzIDQ0LjM5NjEgMTEwLjMyMiA0NC4zOTcgMTEwLjMyMiA0NC4zOTg5QzExMC4zMjIgNDQuMzk3IDExMC4zMjMgNDQuMzk2MSAxMTAuMzIzIDQ0LjM5NjFaTTExMC4yNjIgNDQuMzczNUMxMTAuMjgzIDQ0LjM5NDIgMTEwLjI5NyA0NC40MTA3IDExMC4zMDYgNDQuNDIyOUMxMTAuMjk3IDQ0LjQzNTEgMTEwLjI4MyA0NC40NTE2IDExMC4yNjIgNDQuNDcyM0MxMTAuMTc3IDQ0LjU1NSAxMTAuMDIzIDQ0LjY2MDcgMTA5Ljc3NiA0NC43Nzc1QzEwOS4yODUgNDUuMDA5OSAxMDguNTM5IDQ1LjIzMzUgMTA3LjU3NCA0NS40MjY1QzEwNS42NTMgNDUuODEwNyAxMDIuOTc1IDQ2LjA1MjIgOTkuOTk5OCA0Ni4wNTIyQzk3LjAyNDkgNDYuMDUyMiA5NC4zNDY3IDQ1LjgxMDcgOTIuNDI1NiA0NS40MjY1QzkxLjQ2MDYgNDUuMjMzNSA5MC43MTQ5IDQ1LjAwOTkgOTAuMjIzNSA0NC43Nzc1Qzg5Ljk3NjQgNDQuNjYwNyA4OS44MjI1IDQ0LjU1NSA4OS43MzggNDQuNDcyM0M4OS43MTY4IDQ0LjQ1MTYgODkuNzAyNiA0NC40MzUxIDg5LjY5MzQgNDQuNDIyOUM4OS43MDI2IDQ0LjQxMDcgODkuNzE2OCA0NC4zOTQyIDg5LjczOCA0NC4zNzM1Qzg5LjgyMjUgNDQuMjkwOCA4OS45NzY0IDQ0LjE4NTEgOTAuMjIzNSA0NC4wNjgzQzkwLjcxNDkgNDMuODM1OSA5MS40NjA2IDQzLjYxMjMgOTIuNDI1NiA0My40MTkzQzk0LjM0NjcgNDMuMDM1MSA5Ny4wMjQ5IDQyLjc5MzYgOTkuOTk5OCA0Mi43OTM2QzEwMi45NzUgNDIuNzkzNiAxMDUuNjUzIDQzLjAzNTEgMTA3LjU3NCA0My40MTkzQzEwOC41MzkgNDMuNjEyMyAxMDkuMjg1IDQzLjgzNTkgMTA5Ljc3NiA0NC4wNjgzQzExMC4wMjMgNDQuMTg1MSAxMTAuMTc3IDQ0LjI5MDggMTEwLjI2MiA0NC4zNzM1Wk04OS42NzY4IDQ0LjM5NjFDODkuNjc2OSA0NC4zOTYxIDg5LjY3NzQgNDQuMzk3IDg5LjY3NzkgNDQuMzk4OUM4OS42NzcgNDQuMzk3IDg5LjY3NjggNDQuMzk2MSA4OS42NzY4IDQ0LjM5NjFaTTg5LjY3NjggNDQuNDQ5N0M4OS42NzY4IDQ0LjQ0OTcgODkuNjc3IDQ0LjQ0ODggODkuNjc3OSA0NC40NDY5Qzg5LjY3NzQgNDQuNDQ4OCA4OS42NzY5IDQ0LjQ0OTcgODkuNjc2OCA0NC40NDk3Wk0xMTAuMzIyIDQ0LjQ0NjlDMTEwLjMyMiA0NC40NDg4IDExMC4zMjMgNDQuNDQ5NyAxMTAuMzIzIDQ0LjQ0OTdDMTEwLjMyMyA0NC40NDk3IDExMC4zMjIgNDQuNDQ4OCAxMTAuMzIyIDQ0LjQ0NjlaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8zNDYxXzQ3MDc3KSI+CjxyZWN0IHg9IjgwLjcxNzgiIHk9Ijg0LjY0MDQiIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik05NC4wOTQ3IDk4LjU5MDRWOTkuOTU1OEg4Ni42Mjc3TDg2LjU3MDggOTguOTI0N0w5MS4wMzY4IDkxLjkyNzFIOTIuNDA5M0w5MC45MjMgOTQuNDczTDg4LjM1NTggOTguNTkwNEg5NC4wOTQ3Wk05Mi44MDA0IDkxLjkyNzFWMTAyLjI4MUg5MS4wODY1VjkxLjkyNzFIOTIuODAwNFpNMTAxLjk4OCA5Ni4yMzY2Vjk3LjkyOTFDMTAxLjk4OCA5OC43Mzk4IDEwMS45MDggOTkuNDMyIDEwMS43NDYgMTAwLjAwNkMxMDEuNTkgMTAwLjU3NSAxMDEuMzYyIDEwMS4wMzcgMTAxLjA2NCAxMDEuMzkyQzEwMC43NjUgMTAxLjc0OCAxMDAuNDA3IDEwMi4wMDkgOTkuOTkgMTAyLjE3NUM5OS41Nzc1IDEwMi4zNDEgOTkuMTE1MyAxMDIuNDIzIDk4LjYwMzMgMTAyLjQyM0M5OC4xOTU1IDEwMi40MjMgOTcuODE2MyAxMDIuMzcxIDk3LjQ2NTQgMTAyLjI2N0M5Ny4xMTk0IDEwMi4xNjMgOTYuODA2NSAxMDEuOTk5IDk2LjUyNjcgMTAxLjc3NkM5Ni4yNDcgMTAxLjU1NCA5Ni4wMDc2IDEwMS4yNjcgOTUuODA4NSAxMDAuOTE2Qzk1LjYxNDEgMTAwLjU2IDk1LjQ2MjQgMTAwLjEzNiA5NS4zNTM0IDk5LjY0MjlDOTUuMjQ5MSA5OS4xNDk5IDk1LjE5NjkgOTguNTc4NiA5NS4xOTY5IDk3LjkyOTFWOTYuMjM2NkM5NS4xOTY5IDk1LjQyMTEgOTUuMjc3NSA5NC43MzM3IDk1LjQzODcgOTQuMTc0M0M5NS41OTk5IDkzLjYxMDEgOTUuODI5OCA5My4xNTI2IDk2LjEyODUgOTIuODAxOEM5Ni40MjcyIDkyLjQ0NjIgOTYuNzgyOCA5Mi4xODc4IDk3LjE5NTIgOTIuMDI2NkM5Ny42MTI0IDkxLjg2NTUgOTguMDc3IDkxLjc4NDkgOTguNTg5IDkxLjc4NDlDOTkuMDAxNSA5MS43ODQ5IDk5LjM4MDggOTEuODM3IDk5LjcyNjkgOTEuOTQxM0MxMDAuMDc4IDkyLjA0MDkgMTAwLjM5MSA5Mi4xOTk3IDEwMC42NjYgOTIuNDE3OEMxMDAuOTQ1IDkyLjYzNTkgMTAxLjE4MiA5Mi45MjAzIDEwMS4zNzcgOTMuMjcxMUMxMDEuNTc2IDkzLjYxNzIgMTAxLjcyOCA5NC4wMzY4IDEwMS44MzIgOTQuNTI5OEMxMDEuOTM2IDk1LjAxODIgMTAxLjk4OCA5NS41ODcxIDEwMS45ODggOTYuMjM2NlpNMTAwLjI3NCA5OC4xNzA5Vjk1Ljk4MDZDMTAwLjI3NCA5NS41NjgxIDEwMC4yNTEgOTUuMjA1NCAxMDAuMjAzIDk0Ljg5MjVDMTAwLjE1NiA5NC41NzQ5IDEwMC4wODUgOTQuMzA3IDk5Ljk5IDk0LjA4ODlDOTkuODk5OSA5My44NjYxIDk5Ljc4NjEgOTMuNjg2IDk5LjY0ODYgOTMuNTQ4NUM5OS41MTEyIDkzLjQwNjMgOTkuMzU0NyA5My4zMDQzIDk5LjE3OTMgOTMuMjQyN0M5OS4wMDM5IDkzLjE3NjMgOTguODA3MSA5My4xNDMxIDk4LjU4OSA5My4xNDMxQzk4LjMyMzYgOTMuMTQzMSA5OC4wODY1IDkzLjE5NTMgOTcuODc3OSA5My4yOTk2Qzk3LjY2OTMgOTMuMzk5MSA5Ny40OTM5IDkzLjU2MDMgOTcuMzUxNyA5My43ODMyQzk3LjIwOTQgOTQuMDA2IDk3LjEwMDQgOTQuMjk5OSA5Ny4wMjQ1IDk0LjY2NUM5Ni45NTM0IDk1LjAyNTMgOTYuOTE3OSA5NS40NjM4IDk2LjkxNzkgOTUuOTgwNlY5OC4xNzA5Qzk2LjkxNzkgOTguNTg4MSA5Ni45NDE2IDk4Ljk1NTUgOTYuOTg5IDk5LjI3MzFDOTcuMDM2NCA5OS41OTA4IDk3LjEwNzUgOTkuODYzNCA5Ny4yMDIzIDEwMC4wOTFDOTcuMjk3MSAxMDAuMzE0IDk3LjQxMDkgMTAwLjQ5OSA5Ny41NDM3IDEwMC42NDZDOTcuNjgxMiAxMDAuNzg4IDk3LjgzNzYgMTAwLjg5MiA5OC4wMTMgMTAwLjk1OUM5OC4xOTMyIDEwMS4wMjUgOTguMzg5OSAxMDEuMDU4IDk4LjYwMzMgMTAxLjA1OEM5OC44NzM1IDEwMS4wNTggOTkuMTEyOSAxMDEuMDA2IDk5LjMyMTUgMTAwLjkwMkM5OS41MzAxIDEwMC43OTcgOTkuNzA1NSAxMDAuNjMxIDk5Ljg0NzggMTAwLjQwNEM5OS45OSAxMDAuMTcyIDEwMC4wOTcgOTkuODcwNSAxMDAuMTY4IDk5LjUwMDdDMTAwLjIzOSA5OS4xMzA5IDEwMC4yNzQgOTguNjg3NiAxMDAuMjc0IDk4LjE3MDlaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjxwYXRoIGQ9Ik0xMDcuMjY1IDk3LjM5NjlWOTcuMDU0NkMxMDcuMjY1IDk2LjgwODcgMTA3LjMxOCA5Ni41ODUgMTA3LjQyNSA5Ni4zODM1QzEwNy41MzEgOTYuMTgyIDEwNy42ODcgOTYuMDIwNSAxMDcuODkxIDk1Ljg5OUMxMDguMDk2IDk1Ljc3NzUgMTA4LjM0MiA5NS43MTY4IDEwOC42MjkgOTUuNzE2OEMxMDguOTI2IDk1LjcxNjggMTA5LjE3NCA5NS43Nzc1IDEwOS4zNzYgOTUuODk5QzEwOS41OCA5Ni4wMjA1IDEwOS43MzYgOTYuMTgyIDEwOS44NDMgOTYuMzgzNUMxMDkuOTQ5IDk2LjU4NSAxMTAuMDAzIDk2LjgwODcgMTEwLjAwMyA5Ny4wNTQ2Vjk3LjM5NjlDMTEwLjAwMyA5Ny42MzY5IDEwOS45NDkgOTcuODU3NiAxMDkuODQzIDk4LjA1OTFDMTA5LjczOSA5OC4yNjA2IDEwOS41ODUgOTguNDIyMSAxMDkuMzggOTguNTQzNkMxMDkuMTc5IDk4LjY2NTEgMTA4LjkzMiA5OC43MjU4IDEwOC42MzggOTguNzI1OEMxMDguMzQ4IDk4LjcyNTggMTA4LjA5OSA5OC42NjUxIDEwNy44OTEgOTguNTQzNkMxMDcuNjg3IDk4LjQyMjEgMTA3LjUzMSA5OC4yNjA2IDEwNy40MjUgOTguMDU5MUMxMDcuMzE4IDk3Ljg1NzYgMTA3LjI2NSA5Ny42MzY5IDEwNy4yNjUgOTcuMzk2OVpNMTA4LjAwNyA5Ny4wNTQ2Vjk3LjM5NjlDMTA4LjAwNyA5Ny41MTU0IDEwOC4wMjkgOTcuNjI4IDEwOC4wNzQgOTcuNzM0N0MxMDguMTIxIDk3Ljg0MTMgMTA4LjE5MiA5Ny45MjczIDEwOC4yODcgOTcuOTkyNEMxMDguMzgyIDk4LjA1NzYgMTA4LjQ5OSA5OC4wOTAyIDEwOC42MzggOTguMDkwMkMxMDguNzggOTguMDkwMiAxMDguODk2IDk4LjA1NzYgMTA4Ljk4NSA5Ny45OTI0QzEwOS4wNzcgOTcuOTI3MyAxMDkuMTQ1IDk3Ljg0MTMgMTA5LjE4OSA5Ny43MzQ3QzEwOS4yMzQgOTcuNjI4IDEwOS4yNTYgOTcuNTE1NCAxMDkuMjU2IDk3LjM5NjlWOTcuMDU0NkMxMDkuMjU2IDk2LjkzMzEgMTA5LjIzMiA5Ni44MTkxIDEwOS4xODUgOTYuNzEyNEMxMDkuMTQgOTYuNjAyOCAxMDkuMDcyIDk2LjUxNTQgMTA4Ljk4IDk2LjQ1MDJDMTA4Ljg4OSA5Ni4zODUgMTA4Ljc3MSA5Ni4zNTI0IDEwOC42MjkgOTYuMzUyNEMxMDguNDkzIDk2LjM1MjQgMTA4LjM3NyA5Ni4zODUgMTA4LjI4MyA5Ni40NTAyQzEwOC4xOTEgOTYuNTE1NCAxMDguMTIxIDk2LjYwMjggMTA4LjA3NCA5Ni43MTI0QzEwOC4wMjkgOTYuODE5MSAxMDguMDA3IDk2LjkzMzEgMTA4LjAwNyA5Ny4wNTQ2Wk0xMTAuMzg1IDEwMS4wNDFWMTAwLjY5NUMxMTAuMzg1IDEwMC40NTIgMTEwLjQzOCAxMDAuMjMgMTEwLjU0NSAxMDAuMDI4QzExMC42NTUgOTkuODI2NiAxMTAuODEyIDk5LjY2NTEgMTExLjAxNiA5OS41NDM2QzExMS4yMiA5OS40MjIxIDExMS40NjYgOTkuMzYxNCAxMTEuNzU0IDk5LjM2MTRDMTEyLjA1IDk5LjM2MTQgMTEyLjI5OSA5OS40MjIxIDExMi41MDEgOTkuNTQzNkMxMTIuNzA1IDk5LjY2NTEgMTEyLjg1OSA5OS44MjY2IDExMi45NjMgMTAwLjAyOEMxMTMuMDY5IDEwMC4yMyAxMTMuMTIzIDEwMC40NTIgMTEzLjEyMyAxMDAuNjk1VjEwMS4wNDFDMTEzLjEyMyAxMDEuMjg0IDExMy4wNjkgMTAxLjUwNyAxMTIuOTYzIDEwMS43MDhDMTEyLjg1OSAxMDEuOTEgMTEyLjcwNiAxMDIuMDcxIDExMi41MDUgMTAyLjE5M0MxMTIuMzAzIDEwMi4zMTQgMTEyLjA1OCAxMDIuMzc1IDExMS43NjcgMTAyLjM3NUMxMTEuNDc0IDEwMi4zNzUgMTExLjIyMyAxMDIuMzE0IDExMS4wMTYgMTAyLjE5M0MxMTAuODEyIDEwMi4wNzEgMTEwLjY1NSAxMDEuOTEgMTEwLjU0NSAxMDEuNzA4QzExMC40MzggMTAxLjUwNyAxMTAuMzg1IDEwMS4yODQgMTEwLjM4NSAxMDEuMDQxWk0xMTEuMTMyIDEwMC42OTVWMTAxLjA0MUMxMTEuMTMyIDEwMS4xNiAxMTEuMTU1IDEwMS4yNzMgMTExLjIwMyAxMDEuMzc5QzExMS4yNTMgMTAxLjQ4NiAxMTEuMzI2IDEwMS41NzMgMTExLjQyIDEwMS42NDFDMTExLjUxNSAxMDEuNzA3IDExMS42MjkgMTAxLjczOSAxMTEuNzYzIDEwMS43MzlDMTExLjkxNCAxMDEuNzM5IDExMi4wMzUgMTAxLjcwNyAxMTIuMTI3IDEwMS42NDFDMTEyLjIxOSAxMDEuNTczIDExMi4yODQgMTAxLjQ4NyAxMTIuMzIzIDEwMS4zODRDMTEyLjM2NCAxMDEuMjc3IDExMi4zODUgMTAxLjE2MyAxMTIuMzg1IDEwMS4wNDFWMTAwLjY5NUMxMTIuMzg1IDEwMC41NzMgMTEyLjM2MSAxMDAuNDU5IDExMi4zMTQgMTAwLjM1M0MxMTIuMjY5IDEwMC4yNDYgMTEyLjIgMTAwLjE2IDExMi4xMDUgMTAwLjA5NUMxMTIuMDEzIDEwMC4wMyAxMTEuODk2IDk5Ljk5NyAxMTEuNzU0IDk5Ljk5N0MxMTEuNjE1IDk5Ljk5NyAxMTEuNDk5IDEwMC4wMyAxMTEuNDA3IDEwMC4wOTVDMTExLjMxNSAxMDAuMTYgMTExLjI0NiAxMDAuMjQ2IDExMS4xOTggMTAwLjM1M0MxMTEuMTU0IDEwMC40NTkgMTExLjEzMiAxMDAuNTczIDExMS4xMzIgMTAwLjY5NVpNMTEyLjAyMSA5Ni43MzQ2TDEwOC44NiAxMDEuNzkzTDEwOC4zMTQgMTAxLjQ3N0wxMTEuNDc0IDk2LjQxOTFMMTEyLjAyMSA5Ni43MzQ2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8L2c+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iMTk5IiBoZWlnaHQ9IjE1OSIgcng9IjMuNSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLW9wYWNpdHk9IjAuMTIiLz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfYl8zNDYxXzQ3MDc3IiB4PSI3Ny40NjkxIiB5PSI4MS4zOTE3IiB3aWR0aD0iNDUuMDYxOCIgaGVpZ2h0PSIyOS45NTg4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjEuNjI0MzQiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfNDcwNzciLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfNDcwNzciIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMzQ2MV80NzA3NyI+CjxyZWN0IHdpZHRoPSI4My42Mzc5IiBoZWlnaHQ9Ijc0Ljk0ODMiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1OC4xODE2IDUyLjczMzQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==", "description": "Widget indicates the level of liquid in Vertical Cylinder tank.", "descriptor": { "type": "latest", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} +} \ No newline at end of file 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 4be49252b2..3ed2f719c9 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": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cmVjdCBvcGFjaXR5PSIwLjEiIHg9IjExMi40OTEiIHk9IjU3LjMxMDkiIHdpZHRoPSI0My40NDgzIiBoZWlnaHQ9IjY3Ljg4NzkiIHJ4PSIyMS43MjQxIiBmaWxsPSIjNjIxNkZGIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJtYXNrMF8zNDYxXzg4NzA4IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI0NiIgeT0iNTgiIHdpZHRoPSIxMDkiIGhlaWdodD0iNjYiPgo8bWFzayBpZD0icGF0aC01LWluc2lkZS0xXzM0NjFfODg3MDgiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02NS43ODUxIDU4Ljk0NzRDNTQuOTM4MSA1OS4yMzUyIDQ2LjIzMzQgNjguMTE4NiA0Ni4yMzM0IDc5LjAzNVYxMDMuNDc1QzQ2LjIzMzQgMTE0LjM5MSA1NC45MzgxIDEyMy4yNzQgNjUuNzg1MSAxMjMuNTYyVjEyMy41N0w2Ni4zMjgyIDEyMy41NjlMMTM0LjIxNiAxMjMuNTdDMTQ1LjMxNCAxMjMuNTcgMTU0LjMxMSAxMTQuNTczIDE1NC4zMTEgMTAzLjQ3NVY3OS4wMzVDMTU0LjMxMSA2Ny45MzcgMTQ1LjMxNCA1OC45NDAyIDEzNC4yMTYgNTguOTQwMkw2Ni4zNDU5IDU4Ljk0MDJDNjYuMzQgNTguOTQwMiA2Ni4zMzQxIDU4Ljk0MDIgNjYuMzI4MiA1OC45NDAyQzY2LjMyMjMgNTguOTQwMiA2Ni4zMTY0IDU4Ljk0MDIgNjYuMzEwNiA1OC45NDAyTDY1Ljc4NTEgNTguOTQwMlY1OC45NDc0WiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjUuNzg1MSA1OC45NDc0QzU0LjkzODEgNTkuMjM1MiA0Ni4yMzM0IDY4LjExODYgNDYuMjMzNCA3OS4wMzVWMTAzLjQ3NUM0Ni4yMzM0IDExNC4zOTEgNTQuOTM4MSAxMjMuMjc0IDY1Ljc4NTEgMTIzLjU2MlYxMjMuNTdMNjYuMzI4MiAxMjMuNTY5TDEzNC4yMTYgMTIzLjU3QzE0NS4zMTQgMTIzLjU3IDE1NC4zMTEgMTE0LjU3MyAxNTQuMzExIDEwMy40NzVWNzkuMDM1QzE1NC4zMTEgNjcuOTM3IDE0NS4zMTQgNTguOTQwMiAxMzQuMjE2IDU4Ljk0MDJMNjYuMzQ1OSA1OC45NDAyQzY2LjM0IDU4Ljk0MDIgNjYuMzM0MSA1OC45NDAyIDY2LjMyODIgNTguOTQwMkM2Ni4zMjIzIDU4Ljk0MDIgNjYuMzE2NCA1OC45NDAyIDY2LjMxMDYgNTguOTQwMkw2NS43ODUxIDU4Ljk0MDJWNTguOTQ3NFoiIGZpbGw9IiM3Rjg0RkIiLz4KPHBhdGggZD0iTTY1Ljc4NTEgNTguOTQ3NEw2NS44MTM5IDYwLjAzMzJMNjYuODcxMyA2MC4wMDUyVjU4Ljk0NzRINjUuNzg1MVpNNjUuNzg1MSAxMjMuNTYySDY2Ljg3MTNWMTIyLjUwNUw2NS44MTM5IDEyMi40NzZMNjUuNzg1MSAxMjMuNTYyWk02NS43ODUxIDEyMy41N0g2NC42OTg5VjEyNC42NTZMNjUuNzg1MSAxMjQuNjU2TDY1Ljc4NTEgMTIzLjU3Wk02Ni4zMjgyIDEyMy41NjlWMTIyLjQ4M0g2Ni4zMjgyTDY2LjMyODIgMTIzLjU2OVpNMTM0LjIxNiAxMjMuNTdWMTI0LjY1NlYxMjMuNTdaTTE1NC4zMTEgNzkuMDM1SDE1NS4zOTdIMTU0LjMxMVpNMTM0LjIxNiA1OC45NDAyVjU3Ljg1NFY1OC45NDAyWk02Ni4zNDU5IDU4Ljk0MDJMNjYuMzQ1IDYwLjAyNjRINjYuMzQ1OVY1OC45NDAyWk02Ni4zMTA2IDU4Ljk0MDJWNjAuMDI2NEw2Ni4zMTE1IDYwLjAyNjRMNjYuMzEwNiA1OC45NDAyWk02NS43ODUxIDU4Ljk0MDJWNTcuODU0SDY0LjY5ODlWNTguOTQwMkg2NS43ODUxWk00Ny4zMTk2IDc5LjAzNUM0Ny4zMTk2IDY4LjcwODggNTUuNTUzOCA2MC4zMDU0IDY1LjgxMzkgNjAuMDMzMkw2NS43NTYzIDU3Ljg2MTZDNTQuMzIyNCA1OC4xNjQ5IDQ1LjE0NzIgNjcuNTI4MyA0NS4xNDcyIDc5LjAzNUg0Ny4zMTk2Wk00Ny4zMTk2IDEwMy40NzVWNzkuMDM1SDQ1LjE0NzJWMTAzLjQ3NUg0Ny4zMTk2Wk02NS44MTM5IDEyMi40NzZDNTUuNTUzOCAxMjIuMjA0IDQ3LjMxOTYgMTEzLjgwMSA0Ny4zMTk2IDEwMy40NzVINDUuMTQ3MkM0NS4xNDcyIDExNC45ODEgNTQuMzIyNCAxMjQuMzQ1IDY1Ljc1NjMgMTI0LjY0OEw2NS44MTM5IDEyMi40NzZaTTY0LjY5ODkgMTIzLjU2MlYxMjMuNTdINjYuODcxM1YxMjMuNTYySDY0LjY5ODlaTTY1Ljc4NTEgMTI0LjY1Nkw2Ni4zMjgyIDEyNC42NTZMNjYuMzI4MiAxMjIuNDgzTDY1Ljc4NTEgMTIyLjQ4M0w2NS43ODUxIDEyNC42NTZaTTY2LjMyODIgMTI0LjY1NkwxMzQuMjE2IDEyNC42NTZWMTIyLjQ4M0w2Ni4zMjgyIDEyMi40ODNWMTI0LjY1NlpNMTM0LjIxNiAxMjQuNjU2QzE0NS45MTQgMTI0LjY1NiAxNTUuMzk3IDExNS4xNzMgMTU1LjM5NyAxMDMuNDc1SDE1My4yMjVDMTUzLjIyNSAxMTMuOTczIDE0NC43MTQgMTIyLjQ4MyAxMzQuMjE2IDEyMi40ODNWMTI0LjY1NlpNMTU1LjM5NyAxMDMuNDc1Vjc5LjAzNUgxNTMuMjI1VjEwMy40NzVIMTU1LjM5N1pNMTU1LjM5NyA3OS4wMzVDMTU1LjM5NyA2Ny4zMzcxIDE0NS45MTQgNTcuODU0IDEzNC4yMTYgNTcuODU0VjYwLjAyNjRDMTQ0LjcxNCA2MC4wMjY0IDE1My4yMjUgNjguNTM2OCAxNTMuMjI1IDc5LjAzNUgxNTUuMzk3Wk0xMzQuMjE2IDU3Ljg1NEw2Ni4zNDU5IDU3Ljg1NFY2MC4wMjY0TDEzNC4yMTYgNjAuMDI2NFY1Ny44NTRaTTY2LjMyODIgNjAuMDI2NEM2Ni4zMzM4IDYwLjAyNjQgNjYuMzM5NCA2MC4wMjY0IDY2LjM0NSA2MC4wMjY0TDY2LjM0NjggNTcuODU0QzY2LjM0MDYgNTcuODU0IDY2LjMzNDQgNTcuODU0IDY2LjMyODIgNTcuODU0VjYwLjAyNjRaTTY2LjMxMTUgNjAuMDI2NEM2Ni4zMTcxIDYwLjAyNjQgNjYuMzIyNiA2MC4wMjY0IDY2LjMyODIgNjAuMDI2NFY1Ny44NTRDNjYuMzIyIDU3Ljg1NCA2Ni4zMTU4IDU3Ljg1NCA2Ni4zMDk2IDU3Ljg1NEw2Ni4zMTE1IDYwLjAyNjRaTTY2LjMxMDYgNTcuODU0SDY1Ljc4NTFWNjAuMDI2NEg2Ni4zMTA2VjU3Ljg1NFpNNjQuNjk4OSA1OC45NDAyVjU4Ljk0NzRINjYuODcxM1Y1OC45NDAySDY0LjY5ODlaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtNS1pbnNpZGUtMV8zNDYxXzg4NzA4KSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMzQ2MV84ODcwOCkiPgo8cmVjdCB4PSI0Ni4yMzM0IiB5PSI5NS4zMjgxIiB3aWR0aD0iMTA4LjA3OCIgaGVpZ2h0PSI2NC42MjkzIiBmaWxsPSIjN0E4QkZGIi8+CjxyZWN0IHg9IjQ2LjIzMzQiIHk9Ijk1LjMyODEiIHdpZHRoPSIxMDguMDc4IiBoZWlnaHQ9IjAuNTQzMTAzIiBmaWxsPSIjN0E4QkZGIi8+CjxyZWN0IHg9IjQ2LjIzMzQiIHk9Ijk1LjMyODEiIHdpZHRoPSIxMDguMDc4IiBoZWlnaHQ9IjAuNTQzMTAzIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjEiLz4KPC9nPgo8bWFzayBpZD0icGF0aC05LWluc2lkZS0yXzM0NjFfODg3MDgiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02NS43ODQ3IDU2Ljc3NDNDNTMuNzM3OCA1Ny4wNjI3IDQ0LjA2MDUgNjYuOTE4NyA0NC4wNjA1IDc5LjAzNUw0NC4wNjA1IDEwMy40NzVDNDQuMDYwNSAxMTUuNTkxIDUzLjczNzggMTI1LjQ0NyA2NS43ODQ3IDEyNS43MzVMNjUuNzg0NyAxMjUuNzQyTDY2LjMxMSAxMjUuNzQyQzY2LjMxNjYgMTI1Ljc0MiA2Ni4zMjIyIDEyNS43NDIgNjYuMzI3OCAxMjUuNzQyQzY2LjMzMzQgMTI1Ljc0MiA2Ni4zMzkgMTI1Ljc0MiA2Ni4zNDQ1IDEyNS43NDJMMTM0LjIxNiAxMjUuNzQyQzE0Ni41MTQgMTI1Ljc0MiAxNTYuNDgzIDExNS43NzMgMTU2LjQ4MyAxMDMuNDc1TDE1Ni40ODMgNzkuMDM1QzE1Ni40ODMgNjYuNzM3MiAxNDYuNTE0IDU2Ljc2NzggMTM0LjIxNiA1Ni43Njc4TDY2LjMyNzggNTYuNzY3OEw2NS43ODQ3IDU2Ljc2NzhMNjUuNzg0NyA1Ni43NzQzWiIvPgo8L21hc2s+CjxwYXRoIGQ9Ik02NS43ODQ3IDU2Ljc3NDNMNjUuODEwNyA1Ny44NjAyTDY2Ljg3MDkgNTcuODM0OEw2Ni44NzA5IDU2Ljc3NDNMNjUuNzg0NyA1Ni43NzQzWk02NS43ODQ3IDEyNS43MzVMNjYuODcwOSAxMjUuNzM1TDY2Ljg3MDkgMTI0LjY3NUw2NS44MTA3IDEyNC42NUw2NS43ODQ3IDEyNS43MzVaTTY1Ljc4NDcgMTI1Ljc0Mkw2NC42OTg1IDEyNS43NDJMNjQuNjk4NSAxMjYuODI4TDY1Ljc4NDcgMTI2LjgyOEw2NS43ODQ3IDEyNS43NDJaTTY2LjMxMSAxMjUuNzQyTDY2LjMxMTggMTI0LjY1Nkw2Ni4zMTEgMTI0LjY1Nkw2Ni4zMTEgMTI1Ljc0MlpNNjYuMzQ0NSAxMjUuNzQyTDY2LjM0NDUgMTI0LjY1Nkw2Ni4zNDM3IDEyNC42NTZMNjYuMzQ0NSAxMjUuNzQyWk0xMzQuMjE2IDEyNS43NDJMMTM0LjIxNiAxMjQuNjU2TDEzNC4yMTYgMTI1Ljc0MlpNMTM0LjIxNiA1Ni43Njc4TDEzNC4yMTYgNTUuNjgxNkwxMzQuMjE2IDU2Ljc2NzhaTTY2LjMyNzggNTYuNzY3OEw2Ni4zMjc4IDU3Ljg1NEw2Ni4zMjc4IDU3Ljg1NEw2Ni4zMjc4IDU2Ljc2NzhaTTY1Ljc4NDcgNTYuNzY3OEw2NS43ODQ3IDU1LjY4MTZMNjQuNjk4NSA1NS42ODE2TDY0LjY5ODUgNTYuNzY3OEw2NS43ODQ3IDU2Ljc2NzhaTTQ1LjE0NjggNzkuMDM1QzQ1LjE0NjggNjcuNTA5OSA1NC4zNTE5IDU4LjEzNDUgNjUuODEwNyA1Ny44NjAyTDY1Ljc1ODcgNTUuNjg4NEM1My4xMjM2IDU1Ljk5MDggNDIuOTc0MyA2Ni4zMjc1IDQyLjk3NDMgNzkuMDM1TDQ1LjE0NjggNzkuMDM1Wk00NS4xNDY4IDEwMy40NzVMNDUuMTQ2OCA3OS4wMzVMNDIuOTc0MyA3OS4wMzVMNDIuOTc0MyAxMDMuNDc1TDQ1LjE0NjggMTAzLjQ3NVpNNjUuODEwNyAxMjQuNjVDNTQuMzUxOSAxMjQuMzc1IDQ1LjE0NjggMTE1IDQ1LjE0NjggMTAzLjQ3NUw0Mi45NzQzIDEwMy40NzVDNDIuOTc0MyAxMTYuMTgyIDUzLjEyMzYgMTI2LjUxOSA2NS43NTg3IDEyNi44MjFMNjUuODEwNyAxMjQuNjVaTTY0LjY5ODUgMTI1LjczNUw2NC42OTg1IDEyNS43NDJMNjYuODcwOSAxMjUuNzQyTDY2Ljg3MDkgMTI1LjczNUw2NC42OTg1IDEyNS43MzVaTTY1Ljc4NDcgMTI2LjgyOEw2Ni4zMTEgMTI2LjgyOEw2Ni4zMTEgMTI0LjY1Nkw2NS43ODQ3IDEyNC42NTZMNjUuNzg0NyAxMjYuODI4Wk02Ni4zMjc4IDEyNC42NTZDNjYuMzIyNSAxMjQuNjU2IDY2LjMxNzIgMTI0LjY1NiA2Ni4zMTE4IDEyNC42NTZMNjYuMzEwMiAxMjYuODI4QzY2LjMxNjEgMTI2LjgyOCA2Ni4zMjE5IDEyNi44MjggNjYuMzI3OCAxMjYuODI4TDY2LjMyNzggMTI0LjY1NlpNNjYuMzQzNyAxMjQuNjU2QzY2LjMzODQgMTI0LjY1NiA2Ni4zMzMxIDEyNC42NTYgNjYuMzI3OCAxMjQuNjU2TDY2LjMyNzggMTI2LjgyOEM2Ni4zMzM2IDEyNi44MjggNjYuMzM5NSAxMjYuODI4IDY2LjM0NTMgMTI2LjgyOEw2Ni4zNDM3IDEyNC42NTZaTTY2LjM0NDUgMTI2LjgyOEwxMzQuMjE2IDEyNi44MjhMMTM0LjIxNiAxMjQuNjU2TDY2LjM0NDUgMTI0LjY1Nkw2Ni4zNDQ1IDEyNi44MjhaTTEzNC4yMTYgMTI2LjgyOEMxNDcuMTEzIDEyNi44MjggMTU3LjU2OSAxMTYuMzcyIDE1Ny41NjkgMTAzLjQ3NUwxNTUuMzk3IDEwMy40NzVDMTU1LjM5NyAxMTUuMTczIDE0NS45MTQgMTI0LjY1NiAxMzQuMjE2IDEyNC42NTZMMTM0LjIxNiAxMjYuODI4Wk0xNTcuNTY5IDEwMy40NzVMMTU3LjU2OSA3OS4wMzVMMTU1LjM5NyA3OS4wMzVMMTU1LjM5NyAxMDMuNDc1TDE1Ny41NjkgMTAzLjQ3NVpNMTU3LjU2OSA3OS4wMzVDMTU3LjU2OSA2Ni4xMzczIDE0Ny4xMTMgNTUuNjgxNiAxMzQuMjE2IDU1LjY4MTZMMTM0LjIxNiA1Ny44NTRDMTQ1LjkxNCA1Ny44NTQgMTU1LjM5NyA2Ny4zMzcxIDE1NS4zOTcgNzkuMDM1TDE1Ny41NjkgNzkuMDM1Wk0xMzQuMjE2IDU1LjY4MTZMNjYuMzI3OCA1NS42ODE2TDY2LjMyNzggNTcuODU0TDEzNC4yMTYgNTcuODU0TDEzNC4yMTYgNTUuNjgxNlpNNjYuMzI3OCA1NS42ODE2TDY1Ljc4NDcgNTUuNjgxNkw2NS43ODQ3IDU3Ljg1NEw2Ni4zMjc4IDU3Ljg1NEw2Ni4zMjc4IDU1LjY4MTZaTTY0LjY5ODUgNTYuNzY3OEw2NC42OTg1IDU2Ljc3NDNMNjYuODcwOSA1Ni43NzQzTDY2Ljg3MDkgNTYuNzY3OEw2NC42OTg1IDU2Ljc2NzhaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtOS1pbnNpZGUtMl8zNDYxXzg4NzA4KSIvPgo8cmVjdCB4PSI0NC42MDM3IiB5PSI1Ny4zMTA5IiB3aWR0aD0iNDMuNDQ4MyIgaGVpZ2h0PSI2Ny44ODc5IiByeD0iMjEuNzI0MSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPG1hc2sgaWQ9InBhdGgtMTItaW5zaWRlLTNfMzQ2MV84ODcwOCIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExMy41NzggNDcuNTM1Mkg5Ny44MjgxVjU3LjMxMUM5Ny44MjgxIDU4LjIxMDkgMTAxLjM1NCA1OC45NDAzIDEwNS43MDMgNTguOTQwM0MxMTAuMDUyIDU4Ljk0MDMgMTEzLjU3OCA1OC4yMTA5IDExMy41NzggNTcuMzExVjQ3LjUzNTJaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMTMuNTc4IDQ3LjUzNTJIOTcuODI4MVY1Ny4zMTFDOTcuODI4MSA1OC4yMTA5IDEwMS4zNTQgNTguOTQwMyAxMDUuNzAzIDU4Ljk0MDNDMTEwLjA1MiA1OC45NDAzIDExMy41NzggNTguMjEwOSAxMTMuNTc4IDU3LjMxMVY0Ny41MzUyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTk3LjgyODEgNDcuNTM1MlY0Ni40NDg5SDk2Ljc0MTlWNDcuNTM1Mkg5Ny44MjgxWk0xMTMuNTc4IDQ3LjUzNTJIMTE0LjY2NFY0Ni40NDg5SDExMy41NzhWNDcuNTM1MlpNOTcuODI4MSA0OC42MjE0SDExMy41NzhWNDYuNDQ4OUg5Ny44MjgxVjQ4LjYyMTRaTTk4LjkxNDMgNTcuMzExVjQ3LjUzNTJIOTYuNzQxOVY1Ny4zMTFIOTguOTE0M1pNMTA1LjcwMyA1Ny44NTQxQzEwMy41NzkgNTcuODU0MSAxMDEuNjg4IDU3LjY3NTMgMTAwLjM1NSA1Ny4zOTk0Qzk5LjY3OTIgNTcuMjU5NyA5OS4yMDQxIDU3LjEwNjQgOTguOTI0MyA1Ni45Njk1Qzk4Ljc4MjEgNTYuOSA5OC43NDY0IDU2Ljg2MTQgOTguNzYwNCA1Ni44NzU2Qzk4Ljc3NzcgNTYuODkzMSA5OC45MTQzIDU3LjA0MiA5OC45MTQzIDU3LjMxMUg5Ni43NDE5Qzk2Ljc0MTkgNTcuODA0OSA5Ni45ODg3IDU4LjE3MzYgOTcuMjE1OCA1OC40MDMyQzk3LjQzOTcgNTguNjI5NSA5Ny43MTM0IDU4Ljc5NTYgOTcuOTY5NyA1OC45MjA5Qzk4LjQ4NjggNTkuMTczOSA5OS4xNjUgNTkuMzcxNyA5OS45MTQ2IDU5LjUyNjhDMTAxLjQzMiA1OS44NDA3IDEwMy40NzggNjAuMDI2NSAxMDUuNzAzIDYwLjAyNjVWNTcuODU0MVpNMTEyLjQ5MiA1Ny4zMTFDMTEyLjQ5MiA1Ny4wNDIgMTEyLjYyOSA1Ni44OTMxIDExMi42NDYgNTYuODc1NkMxMTIuNjYgNTYuODYxNCAxMTIuNjI0IDU2LjkgMTEyLjQ4MiA1Ni45Njk1QzExMi4yMDIgNTcuMTA2NCAxMTEuNzI3IDU3LjI1OTcgMTExLjA1MiA1Ny4zOTk0QzEwOS43MTggNTcuNjc1MyAxMDcuODI3IDU3Ljg1NDEgMTA1LjcwMyA1Ny44NTQxVjYwLjAyNjVDMTA3LjkyOSA2MC4wMjY1IDEwOS45NzUgNTkuODQwNyAxMTEuNDkyIDU5LjUyNjhDMTEyLjI0MSA1OS4zNzE3IDExMi45MTkgNTkuMTczOSAxMTMuNDM3IDU4LjkyMDlDMTEzLjY5MyA1OC43OTU2IDExMy45NjcgNTguNjI5NSAxMTQuMTkgNTguNDAzMkMxMTQuNDE4IDU4LjE3MzYgMTE0LjY2NCA1Ny44MDQ5IDExNC42NjQgNTcuMzExSDExMi40OTJaTTExMi40OTIgNDcuNTM1MlY1Ny4zMTFIMTE0LjY2NFY0Ny41MzUySDExMi40OTJaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMTItaW5zaWRlLTNfMzQ2MV84ODcwOCkiLz4KPHBhdGggZD0iTTExMy4yMzQgNDcuOTM3OUMxMTMuMzQ4IDQ3Ljk5MDMgMTEzLjQzMiA0OC4wMzggMTEzLjQ5MiA0OC4wNzgzQzExMy40MzIgNDguMTE4NiAxMTMuMzQ4IDQ4LjE2NjMgMTEzLjIzNCA0OC4yMTg2QzExMi44NjUgNDguMzg3NCAxMTIuMjk3IDQ4LjU1MzEgMTExLjU1MyA0OC42OTcyQzExMC4wNzIgNDguOTgzNyAxMDguMDA0IDQ5LjE2NDUgMTA1LjcwMyA0OS4xNjQ1QzEwMy40MDIgNDkuMTY0NSAxMDEuMzM0IDQ4Ljk4MzcgOTkuODU0IDQ4LjY5NzJDOTkuMTA5NCA0OC41NTMxIDk4LjU0MTUgNDguMzg3NCA5OC4xNzI3IDQ4LjIxODZDOTguMDU4MiA0OC4xNjYzIDk3Ljk3NDEgNDguMTE4NiA5Ny45MTQ0IDQ4LjA3ODNDOTcuOTc0MSA0OC4wMzggOTguMDU4MiA0Ny45OTAzIDk4LjE3MjcgNDcuOTM3OUM5OC41NDE1IDQ3Ljc2OTIgOTkuMTA5NCA0Ny42MDM1IDk5Ljg1NCA0Ny40NTk0QzEwMS4zMzQgNDcuMTcyOSAxMDMuNDAyIDQ2Ljk5MjEgMTA1LjcwMyA0Ni45OTIxQzEwOC4wMDQgNDYuOTkyMSAxMTAuMDcyIDQ3LjE3MjkgMTExLjU1MyA0Ny40NTk0QzExMi4yOTcgNDcuNjAzNSAxMTIuODY1IDQ3Ljc2OTIgMTEzLjIzNCA0Ny45Mzc5WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xMTMuMjM0IDQ2LjMwODVDMTEzLjM0OCA0Ni4zNjA5IDExMy40MzIgNDYuNDA4NiAxMTMuNDkyIDQ2LjQ0ODlDMTEzLjQzMiA0Ni40ODkyIDExMy4zNDggNDYuNTM2OSAxMTMuMjM0IDQ2LjU4OTJDMTEyLjg2NSA0Ni43NTggMTEyLjI5NyA0Ni45MjM3IDExMS41NTMgNDcuMDY3OEMxMTAuMDcyIDQ3LjM1NDMgMTA4LjAwNCA0Ny41MzUxIDEwNS43MDMgNDcuNTM1MUMxMDMuNDAyIDQ3LjUzNTEgMTAxLjMzNCA0Ny4zNTQzIDk5Ljg1NCA0Ny4wNjc4Qzk5LjEwOTQgNDYuOTIzNyA5OC41NDE1IDQ2Ljc1OCA5OC4xNzI3IDQ2LjU4OTJDOTguMDU4MiA0Ni41MzY5IDk3Ljk3NDEgNDYuNDg5MiA5Ny45MTQ0IDQ2LjQ0ODlDOTcuOTc0MSA0Ni40MDg2IDk4LjA1ODIgNDYuMzYwOSA5OC4xNzI3IDQ2LjMwODVDOTguNTQxNSA0Ni4xMzk4IDk5LjEwOTQgNDUuOTc0MSA5OS44NTQgNDUuODNDMTAxLjMzNCA0NS41NDM1IDEwMy40MDIgNDUuMzYyNyAxMDUuNzAzIDQ1LjM2MjdDMTA4LjAwNCA0NS4zNjI3IDExMC4wNzIgNDUuNTQzNSAxMTEuNTUzIDQ1LjgzQzExMi4yOTcgNDUuOTc0MSAxMTIuODY1IDQ2LjEzOTggMTEzLjIzNCA0Ni4zMDg1WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2JfMzQ2MV84ODcwOCkiPgo8cmVjdCB4PSIxMDIuNDQyIiB5PSI4MC4xMDYiIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik0xMTUuODE5IDk0LjA1NlY5NS40MjE0SDEwOC4zNTJMMTA4LjI5NSA5NC4zOTAzTDExMi43NjEgODcuMzkyN0gxMTQuMTM0TDExMi42NDggODkuOTM4NUwxMTAuMDggOTQuMDU2SDExNS44MTlaTTExNC41MjUgODcuMzkyN1Y5Ny43NDY4SDExMi44MTFWODcuMzkyN0gxMTQuNTI1Wk0xMjMuNzEzIDkxLjcwMjJWOTMuMzk0N0MxMjMuNzEzIDk0LjIwNTQgMTIzLjYzMiA5NC44OTc1IDEyMy40NzEgOTUuNDcxMkMxMjMuMzE1IDk2LjA0MDEgMTIzLjA4NyA5Ni41MDIzIDEyMi43ODggOTYuODU3OUMxMjIuNDkgOTcuMjEzNSAxMjIuMTMyIDk3LjQ3NDIgMTIxLjcxNSA5Ny42NDAyQzEyMS4zMDIgOTcuODA2MSAxMjAuODQgOTcuODg5MSAxMjAuMzI4IDk3Ljg4OTFDMTE5LjkyIDk3Ljg4OTEgMTE5LjU0MSA5Ny44MzY5IDExOS4xOSA5Ny43MzI2QzExOC44NDQgOTcuNjI4MyAxMTguNTMxIDk3LjQ2NDcgMTE4LjI1MSA5Ny4yNDE5QzExNy45NzIgOTcuMDE5MSAxMTcuNzMyIDk2LjczMjMgMTE3LjUzMyA5Ni4zODE0QzExNy4zMzkgOTYuMDI1OSAxMTcuMTg3IDk1LjYwMTYgMTE3LjA3OCA5NS4xMDg1QzExNi45NzQgOTQuNjE1NCAxMTYuOTIyIDk0LjA0NDIgMTE2LjkyMiA5My4zOTQ3VjkxLjcwMjJDMTE2LjkyMiA5MC44ODY3IDExNy4wMDIgOTAuMTk5MyAxMTcuMTYzIDg5LjYzOTlDMTE3LjMyNSA4OS4wNzU3IDExNy41NTQgODguNjE4MiAxMTcuODUzIDg4LjI2NzRDMTE4LjE1MiA4Ny45MTE4IDExOC41MDcgODcuNjUzNCAxMTguOTIgODcuNDkyMkMxMTkuMzM3IDg3LjMzMSAxMTkuODAyIDg3LjI1MDQgMTIwLjMxNCA4Ny4yNTA0QzEyMC43MjYgODcuMjUwNCAxMjEuMTA1IDg3LjMwMjYgMTIxLjQ1MSA4Ny40MDY5QzEyMS44MDIgODcuNTA2NCAxMjIuMTE1IDg3LjY2NTMgMTIyLjM5IDg3Ljg4MzNDMTIyLjY3IDg4LjEwMTQgMTIyLjkwNyA4OC4zODU5IDEyMy4xMDEgODguNzM2N0MxMjMuMyA4OS4wODI4IDEyMy40NTIgODkuNTAyNCAxMjMuNTU2IDg5Ljk5NTRDMTIzLjY2MSA5MC40ODM3IDEyMy43MTMgOTEuMDUyNiAxMjMuNzEzIDkxLjcwMjJaTTEyMS45OTkgOTMuNjM2NFY5MS40NDYxQzEyMS45OTkgOTEuMDMzNyAxMjEuOTc1IDkwLjY3MSAxMjEuOTI4IDkwLjM1ODFDMTIxLjg4MSA5MC4wNDA1IDEyMS44MDkgODkuNzcyNiAxMjEuNzE1IDg5LjU1NDVDMTIxLjYyNSA4OS4zMzE3IDEyMS41MTEgODkuMTUxNSAxMjEuMzczIDg5LjAxNDFDMTIxLjIzNiA4OC44NzE4IDEyMS4wNzkgODguNzY5OSAxMjAuOTA0IDg4LjcwODNDMTIwLjcyOCA4OC42NDE5IDEyMC41MzIgODguNjA4NyAxMjAuMzE0IDg4LjYwODdDMTIwLjA0OCA4OC42MDg3IDExOS44MTEgODguNjYwOSAxMTkuNjAzIDg4Ljc2NTJDMTE5LjM5NCA4OC44NjQ3IDExOS4yMTggODkuMDI1OSAxMTkuMDc2IDg5LjI0ODdDMTE4LjkzNCA4OS40NzE2IDExOC44MjUgODkuNzY1NSAxMTguNzQ5IDkwLjEzMDVDMTE4LjY3OCA5MC40OTA5IDExOC42NDIgOTAuOTI5NCAxMTguNjQyIDkxLjQ0NjFWOTMuNjM2NEMxMTguNjQyIDk0LjA1MzcgMTE4LjY2NiA5NC40MjExIDExOC43MTQgOTQuNzM4N0MxMTguNzYxIDk1LjA1NjQgMTE4LjgzMiA5NS4zMjkgMTE4LjkyNyA5NS41NTY1QzExOS4wMjIgOTUuNzc5MyAxMTkuMTM2IDk1Ljk2NDIgMTE5LjI2OCA5Ni4xMTEyQzExOS40MDYgOTYuMjUzNCAxMTkuNTYyIDk2LjM1NzcgMTE5LjczOCA5Ni40MjQxQzExOS45MTggOTYuNDkwNSAxMjAuMTE1IDk2LjUyMzcgMTIwLjMyOCA5Ni41MjM3QzEyMC41OTggOTYuNTIzNyAxMjAuODM4IDk2LjQ3MTUgMTIxLjA0NiA5Ni4zNjcyQzEyMS4yNTUgOTYuMjYyOSAxMjEuNDMgOTYuMDk3IDEyMS41NzIgOTUuODY5NEMxMjEuNzE1IDk1LjYzNzEgMTIxLjgyMSA5NS4zMzYxIDEyMS44OTIgOTQuOTY2M0MxMjEuOTYzIDk0LjU5NjUgMTIxLjk5OSA5NC4xNTMyIDEyMS45OTkgOTMuNjM2NFoiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPHBhdGggZD0iTTEyOC45ODkgOTIuODYyNFY5Mi41MjAyQzEyOC45ODkgOTIuMjc0MyAxMjkuMDQzIDkyLjA1MDYgMTI5LjE0OSA5MS44NDkxQzEyOS4yNTYgOTEuNjQ3NiAxMjkuNDEyIDkxLjQ4NjEgMTI5LjYxNiA5MS4zNjQ2QzEyOS44MjEgOTEuMjQzMSAxMzAuMDY2IDkxLjE4MjQgMTMwLjM1NCA5MS4xODI0QzEzMC42NSA5MS4xODI0IDEzMC44OTkgOTEuMjQzMSAxMzEuMTAxIDkxLjM2NDZDMTMxLjMwNSA5MS40ODYxIDEzMS40NjEgOTEuNjQ3NiAxMzEuNTY3IDkxLjg0OTFDMTMxLjY3NCA5Mi4wNTA2IDEzMS43MjcgOTIuMjc0MyAxMzEuNzI3IDkyLjUyMDJWOTIuODYyNEMxMzEuNzI3IDkzLjEwMjUgMTMxLjY3NCA5My4zMjMyIDEzMS41NjcgOTMuNTI0N0MxMzEuNDY0IDkzLjcyNjIgMTMxLjMwOSA5My44ODc3IDEzMS4xMDUgOTQuMDA5MkMxMzAuOTA0IDk0LjEzMDYgMTMwLjY1NiA5NC4xOTE0IDEzMC4zNjMgOTQuMTkxNEMxMzAuMDcyIDk0LjE5MTQgMTI5LjgyMyA5NC4xMzA2IDEyOS42MTYgOTQuMDA5MkMxMjkuNDEyIDkzLjg4NzcgMTI5LjI1NiA5My43MjYyIDEyOS4xNDkgOTMuNTI0N0MxMjkuMDQzIDkzLjMyMzIgMTI4Ljk4OSA5My4xMDI1IDEyOC45ODkgOTIuODYyNFpNMTI5LjczMiA5Mi41MjAyVjkyLjg2MjRDMTI5LjczMiA5Mi45ODEgMTI5Ljc1NCA5My4wOTM2IDEyOS43OTggOTMuMjAwMkMxMjkuODQ2IDkzLjMwNjkgMTI5LjkxNyA5My4zOTI4IDEzMC4wMTIgOTMuNDU4QzEzMC4xMDYgOTMuNTIzMiAxMzAuMjI0IDkzLjU1NTggMTMwLjM2MyA5My41NTU4QzEzMC41MDUgOTMuNTU1OCAxMzAuNjIxIDkzLjUyMzIgMTMwLjcwOSA5My40NThDMTMwLjgwMSA5My4zOTI4IDEzMC44NjkgOTMuMzA2OSAxMzAuOTE0IDkzLjIwMDJDMTMwLjk1OCA5My4wOTM2IDEzMC45ODEgOTIuOTgxIDEzMC45ODEgOTIuODYyNFY5Mi41MjAyQzEzMC45ODEgOTIuMzk4NyAxMzAuOTU3IDkyLjI4NDYgMTMwLjkwOSA5Mi4xNzhDMTMwLjg2NSA5Mi4wNjgzIDEzMC43OTcgOTEuOTgwOSAxMzAuNzA1IDkxLjkxNTdDMTMwLjYxMyA5MS44NTA2IDEzMC40OTYgOTEuODE4IDEzMC4zNTQgOTEuODE4QzEzMC4yMTggOTEuODE4IDEzMC4xMDIgOTEuODUwNiAxMzAuMDA3IDkxLjkxNTdDMTI5LjkxNSA5MS45ODA5IDEyOS44NDYgOTIuMDY4MyAxMjkuNzk4IDkyLjE3OEMxMjkuNzU0IDkyLjI4NDYgMTI5LjczMiA5Mi4zOTg3IDEyOS43MzIgOTIuNTIwMlpNMTMyLjExIDk2LjUwN1Y5Ni4xNjAzQzEzMi4xMSA5NS45MTc0IDEzMi4xNjMgOTUuNjk1MSAxMzIuMjcgOTUuNDkzN0MxMzIuMzc5IDk1LjI5MjIgMTMyLjUzNiA5NS4xMzA3IDEzMi43NDEgOTUuMDA5MkMxMzIuOTQ1IDk0Ljg4NzcgMTMzLjE5MSA5NC44MjcgMTMzLjQ3OCA5NC44MjdDMTMzLjc3NSA5NC44MjcgMTM0LjAyNCA5NC44ODc3IDEzNC4yMjUgOTUuMDA5MkMxMzQuNDMgOTUuMTMwNyAxMzQuNTg0IDk1LjI5MjIgMTM0LjY4NyA5NS40OTM3QzEzNC43OTQgOTUuNjk1MSAxMzQuODQ3IDk1LjkxNzQgMTM0Ljg0NyA5Ni4xNjAzVjk2LjUwN0MxMzQuODQ3IDk2Ljc1IDEzNC43OTQgOTYuOTcyMiAxMzQuNjg3IDk3LjE3MzdDMTM0LjU4NCA5Ny4zNzUyIDEzNC40MzEgOTcuNTM2NyAxMzQuMjMgOTcuNjU4MkMxMzQuMDI4IDk3Ljc3OTcgMTMzLjc4MiA5Ny44NDA0IDEzMy40OTIgOTcuODQwNEMxMzMuMTk4IDk3Ljg0MDQgMTMyLjk0OCA5Ny43Nzk3IDEzMi43NDEgOTcuNjU4MkMxMzIuNTM2IDk3LjUzNjcgMTMyLjM3OSA5Ny4zNzUyIDEzMi4yNyA5Ny4xNzM3QzEzMi4xNjMgOTYuOTcyMiAxMzIuMTEgOTYuNzUgMTMyLjExIDk2LjUwN1pNMTMyLjg1NiA5Ni4xNjAzVjk2LjUwN0MxMzIuODU2IDk2LjYyNTUgMTMyLjg4IDk2LjczODEgMTMyLjkyNyA5Ni44NDQ4QzEzMi45NzggOTYuOTUxNSAxMzMuMDUgOTcuMDM4OSAxMzMuMTQ1IDk3LjEwN0MxMzMuMjQgOTcuMTcyMiAxMzMuMzU0IDk3LjIwNDggMTMzLjQ4NyA5Ny4yMDQ4QzEzMy42MzggOTcuMjA0OCAxMzMuNzYgOTcuMTcyMiAxMzMuODUyIDk3LjEwN0MxMzMuOTQ0IDk3LjAzODkgMTM0LjAwOSA5Ni45NTMgMTM0LjA0NyA5Ni44NDkzQzEzNC4wODkgOTYuNzQyNiAxMzQuMTEgOTYuNjI4NSAxMzQuMTEgOTYuNTA3Vjk2LjE2MDNDMTM0LjExIDk2LjAzODkgMTM0LjA4NiA5NS45MjQ4IDEzNC4wMzggOTUuODE4MUMxMzMuOTk0IDk1LjcxMTQgMTMzLjkyNCA5NS42MjU1IDEzMy44MyA5NS41NjAzQzEzMy43MzggOTUuNDk1MSAxMzMuNjIxIDk1LjQ2MjUgMTMzLjQ3OCA5NS40NjI1QzEzMy4zMzkgOTUuNDYyNSAxMzMuMjI0IDk1LjQ5NTEgMTMzLjEzMiA5NS41NjAzQzEzMy4wNCA5NS42MjU1IDEzMi45NyA5NS43MTE0IDEzMi45MjMgOTUuODE4MUMxMzIuODc4IDk1LjkyNDggMTMyLjg1NiA5Ni4wMzg5IDEzMi44NTYgOTYuMTYwM1pNMTMzLjc0NSA5Mi4yMDAyTDEzMC41ODUgOTcuMjU4MkwxMzAuMDM4IDk2Ljk0MjZMMTMzLjE5OCA5MS44ODQ2TDEzMy43NDUgOTIuMjAwMloiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPC9nPgo8cmVjdCB4PSIwLjUiIHk9IjAuNSIgd2lkdGg9IjE5OSIgaGVpZ2h0PSIxNTkiIHJ4PSIzLjUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIi8+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2JfMzQ2MV84ODcwOCIgeD0iOTkuMTkzNyIgeT0iNzYuODU3MyIgd2lkdGg9IjQ1LjA2MTgiIGhlaWdodD0iMjkuOTU4OCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjYyNDM0Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzg4NzA4Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzg4NzA4IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", "description": "Widget indicates the level of liquid in Vertical Oval tank.", "descriptor": { "type": "latest", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} +} \ No newline at end of file diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html index 9a939b330c..ff1f5af8d5 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html @@ -79,7 +79,7 @@ [fxShow]="levelCardWidgetConfigForm.get('tankSelectionType')?.value === shapeSelectOptions.static" rowHeight="{{ '1:1' }}" [cols]="5" - [colsLtMd]="5" + [colsLtMd]="2" style="width: 100%;" label="{{ 'widgets.liquid-level-card.shape-type' | translate }}" formControlName="selectedShape">
widgets.liquid-level-card.value
- + +
widget-config.decimals-suffix
@@ -259,12 +260,12 @@ {{ 'widgets.liquid-level-card.level' | translate }} -
+
- +
widget-config.decimals-suffix
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts index f7de3f142f..432a8b15ea 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts @@ -116,8 +116,8 @@ export class LiquidLevelWidgetComponent implements OnInit { } } - if (isDefined(volume) && isNumber(volume)) { - this.volume = volume; + if (isDefined(volume) && !isNaN(Number(volume))) { + this.volume = Number(volume); } if (units) { @@ -214,7 +214,7 @@ export class LiquidLevelWidgetComponent implements OnInit { theme: 'tooltipster-shadow', side: 'top', delay: 10, - distance: -33, + distance: this.settings.showTitle ? -33 : -63, triggerClose: { click: true, tap: true, @@ -231,10 +231,12 @@ export class LiquidLevelWidgetComponent implements OnInit { const tooltipsterBoxStyles: JQuery.PlainObject = { backgroundColor: this.getTooltipBackground(), backdropFilter: `blur(${this.settings.tooltipBackgroundBlur}px)`, - width: '100%' + width: '100%', + height: '100%' }; $(helper.tooltip).css('max-width', this.svg.width() + 'px'); + $(helper.tooltip).css('max-height', this.svg.height() + 'px'); $(helper.tooltip).find('.tooltipster-box').css(tooltipsterBoxStyles); $(helper.tooltip).find('.tooltipster-arrow').empty(); @@ -397,6 +399,8 @@ export class LiquidLevelWidgetComponent implements OnInit { const value = convertLiters(data, this.widgetUnits as CapacityUnits, ConversionType.from) .toFixed(this.settings.decimals || 0); + this.valueColor.update(value); + const valueTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.valueFont), color: this.valueColor.color}); this.backgroundOverlayColor.update(percentage); @@ -405,11 +409,11 @@ export class LiquidLevelWidgetComponent implements OnInit { } if (this.settings.layout === LevelCardLayout.absolute) { - this.volumeColor.update(percentage); - const volumeInLiters: number = convertLiters(this.volume, this.settings.volumeUnits as CapacityUnits, ConversionType.to); const volume = convertLiters(volumeInLiters, this.widgetUnits as CapacityUnits, ConversionType.from) .toFixed(this.settings.decimals || 0); + this.volumeColor.update(volume); + const volumeTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.volumeFont), color: this.volumeColor.color}); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.scss index 37c06ed239..0cda7679e5 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.scss +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/image-cards-select.component.scss @@ -95,6 +95,11 @@ min-height: 0; display: flex; justify-content: center; + + .tb-image-cards-option-image { + max-width: 100%; + max-height: 100%; + } } &.selected { .tb-image-cards-option-background { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html index 94ef1b1e20..cb02492efb 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html @@ -34,7 +34,7 @@ [fxShow]="levelCardWidgetSettingsForm.get('tankSelectionType')?.value === shapeSelectOptions.static" rowHeight="{{ '1:1' }}" [cols]="5" - [colsLtMd]="5" + [colsLtMd]="2" style="width: 100%;" label="{{ 'widgets.liquid-level-card.shape-type' | translate }}" formControlName="selectedShape"> Date: Thu, 26 Oct 2023 17:04:25 +0300 Subject: [PATCH 35/56] added api request parameter to retrieve all tenant bundles without system --- .../controller/WidgetsBundleController.java | 9 +++++++- .../dao/widget/WidgetsBundleService.java | 2 ++ .../dao/sql/widget/JpaWidgetsBundleDao.java | 19 ++++++++++++++++ .../sql/widget/WidgetsBundleRepository.java | 22 +++++++++++++++++++ .../server/dao/widget/WidgetsBundleDao.java | 9 ++++++++ .../dao/widget/WidgetsBundleServiceImpl.java | 8 +++++++ 6 files changed, 68 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java b/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java index b07467b94b..f62d1b7b05 100644 --- a/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java +++ b/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java @@ -69,6 +69,7 @@ public class WidgetsBundleController extends BaseController { private static final String WIDGET_BUNDLE_DESCRIPTION = "Widget Bundle represents a group(bundle) of widgets. Widgets are grouped into bundle by type or use case. "; private static final String FULL_SEARCH_PARAM_DESCRIPTION = "Optional boolean parameter indicating extended search of widget bundles by description and by name / description of related widget types"; + private static final String TENANT_BUNDLES_ONLY_DESCRIPTION = "Optional boolean parameter to include only tenant-level bundles without system"; @ApiOperation(value = "Get Widget Bundle (getWidgetsBundleById)", notes = "Get the Widget Bundle based on the provided Widget Bundle Id. " + WIDGET_BUNDLE_DESCRIPTION + AVAILABLE_FOR_ANY_AUTHORIZED_USER) @@ -185,6 +186,8 @@ public class WidgetsBundleController extends BaseController { @RequestParam(required = false) String sortProperty, @ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES) @RequestParam(required = false) String sortOrder, + @ApiParam(value = TENANT_BUNDLES_ONLY_DESCRIPTION) + @RequestParam(required = false) Boolean tenantOnly, @ApiParam(value = FULL_SEARCH_PARAM_DESCRIPTION) @RequestParam(required = false) Boolean fullSearch) throws ThingsboardException { PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); @@ -192,7 +195,11 @@ public class WidgetsBundleController extends BaseController { return checkNotNull(widgetsBundleService.findSystemWidgetsBundlesByPageLink(getTenantId(), fullSearch != null && fullSearch, pageLink)); } else { TenantId tenantId = getCurrentUser().getTenantId(); - return checkNotNull(widgetsBundleService.findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, fullSearch != null && fullSearch, pageLink)); + if (tenantOnly != null && tenantOnly) { + return checkNotNull(widgetsBundleService.findTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, fullSearch != null && fullSearch, pageLink)); + } else { + return checkNotNull(widgetsBundleService.findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, fullSearch != null && fullSearch, 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 15fd4838dd..a836fb893d 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 @@ -42,6 +42,8 @@ public interface WidgetsBundleService extends EntityDaoService { PageData findAllTenantWidgetsBundlesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink); + PageData findTenantWidgetsBundlesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink); + List findAllTenantWidgetsBundlesByTenantId(TenantId tenantId); void deleteWidgetsBundlesByTenantId(TenantId tenantId); 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 e9c972c7a3..783f7db0f6 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 @@ -111,6 +111,25 @@ public class JpaWidgetsBundleDao extends JpaAbstractDao findTenantWidgetsBundlesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink) { + if (fullSearch) { + return DaoUtil.toPageData( + widgetsBundleRepository + .findTenantWidgetsBundlesByTenantIdFullSearch( + tenantId, + Objects.toString(pageLink.getTextSearch(), ""), + DaoUtil.toPageable(pageLink))); + } else { + return DaoUtil.toPageData( + widgetsBundleRepository + .findTenantWidgetsBundlesByTenantId( + tenantId, + Objects.toString(pageLink.getTextSearch(), ""), + DaoUtil.toPageable(pageLink))); + } + } + @Override public WidgetsBundle findByTenantIdAndExternalId(UUID tenantId, UUID externalId) { return DaoUtil.getData(widgetsBundleRepository.findByTenantIdAndExternalId(tenantId, externalId)); 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 25053bbbe6..e082f4d396 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 @@ -96,6 +96,28 @@ public interface WidgetsBundleRepository extends JpaRepository findTenantWidgetsBundlesByTenantIdFullSearch(@Param("tenantId") UUID tenantId, + @Param("textSearch") String textSearch, + Pageable pageable); + WidgetsBundleEntity findFirstByTenantIdAndTitle(UUID tenantId, String title); @Query("SELECT externalId FROM WidgetsBundleEntity WHERE id = :id") 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 b5486b61b1..9e0d70dcd8 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 @@ -74,5 +74,14 @@ public interface WidgetsBundleDao extends Dao, ExportableEntityDa */ PageData findAllTenantWidgetsBundlesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink); + /** + * Find all tenant widgets bundles (does not include system) by tenantId and page link. + * + * @param tenantId the tenantId + * @param pageLink the page link + * @return the list of widgets bundles objects + */ + PageData findTenantWidgetsBundlesByTenantId(UUID tenantId, boolean fullSearch, 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 998cbb6e31..87a507873d 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 @@ -142,6 +142,14 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService { return widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId.getId(), fullSearch, pageLink); } + @Override + public PageData findTenantWidgetsBundlesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink) { + log.trace("Executing findTenantWidgetsBundlesByTenantIdAndPageLink, tenantId [{}], fullSearch [{}], pageLink [{}]", tenantId, fullSearch, pageLink); + Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId); + Validator.validatePageLink(pageLink); + return widgetsBundleDao.findTenantWidgetsBundlesByTenantId(tenantId.getId(), fullSearch, pageLink); + } + @Override public List findAllTenantWidgetsBundlesByTenantId(TenantId tenantId) { log.trace("Executing findAllTenantWidgetsBundlesByTenantId, tenantId [{}]", tenantId); From 203cd0fec165e63b818335029651575a1555e392 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 26 Oct 2023 17:43:28 +0300 Subject: [PATCH 36/56] added test --- .../WidgetsBundleControllerTest.java | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/WidgetsBundleControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/WidgetsBundleControllerTest.java index ee341fe284..80d70c1b8b 100644 --- a/application/src/test/java/org/thingsboard/server/controller/WidgetsBundleControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/WidgetsBundleControllerTest.java @@ -206,22 +206,32 @@ public class WidgetsBundleControllerTest extends AbstractControllerTest { @Test public void testFindTenantWidgetsBundlesByPageLink() throws Exception { + loginSysAdmin(); - login(tenantAdmin.getEmail(), "testPassword1"); + //upload some system bundles + int sysCntEntity = 10; + for (int i = 0; i < sysCntEntity; i++) { + WidgetsBundle widgetsBundle = new WidgetsBundle(); + widgetsBundle.setTitle("Widgets bundle" + i); + doPost("/api/widgetsBundle", widgetsBundle, WidgetsBundle.class); + } List sysWidgetsBundles = doGetTyped("/api/widgetsBundles?", new TypeReference<>() { }); + login(tenantAdmin.getEmail(), "testPassword1"); + int cntEntity = 73; - List widgetsBundles = new ArrayList<>(); + List tenantWidgetsBundles = new ArrayList<>(); for (int i = 0; i < cntEntity; i++) { WidgetsBundle widgetsBundle = new WidgetsBundle(); widgetsBundle.setTitle("Widgets bundle" + i); - widgetsBundles.add(doPost("/api/widgetsBundle", widgetsBundle, WidgetsBundle.class)); + tenantWidgetsBundles.add(doPost("/api/widgetsBundle", widgetsBundle, WidgetsBundle.class)); } - widgetsBundles.addAll(sysWidgetsBundles); + List allWidgetsBundles = new ArrayList<>(tenantWidgetsBundles); + allWidgetsBundles.addAll(sysWidgetsBundles); List loadedWidgetsBundles = new ArrayList<>(); PageLink pageLink = new PageLink(14); @@ -236,10 +246,28 @@ public class WidgetsBundleControllerTest extends AbstractControllerTest { } } while (pageData.hasNext()); - Collections.sort(widgetsBundles, idComparator); + Collections.sort(allWidgetsBundles, idComparator); Collections.sort(loadedWidgetsBundles, idComparator); - Assert.assertEquals(widgetsBundles, loadedWidgetsBundles); + Assert.assertEquals(allWidgetsBundles, loadedWidgetsBundles); + + //retrieve tenant only bundles + List loadedWidgetsBundles2 = new ArrayList<>(); + PageLink pageLink2 = new PageLink(14); + do { + pageData = doGetTypedWithPageLink("/api/widgetsBundles?tenantOnly=true&", + new TypeReference<>() { + }, pageLink2); + loadedWidgetsBundles2.addAll(pageData.getData()); + if (pageData.hasNext()) { + pageLink2 = pageLink2.nextPageLink(); + } + } while (pageData.hasNext()); + + Collections.sort(tenantWidgetsBundles, idComparator); + Collections.sort(loadedWidgetsBundles2, idComparator); + + Assert.assertEquals(tenantWidgetsBundles, loadedWidgetsBundles2); } @Test From f71213c8ed3ed9141876a43de408ddb5541abe15 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Thu, 26 Oct 2023 19:06:08 +0300 Subject: [PATCH 37/56] UI: Fixed liquid level widgets settings and updated default value --- .../system/widget_bundles/liquid_level.json | 22 ----- .../widget_bundles/liquid_level_tanks.json | 22 +++++ .../horizontal_2_1_elliptical.json | 24 +++++ .../horizontal_2_1_elliptical_tank.json | 24 ----- .../widget_types/horizontal_capsule.json | 24 +++++ .../widget_types/horizontal_capsule_tank.json | 24 ----- .../widget_types/horizontal_cylinder.json | 24 +++++ .../horizontal_cylinder_tank.json | 24 ----- .../widget_types/horizontal_dish_ends.json | 24 +++++ .../horizontal_dish_ends_tank.json | 24 ----- .../widget_types/horizontal_ellipse.json | 24 +++++ .../widget_types/horizontal_ellipse_tank.json | 24 ----- .../system/widget_types/horizontal_oval.json | 24 +++++ .../widget_types/horizontal_oval_tank.json | 24 ----- .../json/system/widget_types/rectangle.json | 24 +++++ .../system/widget_types/rectangle_tank.json | 24 ----- .../system/widget_types/vertical_capsule.json | 24 +++++ .../widget_types/vertical_capsule_tank.json | 24 ----- .../widget_types/vertical_cylinder.json | 24 +++++ .../widget_types/vertical_cylinder_tank.json | 24 ----- .../system/widget_types/vertical_oval.json | 24 +++++ .../widget_types/vertical_oval_tank.json | 24 ----- .../DefaultSystemDataLoaderService.java | 2 +- ...uid-level-card-basic-config.component.html | 31 +++---- ...iquid-level-card-basic-config.component.ts | 16 +--- .../liquid-level-widget.component.ts | 93 ++++++++----------- .../indicator/liquid-level-widget.models.ts | 8 +- ...-level-card-widget-settings.component.html | 24 ++--- 28 files changed, 330 insertions(+), 368 deletions(-) delete mode 100644 application/src/main/data/json/system/widget_bundles/liquid_level.json create mode 100644 application/src/main/data/json/system/widget_bundles/liquid_level_tanks.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json delete mode 100644 application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_capsule.json delete mode 100644 application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_cylinder.json delete mode 100644 application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_dish_ends.json delete mode 100644 application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_ellipse.json delete mode 100644 application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_oval.json delete mode 100644 application/src/main/data/json/system/widget_types/horizontal_oval_tank.json create mode 100644 application/src/main/data/json/system/widget_types/rectangle.json delete mode 100644 application/src/main/data/json/system/widget_types/rectangle_tank.json create mode 100644 application/src/main/data/json/system/widget_types/vertical_capsule.json delete mode 100644 application/src/main/data/json/system/widget_types/vertical_capsule_tank.json create mode 100644 application/src/main/data/json/system/widget_types/vertical_cylinder.json delete mode 100644 application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json create mode 100644 application/src/main/data/json/system/widget_types/vertical_oval.json delete mode 100644 application/src/main/data/json/system/widget_types/vertical_oval_tank.json diff --git a/application/src/main/data/json/system/widget_bundles/liquid_level.json b/application/src/main/data/json/system/widget_bundles/liquid_level.json deleted file mode 100644 index cef66c523f..0000000000 --- a/application/src/main/data/json/system/widget_bundles/liquid_level.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "widgetsBundle": { - "alias": "liquid_level_widgets", - "title": "Liquid level widgets", - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI5OCIgaGVpZ2h0PSI3OCIgcng9IjIiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xNC4yMzk0IDEyLjM5MTlWMTNIMTIuMDA1NFYxMi4zOTE5SDE0LjIzOTRaTTEyLjIxOTMgOC41NTA0N1YxM0gxMS40NTIzVjguNTUwNDdIMTIuMjE5M1pNMTUuNjY3NyA5LjY5MzQyVjEzSDE0LjkyODFWOS42OTM0MkgxNS42Njc3Wk0xNC44NzkyIDguODI1NTFDMTQuODc5MiA4LjcxMzQ2IDE0LjkxNTkgOC42MjA3NiAxNC45ODkyIDguNTQ3NDJDMTUuMDY0NiA4LjQ3MjA0IDE1LjE2ODUgOC40MzQzNSAxNS4zMDEgOC40MzQzNUMxNS40MzEzIDguNDM0MzUgMTUuNTM0MiA4LjQ3MjA0IDE1LjYwOTYgOC41NDc0MkMxNS42ODUgOC42MjA3NiAxNS43MjI3IDguNzEzNDYgMTUuNzIyNyA4LjgyNTUxQzE1LjcyMjcgOC45MzU1MyAxNS42ODUgOS4wMjcyMSAxNS42MDk2IDkuMTAwNTVDMTUuNTM0MiA5LjE3MzkgMTUuNDMxMyA5LjIxMDU3IDE1LjMwMSA5LjIxMDU3QzE1LjE2ODUgOS4yMTA1NyAxNS4wNjQ2IDkuMTczOSAxNC45ODkyIDkuMTAwNTVDMTQuOTE1OSA5LjAyNzIxIDE0Ljg3OTIgOC45MzU1MyAxNC44NzkyIDguODI1NTFaTTE4LjYwODcgMTQuMjcxM1YxMC4zNTA1TDE4LjY5NDMgOS42OTM0MkgxOS4zNTEzVjE0LjI3MTNIMTguNjA4N1pNMTYuNDYwNCAxMS4zODAzVjExLjMxNjFDMTYuNDYwNCAxMS4wNjU2IDE2LjQ4ODkgMTAuODM3NCAxNi41NDU5IDEwLjYzMTZDMTYuNjAzIDEwLjQyMzggMTYuNjg3NSAxMC4yNDU1IDE2Ljc5OTYgMTAuMDk2OEMxNi45MTE2IDkuOTQ4MDggMTcuMDQ4MSA5LjgzMzk5IDE3LjIwOTEgOS43NTQ1M0MxNy4zNyA5LjY3MzA0IDE3LjU1NTQgOS42MzIzIDE3Ljc2NTMgOS42MzIzQzE3Ljk2OSA5LjYzMjMgMTguMTQ2MiA5LjY3MSAxOC4yOTcgOS43NDg0MkMxOC40NDk4IDkuODI1ODQgMTguNTc4MiA5LjkzNjg4IDE4LjY4MjEgMTAuMDgxNUMxOC43ODggMTAuMjI0MSAxOC44NzI2IDEwLjM5NDMgMTguOTM1NyAxMC41OTE5QzE4Ljk5ODkgMTAuNzg5NSAxOS4wNDQ3IDExLjAwOTUgMTkuMDczMiAxMS4yNTJWMTEuNDU2N0MxOS4wNDY3IDExLjY5MzEgMTkuMDAxOSAxMS45MDkgMTguOTM4OCAxMi4xMDQ2QzE4Ljg3NTYgMTIuMzAwMiAxOC43OTExIDEyLjQ2OTMgMTguNjg1MSAxMi42MTE5QzE4LjU3OTIgMTIuNzU0NSAxOC40NDk4IDEyLjg2NTUgMTguMjk3IDEyLjk0NUMxOC4xNDQyIDEzLjAyMjQgMTcuOTY0OSAxMy4wNjExIDE3Ljc1OTIgMTMuMDYxMUMxNy41NTM0IDEzLjA2MTEgMTcuMzcgMTMuMDE5NCAxNy4yMDkxIDEyLjkzNThDMTcuMDQ4MSAxMi44NTIzIDE2LjkxMTYgMTIuNzM1MSAxNi43OTk2IDEyLjU4NDRDMTYuNjg5NiAxMi40MzE2IDE2LjYwNSAxMi4yNTMzIDE2LjU0NTkgMTIuMDQ5NkMxNi40ODg5IDExLjg0MzggMTYuNDYwNCAxMS42MjA3IDE2LjQ2MDQgMTEuMzgwM1pNMTcuMTk2OCAxMS4zMTYxVjExLjM4MDNDMTcuMTk2OCAxMS41MzExIDE3LjIxMDEgMTEuNjcyNyAxNy4yMzY2IDExLjgwNTFDMTcuMjY1MSAxMS45MzU1IDE3LjMwOTkgMTIuMDUxNiAxNy4zNzEgMTIuMTUzNUMxNy40MzIyIDEyLjI1MzMgMTcuNTA5NiAxMi4zMzE4IDE3LjYwMzMgMTIuMzg4OEMxNy42OTcgMTIuNDQ1OCAxNy44MTAxIDEyLjQ3NDQgMTcuOTQyNSAxMi40NzQ0QzE4LjExNTcgMTIuNDc0NCAxOC4yNTczIDEyLjQzNjcgMTguMzY3MyAxMi4zNjEzQzE4LjQ3OTMgMTIuMjg1OSAxOC41NjQ5IDEyLjE4NTEgMTguNjI0IDEyLjA1ODhDMTguNjg1MSAxMS45MzA0IDE4LjcyNzkgMTEuNzg4OCAxOC43NTI0IDExLjYzNFYxMS4wODA4QzE4LjczODEgMTAuOTYwNiAxOC43MTI2IDEwLjg0ODYgMTguNjc2IDEwLjc0NDdDMTguNjM5MyAxMC42Mzg3IDE4LjU4ODMgMTAuNTQ3MSAxOC41MjMyIDEwLjQ2OTZDMTguNDYgMTAuMzkwMiAxOC4zODA1IDEwLjMyOTEgMTguMjg0OCAxMC4yODYzQzE4LjE5MTEgMTAuMjQxNSAxOC4wNzkgMTAuMjE5IDE3Ljk0ODYgMTAuMjE5QzE3LjgxNjIgMTAuMjE5IDE3LjcwMjEgMTAuMjQ3NiAxNy42MDY0IDEwLjMwNDZDMTcuNTEwNiAxMC4zNjE3IDE3LjQzMjIgMTAuNDQxMSAxNy4zNzEgMTAuNTQzQzE3LjMxMiAxMC42NDI4IDE3LjI2ODIgMTAuNzU4OSAxNy4yMzk2IDEwLjg5MTRDMTcuMjExMSAxMS4wMjM4IDE3LjE5NjggMTEuMTY1NCAxNy4xOTY4IDExLjMxNjFaTTIyLjI0OTYgMTIuMjIwN1Y5LjY5MzQySDIyLjk4OTFWMTNIMjIuMjkyNEwyMi4yNDk2IDEyLjIyMDdaTTIyLjM1MzUgMTEuNTMzMUwyMi42MDEgMTEuNTI3QzIyLjYwMSAxMS43NDkxIDIyLjU3NjYgMTEuOTUzOCAyMi41Mjc3IDEyLjE0MTNDMjIuNDc4OCAxMi4zMjY3IDIyLjQwMzQgMTIuNDg4NiAyMi4zMDE1IDEyLjYyNzJDMjIuMTk5NyAxMi43NjM3IDIyLjA2OTMgMTIuODcwNiAyMS45MTA0IDEyLjk0OEMyMS43NTE1IDEzLjAyMzQgMjEuNTYxIDEzLjA2MTEgMjEuMzM4OSAxMy4wNjExQzIxLjE3NzkgMTMuMDYxMSAyMS4wMzAyIDEzLjAzNzcgMjAuODk1OCAxMi45OTA4QzIwLjc2MTMgMTIuOTQ0IDIwLjY0NTIgMTIuODcxNiAyMC41NDc0IDEyLjc3MzlDMjAuNDUxNiAxMi42NzYxIDIwLjM3NzMgMTIuNTQ4NyAyMC4zMjQzIDEyLjM5MTlDMjAuMjcxMyAxMi4yMzUgMjAuMjQ0OSAxMi4wNDc1IDIwLjI0NDkgMTEuODI5NlY5LjY5MzQySDIwLjk4MTNWMTEuODM1N0MyMC45ODEzIDExLjk1NTkgMjAuOTk1NiAxMi4wNTY3IDIxLjAyNDEgMTIuMTM4MkMyMS4wNTI3IDEyLjIxNzcgMjEuMDkxNCAxMi4yODE4IDIxLjE0MDMgMTIuMzMwN0MyMS4xODkyIDEyLjM3OTYgMjEuMjQ2MiAxMi40MTQzIDIxLjMxMTQgMTIuNDM0NkMyMS4zNzY2IDEyLjQ1NSAyMS40NDU5IDEyLjQ2NTIgMjEuNTE5MiAxMi40NjUyQzIxLjcyOSAxMi40NjUyIDIxLjg5NDEgMTIuNDI0NSAyMi4wMTQzIDEyLjM0M0MyMi4xMzY1IDEyLjI1OTQgMjIuMjIzMSAxMi4xNDc0IDIyLjI3NCAxMi4wMDY4QzIyLjMyNyAxMS44NjYyIDIyLjM1MzUgMTEuNzA4MyAyMi4zNTM1IDExLjUzMzFaTTI0LjY1MjggOS42OTM0MlYxM0gyMy45MTMyVjkuNjkzNDJIMjQuNjUyOFpNMjMuODY0MyA4LjgyNTUxQzIzLjg2NDMgOC43MTM0NiAyMy45MDEgOC42MjA3NiAyMy45NzQzIDguNTQ3NDJDMjQuMDQ5NyA4LjQ3MjA0IDI0LjE1MzYgOC40MzQzNSAyNC4yODYgOC40MzQzNUMyNC40MTY0IDguNDM0MzUgMjQuNTE5MyA4LjQ3MjA0IDI0LjU5NDcgOC41NDc0MkMyNC42NzAxIDguNjIwNzYgMjQuNzA3OCA4LjcxMzQ2IDI0LjcwNzggOC44MjU1MUMyNC43MDc4IDguOTM1NTMgMjQuNjcwMSA5LjAyNzIxIDI0LjU5NDcgOS4xMDA1NUMyNC41MTkzIDkuMTczOSAyNC40MTY0IDkuMjEwNTcgMjQuMjg2IDkuMjEwNTdDMjQuMTUzNiA5LjIxMDU3IDI0LjA0OTcgOS4xNzM5IDIzLjk3NDMgOS4xMDA1NUMyMy45MDEgOS4wMjcyMSAyMy44NjQzIDguOTM1NTMgMjMuODY0MyA4LjgyNTUxWk0yNy41OTY5IDEyLjMxNTVWOC4zMDU5OUgyOC4zMzY0VjEzSDI3LjY2NzJMMjcuNTk2OSAxMi4zMTU1Wk0yNS40NDU0IDExLjM4MzRWMTEuMzE5MkMyNS40NDU0IDExLjA2ODYgMjUuNDc1IDEwLjg0MDQgMjUuNTM0MSAxMC42MzQ3QzI1LjU5MzIgMTAuNDI2OSAyNS42Nzg3IDEwLjI0ODYgMjUuNzkwOCAxMC4wOTk5QzI1LjkwMjggOS45NDkxIDI2LjAzOTMgOS44MzM5OSAyNi4yMDAzIDkuNzU0NTNDMjYuMzYxMiA5LjY3MzA0IDI2LjU0MjUgOS42MzIzIDI2Ljc0NDIgOS42MzIzQzI2Ljk0MzkgOS42MzIzIDI3LjExOTEgOS42NzEgMjcuMjY5OSA5Ljc0ODQyQzI3LjQyMDYgOS44MjU4NCAyNy41NDkgOS45MzY4OCAyNy42NTQ5IDEwLjA4MTVDMjcuNzYwOSAxMC4yMjQxIDI3Ljg0NTQgMTAuMzk1MyAyNy45MDg2IDEwLjU5NDlDMjcuOTcxNyAxMC43OTI2IDI4LjAxNjYgMTEuMDEyNiAyOC4wNDMgMTEuMjU1VjExLjQ1OThDMjguMDE2NiAxMS42OTYxIDI3Ljk3MTcgMTEuOTEyMSAyNy45MDg2IDEyLjEwNzZDMjcuODQ1NCAxMi4zMDMyIDI3Ljc2MDkgMTIuNDcyMyAyNy42NTQ5IDEyLjYxNDlDMjcuNTQ5IDEyLjc1NzYgMjcuNDE5NiAxMi44Njc2IDI3LjI2NjggMTIuOTQ1QzI3LjExNjEgMTMuMDIyNCAyNi45Mzk4IDEzLjA2MTEgMjYuNzM4MSAxMy4wNjExQzI2LjUzODUgMTMuMDYxMSAyNi4zNTgyIDEzLjAxOTQgMjYuMTk3MiAxMi45MzU4QzI2LjAzODMgMTIuODUyMyAyNS45MDI4IDEyLjczNTEgMjUuNzkwOCAxMi41ODQ0QzI1LjY3ODcgMTIuNDMzNiAyNS41OTMyIDEyLjI1NjQgMjUuNTM0MSAxMi4wNTI2QzI1LjQ3NSAxMS44NDY5IDI1LjQ0NTQgMTEuNjIzOCAyNS40NDU0IDExLjM4MzRaTTI2LjE4MTkgMTEuMzE5MlYxMS4zODM0QzI2LjE4MTkgMTEuNTM0MSAyNi4xOTUyIDExLjY3NDcgMjYuMjIxNyAxMS44MDUxQzI2LjI1MDIgMTEuOTM1NSAyNi4yOTQgMTIuMDUwNiAyNi4zNTMxIDEyLjE1MDRDMjYuNDEyMiAxMi4yNDgyIDI2LjQ4ODYgMTIuMzI1NiAyNi41ODIzIDEyLjM4MjdDMjYuNjc4IDEyLjQzNzcgMjYuNzkyMSAxMi40NjUyIDI2LjkyNDUgMTIuNDY1MkMyNy4wOTE2IDEyLjQ2NTIgMjcuMjI5MSAxMi40Mjg1IDI3LjMzNzEgMTIuMzU1MkMyNy40NDUxIDEyLjI4MTggMjcuNTI5NiAxMi4xODMgMjcuNTkwOCAxMi4wNTg4QzI3LjY1MzkgMTEuOTMyNCAyNy42OTY3IDExLjc5MTkgMjcuNzE5MSAxMS42MzdWMTEuMDgzOUMyNy43MDY5IDEwLjk2MzcgMjcuNjgxNCAxMC44NTE2IDI3LjY0MjcgMTAuNzQ3N0MyNy42MDYgMTAuNjQzOCAyNy41NTYxIDEwLjU1MzIgMjcuNDkzIDEwLjQ3NTdDMjcuNDI5OCAxMC4zOTYzIDI3LjM1MTQgMTAuMzM1MiAyNy4yNTc3IDEwLjI5MjRDMjcuMTY2IDEwLjI0NzYgMjcuMDU3IDEwLjIyNTIgMjYuOTMwNyAxMC4yMjUyQzI2Ljc5NjIgMTAuMjI1MiAyNi42ODIxIDEwLjI1MzcgMjYuNTg4NCAxMC4zMTA3QzI2LjQ5NDcgMTAuMzY3OCAyNi40MTczIDEwLjQ0NjIgMjYuMzU2MSAxMC41NDZDMjYuMjk3IDEwLjY0NTkgMjYuMjUzMiAxMC43NjIgMjYuMjI0NyAxMC44OTQ0QzI2LjE5NjIgMTEuMDI2OCAyNi4xODE5IDExLjE2ODQgMjYuMTgxOSAxMS4zMTkyWk0zMS42OTQyIDguMzA1OTlWMTNIMzAuOTU0N1Y4LjMwNTk5SDMxLjY5NDJaTTM0LjA3OTEgMTMuMDYxMUMzMy44MzQ2IDEzLjA2MTEgMzMuNjEzNiAxMy4wMjE0IDMzLjQxNTkgMTIuOTQxOUMzMy4yMjA0IDEyLjg2MDQgMzMuMDUzMyAxMi43NDc0IDMyLjkxNDggMTIuNjAyN0MzMi43NzgzIDEyLjQ1ODEgMzIuNjczMyAxMi4yODggMzIuNiAxMi4wOTI0QzMyLjUyNjcgMTEuODk2OCAzMi40OSAxMS42ODU5IDMyLjQ5IDExLjQ1OThWMTEuMzM3NUMzMi40OSAxMS4wNzg4IDMyLjUyNzcgMTAuODQ0NSAzMi42MDMxIDEwLjYzNDdDMzIuNjc4NCAxMC40MjQ4IDMyLjc4MzQgMTAuMjQ1NSAzMi45MTc4IDEwLjA5NjhDMzMuMDUyMyA5Ljk0NjA0IDMzLjIxMTIgOS44MzA5MyAzMy4zOTQ2IDkuNzUxNDhDMzMuNTc3OSA5LjY3MjAyIDMzLjc3NjYgOS42MzIzIDMzLjk5MDUgOS42MzIzQzM0LjIyNjggOS42MzIzIDM0LjQzMzYgOS42NzIwMiAzNC42MTA4IDkuNzUxNDhDMzQuNzg4MSA5LjgzMDkzIDM0LjkzNDggOS45NDI5OSAzNS4wNTA5IDEwLjA4NzZDMzUuMTY5MSAxMC4yMzAzIDM1LjI1NjcgMTAuNDAwNCAzNS4zMTM3IDEwLjU5OEMzNS4zNzI4IDEwLjc5NTYgMzUuNDAyMyAxMS4wMTM2IDM1LjQwMjMgMTEuMjUyVjExLjU2NjdIMzIuODQ3NVYxMS4wMzgxSDM0LjY3NVYxMC45OEMzNC42NzA5IDEwLjg0NzYgMzQuNjQ0NSAxMC43MjMzIDM0LjU5NTYgMTAuNjA3MkMzNC41NDg3IDEwLjQ5MSAzNC40NzY0IDEwLjM5NzMgMzQuMzc4NiAxMC4zMjZDMzQuMjgwOCAxMC4yNTQ3IDM0LjE1MDQgMTAuMjE5IDMzLjk4NzQgMTAuMjE5QzMzLjg2NTIgMTAuMjE5IDMzLjc1NjIgMTAuMjQ1NSAzMy42NjA0IDEwLjI5ODVDMzMuNTY2NyAxMC4zNDk0IDMzLjQ4ODMgMTAuNDIzOCAzMy40MjUxIDEwLjUyMTZDMzMuMzYyIDEwLjYxOTQgMzMuMzEzMSAxMC43Mzc1IDMzLjI3ODQgMTAuODc2MUMzMy4yNDU4IDExLjAxMjYgMzMuMjI5NSAxMS4xNjY0IDMzLjIyOTUgMTEuMzM3NVYxMS40NTk4QzMzLjIyOTUgMTEuNjA0NCAzMy4yNDg5IDExLjczODkgMzMuMjg3NiAxMS44NjMyQzMzLjMyODMgMTEuOTg1NCAzMy4zODc0IDEyLjA5MjQgMzMuNDY0OCAxMi4xODRDMzMuNTQyMyAxMi4yNzU3IDMzLjYzNiAxMi4zNDgxIDMzLjc0NiAxMi40MDFDMzMuODU2IDEyLjQ1MiAzMy45ODEzIDEyLjQ3NzQgMzQuMTIxOSAxMi40Nzc0QzM0LjI5OTEgMTIuNDc3NCAzNC40NTcgMTIuNDQxOCAzNC41OTU2IDEyLjM3MDVDMzQuNzM0MSAxMi4yOTkyIDM0Ljg1NDMgMTIuMTk4MyAzNC45NTYyIDEyLjA2NzlMMzUuMzQ0MyAxMi40NDM4QzM1LjI3MyAxMi41NDc3IDM1LjE4MDMgMTIuNjQ3NSAzNS4wNjYyIDEyLjc0MzNDMzQuOTUyMSAxMi44MzcgMzQuODEyNSAxMi45MTM0IDM0LjY0NzUgMTIuOTcyNUMzNC40ODQ1IDEzLjAzMTYgMzQuMjk1MSAxMy4wNjExIDM0LjA3OTEgMTMuMDYxMVpNMzcuMTMwMiAxMi40MTYzTDM3Ljk0IDkuNjkzNDJIMzguNzA0TDM3LjU1NDkgMTNIMzcuMDc4MkwzNy4xMzAyIDEyLjQxNjNaTTM2LjUwOTggOS42OTM0MkwzNy4zMzQ5IDEyLjQyODVMMzcuMzc0NiAxM0gzNi44OTc5TDM1Ljc0MjcgOS42OTM0MkgzNi41MDk4Wk00MC42OTQ2IDEzLjA2MTFDNDAuNDUwMSAxMy4wNjExIDQwLjIyOTEgMTMuMDIxNCA0MC4wMzE1IDEyLjk0MTlDMzkuODM1OSAxMi44NjA0IDM5LjY2ODggMTIuNzQ3NCAzOS41MzAzIDEyLjYwMjdDMzkuMzkzOCAxMi40NTgxIDM5LjI4ODkgMTIuMjg4IDM5LjIxNTUgMTIuMDkyNEMzOS4xNDIyIDExLjg5NjggMzkuMTA1NSAxMS42ODU5IDM5LjEwNTUgMTEuNDU5OFYxMS4zMzc1QzM5LjEwNTUgMTEuMDc4OCAzOS4xNDMyIDEwLjg0NDUgMzkuMjE4NiAxMC42MzQ3QzM5LjI5NCAxMC40MjQ4IDM5LjM5ODkgMTAuMjQ1NSAzOS41MzMzIDEwLjA5NjhDMzkuNjY3OCA5Ljk0NjA0IDM5LjgyNjcgOS44MzA5MyA0MC4wMTAxIDkuNzUxNDhDNDAuMTkzNCA5LjY3MjAyIDQwLjM5MjEgOS42MzIzIDQwLjYwNiA5LjYzMjNDNDAuODQyMyA5LjYzMjMgNDEuMDQ5MSA5LjY3MjAyIDQxLjIyNjQgOS43NTE0OEM0MS40MDM2IDkuODMwOTMgNDEuNTUwMyA5Ljk0Mjk5IDQxLjY2NjQgMTAuMDg3NkM0MS43ODQ2IDEwLjIzMDMgNDEuODcyMiAxMC40MDA0IDQxLjkyOTIgMTAuNTk4QzQxLjk4ODMgMTAuNzk1NiA0Mi4wMTc5IDExLjAxMzYgNDIuMDE3OSAxMS4yNTJWMTEuNTY2N0gzOS40NjMxVjExLjAzODFINDEuMjkwNVYxMC45OEM0MS4yODY1IDEwLjg0NzYgNDEuMjYgMTAuNzIzMyA0MS4yMTExIDEwLjYwNzJDNDEuMTY0MiAxMC40OTEgNDEuMDkxOSAxMC4zOTczIDQwLjk5NDEgMTAuMzI2QzQwLjg5NjMgMTAuMjU0NyA0MC43NjU5IDEwLjIxOSA0MC42MDI5IDEwLjIxOUM0MC40ODA3IDEwLjIxOSA0MC4zNzE3IDEwLjI0NTUgNDAuMjc1OSAxMC4yOTg1QzQwLjE4MjIgMTAuMzQ5NCA0MC4xMDM4IDEwLjQyMzggNDAuMDQwNiAxMC41MjE2QzM5Ljk3NzUgMTAuNjE5NCAzOS45Mjg2IDEwLjczNzUgMzkuODkzOSAxMC44NzYxQzM5Ljg2MTMgMTEuMDEyNiAzOS44NDUxIDExLjE2NjQgMzkuODQ1MSAxMS4zMzc1VjExLjQ1OThDMzkuODQ1MSAxMS42MDQ0IDM5Ljg2NDQgMTEuNzM4OSAzOS45MDMxIDExLjg2MzJDMzkuOTQzOSAxMS45ODU0IDQwLjAwMjkgMTIuMDkyNCA0MC4wODA0IDEyLjE4NEM0MC4xNTc4IDEyLjI3NTcgNDAuMjUxNSAxMi4zNDgxIDQwLjM2MTUgMTIuNDAxQzQwLjQ3MTUgMTIuNDUyIDQwLjU5NjggMTIuNDc3NCA0MC43Mzc0IDEyLjQ3NzRDNDAuOTE0NiAxMi40Nzc0IDQxLjA3MjUgMTIuNDQxOCA0MS4yMTExIDEyLjM3MDVDNDEuMzQ5NiAxMi4yOTkyIDQxLjQ2OTggMTIuMTk4MyA0MS41NzE3IDEyLjA2NzlMNDEuOTU5OCAxMi40NDM4QzQxLjg4ODUgMTIuNTQ3NyA0MS43OTU4IDEyLjY0NzUgNDEuNjgxNyAxMi43NDMzQzQxLjU2NzYgMTIuODM3IDQxLjQyODEgMTIuOTEzNCA0MS4yNjMgMTIuOTcyNUM0MS4xIDEzLjAzMTYgNDAuOTEwNiAxMy4wNjExIDQwLjY5NDYgMTMuMDYxMVpNNDMuNTAxMiA4LjMwNTk5VjEzSDQyLjc2MTZWOC4zMDU5OUg0My41MDEyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMzQ2MV80Njg4NikiPgo8bWFzayBpZD0ibWFzazBfMzQ2MV80Njg4NiIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMjYiIHk9IjMxIiB3aWR0aD0iNDciIGhlaWdodD0iMzciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI2LjUgMzIuMTA2N1Y2My4yMjcxQzI2LjUgNjUuNjk4MyAzNi41OTU3IDY3Ljk0MTYgNDkuMzYzNyA2Ny45NDE2QzY2LjI4ODcgNjcuOTQxNiA3Mi4yMjc0IDY0LjgwMDkgNzIuMjI3NCA2My4yMjcxVjMxLjc0OThMNzIuMjA1NCAzMS43NDk4QzY5LjkyNzggMzQuMzEzOSA2MC40NzkgMzYuMjM2NCA0OS4xNjg4IDM2LjIzNjRDMzguMzg5OCAzNi4yMzY0IDI5LjMwMTUgMzQuNDkwMyAyNi41IDMyLjEwNjdaIiBmaWxsPSIjN0E4QkZGIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjYuNSAzMi4xMDY3VjYzLjIyNzFDMjYuNSA2NS42OTgzIDM2LjU5NTcgNjcuOTQxNiA0OS4zNjM3IDY3Ljk0MTZDNjYuMjg4NyA2Ny45NDE2IDcyLjIyNzQgNjQuODAwOSA3Mi4yMjc0IDYzLjIyNzFWMzEuNzQ5OEw3Mi4yMDU0IDMxLjc0OThDNjkuOTI3OCAzNC4zMTM5IDYwLjQ3OSAzNi4yMzY0IDQ5LjE2ODggMzYuMjM2NEMzOC4zODk4IDM2LjIzNjQgMjkuMzAxNSAzNC40OTAzIDI2LjUgMzIuMTA2N1oiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuMSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMzQ2MV80Njg4NikiPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDFfMzQ2MV80Njg4NikiPgo8cmVjdCB4PSIyNi41IiB5PSI0Ny42NjA5IiB3aWR0aD0iNDYuMDYyMyIgaGVpZ2h0PSIzNi40OTA5IiBmaWxsPSIjN0E4QkZGIi8+CjxlbGxpcHNlIGN4PSI0OS41MzEyIiBjeT0iNDcuNjYwNyIgcng9IjIzLjAzMTIiIHJ5PSI0Ljc4NTciIGZpbGw9IiM3QThCRkYiLz4KPGVsbGlwc2UgY3g9IjQ5LjUzMTIiIGN5PSI0Ny42NjA3IiByeD0iMjMuMDMxMiIgcnk9IjQuNzg1NyIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPC9nPgo8bWFzayBpZD0icGF0aC03LWluc2lkZS0xXzM0NjFfNDY4ODYiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03My4xMjk0IDYzLjU0NDVWMzAuMzQzOEg3My43Mjc2VjYzLjU0NDVDNzMuNzI3NiA2NC4wMTI0IDczLjUxNTYgNjQuNDQzOSA3My4xNjM3IDY0LjgzMDhDNzIuODEzMyA2NS4yMTYgNzIuMzEwOCA2NS41NzMzIDcxLjY4ODYgNjUuOTA0MkM3MC40NDM3IDY2LjU2NjUgNjguNjYyIDY3LjE1MzYgNjYuNDg1NyA2Ny42NDMzQzYyLjEyODIgNjguNjIzOCA1Ni4xMjMgNjkuMjI3NSA0OS41IDY5LjIyNzVDNDIuODc3MSA2OS4yMjc1IDM2Ljg3MTkgNjguNjIzOCAzMi41MTQ0IDY3LjY0MzNDMzAuMzM4MSA2Ny4xNTM2IDI4LjU1NjQgNjYuNTY2NSAyNy4zMTE1IDY1LjkwNDJDMjYuNjg5MyA2NS41NzMzIDI2LjE4NjggNjUuMjE2IDI1LjgzNjQgNjQuODMwOEMyNS40ODQ1IDY0LjQ0MzkgMjUuMjcyNSA2NC4wMTI0IDI1LjI3MjUgNjMuNTQ0NVYzMC4zNDM4SDI1Ljg3MDdWNjMuNTQ0NUMyNS44NzA3IDYzLjgxOTkgMjUuOTkzNCA2NC4xMTQzIDI2LjI3OSA2NC40MjgzQzI2LjU2NjEgNjQuNzQ0IDI3LjAwMzggNjUuMDYzIDI3LjU5MjUgNjUuMzc2MUMyOC43NjkzIDY2LjAwMjEgMzAuNDkxOCA2Ni41NzUxIDMyLjY0NTcgNjcuMDU5N0MzNi45NDg2IDY4LjAyNzkgNDIuOTA3NyA2OC42MjkzIDQ5LjUgNjguNjI5M0M1Ni4wOTI0IDY4LjYyOTMgNjIuMDUxNSA2OC4wMjc5IDY2LjM1NDQgNjcuMDU5N0M2OC41MDgzIDY2LjU3NTEgNzAuMjMwOCA2Ni4wMDIxIDcxLjQwNzYgNjUuMzc2MUM3MS45OTYzIDY1LjA2MyA3Mi40MzQgNjQuNzQ0IDcyLjcyMTEgNjQuNDI4M0M3My4wMDY3IDY0LjExNDMgNzMuMTI5NCA2My44MTk5IDczLjEyOTQgNjMuNTQ0NVoiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTczLjEyOTQgNjMuNTQ0NVYzMC4zNDM4SDczLjcyNzZWNjMuNTQ0NUM3My43Mjc2IDY0LjAxMjQgNzMuNTE1NiA2NC40NDM5IDczLjE2MzcgNjQuODMwOEM3Mi44MTMzIDY1LjIxNiA3Mi4zMTA4IDY1LjU3MzMgNzEuNjg4NiA2NS45MDQyQzcwLjQ0MzcgNjYuNTY2NSA2OC42NjIgNjcuMTUzNiA2Ni40ODU3IDY3LjY0MzNDNjIuMTI4MiA2OC42MjM4IDU2LjEyMyA2OS4yMjc1IDQ5LjUgNjkuMjI3NUM0Mi44NzcxIDY5LjIyNzUgMzYuODcxOSA2OC42MjM4IDMyLjUxNDQgNjcuNjQzM0MzMC4zMzgxIDY3LjE1MzYgMjguNTU2NCA2Ni41NjY1IDI3LjMxMTUgNjUuOTA0MkMyNi42ODkzIDY1LjU3MzMgMjYuMTg2OCA2NS4yMTYgMjUuODM2NCA2NC44MzA4QzI1LjQ4NDUgNjQuNDQzOSAyNS4yNzI1IDY0LjAxMjQgMjUuMjcyNSA2My41NDQ1VjMwLjM0MzhIMjUuODcwN1Y2My41NDQ1QzI1Ljg3MDcgNjMuODE5OSAyNS45OTM0IDY0LjExNDMgMjYuMjc5IDY0LjQyODNDMjYuNTY2MSA2NC43NDQgMjcuMDAzOCA2NS4wNjMgMjcuNTkyNSA2NS4zNzYxQzI4Ljc2OTMgNjYuMDAyMSAzMC40OTE4IDY2LjU3NTEgMzIuNjQ1NyA2Ny4wNTk3QzM2Ljk0ODYgNjguMDI3OSA0Mi45MDc3IDY4LjYyOTMgNDkuNSA2OC42MjkzQzU2LjA5MjQgNjguNjI5MyA2Mi4wNTE1IDY4LjAyNzkgNjYuMzU0NCA2Ny4wNTk3QzY4LjUwODMgNjYuNTc1MSA3MC4yMzA4IDY2LjAwMjEgNzEuNDA3NiA2NS4zNzYxQzcxLjk5NjMgNjUuMDYzIDcyLjQzNCA2NC43NDQgNzIuNzIxMSA2NC40MjgzQzczLjAwNjcgNjQuMTE0MyA3My4xMjk0IDYzLjgxOTkgNzMuMTI5NCA2My41NDQ1WiIgZmlsbD0iIzYyMTZGRiIgZmlsbC1vcGFjaXR5PSIwLjAyIi8+CjxwYXRoIGQ9Ik03My4xMjk0IDMwLjM0MzhWMjkuNzQ1NUg3Mi41MzEyVjMwLjM0MzhINzMuMTI5NFpNNzMuNzI3NiAzMC4zNDM4SDc0LjMyNThWMjkuNzQ1NUg3My43Mjc2VjMwLjM0MzhaTTczLjE2MzcgNjQuODMwOEw3Mi43MjExIDY0LjQyODNMNzMuMTYzNyA2NC44MzA4Wk03MS42ODg2IDY1LjkwNDJMNzEuNDA3NiA2NS4zNzYxTDcxLjQwNzYgNjUuMzc2MUw3MS42ODg2IDY1LjkwNDJaTTY2LjQ4NTcgNjcuNjQzM0w2Ni42MTcgNjguMjI2OUw2Ni40ODU3IDY3LjY0MzNaTTMyLjUxNDQgNjcuNjQzM0wzMi4zODMxIDY4LjIyNjlMMzIuNTE0NCA2Ny42NDMzWk0yNy4zMTE1IDY1LjkwNDJMMjcuNTkyNSA2NS4zNzYxTDI3LjU5MjUgNjUuMzc2MUwyNy4zMTE1IDY1LjkwNDJaTTI1LjgzNjQgNjQuODMwOEwyNS4zOTM5IDY1LjIzMzNMMjUuMzkzOSA2NS4yMzMzTDI1LjgzNjQgNjQuODMwOFpNMjUuMjcyNSAzMC4zNDM4VjI5Ljc0NTVIMjQuNjc0MlYzMC4zNDM4SDI1LjI3MjVaTTI1Ljg3MDcgMzAuMzQzOEgyNi40Njg5VjI5Ljc0NTVIMjUuODcwN1YzMC4zNDM4Wk0yNi4yNzkgNjQuNDI4M0wyNi43MjE1IDY0LjAyNThIMjYuNzIxNUwyNi4yNzkgNjQuNDI4M1pNMjcuNTkyNSA2NS4zNzYxTDI3LjMxMTUgNjUuOTA0MkwyNy4zMTE1IDY1LjkwNDJMMjcuNTkyNSA2NS4zNzYxWk0zMi42NDU3IDY3LjA1OTdMMzIuNzc3IDY2LjQ3NjFMMzIuNjQ1NyA2Ny4wNTk3Wk02Ni4zNTQ0IDY3LjA1OTdMNjYuMjIzMSA2Ni40NzYxTDY2LjM1NDQgNjcuMDU5N1pNNzEuNDA3NiA2NS4zNzYxTDcxLjEyNjcgNjQuODQ4TDcxLjQwNzYgNjUuMzc2MVpNNzIuNzIxMSA2NC40MjgzTDczLjE2MzcgNjQuODMwOEw3Mi43MjExIDY0LjQyODNaTTcyLjUzMTIgMzAuMzQzOFY2My41NDQ1SDczLjcyNzZWMzAuMzQzOEg3Mi41MzEyWk03My43Mjc2IDI5Ljc0NTVINzMuMTI5NFYzMC45NDJINzMuNzI3NlYyOS43NDU1Wk03NC4zMjU4IDYzLjU0NDVWMzAuMzQzOEg3My4xMjk0VjYzLjU0NDVINzQuMzI1OFpNNzMuNjA2MiA2NS4yMzMzQzc0LjAyNDIgNjQuNzczNyA3NC4zMjU4IDY0LjIwNTIgNzQuMzI1OCA2My41NDQ1SDczLjEyOTRDNzMuMTI5NCA2My44MTk3IDczLjAwNjkgNjQuMTE0IDcyLjcyMTEgNjQuNDI4M0w3My42MDYyIDY1LjIzMzNaTTcxLjk2OTUgNjYuNDMyNEM3Mi42MjUzIDY2LjA4MzYgNzMuMTkyNyA2NS42ODggNzMuNjA2MiA2NS4yMzMzTDcyLjcyMTEgNjQuNDI4M0M3Mi40MzQgNjQuNzQ0IDcxLjk5NjMgNjUuMDYzIDcxLjQwNzYgNjUuMzc2MUw3MS45Njk1IDY2LjQzMjRaTTY2LjYxNyA2OC4yMjY5QzY4LjgxNTggNjcuNzMyMiA3MC42NTY2IDY3LjEzMDggNzEuOTY5NSA2Ni40MzI0TDcxLjQwNzYgNjUuMzc2MUM3MC4yMzA4IDY2LjAwMjEgNjguNTA4MiA2Ni41NzUxIDY2LjM1NDQgNjcuMDU5N0w2Ni42MTcgNjguMjI2OVpNNDkuNSA2OS44MjU3QzU2LjE1MzYgNjkuODI1NyA2Mi4yMDQ5IDY5LjIxOTcgNjYuNjE3IDY4LjIyNjlMNjYuMzU0NCA2Ny4wNTk3QzYyLjA1MTUgNjguMDI3OSA1Ni4wOTI0IDY4LjYyOTMgNDkuNSA2OC42MjkzVjY5LjgyNTdaTTMyLjM4MzEgNjguMjI2OUMzNi43OTUxIDY5LjIxOTcgNDIuODQ2NSA2OS44MjU3IDQ5LjUgNjkuODI1N1Y2OC42MjkzQzQyLjkwNzcgNjguNjI5MyAzNi45NDg2IDY4LjAyNzkgMzIuNjQ1NyA2Ny4wNTk3TDMyLjM4MzEgNjguMjI2OVpNMjcuMDMwNiA2Ni40MzI0QzI4LjM0MzUgNjcuMTMwOCAzMC4xODQzIDY3LjczMjIgMzIuMzgzMSA2OC4yMjY5TDMyLjY0NTcgNjcuMDU5N0MzMC40OTE5IDY2LjU3NTEgMjguNzY5MyA2Ni4wMDIxIDI3LjU5MjUgNjUuMzc2MUwyNy4wMzA2IDY2LjQzMjRaTTI1LjM5MzkgNjUuMjMzM0MyNS44MDc0IDY1LjY4OCAyNi4zNzQ4IDY2LjA4MzYgMjcuMDMwNiA2Ni40MzI0TDI3LjU5MjUgNjUuMzc2MUMyNy4wMDM4IDY1LjA2MyAyNi41NjYxIDY0Ljc0NCAyNi4yNzkgNjQuNDI4M0wyNS4zOTM5IDY1LjIzMzNaTTI0LjY3NDIgNjMuNTQ0NUMyNC42NzQyIDY0LjIwNTIgMjQuOTc1OSA2NC43NzM3IDI1LjM5MzkgNjUuMjMzM0wyNi4yNzkgNjQuNDI4M0MyNS45OTMyIDY0LjExNCAyNS44NzA3IDYzLjgxOTcgMjUuODcwNyA2My41NDQ1SDI0LjY3NDJaTTI1Ljg3MDcgNjMuNTQ0NVYzMC4zNDM4SDI0LjY3NDJWNjMuNTQ0NUgyNS44NzA3Wk0yNS4yNzI1IDMwLjk0MkgyNS44NzA3VjI5Ljc0NTVIMjUuMjcyNVYzMC45NDJaTTI1LjI3MjUgMzAuMzQzOFY2My41NDQ1SDI2LjQ2ODlWMzAuMzQzOEgyNS4yNzI1Wk0yNi43MjE1IDY0LjAyNThDMjYuNTAyNiA2My43ODUgMjYuNDY4OSA2My42Mjc4IDI2LjQ2ODkgNjMuNTQ0NUgyNS4yNzI1QzI1LjI3MjUgNjQuMDEyMSAyNS40ODQyIDY0LjQ0MzUgMjUuODM2NCA2NC44MzA4TDI2LjcyMTUgNjQuMDI1OFpNMjcuODczNCA2NC44NDhDMjcuMzE4MiA2NC41NTI2IDI2Ljk0NTUgNjQuMjcyIDI2LjcyMTUgNjQuMDI1OEwyNS44MzY0IDY0LjgzMDhDMjYuMTg2OCA2NS4yMTYgMjYuNjg5MyA2NS41NzMzIDI3LjMxMTUgNjUuOTA0MkwyNy44NzM0IDY0Ljg0OFpNMzIuNzc3IDY2LjQ3NjFDMzAuNjQ1NiA2NS45OTY1IDI4Ljk4MjEgNjUuNDM3OCAyNy44NzM0IDY0Ljg0OEwyNy4zMTE1IDY1LjkwNDJDMjguNTU2NCA2Ni41NjY1IDMwLjMzODEgNjcuMTUzNiAzMi41MTQ0IDY3LjY0MzNMMzIuNzc3IDY2LjQ3NjFaTTQ5LjUgNjguMDMxMUM0Mi45MzgzIDY4LjAzMTEgMzcuMDI1NCA2Ny40MzIgMzIuNzc3IDY2LjQ3NjFMMzIuNTE0NCA2Ny42NDMzQzM2Ljg3MTkgNjguNjIzOCA0Mi44NzcxIDY5LjIyNzUgNDkuNSA2OS4yMjc1VjY4LjAzMTFaTTY2LjIyMzEgNjYuNDc2MUM2MS45NzQ3IDY3LjQzMiA1Ni4wNjE4IDY4LjAzMTEgNDkuNSA2OC4wMzExVjY5LjIyNzVDNTYuMTIzIDY5LjIyNzUgNjIuMTI4MiA2OC42MjM4IDY2LjQ4NTcgNjcuNjQzM0w2Ni4yMjMxIDY2LjQ3NjFaTTcxLjEyNjcgNjQuODQ4QzcwLjAxOCA2NS40Mzc4IDY4LjM1NDUgNjUuOTk2NSA2Ni4yMjMxIDY2LjQ3NjFMNjYuNDg1NyA2Ny42NDMzQzY4LjY2MiA2Ny4xNTM2IDcwLjQ0MzcgNjYuNTY2NSA3MS42ODg2IDY1LjkwNDJMNzEuMTI2NyA2NC44NDhaTTcyLjI3ODUgNjQuMDI1OEM3Mi4wNTQ2IDY0LjI3MiA3MS42ODE4IDY0LjU1MjYgNzEuMTI2NyA2NC44NDhMNzEuNjg4NiA2NS45MDQyQzcyLjMxMDggNjUuNTczMyA3Mi44MTMzIDY1LjIxNiA3My4xNjM3IDY0LjgzMDhMNzIuMjc4NSA2NC4wMjU4Wk03Mi41MzEyIDYzLjU0NDVDNzIuNTMxMiA2My42Mjc4IDcyLjQ5NzUgNjMuNzg1IDcyLjI3ODUgNjQuMDI1OEw3My4xNjM3IDY0LjgzMDhDNzMuNTE1OSA2NC40NDM1IDczLjcyNzYgNjQuMDEyMSA3My43Mjc2IDYzLjU0NDVINzIuNTMxMloiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC03LWluc2lkZS0xXzM0NjFfNDY4ODYpIi8+CjxwYXRoIG9wYWNpdHk9IjAuMSIgZD0iTTczLjQyODIgMzAuMzQ0MUM3My40MjgyIDI3LjUwMjYgNjIuMjExOCAyNC45NjAyIDQ5LjQ5OTggMjQuOTYwMkMzNi4yODQ0IDI0Ljk2MDIgMjUuNTcxMyAyNy42NTIyIDI1LjU3MTMgMzAuMzQ0MSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTk4MjEyIi8+CjxwYXRoIGQ9Ik00OS40OTk4IDM2LjMyNjJDMzMuMzQ4IDM2LjMyNjIgMjUuNTcxMyAzMy40Njg1IDI1LjU3MTMgMzAuMzkyMUMyNS41NzEzIDI3LjMxNTggNDEuODczNyAyMy42MTg2IDQzLjc5NDQgMjMuMTY1NSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTk4MjEyIi8+CjxwYXRoIGQ9Ik00OS41MDAyIDM2LjMyNjJDNjUuNjUyIDM2LjMyNjIgNzMuNDI4NyAzMy40Njg1IDczLjQyODcgMzAuMzkyMUM3My40Mjg3IDI3LjMxNTggNTcuMTI2MyAyMy42MTg2IDU1LjIwNTYgMjMuMTY1NSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTk4MjEyIi8+CjxtYXNrIGlkPSJwYXRoLTEyLWluc2lkZS0yXzM0NjFfNDY4ODYiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00My44MTIxIDIyLjA1ODFWMjMuMjAyNEM0My44NTEyIDIzLjIzMzUgNDMuOTI2OCAyMy4yNzY0IDQ0LjA1MiAyMy4zMjQ4QzQ0LjMwMTMgMjMuNDIxMiA0NC42Nzk2IDIzLjUxMzkgNDUuMTY4MyAyMy41OTM4QzQ2LjE0MDggMjMuNzUyOSA0Ny40OTU2IDIzLjg1MjcgNDguOTk5NyAyMy44NTI3QzUwLjUwMzggMjMuODUyNyA1MS44NTg2IDIzLjc1MjkgNTIuODMxMSAyMy41OTM4QzUzLjMxOTggMjMuNTEzOSA1My42OTggMjMuNDIxMiA1My45NDc0IDIzLjMyNDhDNTQuMDczNiAyMy4yNzYgNTQuMTQ5MyAyMy4yMzI4IDU0LjE4ODIgMjMuMjAxN0M1NC4xOTc4IDIzLjE5NDEgNTQuMjAzIDIzLjE4ODkgNTQuMjA1NSAyMy4xODYzQzU0LjIwMDcgMjMuMTkyOSA1NC4xODczIDIzLjIxNTQgNTQuMTg3MyAyMy4yNTQ1SDU0LjU3OTlWMjIuMDU4MUg1NS4xNzgxVjIzLjI1NDVINTQuNzg1NUM1NC43ODU1IDIzLjQ0OTUgNTQuNjY0NiAyMy41ODY4IDU0LjU2MTcgMjMuNjY5QzU0LjQ1NDQgMjMuNzU0OCA1NC4zMTQ1IDIzLjgyNDIgNTQuMTYzMSAyMy44ODI4QzUzLjg1NzEgMjQuMDAxMSA1My40MzE5IDI0LjEwMTcgNTIuOTI3NyAyNC4xODQyQzUxLjkxNDQgMjQuMzQ5OSA1MC41MjU4IDI0LjQ1MSA0OC45OTk3IDI0LjQ1MUM0Ny40NzM2IDI0LjQ1MSA0Ni4wODUgMjQuMzQ5OSA0NS4wNzE3IDI0LjE4NDJDNDQuNTY3NSAyNC4xMDE3IDQ0LjE0MjIgMjQuMDAxMSA0My44MzYzIDIzLjg4MjhDNDMuNjg0OSAyMy44MjQyIDQzLjU0NSAyMy43NTQ4IDQzLjQzNzcgMjMuNjY5QzQzLjMzNDggMjMuNTg2OCA0My4yMTM5IDIzLjQ0OTUgNDMuMjEzOSAyMy4yNTQ1VjIyLjA1ODFINDMuODEyMVpNNTQuMjA3MiAyMy4xODQyQzU0LjIwNzEgMjMuMTg0MiA1NC4yMDY1IDIzLjE4NDkgNTQuMjA1NSAyMy4xODYzQzU0LjIwNjggMjMuMTg0OSA1NC4yMDczIDIzLjE4NDIgNTQuMjA3MiAyMy4xODQyWiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDMuODEyMSAyMi4wNTgxVjIzLjIwMjRDNDMuODUxMiAyMy4yMzM1IDQzLjkyNjggMjMuMjc2NCA0NC4wNTIgMjMuMzI0OEM0NC4zMDEzIDIzLjQyMTIgNDQuNjc5NiAyMy41MTM5IDQ1LjE2ODMgMjMuNTkzOEM0Ni4xNDA4IDIzLjc1MjkgNDcuNDk1NiAyMy44NTI3IDQ4Ljk5OTcgMjMuODUyN0M1MC41MDM4IDIzLjg1MjcgNTEuODU4NiAyMy43NTI5IDUyLjgzMTEgMjMuNTkzOEM1My4zMTk4IDIzLjUxMzkgNTMuNjk4IDIzLjQyMTIgNTMuOTQ3NCAyMy4zMjQ4QzU0LjA3MzYgMjMuMjc2IDU0LjE0OTMgMjMuMjMyOCA1NC4xODgyIDIzLjIwMTdDNTQuMTk3OCAyMy4xOTQxIDU0LjIwMyAyMy4xODg5IDU0LjIwNTUgMjMuMTg2M0M1NC4yMDA3IDIzLjE5MjkgNTQuMTg3MyAyMy4yMTU0IDU0LjE4NzMgMjMuMjU0NUg1NC41Nzk5VjIyLjA1ODFINTUuMTc4MVYyMy4yNTQ1SDU0Ljc4NTVDNTQuNzg1NSAyMy40NDk1IDU0LjY2NDYgMjMuNTg2OCA1NC41NjE3IDIzLjY2OUM1NC40NTQ0IDIzLjc1NDggNTQuMzE0NSAyMy44MjQyIDU0LjE2MzEgMjMuODgyOEM1My44NTcxIDI0LjAwMTEgNTMuNDMxOSAyNC4xMDE3IDUyLjkyNzcgMjQuMTg0MkM1MS45MTQ0IDI0LjM0OTkgNTAuNTI1OCAyNC40NTEgNDguOTk5NyAyNC40NTFDNDcuNDczNiAyNC40NTEgNDYuMDg1IDI0LjM0OTkgNDUuMDcxNyAyNC4xODQyQzQ0LjU2NzUgMjQuMTAxNyA0NC4xNDIyIDI0LjAwMTEgNDMuODM2MyAyMy44ODI4QzQzLjY4NDkgMjMuODI0MiA0My41NDUgMjMuNzU0OCA0My40Mzc3IDIzLjY2OUM0My4zMzQ4IDIzLjU4NjggNDMuMjEzOSAyMy40NDk1IDQzLjIxMzkgMjMuMjU0NVYyMi4wNTgxSDQzLjgxMjFaTTU0LjIwNzIgMjMuMTg0MkM1NC4yMDcxIDIzLjE4NDIgNTQuMjA2NSAyMy4xODQ5IDU0LjIwNTUgMjMuMTg2M0M1NC4yMDY4IDIzLjE4NDkgNTQuMjA3MyAyMy4xODQyIDU0LjIwNzIgMjMuMTg0MloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik00My44MTIxIDIzLjIwMjRINDMuMjEzOVYyMy40OTE2TDQzLjQ0MDUgMjMuNjcxM0w0My44MTIxIDIzLjIwMjRaTTQzLjgxMjEgMjIuMDU4MUg0NC40MTAzVjIxLjQ1OTlINDMuODEyMVYyMi4wNTgxWk00NC4wNTIgMjMuMzI0OEw0My44MzYzIDIzLjg4MjhINDMuODM2M0w0NC4wNTIgMjMuMzI0OFpNNDUuMTY4MyAyMy41OTM4TDQ1LjA3MTcgMjQuMTg0Mkw0NS4xNjgzIDIzLjU5MzhaTTUyLjgzMTEgMjMuNTkzOEw1Mi43MzQ2IDIzLjAwMzVWMjMuMDAzNUw1Mi44MzExIDIzLjU5MzhaTTUzLjk0NzQgMjMuMzI0OEw1My43MzE2IDIyLjc2NjlMNTMuNzMxNiAyMi43NjY5TDUzLjk0NzQgMjMuMzI0OFpNNTQuMTg4MiAyMy4yMDE3TDU0LjU2MTcgMjMuNjY5TDU0LjU2MTcgMjMuNjY5TDU0LjE4ODIgMjMuMjAxN1pNNTQuMTg3MyAyMy4yNTQ1SDUzLjU4OTFWMjMuODUyN0g1NC4xODczVjIzLjI1NDVaTTU0LjU3OTkgMjMuMjU0NVYyMy44NTI3SDU1LjE3ODFWMjMuMjU0NUg1NC41Nzk5Wk01NC41Nzk5IDIyLjA1ODFWMjEuNDU5OUg1My45ODE3VjIyLjA1ODFINTQuNTc5OVpNNTUuMTc4MSAyMi4wNTgxSDU1Ljc3NjNWMjEuNDU5OUg1NS4xNzgxVjIyLjA1ODFaTTU1LjE3ODEgMjMuMjU0NVYyMy44NTI3SDU1Ljc3NjNWMjMuMjU0NUg1NS4xNzgxWk01NC43ODU1IDIzLjI1NDVWMjIuNjU2M0g1NC4xODczVjIzLjI1NDVINTQuNzg1NVpNNTQuNTYxNyAyMy42NjlMNTQuMTg4MiAyMy4yMDE3TDU0LjE4ODIgMjMuMjAxN0w1NC41NjE3IDIzLjY2OVpNNTQuMTYzMSAyMy44ODI4TDUzLjk0NzQgMjMuMzI0OEw1My45NDc0IDIzLjMyNDhMNTQuMTYzMSAyMy44ODI4Wk01Mi45Mjc3IDI0LjE4NDJMNTMuMDI0MiAyNC43NzQ2TDUyLjkyNzcgMjQuMTg0MlpNNDUuMDcxNyAyNC4xODQyTDQ1LjE2ODMgMjMuNTkzOEg0NS4xNjgzTDQ1LjA3MTcgMjQuMTg0MlpNNDMuODM2MyAyMy44ODI4TDQzLjYyMDUgMjQuNDQwN0g0My42MjA1TDQzLjgzNjMgMjMuODgyOFpNNDMuNDM3NyAyMy42NjlMNDMuMDY0MiAyNC4xMzYzTDQzLjA2NDIgMjQuMTM2M0w0My40Mzc3IDIzLjY2OVpNNDMuMjEzOSAyMi4wNTgxVjIxLjQ1OTlINDIuNjE1N1YyMi4wNTgxSDQzLjIxMzlaTTQ0LjQxMDMgMjMuMjAyNFYyMi4wNTgxSDQzLjIxMzlWMjMuMjAyNEg0NC40MTAzWk00NC4yNjc4IDIyLjc2NjlDNDQuMjIyMiAyMi43NDkzIDQ0LjE5MzMgMjIuNzM1NSA0NC4xNzc1IDIyLjcyNzJDNDQuMTY5NyAyMi43MjMyIDQ0LjE2NjUgMjIuNzIxMSA0NC4xNjY5IDIyLjcyMTRDNDQuMTY3IDIyLjcyMTUgNDQuMTczMyAyMi43MjU0IDQ0LjE4MzYgMjIuNzMzNkw0My40NDA1IDIzLjY3MTNDNDMuNTQ3MyAyMy43NTU5IDQzLjY4NiAyMy44MjQ3IDQzLjgzNjMgMjMuODgyOEw0NC4yNjc4IDIyLjc2NjlaTTQ1LjI2NDggMjMuMDAzNUM0NC43OTE3IDIyLjkyNjEgNDQuNDYwNCAyMi44NDE0IDQ0LjI2NzggMjIuNzY2OUw0My44MzYzIDIzLjg4MjhDNDQuMTQyMyAyNC4wMDExIDQ0LjU2NzUgMjQuMTAxOCA0NS4wNzE3IDI0LjE4NDJMNDUuMjY0OCAyMy4wMDM1Wk00OC45OTk3IDIzLjI1NDVDNDcuNTE3NiAyMy4yNTQ1IDQ2LjE5NjcgMjMuMTU1OSA0NS4yNjQ4IDIzLjAwMzVMNDUuMDcxNyAyNC4xODQyQzQ2LjA4NSAyNC4zNDk5IDQ3LjQ3MzYgMjQuNDUxIDQ4Ljk5OTcgMjQuNDUxVjIzLjI1NDVaTTUyLjczNDYgMjMuMDAzNUM1MS44MDI3IDIzLjE1NTkgNTAuNDgxNyAyMy4yNTQ1IDQ4Ljk5OTcgMjMuMjU0NVYyNC40NTFDNTAuNTI1OCAyNC40NTEgNTEuOTE0NCAyNC4zNDk5IDUyLjkyNzcgMjQuMTg0Mkw1Mi43MzQ2IDIzLjAwMzVaTTUzLjczMTYgMjIuNzY2OUM1My41MzkgMjIuODQxNCA1My4yMDc3IDIyLjkyNjEgNTIuNzM0NiAyMy4wMDM1TDUyLjkyNzcgMjQuMTg0MkM1My40MzE4IDI0LjEwMTggNTMuODU3MSAyNC4wMDExIDU0LjE2MzEgMjMuODgyOEw1My43MzE2IDIyLjc2NjlaTTUzLjgxNDcgMjIuNzM0NEM1My44MjU1IDIyLjcyNTggNTMuODMyMSAyMi43MjE3IDUzLjgzMjQgMjIuNzIxNUM1My44MzMxIDIyLjcyMSA1My44MyAyMi43MjMgNTMuODIyMyAyMi43MjcxQzUzLjgwNjYgMjIuNzM1MyA1My43Nzc1IDIyLjc0OTEgNTMuNzMxNiAyMi43NjY5TDU0LjE2MzEgMjMuODgyOEM1NC4zMTQzIDIzLjgyNDMgNTQuNDU0MiAyMy43NTQ5IDU0LjU2MTcgMjMuNjY5TDUzLjgxNDcgMjIuNzM0NFpNNTMuNzY3MSAyMi43NzkyQzUzLjc3OTEgMjIuNzY2MyA1My43ODkzIDIyLjc1NjYgNTMuNzk2NiAyMi43NUM1My44MDQyIDIyLjc0MzEgNTMuODEwNCAyMi43Mzc5IDUzLjgxNDcgMjIuNzM0NEw1NC41NjE3IDIzLjY2OUM1NC41ODgxIDIzLjY0NzkgNTQuNjE2NSAyMy42MjI4IDU0LjY0MzggMjMuNTkzNEw1My43NjcxIDIyLjc3OTJaTTU0Ljc4NTUgMjMuMjU0NUM1NC43ODU1IDIzLjM1NzcgNTQuNzQ4OSAyMy40NTY2IDU0LjY4ODQgMjMuNTM5M0w1My43MjI2IDIyLjgzMzJDNTMuNjUyNCAyMi45MjkyIDUzLjU4OTEgMjMuMDczMSA1My41ODkxIDIzLjI1NDVINTQuNzg1NVpNNTQuNTc5OSAyMi42NTYzSDU0LjE4NzNWMjMuODUyN0g1NC41Nzk5VjIyLjY1NjNaTTU1LjE3ODEgMjMuMjU0NVYyMi4wNTgxSDUzLjk4MTdWMjMuMjU0NUg1NS4xNzgxWk01NC41Nzk5IDIyLjY1NjNINTUuMTc4MVYyMS40NTk5SDU0LjU3OTlWMjIuNjU2M1pNNTQuNTc5OSAyMi4wNTgxVjIzLjI1NDVINTUuNzc2M1YyMi4wNTgxSDU0LjU3OTlaTTU1LjE3ODEgMjIuNjU2M0g1NC43ODU1VjIzLjg1MjdINTUuMTc4MVYyMi42NTYzWk01NC45MzUyIDI0LjEzNjNDNTUuMDk1MyAyNC4wMDgzIDU1LjM4MzcgMjMuNzE3NiA1NS4zODM3IDIzLjI1NDVINTQuMTg3M0M1NC4xODczIDIzLjI0MDQgNTQuMTg5NiAyMy4yMjU2IDU0LjE5MzggMjMuMjEyMUM1NC4xOTc5IDIzLjE5OTIgNTQuMjAyNSAyMy4xOTA4IDU0LjIwNDkgMjMuMTg3MUM1NC4yMDcgMjMuMTgzNiA1NC4yMDczIDIzLjE4MzkgNTQuMjA0IDIzLjE4NzRDNTQuMjAwNyAyMy4xOTEgNTQuMTk1NSAyMy4xOTU5IDU0LjE4ODIgMjMuMjAxN0w1NC45MzUyIDI0LjEzNjNaTTU0LjM3ODggMjQuNDQwN0M1NC41NTU2IDI0LjM3MjQgNTQuNzU5NSAyNC4yNzY3IDU0LjkzNTIgMjQuMTM2M0w1NC4xODgyIDIzLjIwMTdDNTQuMTQ5MiAyMy4yMzI5IDU0LjA3MzQgMjMuMjc2MSA1My45NDc0IDIzLjMyNDhMNTQuMzc4OCAyNC40NDA3Wk01My4wMjQyIDI0Ljc3NDZDNTMuNTQ0MSAyNC42ODk2IDU0LjAxNjMgMjQuNTgwOSA1NC4zNzg4IDI0LjQ0MDdMNTMuOTQ3NCAyMy4zMjQ4QzUzLjY5OCAyMy40MjEyIDUzLjMxOTcgMjMuNTEzOSA1Mi44MzExIDIzLjU5MzhMNTMuMDI0MiAyNC43NzQ2Wk00OC45OTk3IDI1LjA0OTJDNTAuNTQ3OSAyNS4wNDkyIDUxLjk3MDMgMjQuOTQ2OSA1My4wMjQyIDI0Ljc3NDZMNTIuODMxMSAyMy41OTM4QzUxLjg1ODYgMjMuNzUyOSA1MC41MDM4IDIzLjg1MjcgNDguOTk5NyAyMy44NTI3VjI1LjA0OTJaTTQ0Ljk3NTIgMjQuNzc0NkM0Ni4wMjkxIDI0Ljk0NjkgNDcuNDUxNSAyNS4wNDkyIDQ4Ljk5OTcgMjUuMDQ5MlYyMy44NTI3QzQ3LjQ5NTYgMjMuODUyNyA0Ni4xNDA4IDIzLjc1MjkgNDUuMTY4MyAyMy41OTM4TDQ0Ljk3NTIgMjQuNzc0NlpNNDMuNjIwNSAyNC40NDA3QzQzLjk4MzEgMjQuNTgwOSA0NC40NTUzIDI0LjY4OTYgNDQuOTc1MiAyNC43NzQ2TDQ1LjE2ODMgMjMuNTkzOEM0NC42Nzk3IDIzLjUxMzkgNDQuMzAxNCAyMy40MjEyIDQ0LjA1MiAyMy4zMjQ4TDQzLjYyMDUgMjQuNDQwN1pNNDMuMDY0MiAyNC4xMzYzQzQzLjIzOTkgMjQuMjc2NyA0My40NDM3IDI0LjM3MjQgNDMuNjIwNSAyNC40NDA3TDQ0LjA1MiAyMy4zMjQ4QzQzLjkyNiAyMy4yNzYxIDQzLjg1MDEgMjMuMjMyOSA0My44MTEyIDIzLjIwMTdMNDMuMDY0MiAyNC4xMzYzWk00Mi42MTU3IDIzLjI1NDVDNDIuNjE1NyAyMy43MTc2IDQyLjkwNDEgMjQuMDA4MyA0My4wNjQyIDI0LjEzNjNMNDMuODExMiAyMy4yMDE3QzQzLjgwMzkgMjMuMTk1OSA0My43OTg3IDIzLjE5MSA0My43OTU0IDIzLjE4NzVDNDMuNzkyIDIzLjE4MzkgNDMuNzkyMyAyMy4xODM2IDQzLjc5NDUgMjMuMTg3MUM0My43OTY4IDIzLjE5MDggNDMuODAxNSAyMy4xOTkyIDQzLjgwNTUgMjMuMjEyMUM0My44MDk3IDIzLjIyNTYgNDMuODEyMSAyMy4yNDA0IDQzLjgxMjEgMjMuMjU0NUg0Mi42MTU3Wk00Mi42MTU3IDIyLjA1ODFWMjMuMjU0NUg0My44MTIxVjIyLjA1ODFINDIuNjE1N1pNNDMuODEyMSAyMS40NTk5SDQzLjIxMzlWMjIuNjU2M0g0My44MTIxVjIxLjQ1OTlaTTU0LjIyNTYgMjIuNTg2M0M1NC4xMDU2IDIyLjU4MjYgNTQuMDE2IDIyLjYxNjMgNTMuOTgzMSAyMi42Mjk2QzUzLjk0MTUgMjIuNjQ2NCA1My45MTA1IDIyLjY2NDQgNTMuODkzNyAyMi42NzQ4QzUzLjg1OTggMjIuNjk1NiA1My44MzU2IDIyLjcxNTMgNTMuODI1NyAyMi43MjM0QzUzLjgwMzYgMjIuNzQxNyA1My43ODc3IDIyLjc1NzYgNTMuNzgxOSAyMi43NjM1QzUzLjc2NzYgMjIuNzc4IDUzLjc1NyAyMi43OTAyIDUzLjc1MTggMjIuNzk2M0M1My43Mzk4IDIyLjgxMDMgNTMuNzMgMjIuODIzMSA1My43MjI2IDIyLjgzMzJMNTQuNjg4NCAyMy41Mzk0QzU0LjY4MiAyMy41NDgyIDU0LjY3MyAyMy41NTk4IDU0LjY2MTYgMjMuNTczMkM1NC42NTY3IDIzLjU3ODkgNTQuNjQ2NCAyMy41OTA5IDU0LjYzMjIgMjMuNjA1MkM1NC42MjY0IDIzLjYxMSA1NC42MTA2IDIzLjYyNjkgNTQuNTg4NSAyMy42NDUxQzU0LjU3ODcgMjMuNjUzMiA1NC41NTQ1IDIzLjY3MjkgNTQuNTIwNyAyMy42OTM3QzU0LjUwMzkgMjMuNzA0MSA1NC40NzI5IDIzLjcyMjEgNTQuNDMxMyAyMy43Mzg5QzU0LjM5ODQgMjMuNzUyMiA1NC4zMDg4IDIzLjc4NTkgNTQuMTg4OCAyMy43ODIyTDU0LjIyNTYgMjIuNTg2M1pNNTQuNjQzOSAyMy41OTMzQzU0LjY1MDggMjMuNTg1OSA1NC42NjEyIDIzLjU3NDMgNTQuNjczIDIzLjU1OTdDNTQuNjc3MyAyMy41NTQzIDU0LjY4OTkgMjMuNTM4NiA1NC43MDQyIDIzLjUxNzJDNTQuNzA3NyAyMy41MTIgNTQuNzMwMiAyMy40NzkgNTQuNzUxMSAyMy40MzMyQzU0Ljc1NSAyMy40MjQ5IDU0Ljc5NjEgMjMuMzQwOCA1NC44MDQgMjMuMjI1MkM1NC44MDc5IDIzLjE2ODggNTQuODExNCAyMy4wMTEzIDU0LjcwNDIgMjIuODUxM0M1NC41NzI3IDIyLjY1NDkgNTQuMzcwOCAyMi41OTA4IDU0LjIyNTYgMjIuNTg2M0w1NC4xODg4IDIzLjc4MjJDNTQuMDQzNiAyMy43Nzc3IDUzLjg0MTcgMjMuNzEzNSA1My43MTAyIDIzLjUxNzFDNTMuNjAzIDIzLjM1NzIgNTMuNjA2NSAyMy4xOTk2IDUzLjYxMDQgMjMuMTQzM0M1My42MTgzIDIzLjAyNzcgNTMuNjU5NCAyMi45NDM3IDUzLjY2MzMgMjIuOTM1M0M1My42ODQyIDIyLjg4OTUgNTMuNzA2NiAyMi44NTY3IDUzLjcxMDEgMjIuODUxNUM1My43MjQzIDIyLjgzMDMgNTMuNzM2NyAyMi44MTQ5IDUzLjc0MDcgMjIuODA5OEM1My43NTE5IDIyLjc5NTkgNTMuNzYxNSAyMi43ODUzIDUzLjc2NzEgMjIuNzc5M0w1NC42NDM5IDIzLjU5MzNaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMTItaW5zaWRlLTJfMzQ2MV80Njg4NikiLz4KPHBhdGggZD0iTTU1LjIxNDcgMjEuOTQ1MkM1NS4yMTQ3IDIxLjk0NTIgNTUuMjE0MyAyMS45NDU4IDU1LjIxMzIgMjEuOTQ3MkM1NS4yMTQxIDIxLjk0NTggNTUuMjE0NiAyMS45NDUyIDU1LjIxNDcgMjEuOTQ1MlpNNTQuOTE4OCAyMS44ODlDNTUuMDIyNyAyMS45MyA1NS4wOTY5IDIxLjk2NzkgNTUuMTQ2OCAyMkM1NS4wOTY5IDIyLjAzMjEgNTUuMDIyNyAyMi4wNyA1NC45MTg4IDIyLjExMUM1NC42NDM5IDIyLjIxOTMgNTQuMjI4NCAyMi4zMjI5IDUzLjY5MzUgMjIuNDEyMUM1Mi42Mjg0IDIyLjU4OTYgNTEuMTQ1NiAyMi43MDA5IDQ5LjUgMjIuNzAwOUM0Ny44NTQ0IDIyLjcwMDkgNDYuMzcxNiAyMi41ODk2IDQ1LjMwNjUgMjIuNDEyMUM0NC43NzE2IDIyLjMyMjkgNDQuMzU2MSAyMi4yMTkzIDQ0LjA4MTIgMjIuMTExQzQzLjk3NzMgMjIuMDcgNDMuOTAzMSAyMi4wMzIxIDQzLjg1MzIgMjJDNDMuOTAzMSAyMS45Njc5IDQzLjk3NzMgMjEuOTMgNDQuMDgxMiAyMS44ODlDNDQuMzU2MSAyMS43ODA3IDQ0Ljc3MTYgMjEuNjc3MSA0NS4zMDY1IDIxLjU4NzlDNDYuMzcxNiAyMS40MTA0IDQ3Ljg1NDQgMjEuMjk5MSA0OS41IDIxLjI5OTFDNTEuMTQ1NiAyMS4yOTkxIDUyLjYyODQgMjEuNDEwNCA1My42OTM1IDIxLjU4NzlDNTQuMjI4NCAyMS42NzcxIDU0LjY0MzkgMjEuNzgwNyA1NC45MTg4IDIxLjg4OVpNNDMuNzg1MyAyMS45NDUyQzQzLjc4NTQgMjEuOTQ1MiA0My43ODU5IDIxLjk0NTggNDMuNzg2NyAyMS45NDcxQzQzLjc4NTcgMjEuOTQ1OCA0My43ODUzIDIxLjk0NTIgNDMuNzg1MyAyMS45NDUyWk00My43ODUzIDIyLjA1NDhDNDMuNzg1MyAyMi4wNTQ4IDQzLjc4NTcgMjIuMDU0MiA0My43ODY3IDIyLjA1MjlDNDMuNzg1OSAyMi4wNTQyIDQzLjc4NTQgMjIuMDU0OCA0My43ODUzIDIyLjA1NDhaTTU1LjIxMzIgMjIuMDUyOEM1NS4yMTQzIDIyLjA1NDIgNTUuMjE0NyAyMi4wNTQ4IDU1LjIxNDcgMjIuMDU0OEM1NS4yMTQ2IDIyLjA1NDggNTUuMjE0MSAyMi4wNTQyIDU1LjIxMzIgMjIuMDUyOFoiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMC41OTgyMTIiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8zNDYxXzQ2ODg2KSI+CjxyZWN0IHg9IjM3LjUiIHk9IjQ0IiB3aWR0aD0iMjIiIGhlaWdodD0iMTMiIHJ4PSIxLjE4OTY2IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik00NC44NDc3IDUwLjk3MjdWNTEuNzIyN0g0MC43NDYxTDQwLjcxNDggNTEuMTU2Mkw0My4xNjggNDcuMzEyNUg0My45MjE5TDQzLjEwNTUgNDguNzEwOUw0MS42OTUzIDUwLjk3MjdINDQuODQ3N1pNNDQuMTM2NyA0Ny4zMTI1VjUzSDQzLjE5NTNWNDcuMzEyNUg0NC4xMzY3Wk00OS4xODM2IDQ5LjY3OTdWNTAuNjA5NEM0OS4xODM2IDUxLjA1NDcgNDkuMTM5MyA1MS40MzQ5IDQ5LjA1MDggNTEuNzVDNDguOTY0OCA1Mi4wNjI1IDQ4LjgzOTggNTIuMzE2NCA0OC42NzU4IDUyLjUxMTdDNDguNTExNyA1Mi43MDcgNDguMzE1MSA1Mi44NTAzIDQ4LjA4NTkgNTIuOTQxNEM0Ny44NTk0IDUzLjAzMjYgNDcuNjA1NSA1My4wNzgxIDQ3LjMyNDIgNTMuMDc4MUM0Ny4xMDAzIDUzLjA3ODEgNDYuODkxOSA1My4wNDk1IDQ2LjY5OTIgNTIuOTkyMkM0Ni41MDkxIDUyLjkzNDkgNDYuMzM3MiA1Mi44NDUxIDQ2LjE4MzYgNTIuNzIyN0M0Ni4wMjk5IDUyLjYwMDMgNDUuODk4NCA1Mi40NDI3IDQ1Ljc4OTEgNTIuMjVDNDUuNjgyMyA1Mi4wNTQ3IDQ1LjU5OSA1MS44MjE2IDQ1LjUzOTEgNTEuNTUwOEM0NS40ODE4IDUxLjI3OTkgNDUuNDUzMSA1MC45NjYxIDQ1LjQ1MzEgNTAuNjA5NFY0OS42Nzk3QzQ1LjQ1MzEgNDkuMjMxOCA0NS40OTc0IDQ4Ljg1NDIgNDUuNTg1OSA0OC41NDY5QzQ1LjY3NDUgNDguMjM3IDQ1LjgwMDggNDcuOTg1NyA0NS45NjQ4IDQ3Ljc5M0M0Ni4xMjg5IDQ3LjU5NzcgNDYuMzI0MiA0Ny40NTU3IDQ2LjU1MDggNDcuMzY3MkM0Ni43Nzk5IDQ3LjI3ODYgNDcuMDM1MiA0Ny4yMzQ0IDQ3LjMxNjQgNDcuMjM0NEM0Ny41NDMgNDcuMjM0NCA0Ny43NTEzIDQ3LjI2MyA0Ny45NDE0IDQ3LjMyMDNDNDguMTM0MSA0Ny4zNzUgNDguMzA2IDQ3LjQ2MjIgNDguNDU3IDQ3LjU4MkM0OC42MTA3IDQ3LjcwMTggNDguNzQwOSA0Ny44NTgxIDQ4Ljg0NzcgNDguMDUwOEM0OC45NTcgNDguMjQwOSA0OS4wNDA0IDQ4LjQ3MTQgNDkuMDk3NyA0OC43NDIyQzQ5LjE1NDkgNDkuMDEwNCA0OS4xODM2IDQ5LjMyMjkgNDkuMTgzNiA0OS42Nzk3Wk00OC4yNDIyIDUwLjc0MjJWNDkuNTM5MUM0OC4yNDIyIDQ5LjMxMjUgNDguMjI5MiA0OS4xMTMzIDQ4LjIwMzEgNDguOTQxNEM0OC4xNzcxIDQ4Ljc2NjkgNDguMTM4IDQ4LjYxOTggNDguMDg1OSA0OC41QzQ4LjAzNjUgNDguMzc3NiA0Ny45NzQgNDguMjc4NiA0Ny44OTg0IDQ4LjIwMzFDNDcuODIyOSA0OC4xMjUgNDcuNzM3IDQ4LjA2OSA0Ny42NDA2IDQ4LjAzNTJDNDcuNTQ0MyA0Ny45OTg3IDQ3LjQzNjIgNDcuOTgwNSA0Ny4zMTY0IDQ3Ljk4MDVDNDcuMTcwNiA0Ny45ODA1IDQ3LjA0MDQgNDguMDA5MSA0Ni45MjU4IDQ4LjA2NjRDNDYuODExMiA0OC4xMjExIDQ2LjcxNDggNDguMjA5NiA0Ni42MzY3IDQ4LjMzMkM0Ni41NTg2IDQ4LjQ1NDQgNDYuNDk4NyA0OC42MTU5IDQ2LjQ1NyA0OC44MTY0QzQ2LjQxOCA0OS4wMTQzIDQ2LjM5ODQgNDkuMjU1MiA0Ni4zOTg0IDQ5LjUzOTFWNTAuNzQyMkM0Ni4zOTg0IDUwLjk3MTQgNDYuNDExNSA1MS4xNzMyIDQ2LjQzNzUgNTEuMzQ3N0M0Ni40NjM1IDUxLjUyMjEgNDYuNTAyNiA1MS42NzE5IDQ2LjU1NDcgNTEuNzk2OUM0Ni42MDY4IDUxLjkxOTMgNDYuNjY5MyA1Mi4wMjA4IDQ2Ljc0MjIgNTIuMTAxNkM0Ni44MTc3IDUyLjE3OTcgNDYuOTAzNiA1Mi4yMzcgNDcgNTIuMjczNEM0Ny4wOTkgNTIuMzA5OSA0Ny4yMDcgNTIuMzI4MSA0Ny4zMjQyIDUyLjMyODFDNDcuNDcyNyA1Mi4zMjgxIDQ3LjYwNDIgNTIuMjk5NSA0Ny43MTg4IDUyLjI0MjJDNDcuODMzMyA1Mi4xODQ5IDQ3LjkyOTcgNTIuMDkzOCA0OC4wMDc4IDUxLjk2ODhDNDguMDg1OSA1MS44NDExIDQ4LjE0NDUgNTEuNjc1OCA0OC4xODM2IDUxLjQ3MjdDNDguMjIyNyA1MS4yNjk1IDQ4LjI0MjIgNTEuMDI2IDQ4LjI0MjIgNTAuNzQyMloiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPHBhdGggZD0iTTUyLjc0NDEgNTAuMzE2OVY1MC4xMjg5QzUyLjc0NDEgNDkuOTkzOCA1Mi43NzM0IDQ5Ljg3MDkgNTIuODMyIDQ5Ljc2MDNDNTIuODkwNiA0OS42NDk2IDUyLjk3NjEgNDkuNTYwOSA1My4wODg0IDQ5LjQ5NDFDNTMuMjAwNyA0OS40Mjc0IDUzLjMzNTggNDkuMzk0IDUzLjQ5MzcgNDkuMzk0QzUzLjY1NjQgNDkuMzk0IDUzLjc5MzEgNDkuNDI3NCA1My45MDM4IDQ5LjQ5NDFDNTQuMDE2MSA0OS41NjA5IDU0LjEwMTYgNDkuNjQ5NiA1NC4xNjAyIDQ5Ljc2MDNDNTQuMjE4OCA0OS44NzA5IDU0LjI0OCA0OS45OTM4IDU0LjI0OCA1MC4xMjg5VjUwLjMxNjlDNTQuMjQ4IDUwLjQ0ODcgNTQuMjE4OCA1MC41NyA1NC4xNjAyIDUwLjY4MDdDNTQuMTAzMiA1MC43OTEzIDU0LjAxODYgNTAuODggNTMuOTA2MiA1MC45NDY4QzUzLjc5NTYgNTEuMDEzNSA1My42NTk3IDUxLjA0NjkgNTMuNDk4NSA1MS4wNDY5QzUzLjMzOSA1MS4wNDY5IDUzLjIwMjMgNTEuMDEzNSA1My4wODg0IDUwLjk0NjhDNTIuOTc2MSA1MC44OCA1Mi44OTA2IDUwLjc5MTMgNTIuODMyIDUwLjY4MDdDNTIuNzczNCA1MC41NyA1Mi43NDQxIDUwLjQ0ODcgNTIuNzQ0MSA1MC4zMTY5Wk01My4xNTE5IDUwLjEyODlWNTAuMzE2OUM1My4xNTE5IDUwLjM4MiA1My4xNjQxIDUwLjQ0MzggNTMuMTg4NSA1MC41MDI0QzUzLjIxNDUgNTAuNTYxIDUzLjI1MzYgNTAuNjA4MiA1My4zMDU3IDUwLjY0NEM1My4zNTc3IDUwLjY3OTkgNTMuNDIyIDUwLjY5NzggNTMuNDk4NSA1MC42OTc4QzUzLjU3NjcgNTAuNjk3OCA1My42NDAxIDUwLjY3OTkgNTMuNjg5IDUwLjY0NEM1My43Mzk0IDUwLjYwODIgNTMuNzc2OSA1MC41NjEgNTMuODAxMyA1MC41MDI0QzUzLjgyNTcgNTAuNDQzOCA1My44Mzc5IDUwLjM4MiA1My44Mzc5IDUwLjMxNjlWNTAuMTI4OUM1My44Mzc5IDUwLjA2MjIgNTMuODI0OSA0OS45OTk1IDUzLjc5ODggNDkuOTQwOUM1My43NzQ0IDQ5Ljg4MDcgNTMuNzM3IDQ5LjgzMjcgNTMuNjg2NSA0OS43OTY5QzUzLjYzNjEgNDkuNzYxMSA1My41NzE4IDQ5Ljc0MzIgNTMuNDkzNyA0OS43NDMyQzUzLjQxODggNDkuNzQzMiA1My4zNTUzIDQ5Ljc2MTEgNTMuMzAzMiA0OS43OTY5QzUzLjI1MjggNDkuODMyNyA1My4yMTQ1IDQ5Ljg4MDcgNTMuMTg4NSA0OS45NDA5QzUzLjE2NDEgNDkuOTk5NSA1My4xNTE5IDUwLjA2MjIgNTMuMTUxOSA1MC4xMjg5Wk01NC40NTggNTIuMzE4OFY1Mi4xMjg0QzU0LjQ1OCA1MS45OTUgNTQuNDg3MyA1MS44NzI5IDU0LjU0NTkgNTEuNzYyMkM1NC42MDYxIDUxLjY1MTUgNTQuNjkyNCA1MS41NjI4IDU0LjgwNDcgNTEuNDk2MUM1NC45MTcgNTEuNDI5NCA1NS4wNTIxIDUxLjM5NiA1NS4yMSA1MS4zOTZDNTUuMzcyNyA1MS4zOTYgNTUuNTA5NCA1MS40Mjk0IDU1LjYyMDEgNTEuNDk2MUM1NS43MzI0IDUxLjU2MjggNTUuODE3MSA1MS42NTE1IDU1Ljg3NCA1MS43NjIyQzU1LjkzMjYgNTEuODcyOSA1NS45NjE5IDUxLjk5NSA1NS45NjE5IDUyLjEyODRWNTIuMzE4OEM1NS45NjE5IDUyLjQ1MjMgNTUuOTMyNiA1Mi41NzQ0IDU1Ljg3NCA1Mi42ODUxQzU1LjgxNzEgNTIuNzk1NyA1NS43MzMyIDUyLjg4NDQgNTUuNjIyNiA1Mi45NTEyQzU1LjUxMTkgNTMuMDE3OSA1NS4zNzY4IDUzLjA1MTMgNTUuMjE3MyA1My4wNTEzQzU1LjA1NjIgNTMuMDUxMyA1NC45MTg2IDUzLjAxNzkgNTQuODA0NyA1Mi45NTEyQzU0LjY5MjQgNTIuODg0NCA1NC42MDYxIDUyLjc5NTcgNTQuNTQ1OSA1Mi42ODUxQzU0LjQ4NzMgNTIuNTc0NCA1NC40NTggNTIuNDUyMyA1NC40NTggNTIuMzE4OFpNNTQuODY4MiA1Mi4xMjg0VjUyLjMxODhDNTQuODY4MiA1Mi4zODQgNTQuODgxMiA1Mi40NDU4IDU0LjkwNzIgNTIuNTA0NEM1NC45MzQ5IDUyLjU2MyA1NC45NzQ4IDUyLjYxMSA1NS4wMjY5IDUyLjY0ODRDNTUuMDc4OSA1Mi42ODQyIDU1LjE0MTYgNTIuNzAyMSA1NS4yMTQ4IDUyLjcwMjFDNTUuMjk3OSA1Mi43MDIxIDU1LjM2NDYgNTIuNjg0MiA1NS40MTUgNTIuNjQ4NEM1NS40NjU1IDUyLjYxMSA1NS41MDEzIDUyLjU2MzggNTUuNTIyNSA1Mi41MDY4QzU1LjU0NTIgNTIuNDQ4MiA1NS41NTY2IDUyLjM4NTYgNTUuNTU2NiA1Mi4zMTg4VjUyLjEyODRDNTUuNTU2NiA1Mi4wNjE3IDU1LjU0MzYgNTEuOTk5IDU1LjUxNzYgNTEuOTQwNEM1NS40OTMyIDUxLjg4MTggNTUuNDU0OSA1MS44MzQ2IDU1LjQwMjggNTEuNzk4OEM1NS4zNTI0IDUxLjc2MyA1NS4yODgxIDUxLjc0NTEgNTUuMjEgNTEuNzQ1MUM1NS4xMzM1IDUxLjc0NTEgNTUuMDcgNTEuNzYzIDU1LjAxOTUgNTEuNzk4OEM1NC45NjkxIDUxLjgzNDYgNTQuOTMwOCA1MS44ODE4IDU0LjkwNDggNTEuOTQwNEM1NC44ODA0IDUxLjk5OSA1NC44NjgyIDUyLjA2MTcgNTQuODY4MiA1Mi4xMjg0Wk01NS4zNTY0IDQ5Ljk1MzFMNTMuNjIwNiA1Mi43MzE0TDUzLjMyMDMgNTIuNTU4MUw1NS4wNTYyIDQ5Ljc3OThMNTUuMzU2NCA0OS45NTMxWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8L2c+CjwvZz4KPHJlY3QgeD0iMC4yNSIgeT0iMC4yNSIgd2lkdGg9Ijk3LjUiIGhlaWdodD0iNzcuNSIgcng9IjEuNzUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIiBzdHJva2Utd2lkdGg9IjAuNSIvPgo8cmVjdCB4PSIxMDIiIHdpZHRoPSI5OCIgaGVpZ2h0PSI3OCIgcng9IjIiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMTYuMjM5IDEyLjM5MTlWMTNIMTE0LjAwNVYxMi4zOTE5SDExNi4yMzlaTTExNC4yMTkgOC41NTA0N1YxM0gxMTMuNDUyVjguNTUwNDdIMTE0LjIxOVpNMTE3LjY2OCA5LjY5MzQyVjEzSDExNi45MjhWOS42OTM0MkgxMTcuNjY4Wk0xMTYuODc5IDguODI1NTFDMTE2Ljg3OSA4LjcxMzQ2IDExNi45MTYgOC42MjA3NiAxMTYuOTg5IDguNTQ3NDJDMTE3LjA2NSA4LjQ3MjA0IDExNy4xNjkgOC40MzQzNSAxMTcuMzAxIDguNDM0MzVDMTE3LjQzMSA4LjQzNDM1IDExNy41MzQgOC40NzIwNCAxMTcuNjEgOC41NDc0MkMxMTcuNjg1IDguNjIwNzYgMTE3LjcyMyA4LjcxMzQ2IDExNy43MjMgOC44MjU1MUMxMTcuNzIzIDguOTM1NTMgMTE3LjY4NSA5LjAyNzIxIDExNy42MSA5LjEwMDU1QzExNy41MzQgOS4xNzM5IDExNy40MzEgOS4yMTA1NyAxMTcuMzAxIDkuMjEwNTdDMTE3LjE2OSA5LjIxMDU3IDExNy4wNjUgOS4xNzM5IDExNi45ODkgOS4xMDA1NUMxMTYuOTE2IDkuMDI3MjEgMTE2Ljg3OSA4LjkzNTUzIDExNi44NzkgOC44MjU1MVpNMTIwLjYwOSAxNC4yNzEzVjEwLjM1MDVMMTIwLjY5NCA5LjY5MzQySDEyMS4zNTFWMTQuMjcxM0gxMjAuNjA5Wk0xMTguNDYgMTEuMzgwM1YxMS4zMTYxQzExOC40NiAxMS4wNjU2IDExOC40ODkgMTAuODM3NCAxMTguNTQ2IDEwLjYzMTZDMTE4LjYwMyAxMC40MjM4IDExOC42ODggMTAuMjQ1NSAxMTguOCAxMC4wOTY4QzExOC45MTIgOS45NDgwOCAxMTkuMDQ4IDkuODMzOTkgMTE5LjIwOSA5Ljc1NDUzQzExOS4zNyA5LjY3MzA0IDExOS41NTUgOS42MzIzIDExOS43NjUgOS42MzIzQzExOS45NjkgOS42MzIzIDEyMC4xNDYgOS42NzEgMTIwLjI5NyA5Ljc0ODQyQzEyMC40NSA5LjgyNTg0IDEyMC41NzggOS45MzY4OCAxMjAuNjgyIDEwLjA4MTVDMTIwLjc4OCAxMC4yMjQxIDEyMC44NzMgMTAuMzk0MyAxMjAuOTM2IDEwLjU5MTlDMTIwLjk5OSAxMC43ODk1IDEyMS4wNDUgMTEuMDA5NSAxMjEuMDczIDExLjI1MlYxMS40NTY3QzEyMS4wNDcgMTEuNjkzMSAxMjEuMDAyIDExLjkwOSAxMjAuOTM5IDEyLjEwNDZDMTIwLjg3NiAxMi4zMDAyIDEyMC43OTEgMTIuNDY5MyAxMjAuNjg1IDEyLjYxMTlDMTIwLjU3OSAxMi43NTQ1IDEyMC40NSAxMi44NjU1IDEyMC4yOTcgMTIuOTQ1QzEyMC4xNDQgMTMuMDIyNCAxMTkuOTY1IDEzLjA2MTEgMTE5Ljc1OSAxMy4wNjExQzExOS41NTMgMTMuMDYxMSAxMTkuMzcgMTMuMDE5NCAxMTkuMjA5IDEyLjkzNThDMTE5LjA0OCAxMi44NTIzIDExOC45MTIgMTIuNzM1MSAxMTguOCAxMi41ODQ0QzExOC42OSAxMi40MzE2IDExOC42MDUgMTIuMjUzMyAxMTguNTQ2IDEyLjA0OTZDMTE4LjQ4OSAxMS44NDM4IDExOC40NiAxMS42MjA3IDExOC40NiAxMS4zODAzWk0xMTkuMTk3IDExLjMxNjFWMTEuMzgwM0MxMTkuMTk3IDExLjUzMTEgMTE5LjIxIDExLjY3MjcgMTE5LjIzNyAxMS44MDUxQzExOS4yNjUgMTEuOTM1NSAxMTkuMzEgMTIuMDUxNiAxMTkuMzcxIDEyLjE1MzVDMTE5LjQzMiAxMi4yNTMzIDExOS41MSAxMi4zMzE4IDExOS42MDMgMTIuMzg4OEMxMTkuNjk3IDEyLjQ0NTggMTE5LjgxIDEyLjQ3NDQgMTE5Ljk0MyAxMi40NzQ0QzEyMC4xMTYgMTIuNDc0NCAxMjAuMjU3IDEyLjQzNjcgMTIwLjM2NyAxMi4zNjEzQzEyMC40NzkgMTIuMjg1OSAxMjAuNTY1IDEyLjE4NTEgMTIwLjYyNCAxMi4wNTg4QzEyMC42ODUgMTEuOTMwNCAxMjAuNzI4IDExLjc4ODggMTIwLjc1MiAxMS42MzRWMTEuMDgwOEMxMjAuNzM4IDEwLjk2MDYgMTIwLjcxMyAxMC44NDg2IDEyMC42NzYgMTAuNzQ0N0MxMjAuNjM5IDEwLjYzODcgMTIwLjU4OCAxMC41NDcxIDEyMC41MjMgMTAuNDY5NkMxMjAuNDYgMTAuMzkwMiAxMjAuMzgxIDEwLjMyOTEgMTIwLjI4NSAxMC4yODYzQzEyMC4xOTEgMTAuMjQxNSAxMjAuMDc5IDEwLjIxOSAxMTkuOTQ5IDEwLjIxOUMxMTkuODE2IDEwLjIxOSAxMTkuNzAyIDEwLjI0NzYgMTE5LjYwNiAxMC4zMDQ2QzExOS41MTEgMTAuMzYxNyAxMTkuNDMyIDEwLjQ0MTEgMTE5LjM3MSAxMC41NDNDMTE5LjMxMiAxMC42NDI4IDExOS4yNjggMTAuNzU4OSAxMTkuMjQgMTAuODkxNEMxMTkuMjExIDExLjAyMzggMTE5LjE5NyAxMS4xNjU0IDExOS4xOTcgMTEuMzE2MVpNMTI0LjI1IDEyLjIyMDdWOS42OTM0MkgxMjQuOTg5VjEzSDEyNC4yOTJMMTI0LjI1IDEyLjIyMDdaTTEyNC4zNTMgMTEuNTMzMUwxMjQuNjAxIDExLjUyN0MxMjQuNjAxIDExLjc0OTEgMTI0LjU3NyAxMS45NTM4IDEyNC41MjggMTIuMTQxM0MxMjQuNDc5IDEyLjMyNjcgMTI0LjQwMyAxMi40ODg2IDEyNC4zMDIgMTIuNjI3MkMxMjQuMiAxMi43NjM3IDEyNC4wNjkgMTIuODcwNiAxMjMuOTEgMTIuOTQ4QzEyMy43NTEgMTMuMDIzNCAxMjMuNTYxIDEzLjA2MTEgMTIzLjMzOSAxMy4wNjExQzEyMy4xNzggMTMuMDYxMSAxMjMuMDMgMTMuMDM3NyAxMjIuODk2IDEyLjk5MDhDMTIyLjc2MSAxMi45NDQgMTIyLjY0NSAxMi44NzE2IDEyMi41NDcgMTIuNzczOUMxMjIuNDUyIDEyLjY3NjEgMTIyLjM3NyAxMi41NDg3IDEyMi4zMjQgMTIuMzkxOUMxMjIuMjcxIDEyLjIzNSAxMjIuMjQ1IDEyLjA0NzUgMTIyLjI0NSAxMS44Mjk2VjkuNjkzNDJIMTIyLjk4MVYxMS44MzU3QzEyMi45ODEgMTEuOTU1OSAxMjIuOTk2IDEyLjA1NjcgMTIzLjAyNCAxMi4xMzgyQzEyMy4wNTMgMTIuMjE3NyAxMjMuMDkxIDEyLjI4MTggMTIzLjE0IDEyLjMzMDdDMTIzLjE4OSAxMi4zNzk2IDEyMy4yNDYgMTIuNDE0MyAxMjMuMzExIDEyLjQzNDZDMTIzLjM3NyAxMi40NTUgMTIzLjQ0NiAxMi40NjUyIDEyMy41MTkgMTIuNDY1MkMxMjMuNzI5IDEyLjQ2NTIgMTIzLjg5NCAxMi40MjQ1IDEyNC4wMTQgMTIuMzQzQzEyNC4xMzcgMTIuMjU5NCAxMjQuMjIzIDEyLjE0NzQgMTI0LjI3NCAxMi4wMDY4QzEyNC4zMjcgMTEuODY2MiAxMjQuMzUzIDExLjcwODMgMTI0LjM1MyAxMS41MzMxWk0xMjYuNjUzIDkuNjkzNDJWMTNIMTI1LjkxM1Y5LjY5MzQySDEyNi42NTNaTTEyNS44NjQgOC44MjU1MUMxMjUuODY0IDguNzEzNDYgMTI1LjkwMSA4LjYyMDc2IDEyNS45NzQgOC41NDc0MkMxMjYuMDUgOC40NzIwNCAxMjYuMTU0IDguNDM0MzUgMTI2LjI4NiA4LjQzNDM1QzEyNi40MTYgOC40MzQzNSAxMjYuNTE5IDguNDcyMDQgMTI2LjU5NSA4LjU0NzQyQzEyNi42NyA4LjYyMDc2IDEyNi43MDggOC43MTM0NiAxMjYuNzA4IDguODI1NTFDMTI2LjcwOCA4LjkzNTUzIDEyNi42NyA5LjAyNzIxIDEyNi41OTUgOS4xMDA1NUMxMjYuNTE5IDkuMTczOSAxMjYuNDE2IDkuMjEwNTcgMTI2LjI4NiA5LjIxMDU3QzEyNi4xNTQgOS4yMTA1NyAxMjYuMDUgOS4xNzM5IDEyNS45NzQgOS4xMDA1NUMxMjUuOTAxIDkuMDI3MjEgMTI1Ljg2NCA4LjkzNTUzIDEyNS44NjQgOC44MjU1MVpNMTI5LjU5NyAxMi4zMTU1VjguMzA1OTlIMTMwLjMzNlYxM0gxMjkuNjY3TDEyOS41OTcgMTIuMzE1NVpNMTI3LjQ0NSAxMS4zODM0VjExLjMxOTJDMTI3LjQ0NSAxMS4wNjg2IDEyNy40NzUgMTAuODQwNCAxMjcuNTM0IDEwLjYzNDdDMTI3LjU5MyAxMC40MjY5IDEyNy42NzkgMTAuMjQ4NiAxMjcuNzkxIDEwLjA5OTlDMTI3LjkwMyA5Ljk0OTEgMTI4LjAzOSA5LjgzMzk5IDEyOC4yIDkuNzU0NTNDMTI4LjM2MSA5LjY3MzA0IDEyOC41NDMgOS42MzIzIDEyOC43NDQgOS42MzIzQzEyOC45NDQgOS42MzIzIDEyOS4xMTkgOS42NzEgMTI5LjI3IDkuNzQ4NDJDMTI5LjQyMSA5LjgyNTg0IDEyOS41NDkgOS45MzY4OCAxMjkuNjU1IDEwLjA4MTVDMTI5Ljc2MSAxMC4yMjQxIDEyOS44NDUgMTAuMzk1MyAxMjkuOTA5IDEwLjU5NDlDMTI5Ljk3MiAxMC43OTI2IDEzMC4wMTcgMTEuMDEyNiAxMzAuMDQzIDExLjI1NVYxMS40NTk4QzEzMC4wMTcgMTEuNjk2MSAxMjkuOTcyIDExLjkxMjEgMTI5LjkwOSAxMi4xMDc2QzEyOS44NDUgMTIuMzAzMiAxMjkuNzYxIDEyLjQ3MjMgMTI5LjY1NSAxMi42MTQ5QzEyOS41NDkgMTIuNzU3NiAxMjkuNDIgMTIuODY3NiAxMjkuMjY3IDEyLjk0NUMxMjkuMTE2IDEzLjAyMjQgMTI4Ljk0IDEzLjA2MTEgMTI4LjczOCAxMy4wNjExQzEyOC41MzggMTMuMDYxMSAxMjguMzU4IDEzLjAxOTQgMTI4LjE5NyAxMi45MzU4QzEyOC4wMzggMTIuODUyMyAxMjcuOTAzIDEyLjczNTEgMTI3Ljc5MSAxMi41ODQ0QzEyNy42NzkgMTIuNDMzNiAxMjcuNTkzIDEyLjI1NjQgMTI3LjUzNCAxMi4wNTI2QzEyNy40NzUgMTEuODQ2OSAxMjcuNDQ1IDExLjYyMzggMTI3LjQ0NSAxMS4zODM0Wk0xMjguMTgyIDExLjMxOTJWMTEuMzgzNEMxMjguMTgyIDExLjUzNDEgMTI4LjE5NSAxMS42NzQ3IDEyOC4yMjIgMTEuODA1MUMxMjguMjUgMTEuOTM1NSAxMjguMjk0IDEyLjA1MDYgMTI4LjM1MyAxMi4xNTA0QzEyOC40MTIgMTIuMjQ4MiAxMjguNDg5IDEyLjMyNTYgMTI4LjU4MiAxMi4zODI3QzEyOC42NzggMTIuNDM3NyAxMjguNzkyIDEyLjQ2NTIgMTI4LjkyNSAxMi40NjUyQzEyOS4wOTIgMTIuNDY1MiAxMjkuMjI5IDEyLjQyODUgMTI5LjMzNyAxMi4zNTUyQzEyOS40NDUgMTIuMjgxOCAxMjkuNTMgMTIuMTgzIDEyOS41OTEgMTIuMDU4OEMxMjkuNjU0IDExLjkzMjQgMTI5LjY5NyAxMS43OTE5IDEyOS43MTkgMTEuNjM3VjExLjA4MzlDMTI5LjcwNyAxMC45NjM3IDEyOS42ODEgMTAuODUxNiAxMjkuNjQzIDEwLjc0NzdDMTI5LjYwNiAxMC42NDM4IDEyOS41NTYgMTAuNTUzMiAxMjkuNDkzIDEwLjQ3NTdDMTI5LjQzIDEwLjM5NjMgMTI5LjM1MSAxMC4zMzUyIDEyOS4yNTggMTAuMjkyNEMxMjkuMTY2IDEwLjI0NzYgMTI5LjA1NyAxMC4yMjUyIDEyOC45MzEgMTAuMjI1MkMxMjguNzk2IDEwLjIyNTIgMTI4LjY4MiAxMC4yNTM3IDEyOC41ODggMTAuMzEwN0MxMjguNDk1IDEwLjM2NzggMTI4LjQxNyAxMC40NDYyIDEyOC4zNTYgMTAuNTQ2QzEyOC4yOTcgMTAuNjQ1OSAxMjguMjUzIDEwLjc2MiAxMjguMjI1IDEwLjg5NDRDMTI4LjE5NiAxMS4wMjY4IDEyOC4xODIgMTEuMTY4NCAxMjguMTgyIDExLjMxOTJaTTEzMy42OTQgOC4zMDU5OVYxM0gxMzIuOTU1VjguMzA1OTlIMTMzLjY5NFpNMTM2LjA3OSAxMy4wNjExQzEzNS44MzUgMTMuMDYxMSAxMzUuNjE0IDEzLjAyMTQgMTM1LjQxNiAxMi45NDE5QzEzNS4yMiAxMi44NjA0IDEzNS4wNTMgMTIuNzQ3NCAxMzQuOTE1IDEyLjYwMjdDMTM0Ljc3OCAxMi40NTgxIDEzNC42NzMgMTIuMjg4IDEzNC42IDEyLjA5MjRDMTM0LjUyNyAxMS44OTY4IDEzNC40OSAxMS42ODU5IDEzNC40OSAxMS40NTk4VjExLjMzNzVDMTM0LjQ5IDExLjA3ODggMTM0LjUyOCAxMC44NDQ1IDEzNC42MDMgMTAuNjM0N0MxMzQuNjc4IDEwLjQyNDggMTM0Ljc4MyAxMC4yNDU1IDEzNC45MTggMTAuMDk2OEMxMzUuMDUyIDkuOTQ2MDQgMTM1LjIxMSA5LjgzMDkzIDEzNS4zOTUgOS43NTE0OEMxMzUuNTc4IDkuNjcyMDIgMTM1Ljc3NyA5LjYzMjMgMTM1Ljk5IDkuNjMyM0MxMzYuMjI3IDkuNjMyMyAxMzYuNDM0IDkuNjcyMDIgMTM2LjYxMSA5Ljc1MTQ4QzEzNi43ODggOS44MzA5MyAxMzYuOTM1IDkuOTQyOTkgMTM3LjA1MSAxMC4wODc2QzEzNy4xNjkgMTAuMjMwMyAxMzcuMjU3IDEwLjQwMDQgMTM3LjMxNCAxMC41OThDMTM3LjM3MyAxMC43OTU2IDEzNy40MDIgMTEuMDEzNiAxMzcuNDAyIDExLjI1MlYxMS41NjY3SDEzNC44NDhWMTEuMDM4MUgxMzYuNjc1VjEwLjk4QzEzNi42NzEgMTAuODQ3NiAxMzYuNjQ0IDEwLjcyMzMgMTM2LjU5NiAxMC42MDcyQzEzNi41NDkgMTAuNDkxIDEzNi40NzYgMTAuMzk3MyAxMzYuMzc5IDEwLjMyNkMxMzYuMjgxIDEwLjI1NDcgMTM2LjE1IDEwLjIxOSAxMzUuOTg3IDEwLjIxOUMxMzUuODY1IDEwLjIxOSAxMzUuNzU2IDEwLjI0NTUgMTM1LjY2IDEwLjI5ODVDMTM1LjU2NyAxMC4zNDk0IDEzNS40ODggMTAuNDIzOCAxMzUuNDI1IDEwLjUyMTZDMTM1LjM2MiAxMC42MTk0IDEzNS4zMTMgMTAuNzM3NSAxMzUuMjc4IDEwLjg3NjFDMTM1LjI0NiAxMS4wMTI2IDEzNS4yMyAxMS4xNjY0IDEzNS4yMyAxMS4zMzc1VjExLjQ1OThDMTM1LjIzIDExLjYwNDQgMTM1LjI0OSAxMS43Mzg5IDEzNS4yODggMTEuODYzMkMxMzUuMzI4IDExLjk4NTQgMTM1LjM4NyAxMi4wOTI0IDEzNS40NjUgMTIuMTg0QzEzNS41NDIgMTIuMjc1NyAxMzUuNjM2IDEyLjM0ODEgMTM1Ljc0NiAxMi40MDFDMTM1Ljg1NiAxMi40NTIgMTM1Ljk4MSAxMi40Nzc0IDEzNi4xMjIgMTIuNDc3NEMxMzYuMjk5IDEyLjQ3NzQgMTM2LjQ1NyAxMi40NDE4IDEzNi41OTYgMTIuMzcwNUMxMzYuNzM0IDEyLjI5OTIgMTM2Ljg1NCAxMi4xOTgzIDEzNi45NTYgMTIuMDY3OUwxMzcuMzQ0IDEyLjQ0MzhDMTM3LjI3MyAxMi41NDc3IDEzNy4xOCAxMi42NDc1IDEzNy4wNjYgMTIuNzQzM0MxMzYuOTUyIDEyLjgzNyAxMzYuODEzIDEyLjkxMzQgMTM2LjY0OCAxMi45NzI1QzEzNi40ODUgMTMuMDMxNiAxMzYuMjk1IDEzLjA2MTEgMTM2LjA3OSAxMy4wNjExWk0xMzkuMTMgMTIuNDE2M0wxMzkuOTQgOS42OTM0MkgxNDAuNzA0TDEzOS41NTUgMTNIMTM5LjA3OEwxMzkuMTMgMTIuNDE2M1pNMTM4LjUxIDkuNjkzNDJMMTM5LjMzNSAxMi40Mjg1TDEzOS4zNzUgMTNIMTM4Ljg5OEwxMzcuNzQzIDkuNjkzNDJIMTM4LjUxWk0xNDIuNjk1IDEzLjA2MTFDMTQyLjQ1IDEzLjA2MTEgMTQyLjIyOSAxMy4wMjE0IDE0Mi4wMzEgMTIuOTQxOUMxNDEuODM2IDEyLjg2MDQgMTQxLjY2OSAxMi43NDc0IDE0MS41MyAxMi42MDI3QzE0MS4zOTQgMTIuNDU4MSAxNDEuMjg5IDEyLjI4OCAxNDEuMjE2IDEyLjA5MjRDMTQxLjE0MiAxMS44OTY4IDE0MS4xMDYgMTEuNjg1OSAxNDEuMTA2IDExLjQ1OThWMTEuMzM3NUMxNDEuMTA2IDExLjA3ODggMTQxLjE0MyAxMC44NDQ1IDE0MS4yMTkgMTAuNjM0N0MxNDEuMjk0IDEwLjQyNDggMTQxLjM5OSAxMC4yNDU1IDE0MS41MzMgMTAuMDk2OEMxNDEuNjY4IDkuOTQ2MDQgMTQxLjgyNyA5LjgzMDkzIDE0Mi4wMSA5Ljc1MTQ4QzE0Mi4xOTMgOS42NzIwMiAxNDIuMzkyIDkuNjMyMyAxNDIuNjA2IDkuNjMyM0MxNDIuODQyIDkuNjMyMyAxNDMuMDQ5IDkuNjcyMDIgMTQzLjIyNiA5Ljc1MTQ4QzE0My40MDQgOS44MzA5MyAxNDMuNTUgOS45NDI5OSAxNDMuNjY2IDEwLjA4NzZDMTQzLjc4NSAxMC4yMzAzIDE0My44NzIgMTAuNDAwNCAxNDMuOTI5IDEwLjU5OEMxNDMuOTg4IDEwLjc5NTYgMTQ0LjAxOCAxMS4wMTM2IDE0NC4wMTggMTEuMjUyVjExLjU2NjdIMTQxLjQ2M1YxMS4wMzgxSDE0My4yOTFWMTAuOThDMTQzLjI4NiAxMC44NDc2IDE0My4yNiAxMC43MjMzIDE0My4yMTEgMTAuNjA3MkMxNDMuMTY0IDEwLjQ5MSAxNDMuMDkyIDEwLjM5NzMgMTQyLjk5NCAxMC4zMjZDMTQyLjg5NiAxMC4yNTQ3IDE0Mi43NjYgMTAuMjE5IDE0Mi42MDMgMTAuMjE5QzE0Mi40ODEgMTAuMjE5IDE0Mi4zNzIgMTAuMjQ1NSAxNDIuMjc2IDEwLjI5ODVDMTQyLjE4MiAxMC4zNDk0IDE0Mi4xMDQgMTAuNDIzOCAxNDIuMDQxIDEwLjUyMTZDMTQxLjk3NyAxMC42MTk0IDE0MS45MjkgMTAuNzM3NSAxNDEuODk0IDEwLjg3NjFDMTQxLjg2MSAxMS4wMTI2IDE0MS44NDUgMTEuMTY2NCAxNDEuODQ1IDExLjMzNzVWMTEuNDU5OEMxNDEuODQ1IDExLjYwNDQgMTQxLjg2NCAxMS43Mzg5IDE0MS45MDMgMTEuODYzMkMxNDEuOTQ0IDExLjk4NTQgMTQyLjAwMyAxMi4wOTI0IDE0Mi4wOCAxMi4xODRDMTQyLjE1OCAxMi4yNzU3IDE0Mi4yNTEgMTIuMzQ4MSAxNDIuMzYyIDEyLjQwMUMxNDIuNDcyIDEyLjQ1MiAxNDIuNTk3IDEyLjQ3NzQgMTQyLjczNyAxMi40Nzc0QzE0Mi45MTUgMTIuNDc3NCAxNDMuMDczIDEyLjQ0MTggMTQzLjIxMSAxMi4zNzA1QzE0My4zNSAxMi4yOTkyIDE0My40NyAxMi4xOTgzIDE0My41NzIgMTIuMDY3OUwxNDMuOTYgMTIuNDQzOEMxNDMuODg4IDEyLjU0NzcgMTQzLjc5NiAxMi42NDc1IDE0My42ODIgMTIuNzQzM0MxNDMuNTY4IDEyLjgzNyAxNDMuNDI4IDEyLjkxMzQgMTQzLjI2MyAxMi45NzI1QzE0My4xIDEzLjAzMTYgMTQyLjkxMSAxMy4wNjExIDE0Mi42OTUgMTMuMDYxMVpNMTQ1LjUwMSA4LjMwNTk5VjEzSDE0NC43NjJWOC4zMDU5OUgxNDUuNTAxWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBvcGFjaXR5PSIwLjEiIGQ9Ik0xNjkuNSAzMS4zMDRDMTcyLjgyOCAzMS4zMDQgMTc1Ljg3IDMzLjE5MjEgMTc4LjA5MSAzNi4zMDIzQzE4MC4zMTMgMzkuNDEyIDE4MS42OTYgNDMuNzIzNiAxODEuNjk2IDQ4LjVDMTgxLjY5NiA1My4yNzY0IDE4MC4zMTMgNTcuNTg4IDE3OC4wOTEgNjAuNjk3N0MxNzUuODcgNjMuODA3OSAxNzIuODI4IDY1LjY5NiAxNjkuNSA2NS42OTZDMTY2LjE3MiA2NS42OTYgMTYzLjEzIDYzLjgwNzkgMTYwLjkwOSA2MC42OTc3QzE1OC42ODcgNTcuNTg4IDE1Ny4zMDQgNTMuMjc2NCAxNTcuMzA0IDQ4LjVDMTU3LjMwNCA0My43MjM2IDE1OC42ODcgMzkuNDEyIDE2MC45MDkgMzYuMzAyM0MxNjMuMTMgMzMuMTkyMSAxNjYuMTcyIDMxLjMwNCAxNjkuNSAzMS4zMDRaIiBmaWxsPSIjNjIxNkZGIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIwLjYwOCIvPgo8bWFzayBpZD0ibWFzazFfMzQ2MV80Njg4NiIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMTIwIiB5PSIzMSIgd2lkdGg9IjYyIiBoZWlnaHQ9IjM0Ij4KPG1hc2sgaWQ9InBhdGgtMjItaW5zaWRlLTNfMzQ2MV80Njg4NiIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEzMi4xNzYgMzEuNjI0M0MxMzIuMTY4IDMxLjYyNDMgMTMyLjE1OSAzMS42MjQzIDEzMi4xNTEgMzEuNjI0M0MxMzIuMTQzIDMxLjYyNDMgMTMyLjEzNSAzMS42MjQzIDEzMi4xMjcgMzEuNjI0M0wxMzEuODQ3IDMxLjYyNDNWMzEuNjMwMUMxMjUuNzc2IDMxLjg2NTIgMTIwLjkwMyAzOS4xMjIzIDEyMC45MDMgNDguMDQwM0MxMjAuOTAzIDU2Ljk1ODIgMTI1Ljc3NiA2NC4yMTUzIDEzMS44NDcgNjQuNDUwNFY2NC40NTYzSDE2OS44NDdIMTcwLjE1MVY2NC40NTA0QzE3Ni4yMjMgNjQuMjE1MyAxODEuMDk1IDU2Ljk1ODIgMTgxLjA5NSA0OC4wNDAzQzE4MS4wOTUgMzkuMTIyNCAxNzYuMjIzIDMxLjg2NTMgMTcwLjE1MSAzMS42MzAyVjMxLjYyNDNMMTY5Ljg1NSAzMS42MjQzTDE2OS44NDcgMzEuNjI0M0wxNjkuODQgMzEuNjI0M0wxMzIuMTc2IDMxLjYyNDNaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzIuMTc2IDMxLjYyNDNDMTMyLjE2OCAzMS42MjQzIDEzMi4xNTkgMzEuNjI0MyAxMzIuMTUxIDMxLjYyNDNDMTMyLjE0MyAzMS42MjQzIDEzMi4xMzUgMzEuNjI0MyAxMzIuMTI3IDMxLjYyNDNMMTMxLjg0NyAzMS42MjQzVjMxLjYzMDFDMTI1Ljc3NiAzMS44NjUyIDEyMC45MDMgMzkuMTIyMyAxMjAuOTAzIDQ4LjA0MDNDMTIwLjkwMyA1Ni45NTgyIDEyNS43NzYgNjQuMjE1MyAxMzEuODQ3IDY0LjQ1MDRWNjQuNDU2M0gxNjkuODQ3SDE3MC4xNTFWNjQuNDUwNEMxNzYuMjIzIDY0LjIxNTMgMTgxLjA5NSA1Ni45NTgyIDE4MS4wOTUgNDguMDQwM0MxODEuMDk1IDM5LjEyMjQgMTc2LjIyMyAzMS44NjUzIDE3MC4xNTEgMzEuNjMwMlYzMS42MjQzTDE2OS44NTUgMzEuNjI0M0wxNjkuODQ3IDMxLjYyNDNMMTY5Ljg0IDMxLjYyNDNMMTMyLjE3NiAzMS42MjQzWiIgZmlsbD0iIzdGODRGQiIvPgo8cGF0aCBkPSJNMTMyLjE3NiAzMS42MjQzTDEzMi4xNzQgMzIuMjMyM0gxMzIuMTc2VjMxLjYyNDNaTTEzMi4xMjcgMzEuNjI0M1YzMi4yMzIzTDEzMi4xMjkgMzIuMjMyM0wxMzIuMTI3IDMxLjYyNDNaTTEzMS44NDcgMzEuNjI0M1YzMS4wMTYzSDEzMS4yMzlWMzEuNjI0M0gxMzEuODQ3Wk0xMzEuODQ3IDMxLjYzMDFMMTMxLjg3MSAzMi4yMzc3TDEzMi40NTUgMzIuMjE1MVYzMS42MzAxSDEzMS44NDdaTTEzMS44NDcgNjQuNDUwNEgxMzIuNDU1VjYzLjg2NTVMMTMxLjg3MSA2My44NDI4TDEzMS44NDcgNjQuNDUwNFpNMTMxLjg0NyA2NC40NTYzSDEzMS4yMzlWNjUuMDY0M0gxMzEuODQ3VjY0LjQ1NjNaTTE3MC4xNTEgNjQuNDU2M1Y2NS4wNjQzSDE3MC43NTlWNjQuNDU2M0gxNzAuMTUxWk0xNzAuMTUxIDY0LjQ1MDRMMTcwLjEyOCA2My44NDI5TDE2OS41NDMgNjMuODY1NVY2NC40NTA0SDE3MC4xNTFaTTE4MS4wOTUgNDguMDQwM0gxODEuNzAzSDE4MS4wOTVaTTE3MC4xNTEgMzEuNjMwMkgxNjkuNTQzVjMyLjIxNTFMMTcwLjEyOCAzMi4yMzc3TDE3MC4xNTEgMzEuNjMwMlpNMTcwLjE1MSAzMS42MjQzSDE3MC43NTlWMzEuMDE2M0wxNzAuMTUxIDMxLjAxNjNWMzEuNjI0M1pNMTY5Ljg1NSAzMS42MjQzTDE2OS44NTUgMzIuMjMyM0gxNjkuODU1VjMxLjYyNDNaTTE2OS44NDcgMzEuNjI0M0wxNjkuODQ4IDMxLjAxNjNMMTY5Ljg0NyAzMS4wMTYzTDE2OS44NDcgMzEuNjI0M1pNMTY5Ljg0IDMxLjYyNDNWMzIuMjMyM0wxNjkuODQgMzIuMjMyM0wxNjkuODQgMzEuNjI0M1pNMTMyLjE1MSAzMi4yMzIzQzEzMi4xNTkgMzIuMjMyMyAxMzIuMTY2IDMyLjIzMjMgMTMyLjE3NCAzMi4yMzIzTDEzMi4xNzggMzEuMDE2M0MxMzIuMTY5IDMxLjAxNjMgMTMyLjE2IDMxLjAxNjMgMTMyLjE1MSAzMS4wMTYzVjMyLjIzMjNaTTEzMi4xMjkgMzIuMjMyM0MxMzIuMTM2IDMyLjIzMjMgMTMyLjE0NCAzMi4yMzIzIDEzMi4xNTEgMzIuMjMyM1YzMS4wMTYzQzEzMi4xNDMgMzEuMDE2MyAxMzIuMTM0IDMxLjAxNjMgMTMyLjEyNSAzMS4wMTYzTDEzMi4xMjkgMzIuMjMyM1pNMTMyLjEyNyAzMS4wMTYzSDEzMS44NDdWMzIuMjMyM0gxMzIuMTI3VjMxLjAxNjNaTTEzMS4yMzkgMzEuNjI0M1YzMS42MzAxSDEzMi40NTVWMzEuNjI0M0gxMzEuMjM5Wk0xMjEuNTExIDQ4LjA0MDNDMTIxLjUxMSA0My42ODY1IDEyMi43MDIgMzkuNzYzNSAxMjQuNjA0IDM2LjkxNjlDMTI2LjUwOSAzNC4wNjY4IDEyOS4wODYgMzIuMzQ1NSAxMzEuODcxIDMyLjIzNzdMMTMxLjgyNCAzMS4wMjI2QzEyOC41MzcgMzEuMTQ5OSAxMjUuNjQyIDMzLjE3NDcgMTIzLjU5MyAzNi4yNDEzQzEyMS41NDEgMzkuMzExNSAxMjAuMjk1IDQzLjQ3NiAxMjAuMjk1IDQ4LjA0MDNIMTIxLjUxMVpNMTMxLjg3MSA2My44NDI4QzEyOS4wODYgNjMuNzM1IDEyNi41MDkgNjIuMDEzOCAxMjQuNjA0IDU5LjE2MzZDMTIyLjcwMiA1Ni4zMTcgMTIxLjUxMSA1Mi4zOTQgMTIxLjUxMSA0OC4wNDAzSDEyMC4yOTVDMTIwLjI5NSA1Mi42MDQ1IDEyMS41NDEgNTYuNzY5IDEyMy41OTMgNTkuODM5MkMxMjUuNjQyIDYyLjkwNTkgMTI4LjUzNyA2NC45MzA3IDEzMS44MjQgNjUuMDU3OUwxMzEuODcxIDYzLjg0MjhaTTEzMS4yMzkgNjQuNDUwNFY2NC40NTYzSDEzMi40NTVWNjQuNDUwNEgxMzEuMjM5Wk0xMzEuODQ3IDY1LjA2NDNIMTY5Ljg0N1Y2My44NDgzSDEzMS44NDdWNjUuMDY0M1pNMTY5Ljg0NyA2NS4wNjQzSDE3MC4xNTFWNjMuODQ4M0gxNjkuODQ3VjY1LjA2NDNaTTE3MC43NTkgNjQuNDU2M1Y2NC40NTA0SDE2OS41NDNWNjQuNDU2M0gxNzAuNzU5Wk0xNzAuMTc1IDY1LjA1OEMxNzMuNDYyIDY0LjkzMDcgMTc2LjM1NiA2Mi45MDU5IDE3OC40MDYgNTkuODM5MkMxODAuNDU3IDU2Ljc2OSAxODEuNzAzIDUyLjYwNDUgMTgxLjcwMyA0OC4wNDAzSDE4MC40ODdDMTgwLjQ4NyA1Mi4zOTQgMTc5LjI5NyA1Ni4zMTcgMTc3LjM5NSA1OS4xNjM2QzE3NS40OSA2Mi4wMTM4IDE3Mi45MTIgNjMuNzM1IDE3MC4xMjggNjMuODQyOUwxNzAuMTc1IDY1LjA1OFpNMTgxLjcwMyA0OC4wNDAzQzE4MS43MDMgNDMuNDc2MSAxODAuNDU3IDM5LjMxMTYgMTc4LjQwNiAzNi4yNDE0QzE3Ni4zNTYgMzMuMTc0NyAxNzMuNDYyIDMxLjE0OTkgMTcwLjE3NSAzMS4wMjI2TDE3MC4xMjggMzIuMjM3N0MxNzIuOTEyIDMyLjM0NTYgMTc1LjQ5IDM0LjA2NjggMTc3LjM5NSAzNi45MTdDMTc5LjI5NyAzOS43NjM2IDE4MC40ODcgNDMuNjg2NiAxODAuNDg3IDQ4LjA0MDNIMTgxLjcwM1pNMTcwLjc1OSAzMS42MzAyVjMxLjYyNDNIMTY5LjU0M1YzMS42MzAySDE3MC43NTlaTTE3MC4xNTEgMzEuMDE2M0gxNjkuODU1VjMyLjIzMjNIMTcwLjE1MVYzMS4wMTYzWk0xNjkuODU1IDMxLjAxNjNMMTY5Ljg0OCAzMS4wMTYzTDE2OS44NDcgMzIuMjMyM0wxNjkuODU1IDMyLjIzMjNMMTY5Ljg1NSAzMS4wMTYzWk0xNjkuODQ3IDMxLjAxNjNMMTY5LjgzOSAzMS4wMTYzTDE2OS44NCAzMi4yMzIzTDE2OS44NDggMzIuMjMyM0wxNjkuODQ3IDMxLjAxNjNaTTE2OS44NCAzMS4wMTYzTDEzMi4xNzYgMzEuMDE2M1YzMi4yMzIzTDE2OS44NCAzMi4yMzIzVjMxLjAxNjNaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMjItaW5zaWRlLTNfMzQ2MV80Njg4NikiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2sxXzM0NjFfNDY4ODYpIj4KPHJlY3QgeD0iMTIwLjk5OSIgeT0iNTAiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMyIgZmlsbD0iIzdBOEJGRiIvPgo8L2c+CjxtYXNrIGlkPSJwYXRoLTI1LWluc2lkZS00XzM0NjFfNDY4ODYiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzIuMTUxIDMwLjQwODFMMTY5Ljg0NyAzMC40MDgxTDE3MC4xNTEgMzAuNDA4MUwxNzAuMTUxIDMwLjQxMzNDMTc2Ljg5NSAzMC42NDE2IDE4Mi4zMTEgMzguNDQ2IDE4Mi4zMTEgNDguMDQwMUMxODIuMzExIDU3LjYzNDIgMTc2Ljg5NSA2NS40Mzg2IDE3MC4xNTEgNjUuNjY3TDE3MC4xNTEgNjUuNjcyMUwxNjkuODQ3IDY1LjY3MjFMMTMxLjg0NyA2NS42NzIxTDEzMS44NDcgNjUuNjY3QzEyNS4xMDQgNjUuNDM4NiAxMTkuNjg3IDU3LjYzNDIgMTE5LjY4NyA0OC4wNDAxQzExOS42ODcgMzguNDQ2IDEyNS4xMDQgMzAuNjQxNiAxMzEuODQ3IDMwLjQxMzNMMTMxLjg0NyAzMC40MDgxTDEzMi4xNTEgMzAuNDA4MVoiLz4KPC9tYXNrPgo8cGF0aCBkPSJNMTY5Ljg0NyAzMC40MDgxTDE2OS44NDcgMzEuMDE2MUwxNjkuODQ3IDMwLjQwODFaTTEzMi4xNTEgMzAuNDA4MUwxMzIuMTUxIDMxLjAxNjFMMTMyLjE1MSAzMC40MDgxWk0xNzAuMTUxIDMwLjQwODFMMTcwLjc1OSAzMC40MDgxTDE3MC43NTkgMjkuODAwMUwxNzAuMTUxIDI5LjgwMDFMMTcwLjE1MSAzMC40MDgxWk0xNzAuMTUxIDMwLjQxMzNMMTY5LjU0MyAzMC40MTMzTDE2OS41NDMgMzEuMDAxTDE3MC4xMzEgMzEuMDIwOUwxNzAuMTUxIDMwLjQxMzNaTTE3MC4xNTEgNjUuNjY3TDE3MC4xMzEgNjUuMDU5M0wxNjkuNTQzIDY1LjA3OTJMMTY5LjU0MyA2NS42NjdMMTcwLjE1MSA2NS42NjdaTTE3MC4xNTEgNjUuNjcyMUwxNzAuMTUxIDY2LjI4MDFMMTcwLjc1OSA2Ni4yODAxTDE3MC43NTkgNjUuNjcyMUwxNzAuMTUxIDY1LjY3MjFaTTE2OS44NDcgNjUuNjcyMUwxNjkuODQ3IDY2LjI4MDFMMTY5Ljg0NyA2NS42NzIxWk0xMzEuODQ3IDY1LjY3MjFMMTMxLjIzOSA2NS42NzIxTDEzMS4yMzkgNjYuMjgwMUwxMzEuODQ3IDY2LjI4MDFMMTMxLjg0NyA2NS42NzIxWk0xMzEuODQ3IDY1LjY2N0wxMzIuNDU1IDY1LjY2N0wxMzIuNDU1IDY1LjA3OTJMMTMxLjg2OCA2NS4wNTkzTDEzMS44NDcgNjUuNjY3Wk0xMzEuODQ3IDMwLjQxMzNMMTMxLjg2OCAzMS4wMjA5TDEzMi40NTUgMzEuMDAxTDEzMi40NTUgMzAuNDEzM0wxMzEuODQ3IDMwLjQxMzNaTTEzMS44NDcgMzAuNDA4MUwxMzEuODQ3IDI5LjgwMDFMMTMxLjIzOSAyOS44MDAxTDEzMS4yMzkgMzAuNDA4MUwxMzEuODQ3IDMwLjQwODFaTTE2OS44NDcgMjkuODAwMUwxMzIuMTUxIDI5LjgwMDFMMTMyLjE1MSAzMS4wMTYxTDE2OS44NDcgMzEuMDE2MUwxNjkuODQ3IDI5LjgwMDFaTTE3MC4xNTEgMjkuODAwMUwxNjkuODQ3IDI5LjgwMDFMMTY5Ljg0NyAzMS4wMTYxTDE3MC4xNTEgMzEuMDE2MUwxNzAuMTUxIDI5LjgwMDFaTTE3MC43NTkgMzAuNDEzM0wxNzAuNzU5IDMwLjQwODFMMTY5LjU0MyAzMC40MDgxTDE2OS41NDMgMzAuNDEzM0wxNzAuNzU5IDMwLjQxMzNaTTE4Mi45MTkgNDguMDQwMUMxODIuOTE5IDQzLjEzMzcgMTgxLjUzNSAzOC42NjA0IDE3OS4yNiAzNS4zNjg4QzE3Ni45ODcgMzIuMDc5NCAxNzMuNzg3IDI5LjkyOCAxNzAuMTcyIDI5LjgwNTZMMTcwLjEzMSAzMS4wMjA5QzE3My4yNTkgMzEuMTI2OCAxNzYuMTM5IDMyLjk5MTggMTc4LjI2IDM2LjA2MDJDMTgwLjM3OSAzOS4xMjY0IDE4MS43MDMgNDMuMzUyNCAxODEuNzAzIDQ4LjA0MDFMMTgyLjkxOSA0OC4wNDAxWk0xNzAuMTcyIDY2LjI3NDZDMTczLjc4NyA2Ni4xNTIyIDE3Ni45ODcgNjQuMDAwOCAxNzkuMjYgNjAuNzExNEMxODEuNTM1IDU3LjQxOTggMTgyLjkxOSA1Mi45NDY1IDE4Mi45MTkgNDguMDQwMUwxODEuNzAzIDQ4LjA0MDFDMTgxLjcwMyA1Mi43Mjc5IDE4MC4zNzkgNTYuOTUzOCAxNzguMjYgNjAuMDJDMTc2LjEzOSA2My4wODg1IDE3My4yNTkgNjQuOTUzNCAxNzAuMTMxIDY1LjA1OTNMMTcwLjE3MiA2Ni4yNzQ2Wk0xNzAuNzU5IDY1LjY3MjFMMTcwLjc1OSA2NS42NjdMMTY5LjU0MyA2NS42NjdMMTY5LjU0MyA2NS42NzIxTDE3MC43NTkgNjUuNjcyMVpNMTY5Ljg0NyA2Ni4yODAxTDE3MC4xNTEgNjYuMjgwMUwxNzAuMTUxIDY1LjA2NDFMMTY5Ljg0NyA2NS4wNjQxTDE2OS44NDcgNjYuMjgwMVpNMTMxLjg0NyA2Ni4yODAxTDE2OS44NDcgNjYuMjgwMUwxNjkuODQ3IDY1LjA2NDFMMTMxLjg0NyA2NS4wNjQxTDEzMS44NDcgNjYuMjgwMVpNMTMxLjIzOSA2NS42NjdMMTMxLjIzOSA2NS42NzIxTDEzMi40NTUgNjUuNjcyMUwxMzIuNDU1IDY1LjY2N0wxMzEuMjM5IDY1LjY2N1pNMTMxLjg2OCA2NS4wNTkzQzEyOC43NCA2NC45NTM0IDEyNS44NiA2My4wODg1IDEyMy43MzkgNjAuMDJDMTIxLjYyIDU2Ljk1MzggMTIwLjI5NSA1Mi43Mjc5IDEyMC4yOTUgNDguMDQwMUwxMTkuMDc5IDQ4LjA0MDFDMTE5LjA3OSA1Mi45NDY1IDEyMC40NjQgNTcuNDE5OCAxMjIuNzM5IDYwLjcxMTRDMTI1LjAxMiA2NC4wMDA4IDEyOC4yMTIgNjYuMTUyMiAxMzEuODI3IDY2LjI3NDZMMTMxLjg2OCA2NS4wNTkzWk0xMjAuMjk1IDQ4LjA0MDFDMTIwLjI5NSA0My4zNTI0IDEyMS42MiAzOS4xMjY0IDEyMy43MzkgMzYuMDYwMkMxMjUuODYgMzIuOTkxOCAxMjguNzQgMzEuMTI2OCAxMzEuODY4IDMxLjAyMDlMMTMxLjgyNyAyOS44MDU2QzEyOC4yMTIgMjkuOTI4IDEyNS4wMTIgMzIuMDc5NCAxMjIuNzM5IDM1LjM2ODhDMTIwLjQ2NCAzOC42NjA0IDExOS4wNzkgNDMuMTMzNyAxMTkuMDc5IDQ4LjA0MDFMMTIwLjI5NSA0OC4wNDAxWk0xMzEuMjM5IDMwLjQwODFMMTMxLjIzOSAzMC40MTMzTDEzMi40NTUgMzAuNDEzM0wxMzIuNDU1IDMwLjQwODFMMTMxLjIzOSAzMC40MDgxWk0xMzIuMTUxIDI5LjgwMDFMMTMxLjg0NyAyOS44MDAxTDEzMS44NDcgMzEuMDE2MUwxMzIuMTUxIDMxLjAxNjFMMTMyLjE1MSAyOS44MDAxWiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTI1LWluc2lkZS00XzM0NjFfNDY4ODYpIi8+CjxwYXRoIGQ9Ik0xMzIuNSAzMS4zMDRDMTM1LjgyOCAzMS4zMDQgMTM4Ljg3IDMzLjE5MjEgMTQxLjA5MSAzNi4zMDIzQzE0My4zMTMgMzkuNDEyIDE0NC42OTYgNDMuNzIzNiAxNDQuNjk2IDQ4LjVDMTQ0LjY5NiA1My4yNzY0IDE0My4zMTMgNTcuNTg4IDE0MS4wOTEgNjAuNjk3N0MxMzguODcgNjMuODA3OSAxMzUuODI4IDY1LjY5NiAxMzIuNSA2NS42OTZDMTI5LjE3MiA2NS42OTYgMTI2LjEzIDYzLjgwNzkgMTIzLjkwOSA2MC42OTc3QzEyMS42ODcgNTcuNTg4IDEyMC4zMDQgNTMuMjc2NCAxMjAuMzA0IDQ4LjVDMTIwLjMwNCA0My43MjM2IDEyMS42ODcgMzkuNDEyIDEyMy45MDkgMzYuMzAyM0MxMjYuMTMgMzMuMTkyMSAxMjkuMTcyIDMxLjMwNCAxMzIuNSAzMS4zMDRaIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMC42MDgiLz4KPG1hc2sgaWQ9InBhdGgtMjgtaW5zaWRlLTVfMzQ2MV80Njg4NiIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1Ni40NzIgMjUuNTQ0NEgxNDcuNjU2VjMxLjAxNjRDMTQ3LjY1NiAzMS41MjAxIDE0OS42MyAzMS45Mjg0IDE1Mi4wNjQgMzEuOTI4NEMxNTQuNDk5IDMxLjkyODQgMTU2LjQ3MiAzMS41MjAxIDE1Ni40NzIgMzEuMDE2NFYyNS41NDQ0WiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTU2LjQ3MiAyNS41NDQ0SDE0Ny42NTZWMzEuMDE2NEMxNDcuNjU2IDMxLjUyMDEgMTQ5LjYzIDMxLjkyODQgMTUyLjA2NCAzMS45Mjg0QzE1NC40OTkgMzEuOTI4NCAxNTYuNDcyIDMxLjUyMDEgMTU2LjQ3MiAzMS4wMTY0VjI1LjU0NDRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTQ3LjY1NiAyNS41NDQ0VjI0LjkzNjRIMTQ3LjA0OFYyNS41NDQ0SDE0Ny42NTZaTTE1Ni40NzIgMjUuNTQ0NEgxNTcuMDhWMjQuOTM2NEgxNTYuNDcyVjI1LjU0NDRaTTE0Ny42NTYgMjYuMTUyNEgxNTYuNDcyVjI0LjkzNjRIMTQ3LjY1NlYyNi4xNTI0Wk0xNDguMjY0IDMxLjAxNjRWMjUuNTQ0NEgxNDcuMDQ4VjMxLjAxNjRIMTQ4LjI2NFpNMTUyLjA2NCAzMS4zMjA0QzE1MC44NzYgMzEuMzIwNCAxNDkuODE3IDMxLjIyMDMgMTQ5LjA3MSAzMS4wNjU5QzE0OC42OTIgMzAuOTg3NyAxNDguNDI2IDMwLjkwMTkgMTQ4LjI3IDMwLjgyNTNDMTQ4LjE5IDMwLjc4NjMgMTQ4LjE3IDMwLjc2NDcgMTQ4LjE3OCAzMC43NzI3QzE0OC4xODggMzAuNzgyNSAxNDguMjY0IDMwLjg2NTkgMTQ4LjI2NCAzMS4wMTY0SDE0Ny4wNDhDMTQ3LjA0OCAzMS4yOTI5IDE0Ny4xODYgMzEuNDk5MiAxNDcuMzE0IDMxLjYyNzhDMTQ3LjQzOSAzMS43NTQ1IDE0Ny41OTIgMzEuODQ3NCAxNDcuNzM1IDMxLjkxNzZDMTQ4LjAyNSAzMi4wNTkyIDE0OC40MDUgMzIuMTY5OSAxNDguODI0IDMyLjI1NjdDMTQ5LjY3MyAzMi40MzI0IDE1MC44MTggMzIuNTM2NCAxNTIuMDY0IDMyLjUzNjRWMzEuMzIwNFpNMTU1Ljg2NCAzMS4wMTY0QzE1NS44NjQgMzAuODY1OSAxNTUuOTQxIDMwLjc4MjUgMTU1Ljk1IDMwLjc3MjdDMTU1Ljk1OCAzMC43NjQ3IDE1NS45MzggMzAuNzg2MyAxNTUuODU5IDMwLjgyNTNDMTU1LjcwMiAzMC45MDE5IDE1NS40MzYgMzAuOTg3NyAxNTUuMDU4IDMxLjA2NTlDMTU0LjMxMiAzMS4yMjAzIDE1My4yNTMgMzEuMzIwNCAxNTIuMDY0IDMxLjMyMDRWMzIuNTM2NEMxNTMuMzEgMzIuNTM2NCAxNTQuNDU1IDMyLjQzMjQgMTU1LjMwNCAzMi4yNTY3QzE1NS43MjQgMzIuMTY5OSAxNTYuMTA0IDMyLjA1OTIgMTU2LjM5MyAzMS45MTc2QzE1Ni41MzYgMzEuODQ3NCAxNTYuNjkgMzEuNzU0NSAxNTYuODE1IDMxLjYyNzhDMTU2Ljk0MiAzMS40OTkyIDE1Ny4wOCAzMS4yOTI5IDE1Ny4wOCAzMS4wMTY0SDE1NS44NjRaTTE1NS44NjQgMjUuNTQ0NFYzMS4wMTY0SDE1Ny4wOFYyNS41NDQ0SDE1NS44NjRaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMjgtaW5zaWRlLTVfMzQ2MV80Njg4NikiLz4KPHBhdGggZD0iTTE1NS41MDUgMjUuODc5OUMxNTUuNTk3IDI1LjkyODQgMTU1LjY1MiAyNS45NzAyIDE1NS42ODEgMjZDMTU1LjY1MiAyNi4wMjk4IDE1NS41OTcgMjYuMDcxNiAxNTUuNTA1IDI2LjEyMDFDMTU1LjMxMiAyNi4yMjE3IDE1NS4wMTIgMjYuMzIyNCAxNTQuNjE2IDI2LjQxMDNDMTUzLjgyOSAyNi41ODUyIDE1Mi43MjcgMjYuNjk2IDE1MS41IDI2LjY5NkMxNTAuMjczIDI2LjY5NiAxNDkuMTcxIDI2LjU4NTIgMTQ4LjM4NCAyNi40MTAzQzE0Ny45ODggMjYuMzIyNCAxNDcuNjg4IDI2LjIyMTcgMTQ3LjQ5NSAyNi4xMjAxQzE0Ny40MDMgMjYuMDcxNiAxNDcuMzQ4IDI2LjAyOTggMTQ3LjMxOSAyNkMxNDcuMzQ4IDI1Ljk3MDIgMTQ3LjQwMyAyNS45Mjg0IDE0Ny40OTUgMjUuODc5OUMxNDcuNjg4IDI1Ljc3ODMgMTQ3Ljk4OCAyNS42Nzc2IDE0OC4zODQgMjUuNTg5N0MxNDkuMTcxIDI1LjQxNDggMTUwLjI3MyAyNS4zMDQgMTUxLjUgMjUuMzA0QzE1Mi43MjcgMjUuMzA0IDE1My44MjkgMjUuNDE0OCAxNTQuNjE2IDI1LjU4OTdDMTU1LjAxMiAyNS42Nzc2IDE1NS4zMTIgMjUuNzc4MyAxNTUuNTA1IDI1Ljg3OTlaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNjA4Ii8+CjxwYXRoIGQ9Ik0xNTUuNTA1IDI0Ljg3OTlDMTU1LjU5NyAyNC45Mjg0IDE1NS42NTIgMjQuOTcwMiAxNTUuNjgxIDI1QzE1NS42NTIgMjUuMDI5OCAxNTUuNTk3IDI1LjA3MTYgMTU1LjUwNSAyNS4xMjAxQzE1NS4zMTIgMjUuMjIxNyAxNTUuMDEyIDI1LjMyMjQgMTU0LjYxNiAyNS40MTAzQzE1My44MjkgMjUuNTg1MiAxNTIuNzI3IDI1LjY5NiAxNTEuNSAyNS42OTZDMTUwLjI3MyAyNS42OTYgMTQ5LjE3MSAyNS41ODUyIDE0OC4zODQgMjUuNDEwM0MxNDcuOTg4IDI1LjMyMjQgMTQ3LjY4OCAyNS4yMjE3IDE0Ny40OTUgMjUuMTIwMUMxNDcuNDAzIDI1LjA3MTYgMTQ3LjM0OCAyNS4wMjk4IDE0Ny4zMTkgMjVDMTQ3LjM0OCAyNC45NzAyIDE0Ny40MDMgMjQuOTI4NCAxNDcuNDk1IDI0Ljg3OTlDMTQ3LjY4OCAyNC43NzgzIDE0Ny45ODggMjQuNjc3NiAxNDguMzg0IDI0LjU4OTdDMTQ5LjE3MSAyNC40MTQ4IDE1MC4yNzMgMjQuMzA0IDE1MS41IDI0LjMwNEMxNTIuNzI3IDI0LjMwNCAxNTMuODI5IDI0LjQxNDggMTU0LjYxNiAyNC41ODk3QzE1NS4wMTIgMjQuNjc3NiAxNTUuMzEyIDI0Ljc3ODMgMTU1LjUwNSAyNC44Nzk5WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIwLjYwOCIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMV9iXzM0NjFfNDY4ODYpIj4KPHJlY3QgeD0iMTUxIiB5PSI0MSIgd2lkdGg9IjIyIiBoZWlnaHQ9IjEzIiByeD0iMS4xODk2NiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNMTU4LjM0OCA0Ny45NzI3VjQ4LjcyMjdIMTU0LjI0NkwxNTQuMjE1IDQ4LjE1NjJMMTU2LjY2OCA0NC4zMTI1SDE1Ny40MjJMMTU2LjYwNSA0NS43MTA5TDE1NS4xOTUgNDcuOTcyN0gxNTguMzQ4Wk0xNTcuNjM3IDQ0LjMxMjVWNTBIMTU2LjY5NVY0NC4zMTI1SDE1Ny42MzdaTTE2Mi42ODQgNDYuNjc5N1Y0Ny42MDk0QzE2Mi42ODQgNDguMDU0NyAxNjIuNjM5IDQ4LjQzNDkgMTYyLjU1MSA0OC43NUMxNjIuNDY1IDQ5LjA2MjUgMTYyLjM0IDQ5LjMxNjQgMTYyLjE3NiA0OS41MTE3QzE2Mi4wMTIgNDkuNzA3IDE2MS44MTUgNDkuODUwMyAxNjEuNTg2IDQ5Ljk0MTRDMTYxLjM1OSA1MC4wMzI2IDE2MS4xMDUgNTAuMDc4MSAxNjAuODI0IDUwLjA3ODFDMTYwLjYgNTAuMDc4MSAxNjAuMzkyIDUwLjA0OTUgMTYwLjE5OSA0OS45OTIyQzE2MC4wMDkgNDkuOTM0OSAxNTkuODM3IDQ5Ljg0NTEgMTU5LjY4NCA0OS43MjI3QzE1OS41MyA0OS42MDAzIDE1OS4zOTggNDkuNDQyNyAxNTkuMjg5IDQ5LjI1QzE1OS4xODIgNDkuMDU0NyAxNTkuMDk5IDQ4LjgyMTYgMTU5LjAzOSA0OC41NTA4QzE1OC45ODIgNDguMjc5OSAxNTguOTUzIDQ3Ljk2NjEgMTU4Ljk1MyA0Ny42MDk0VjQ2LjY3OTdDMTU4Ljk1MyA0Ni4yMzE4IDE1OC45OTcgNDUuODU0MiAxNTkuMDg2IDQ1LjU0NjlDMTU5LjE3NCA0NS4yMzcgMTU5LjMwMSA0NC45ODU3IDE1OS40NjUgNDQuNzkzQzE1OS42MjkgNDQuNTk3NyAxNTkuODI0IDQ0LjQ1NTcgMTYwLjA1MSA0NC4zNjcyQzE2MC4yOCA0NC4yNzg2IDE2MC41MzUgNDQuMjM0NCAxNjAuODE2IDQ0LjIzNDRDMTYxLjA0MyA0NC4yMzQ0IDE2MS4yNTEgNDQuMjYzIDE2MS40NDEgNDQuMzIwM0MxNjEuNjM0IDQ0LjM3NSAxNjEuODA2IDQ0LjQ2MjIgMTYxLjk1NyA0NC41ODJDMTYyLjExMSA0NC43MDE4IDE2Mi4yNDEgNDQuODU4MSAxNjIuMzQ4IDQ1LjA1MDhDMTYyLjQ1NyA0NS4yNDA5IDE2Mi41NCA0NS40NzE0IDE2Mi41OTggNDUuNzQyMkMxNjIuNjU1IDQ2LjAxMDQgMTYyLjY4NCA0Ni4zMjI5IDE2Mi42ODQgNDYuNjc5N1pNMTYxLjc0MiA0Ny43NDIyVjQ2LjUzOTFDMTYxLjc0MiA0Ni4zMTI1IDE2MS43MjkgNDYuMTEzMyAxNjEuNzAzIDQ1Ljk0MTRDMTYxLjY3NyA0NS43NjY5IDE2MS42MzggNDUuNjE5OCAxNjEuNTg2IDQ1LjVDMTYxLjUzNiA0NS4zNzc2IDE2MS40NzQgNDUuMjc4NiAxNjEuMzk4IDQ1LjIwMzFDMTYxLjMyMyA0NS4xMjUgMTYxLjIzNyA0NS4wNjkgMTYxLjE0MSA0NS4wMzUyQzE2MS4wNDQgNDQuOTk4NyAxNjAuOTM2IDQ0Ljk4MDUgMTYwLjgxNiA0NC45ODA1QzE2MC42NzEgNDQuOTgwNSAxNjAuNTQgNDUuMDA5MSAxNjAuNDI2IDQ1LjA2NjRDMTYwLjMxMSA0NS4xMjExIDE2MC4yMTUgNDUuMjA5NiAxNjAuMTM3IDQ1LjMzMkMxNjAuMDU5IDQ1LjQ1NDQgMTU5Ljk5OSA0NS42MTU5IDE1OS45NTcgNDUuODE2NEMxNTkuOTE4IDQ2LjAxNDMgMTU5Ljg5OCA0Ni4yNTUyIDE1OS44OTggNDYuNTM5MVY0Ny43NDIyQzE1OS44OTggNDcuOTcxNCAxNTkuOTExIDQ4LjE3MzIgMTU5LjkzOCA0OC4zNDc3QzE1OS45NjQgNDguNTIyMSAxNjAuMDAzIDQ4LjY3MTkgMTYwLjA1NSA0OC43OTY5QzE2MC4xMDcgNDguOTE5MyAxNjAuMTY5IDQ5LjAyMDggMTYwLjI0MiA0OS4xMDE2QzE2MC4zMTggNDkuMTc5NyAxNjAuNDA0IDQ5LjIzNyAxNjAuNSA0OS4yNzM0QzE2MC41OTkgNDkuMzA5OSAxNjAuNzA3IDQ5LjMyODEgMTYwLjgyNCA0OS4zMjgxQzE2MC45NzMgNDkuMzI4MSAxNjEuMTA0IDQ5LjI5OTUgMTYxLjIxOSA0OS4yNDIyQzE2MS4zMzMgNDkuMTg0OSAxNjEuNDMgNDkuMDkzOCAxNjEuNTA4IDQ4Ljk2ODhDMTYxLjU4NiA0OC44NDExIDE2MS42NDUgNDguNjc1OCAxNjEuNjg0IDQ4LjQ3MjdDMTYxLjcyMyA0OC4yNjk1IDE2MS43NDIgNDguMDI2IDE2MS43NDIgNDcuNzQyMloiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPHBhdGggZD0iTTE2Ni4yNDQgNDcuMzE2OVY0Ny4xMjg5QzE2Ni4yNDQgNDYuOTkzOCAxNjYuMjczIDQ2Ljg3MDkgMTY2LjMzMiA0Ni43NjAzQzE2Ni4zOTEgNDYuNjQ5NiAxNjYuNDc2IDQ2LjU2MDkgMTY2LjU4OCA0Ni40OTQxQzE2Ni43MDEgNDYuNDI3NCAxNjYuODM2IDQ2LjM5NCAxNjYuOTk0IDQ2LjM5NEMxNjcuMTU2IDQ2LjM5NCAxNjcuMjkzIDQ2LjQyNzQgMTY3LjQwNCA0Ni40OTQxQzE2Ny41MTYgNDYuNTYwOSAxNjcuNjAyIDQ2LjY0OTYgMTY3LjY2IDQ2Ljc2MDNDMTY3LjcxOSA0Ni44NzA5IDE2Ny43NDggNDYuOTkzOCAxNjcuNzQ4IDQ3LjEyODlWNDcuMzE2OUMxNjcuNzQ4IDQ3LjQ0ODcgMTY3LjcxOSA0Ny41NyAxNjcuNjYgNDcuNjgwN0MxNjcuNjAzIDQ3Ljc5MTMgMTY3LjUxOSA0Ny44OCAxNjcuNDA2IDQ3Ljk0NjhDMTY3LjI5NiA0OC4wMTM1IDE2Ny4xNiA0OC4wNDY5IDE2Ni45OTkgNDguMDQ2OUMxNjYuODM5IDQ4LjA0NjkgMTY2LjcwMiA0OC4wMTM1IDE2Ni41ODggNDcuOTQ2OEMxNjYuNDc2IDQ3Ljg4IDE2Ni4zOTEgNDcuNzkxMyAxNjYuMzMyIDQ3LjY4MDdDMTY2LjI3MyA0Ny41NyAxNjYuMjQ0IDQ3LjQ0ODcgMTY2LjI0NCA0Ny4zMTY5Wk0xNjYuNjUyIDQ3LjEyODlWNDcuMzE2OUMxNjYuNjUyIDQ3LjM4MiAxNjYuNjY0IDQ3LjQ0MzggMTY2LjY4OCA0Ny41MDI0QzE2Ni43MTUgNDcuNTYxIDE2Ni43NTQgNDcuNjA4MiAxNjYuODA2IDQ3LjY0NEMxNjYuODU4IDQ3LjY3OTkgMTY2LjkyMiA0Ny42OTc4IDE2Ni45OTkgNDcuNjk3OEMxNjcuMDc3IDQ3LjY5NzggMTY3LjE0IDQ3LjY3OTkgMTY3LjE4OSA0Ny42NDRDMTY3LjIzOSA0Ny42MDgyIDE2Ny4yNzcgNDcuNTYxIDE2Ny4zMDEgNDcuNTAyNEMxNjcuMzI2IDQ3LjQ0MzggMTY3LjMzOCA0Ny4zODIgMTY3LjMzOCA0Ny4zMTY5VjQ3LjEyODlDMTY3LjMzOCA0Ny4wNjIyIDE2Ny4zMjUgNDYuOTk5NSAxNjcuMjk5IDQ2Ljk0MDlDMTY3LjI3NCA0Ni44ODA3IDE2Ny4yMzcgNDYuODMyNyAxNjcuMTg3IDQ2Ljc5NjlDMTY3LjEzNiA0Ni43NjExIDE2Ny4wNzIgNDYuNzQzMiAxNjYuOTk0IDQ2Ljc0MzJDMTY2LjkxOSA0Ni43NDMyIDE2Ni44NTUgNDYuNzYxMSAxNjYuODAzIDQ2Ljc5NjlDMTY2Ljc1MyA0Ni44MzI3IDE2Ni43MTUgNDYuODgwNyAxNjYuNjg4IDQ2Ljk0MDlDMTY2LjY2NCA0Ni45OTk1IDE2Ni42NTIgNDcuMDYyMiAxNjYuNjUyIDQ3LjEyODlaTTE2Ny45NTggNDkuMzE4OFY0OS4xMjg0QzE2Ny45NTggNDguOTk1IDE2Ny45ODcgNDguODcyOSAxNjguMDQ2IDQ4Ljc2MjJDMTY4LjEwNiA0OC42NTE1IDE2OC4xOTIgNDguNTYyOCAxNjguMzA1IDQ4LjQ5NjFDMTY4LjQxNyA0OC40Mjk0IDE2OC41NTIgNDguMzk2IDE2OC43MSA0OC4zOTZDMTY4Ljg3MyA0OC4zOTYgMTY5LjAwOSA0OC40Mjk0IDE2OS4xMiA0OC40OTYxQzE2OS4yMzIgNDguNTYyOCAxNjkuMzE3IDQ4LjY1MTUgMTY5LjM3NCA0OC43NjIyQzE2OS40MzMgNDguODcyOSAxNjkuNDYyIDQ4Ljk5NSAxNjkuNDYyIDQ5LjEyODRWNDkuMzE4OEMxNjkuNDYyIDQ5LjQ1MjMgMTY5LjQzMyA0OS41NzQ0IDE2OS4zNzQgNDkuNjg1MUMxNjkuMzE3IDQ5Ljc5NTcgMTY5LjIzMyA0OS44ODQ0IDE2OS4xMjMgNDkuOTUxMkMxNjkuMDEyIDUwLjAxNzkgMTY4Ljg3NyA1MC4wNTEzIDE2OC43MTcgNTAuMDUxM0MxNjguNTU2IDUwLjA1MTMgMTY4LjQxOSA1MC4wMTc5IDE2OC4zMDUgNDkuOTUxMkMxNjguMTkyIDQ5Ljg4NDQgMTY4LjEwNiA0OS43OTU3IDE2OC4wNDYgNDkuNjg1MUMxNjcuOTg3IDQ5LjU3NDQgMTY3Ljk1OCA0OS40NTIzIDE2Ny45NTggNDkuMzE4OFpNMTY4LjM2OCA0OS4xMjg0VjQ5LjMxODhDMTY4LjM2OCA0OS4zODQgMTY4LjM4MSA0OS40NDU4IDE2OC40MDcgNDkuNTA0NEMxNjguNDM1IDQ5LjU2MyAxNjguNDc1IDQ5LjYxMSAxNjguNTI3IDQ5LjY0ODRDMTY4LjU3OSA0OS42ODQyIDE2OC42NDIgNDkuNzAyMSAxNjguNzE1IDQ5LjcwMjFDMTY4Ljc5OCA0OS43MDIxIDE2OC44NjUgNDkuNjg0MiAxNjguOTE1IDQ5LjY0ODRDMTY4Ljk2NSA0OS42MTEgMTY5LjAwMSA0OS41NjM4IDE2OS4wMjIgNDkuNTA2OEMxNjkuMDQ1IDQ5LjQ0ODIgMTY5LjA1NyA0OS4zODU2IDE2OS4wNTcgNDkuMzE4OFY0OS4xMjg0QzE2OS4wNTcgNDkuMDYxNyAxNjkuMDQ0IDQ4Ljk5OSAxNjkuMDE4IDQ4Ljk0MDRDMTY4Ljk5MyA0OC44ODE4IDE2OC45NTUgNDguODM0NiAxNjguOTAzIDQ4Ljc5ODhDMTY4Ljg1MiA0OC43NjMgMTY4Ljc4OCA0OC43NDUxIDE2OC43MSA0OC43NDUxQzE2OC42MzMgNDguNzQ1MSAxNjguNTcgNDguNzYzIDE2OC41MiA0OC43OTg4QzE2OC40NjkgNDguODM0NiAxNjguNDMxIDQ4Ljg4MTggMTY4LjQwNSA0OC45NDA0QzE2OC4zOCA0OC45OTkgMTY4LjM2OCA0OS4wNjE3IDE2OC4zNjggNDkuMTI4NFpNMTY4Ljg1NiA0Ni45NTMxTDE2Ny4xMjEgNDkuNzMxNEwxNjYuODIgNDkuNTU4MUwxNjguNTU2IDQ2Ljc3OThMMTY4Ljg1NiA0Ni45NTMxWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8L2c+CjxyZWN0IHg9IjEwMi4yNSIgeT0iMC4yNSIgd2lkdGg9Ijk3LjUiIGhlaWdodD0iNzcuNSIgcng9IjEuNzUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIiBzdHJva2Utd2lkdGg9IjAuNSIvPgo8cmVjdCB5PSI4MiIgd2lkdGg9Ijk4IiBoZWlnaHQ9Ijc4IiByeD0iMiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE0LjIzOTQgOTQuMzkxOVY5NUgxMi4wMDU0Vjk0LjM5MTlIMTQuMjM5NFpNMTIuMjE5MyA5MC41NTA1Vjk1SDExLjQ1MjNWOTAuNTUwNUgxMi4yMTkzWk0xNS42Njc3IDkxLjY5MzRWOTVIMTQuOTI4MVY5MS42OTM0SDE1LjY2NzdaTTE0Ljg3OTIgOTAuODI1NUMxNC44NzkyIDkwLjcxMzUgMTQuOTE1OSA5MC42MjA4IDE0Ljk4OTIgOTAuNTQ3NEMxNS4wNjQ2IDkwLjQ3MiAxNS4xNjg1IDkwLjQzNDMgMTUuMzAxIDkwLjQzNDNDMTUuNDMxMyA5MC40MzQzIDE1LjUzNDIgOTAuNDcyIDE1LjYwOTYgOTAuNTQ3NEMxNS42ODUgOTAuNjIwOCAxNS43MjI3IDkwLjcxMzUgMTUuNzIyNyA5MC44MjU1QzE1LjcyMjcgOTAuOTM1NSAxNS42ODUgOTEuMDI3MiAxNS42MDk2IDkxLjEwMDZDMTUuNTM0MiA5MS4xNzM5IDE1LjQzMTMgOTEuMjEwNiAxNS4zMDEgOTEuMjEwNkMxNS4xNjg1IDkxLjIxMDYgMTUuMDY0NiA5MS4xNzM5IDE0Ljk4OTIgOTEuMTAwNkMxNC45MTU5IDkxLjAyNzIgMTQuODc5MiA5MC45MzU1IDE0Ljg3OTIgOTAuODI1NVpNMTguNjA4NyA5Ni4yNzEzVjkyLjM1MDVMMTguNjk0MyA5MS42OTM0SDE5LjM1MTNWOTYuMjcxM0gxOC42MDg3Wk0xNi40NjA0IDkzLjM4MDNWOTMuMzE2MUMxNi40NjA0IDkzLjA2NTYgMTYuNDg4OSA5Mi44Mzc0IDE2LjU0NTkgOTIuNjMxNkMxNi42MDMgOTIuNDIzOCAxNi42ODc1IDkyLjI0NTUgMTYuNzk5NiA5Mi4wOTY4QzE2LjkxMTYgOTEuOTQ4MSAxNy4wNDgxIDkxLjgzNCAxNy4yMDkxIDkxLjc1NDVDMTcuMzcgOTEuNjczIDE3LjU1NTQgOTEuNjMyMyAxNy43NjUzIDkxLjYzMjNDMTcuOTY5IDkxLjYzMjMgMTguMTQ2MiA5MS42NzEgMTguMjk3IDkxLjc0ODRDMTguNDQ5OCA5MS44MjU4IDE4LjU3ODIgOTEuOTM2OSAxOC42ODIxIDkyLjA4MTVDMTguNzg4IDkyLjIyNDEgMTguODcyNiA5Mi4zOTQzIDE4LjkzNTcgOTIuNTkxOUMxOC45OTg5IDkyLjc4OTUgMTkuMDQ0NyA5My4wMDk1IDE5LjA3MzIgOTMuMjUyVjkzLjQ1NjdDMTkuMDQ2NyA5My42OTMxIDE5LjAwMTkgOTMuOTA5IDE4LjkzODggOTQuMTA0NkMxOC44NzU2IDk0LjMwMDIgMTguNzkxMSA5NC40NjkzIDE4LjY4NTEgOTQuNjExOUMxOC41NzkyIDk0Ljc1NDUgMTguNDQ5OCA5NC44NjU1IDE4LjI5NyA5NC45NDVDMTguMTQ0MiA5NS4wMjI0IDE3Ljk2NDkgOTUuMDYxMSAxNy43NTkyIDk1LjA2MTFDMTcuNTUzNCA5NS4wNjExIDE3LjM3IDk1LjAxOTQgMTcuMjA5MSA5NC45MzU4QzE3LjA0ODEgOTQuODUyMyAxNi45MTE2IDk0LjczNTEgMTYuNzk5NiA5NC41ODQ0QzE2LjY4OTYgOTQuNDMxNiAxNi42MDUgOTQuMjUzMyAxNi41NDU5IDk0LjA0OTZDMTYuNDg4OSA5My44NDM4IDE2LjQ2MDQgOTMuNjIwNyAxNi40NjA0IDkzLjM4MDNaTTE3LjE5NjggOTMuMzE2MVY5My4zODAzQzE3LjE5NjggOTMuNTMxMSAxNy4yMTAxIDkzLjY3MjcgMTcuMjM2NiA5My44MDUxQzE3LjI2NTEgOTMuOTM1NSAxNy4zMDk5IDk0LjA1MTYgMTcuMzcxIDk0LjE1MzVDMTcuNDMyMiA5NC4yNTMzIDE3LjUwOTYgOTQuMzMxOCAxNy42MDMzIDk0LjM4ODhDMTcuNjk3IDk0LjQ0NTggMTcuODEwMSA5NC40NzQ0IDE3Ljk0MjUgOTQuNDc0NEMxOC4xMTU3IDk0LjQ3NDQgMTguMjU3MyA5NC40MzY3IDE4LjM2NzMgOTQuMzYxM0MxOC40NzkzIDk0LjI4NTkgMTguNTY0OSA5NC4xODUxIDE4LjYyNCA5NC4wNTg4QzE4LjY4NTEgOTMuOTMwNCAxOC43Mjc5IDkzLjc4ODggMTguNzUyNCA5My42MzRWOTMuMDgwOEMxOC43MzgxIDkyLjk2MDYgMTguNzEyNiA5Mi44NDg2IDE4LjY3NiA5Mi43NDQ3QzE4LjYzOTMgOTIuNjM4NyAxOC41ODgzIDkyLjU0NzEgMTguNTIzMiA5Mi40Njk2QzE4LjQ2IDkyLjM5MDIgMTguMzgwNSA5Mi4zMjkxIDE4LjI4NDggOTIuMjg2M0MxOC4xOTExIDkyLjI0MTUgMTguMDc5IDkyLjIxOSAxNy45NDg2IDkyLjIxOUMxNy44MTYyIDkyLjIxOSAxNy43MDIxIDkyLjI0NzYgMTcuNjA2NCA5Mi4zMDQ2QzE3LjUxMDYgOTIuMzYxNyAxNy40MzIyIDkyLjQ0MTEgMTcuMzcxIDkyLjU0M0MxNy4zMTIgOTIuNjQyOCAxNy4yNjgyIDkyLjc1ODkgMTcuMjM5NiA5Mi44OTE0QzE3LjIxMTEgOTMuMDIzOCAxNy4xOTY4IDkzLjE2NTQgMTcuMTk2OCA5My4zMTYxWk0yMi4yNDk2IDk0LjIyMDdWOTEuNjkzNEgyMi45ODkxVjk1SDIyLjI5MjRMMjIuMjQ5NiA5NC4yMjA3Wk0yMi4zNTM1IDkzLjUzMzFMMjIuNjAxIDkzLjUyN0MyMi42MDEgOTMuNzQ5MSAyMi41NzY2IDkzLjk1MzggMjIuNTI3NyA5NC4xNDEzQzIyLjQ3ODggOTQuMzI2NyAyMi40MDM0IDk0LjQ4ODYgMjIuMzAxNSA5NC42MjcyQzIyLjE5OTcgOTQuNzYzNyAyMi4wNjkzIDk0Ljg3MDYgMjEuOTEwNCA5NC45NDhDMjEuNzUxNSA5NS4wMjM0IDIxLjU2MSA5NS4wNjExIDIxLjMzODkgOTUuMDYxMUMyMS4xNzc5IDk1LjA2MTEgMjEuMDMwMiA5NS4wMzc3IDIwLjg5NTggOTQuOTkwOEMyMC43NjEzIDk0Ljk0NCAyMC42NDUyIDk0Ljg3MTYgMjAuNTQ3NCA5NC43NzM5QzIwLjQ1MTYgOTQuNjc2MSAyMC4zNzczIDk0LjU0ODcgMjAuMzI0MyA5NC4zOTE5QzIwLjI3MTMgOTQuMjM1IDIwLjI0NDkgOTQuMDQ3NSAyMC4yNDQ5IDkzLjgyOTZWOTEuNjkzNEgyMC45ODEzVjkzLjgzNTdDMjAuOTgxMyA5My45NTU5IDIwLjk5NTYgOTQuMDU2NyAyMS4wMjQxIDk0LjEzODJDMjEuMDUyNyA5NC4yMTc3IDIxLjA5MTQgOTQuMjgxOCAyMS4xNDAzIDk0LjMzMDdDMjEuMTg5MiA5NC4zNzk2IDIxLjI0NjIgOTQuNDE0MyAyMS4zMTE0IDk0LjQzNDZDMjEuMzc2NiA5NC40NTUgMjEuNDQ1OSA5NC40NjUyIDIxLjUxOTIgOTQuNDY1MkMyMS43MjkgOTQuNDY1MiAyMS44OTQxIDk0LjQyNDUgMjIuMDE0MyA5NC4zNDNDMjIuMTM2NSA5NC4yNTk0IDIyLjIyMzEgOTQuMTQ3NCAyMi4yNzQgOTQuMDA2OEMyMi4zMjcgOTMuODY2MiAyMi4zNTM1IDkzLjcwODMgMjIuMzUzNSA5My41MzMxWk0yNC42NTI4IDkxLjY5MzRWOTVIMjMuOTEzMlY5MS42OTM0SDI0LjY1MjhaTTIzLjg2NDMgOTAuODI1NUMyMy44NjQzIDkwLjcxMzUgMjMuOTAxIDkwLjYyMDggMjMuOTc0MyA5MC41NDc0QzI0LjA0OTcgOTAuNDcyIDI0LjE1MzYgOTAuNDM0MyAyNC4yODYgOTAuNDM0M0MyNC40MTY0IDkwLjQzNDMgMjQuNTE5MyA5MC40NzIgMjQuNTk0NyA5MC41NDc0QzI0LjY3MDEgOTAuNjIwOCAyNC43MDc4IDkwLjcxMzUgMjQuNzA3OCA5MC44MjU1QzI0LjcwNzggOTAuOTM1NSAyNC42NzAxIDkxLjAyNzIgMjQuNTk0NyA5MS4xMDA2QzI0LjUxOTMgOTEuMTczOSAyNC40MTY0IDkxLjIxMDYgMjQuMjg2IDkxLjIxMDZDMjQuMTUzNiA5MS4yMTA2IDI0LjA0OTcgOTEuMTczOSAyMy45NzQzIDkxLjEwMDZDMjMuOTAxIDkxLjAyNzIgMjMuODY0MyA5MC45MzU1IDIzLjg2NDMgOTAuODI1NVpNMjcuNTk2OSA5NC4zMTU1VjkwLjMwNkgyOC4zMzY0Vjk1SDI3LjY2NzJMMjcuNTk2OSA5NC4zMTU1Wk0yNS40NDU0IDkzLjM4MzRWOTMuMzE5MkMyNS40NDU0IDkzLjA2ODYgMjUuNDc1IDkyLjg0MDQgMjUuNTM0MSA5Mi42MzQ3QzI1LjU5MzIgOTIuNDI2OSAyNS42Nzg3IDkyLjI0ODYgMjUuNzkwOCA5Mi4wOTk5QzI1LjkwMjggOTEuOTQ5MSAyNi4wMzkzIDkxLjgzNCAyNi4yMDAzIDkxLjc1NDVDMjYuMzYxMiA5MS42NzMgMjYuNTQyNSA5MS42MzIzIDI2Ljc0NDIgOTEuNjMyM0MyNi45NDM5IDkxLjYzMjMgMjcuMTE5MSA5MS42NzEgMjcuMjY5OSA5MS43NDg0QzI3LjQyMDYgOTEuODI1OCAyNy41NDkgOTEuOTM2OSAyNy42NTQ5IDkyLjA4MTVDMjcuNzYwOSA5Mi4yMjQxIDI3Ljg0NTQgOTIuMzk1MyAyNy45MDg2IDkyLjU5NDlDMjcuOTcxNyA5Mi43OTI2IDI4LjAxNjYgOTMuMDEyNiAyOC4wNDMgOTMuMjU1VjkzLjQ1OThDMjguMDE2NiA5My42OTYxIDI3Ljk3MTcgOTMuOTEyMSAyNy45MDg2IDk0LjEwNzZDMjcuODQ1NCA5NC4zMDMyIDI3Ljc2MDkgOTQuNDcyMyAyNy42NTQ5IDk0LjYxNDlDMjcuNTQ5IDk0Ljc1NzYgMjcuNDE5NiA5NC44Njc2IDI3LjI2NjggOTQuOTQ1QzI3LjExNjEgOTUuMDIyNCAyNi45Mzk4IDk1LjA2MTEgMjYuNzM4MSA5NS4wNjExQzI2LjUzODUgOTUuMDYxMSAyNi4zNTgyIDk1LjAxOTQgMjYuMTk3MiA5NC45MzU4QzI2LjAzODMgOTQuODUyMyAyNS45MDI4IDk0LjczNTEgMjUuNzkwOCA5NC41ODQ0QzI1LjY3ODcgOTQuNDMzNiAyNS41OTMyIDk0LjI1NjQgMjUuNTM0MSA5NC4wNTI2QzI1LjQ3NSA5My44NDY5IDI1LjQ0NTQgOTMuNjIzOCAyNS40NDU0IDkzLjM4MzRaTTI2LjE4MTkgOTMuMzE5MlY5My4zODM0QzI2LjE4MTkgOTMuNTM0MSAyNi4xOTUyIDkzLjY3NDcgMjYuMjIxNyA5My44MDUxQzI2LjI1MDIgOTMuOTM1NSAyNi4yOTQgOTQuMDUwNiAyNi4zNTMxIDk0LjE1MDRDMjYuNDEyMiA5NC4yNDgyIDI2LjQ4ODYgOTQuMzI1NiAyNi41ODIzIDk0LjM4MjdDMjYuNjc4IDk0LjQzNzcgMjYuNzkyMSA5NC40NjUyIDI2LjkyNDUgOTQuNDY1MkMyNy4wOTE2IDk0LjQ2NTIgMjcuMjI5MSA5NC40Mjg1IDI3LjMzNzEgOTQuMzU1MkMyNy40NDUxIDk0LjI4MTggMjcuNTI5NiA5NC4xODMgMjcuNTkwOCA5NC4wNTg4QzI3LjY1MzkgOTMuOTMyNCAyNy42OTY3IDkzLjc5MTkgMjcuNzE5MSA5My42MzdWOTMuMDgzOUMyNy43MDY5IDkyLjk2MzcgMjcuNjgxNCA5Mi44NTE2IDI3LjY0MjcgOTIuNzQ3N0MyNy42MDYgOTIuNjQzOCAyNy41NTYxIDkyLjU1MzIgMjcuNDkzIDkyLjQ3NTdDMjcuNDI5OCA5Mi4zOTYzIDI3LjM1MTQgOTIuMzM1MiAyNy4yNTc3IDkyLjI5MjRDMjcuMTY2IDkyLjI0NzYgMjcuMDU3IDkyLjIyNTIgMjYuOTMwNyA5Mi4yMjUyQzI2Ljc5NjIgOTIuMjI1MiAyNi42ODIxIDkyLjI1MzcgMjYuNTg4NCA5Mi4zMTA3QzI2LjQ5NDcgOTIuMzY3OCAyNi40MTczIDkyLjQ0NjIgMjYuMzU2MSA5Mi41NDZDMjYuMjk3IDkyLjY0NTkgMjYuMjUzMiA5Mi43NjIgMjYuMjI0NyA5Mi44OTQ0QzI2LjE5NjIgOTMuMDI2OCAyNi4xODE5IDkzLjE2ODQgMjYuMTgxOSA5My4zMTkyWk0zMS42OTQyIDkwLjMwNlY5NUgzMC45NTQ3VjkwLjMwNkgzMS42OTQyWk0zNC4wNzkxIDk1LjA2MTFDMzMuODM0NiA5NS4wNjExIDMzLjYxMzYgOTUuMDIxNCAzMy40MTU5IDk0Ljk0MTlDMzMuMjIwNCA5NC44NjA0IDMzLjA1MzMgOTQuNzQ3NCAzMi45MTQ4IDk0LjYwMjdDMzIuNzc4MyA5NC40NTgxIDMyLjY3MzMgOTQuMjg4IDMyLjYgOTQuMDkyNEMzMi41MjY3IDkzLjg5NjggMzIuNDkgOTMuNjg1OSAzMi40OSA5My40NTk4VjkzLjMzNzVDMzIuNDkgOTMuMDc4OCAzMi41Mjc3IDkyLjg0NDUgMzIuNjAzMSA5Mi42MzQ3QzMyLjY3ODQgOTIuNDI0OCAzMi43ODM0IDkyLjI0NTUgMzIuOTE3OCA5Mi4wOTY4QzMzLjA1MjMgOTEuOTQ2IDMzLjIxMTIgOTEuODMwOSAzMy4zOTQ2IDkxLjc1MTVDMzMuNTc3OSA5MS42NzIgMzMuNzc2NiA5MS42MzIzIDMzLjk5MDUgOTEuNjMyM0MzNC4yMjY4IDkxLjYzMjMgMzQuNDMzNiA5MS42NzIgMzQuNjEwOCA5MS43NTE1QzM0Ljc4ODEgOTEuODMwOSAzNC45MzQ4IDkxLjk0MyAzNS4wNTA5IDkyLjA4NzZDMzUuMTY5MSA5Mi4yMzAzIDM1LjI1NjcgOTIuNDAwNCAzNS4zMTM3IDkyLjU5OEMzNS4zNzI4IDkyLjc5NTYgMzUuNDAyMyA5My4wMTM2IDM1LjQwMjMgOTMuMjUyVjkzLjU2NjdIMzIuODQ3NVY5My4wMzgxSDM0LjY3NVY5Mi45OEMzNC42NzA5IDkyLjg0NzYgMzQuNjQ0NSA5Mi43MjMzIDM0LjU5NTYgOTIuNjA3MkMzNC41NDg3IDkyLjQ5MSAzNC40NzY0IDkyLjM5NzMgMzQuMzc4NiA5Mi4zMjZDMzQuMjgwOCA5Mi4yNTQ3IDM0LjE1MDQgOTIuMjE5IDMzLjk4NzQgOTIuMjE5QzMzLjg2NTIgOTIuMjE5IDMzLjc1NjIgOTIuMjQ1NSAzMy42NjA0IDkyLjI5ODVDMzMuNTY2NyA5Mi4zNDk0IDMzLjQ4ODMgOTIuNDIzOCAzMy40MjUxIDkyLjUyMTZDMzMuMzYyIDkyLjYxOTQgMzMuMzEzMSA5Mi43Mzc1IDMzLjI3ODQgOTIuODc2MUMzMy4yNDU4IDkzLjAxMjYgMzMuMjI5NSA5My4xNjY0IDMzLjIyOTUgOTMuMzM3NVY5My40NTk4QzMzLjIyOTUgOTMuNjA0NCAzMy4yNDg5IDkzLjczODkgMzMuMjg3NiA5My44NjMyQzMzLjMyODMgOTMuOTg1NCAzMy4zODc0IDk0LjA5MjQgMzMuNDY0OCA5NC4xODRDMzMuNTQyMyA5NC4yNzU3IDMzLjYzNiA5NC4zNDgxIDMzLjc0NiA5NC40MDFDMzMuODU2IDk0LjQ1MiAzMy45ODEzIDk0LjQ3NzQgMzQuMTIxOSA5NC40Nzc0QzM0LjI5OTEgOTQuNDc3NCAzNC40NTcgOTQuNDQxOCAzNC41OTU2IDk0LjM3MDVDMzQuNzM0MSA5NC4yOTkyIDM0Ljg1NDMgOTQuMTk4MyAzNC45NTYyIDk0LjA2NzlMMzUuMzQ0MyA5NC40NDM4QzM1LjI3MyA5NC41NDc3IDM1LjE4MDMgOTQuNjQ3NSAzNS4wNjYyIDk0Ljc0MzNDMzQuOTUyMSA5NC44MzcgMzQuODEyNSA5NC45MTM0IDM0LjY0NzUgOTQuOTcyNUMzNC40ODQ1IDk1LjAzMTYgMzQuMjk1MSA5NS4wNjExIDM0LjA3OTEgOTUuMDYxMVpNMzcuMTMwMiA5NC40MTYzTDM3Ljk0IDkxLjY5MzRIMzguNzA0TDM3LjU1NDkgOTVIMzcuMDc4MkwzNy4xMzAyIDk0LjQxNjNaTTM2LjUwOTggOTEuNjkzNEwzNy4zMzQ5IDk0LjQyODVMMzcuMzc0NiA5NUgzNi44OTc5TDM1Ljc0MjcgOTEuNjkzNEgzNi41MDk4Wk00MC42OTQ2IDk1LjA2MTFDNDAuNDUwMSA5NS4wNjExIDQwLjIyOTEgOTUuMDIxNCA0MC4wMzE1IDk0Ljk0MTlDMzkuODM1OSA5NC44NjA0IDM5LjY2ODggOTQuNzQ3NCAzOS41MzAzIDk0LjYwMjdDMzkuMzkzOCA5NC40NTgxIDM5LjI4ODkgOTQuMjg4IDM5LjIxNTUgOTQuMDkyNEMzOS4xNDIyIDkzLjg5NjggMzkuMTA1NSA5My42ODU5IDM5LjEwNTUgOTMuNDU5OFY5My4zMzc1QzM5LjEwNTUgOTMuMDc4OCAzOS4xNDMyIDkyLjg0NDUgMzkuMjE4NiA5Mi42MzQ3QzM5LjI5NCA5Mi40MjQ4IDM5LjM5ODkgOTIuMjQ1NSAzOS41MzMzIDkyLjA5NjhDMzkuNjY3OCA5MS45NDYgMzkuODI2NyA5MS44MzA5IDQwLjAxMDEgOTEuNzUxNUM0MC4xOTM0IDkxLjY3MiA0MC4zOTIxIDkxLjYzMjMgNDAuNjA2IDkxLjYzMjNDNDAuODQyMyA5MS42MzIzIDQxLjA0OTEgOTEuNjcyIDQxLjIyNjQgOTEuNzUxNUM0MS40MDM2IDkxLjgzMDkgNDEuNTUwMyA5MS45NDMgNDEuNjY2NCA5Mi4wODc2QzQxLjc4NDYgOTIuMjMwMyA0MS44NzIyIDkyLjQwMDQgNDEuOTI5MiA5Mi41OThDNDEuOTg4MyA5Mi43OTU2IDQyLjAxNzkgOTMuMDEzNiA0Mi4wMTc5IDkzLjI1MlY5My41NjY3SDM5LjQ2MzFWOTMuMDM4MUg0MS4yOTA1VjkyLjk4QzQxLjI4NjUgOTIuODQ3NiA0MS4yNiA5Mi43MjMzIDQxLjIxMTEgOTIuNjA3MkM0MS4xNjQyIDkyLjQ5MSA0MS4wOTE5IDkyLjM5NzMgNDAuOTk0MSA5Mi4zMjZDNDAuODk2MyA5Mi4yNTQ3IDQwLjc2NTkgOTIuMjE5IDQwLjYwMjkgOTIuMjE5QzQwLjQ4MDcgOTIuMjE5IDQwLjM3MTcgOTIuMjQ1NSA0MC4yNzU5IDkyLjI5ODVDNDAuMTgyMiA5Mi4zNDk0IDQwLjEwMzggOTIuNDIzOCA0MC4wNDA2IDkyLjUyMTZDMzkuOTc3NSA5Mi42MTk0IDM5LjkyODYgOTIuNzM3NSAzOS44OTM5IDkyLjg3NjFDMzkuODYxMyA5My4wMTI2IDM5Ljg0NTEgOTMuMTY2NCAzOS44NDUxIDkzLjMzNzVWOTMuNDU5OEMzOS44NDUxIDkzLjYwNDQgMzkuODY0NCA5My43Mzg5IDM5LjkwMzEgOTMuODYzMkMzOS45NDM5IDkzLjk4NTQgNDAuMDAyOSA5NC4wOTI0IDQwLjA4MDQgOTQuMTg0QzQwLjE1NzggOTQuMjc1NyA0MC4yNTE1IDk0LjM0ODEgNDAuMzYxNSA5NC40MDFDNDAuNDcxNSA5NC40NTIgNDAuNTk2OCA5NC40Nzc0IDQwLjczNzQgOTQuNDc3NEM0MC45MTQ2IDk0LjQ3NzQgNDEuMDcyNSA5NC40NDE4IDQxLjIxMTEgOTQuMzcwNUM0MS4zNDk2IDk0LjI5OTIgNDEuNDY5OCA5NC4xOTgzIDQxLjU3MTcgOTQuMDY3OUw0MS45NTk4IDk0LjQ0MzhDNDEuODg4NSA5NC41NDc3IDQxLjc5NTggOTQuNjQ3NSA0MS42ODE3IDk0Ljc0MzNDNDEuNTY3NiA5NC44MzcgNDEuNDI4MSA5NC45MTM0IDQxLjI2MyA5NC45NzI1QzQxLjEgOTUuMDMxNiA0MC45MTA2IDk1LjA2MTEgNDAuNjk0NiA5NS4wNjExWk00My41MDEyIDkwLjMwNlY5NUg0Mi43NjE2VjkwLjMwNkg0My41MDEyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI2LjUxOTggMTQ2LjVDMjQuMTc5OCAxNDYuNSAxOS43NTk4IDE0MS41NiAxOS43NTk4IDEyOS44NkMxOS43NTk4IDExOC4xNiAyNC40Mzk4IDExMy4yMiAyNi41MTk3IDExMy4yMkg3Mi43OTk4Qzc0Ljg3OTcgMTEzLjIyIDc5LjU1OTcgMTE4LjE2IDc5LjU1OTcgMTI5Ljg2Qzc5LjU1OTcgMTQxLjU2IDc1LjEzOTcgMTQ2LjUgNzIuNzk5NyAxNDYuNUgyNi41MTk4WiIgZmlsbD0iIzYyMTZGRiIgZmlsbC1vcGFjaXR5PSIwLjAyIi8+CjxwYXRoIGQ9Ik0xOS40OTk4IDEyOS44NkMxOS40OTk4IDEzNS43NDEgMjAuNjEwNCAxMzkuOTQ0IDIyLjAzMTQgMTQyLjY4N0MyMi43NDE3IDE0NC4wNTggMjMuNTMyNCAxNDUuMDcgMjQuMzA1OCAxNDUuNzQyQzI1LjA3NDYgMTQ2LjQwOSAyNS44NDgxIDE0Ni43NiAyNi41MTk4IDE0Ni43NlYxNDYuMjRDMjYuMDIxNCAxNDYuMjQgMjUuMzY1IDE0NS45NzMgMjQuNjQ2OSAxNDUuMzQ5QzIzLjkzMzQgMTQ0LjcyOSAyMy4xODAzIDE0My43NzQgMjIuNDkzMSAxNDIuNDQ4QzIxLjExOTEgMTM5Ljc5NiAyMC4wMTk4IDEzNS42NzkgMjAuMDE5OCAxMjkuODZIMTkuNDk5OFpNMjYuNTE5NyAxMTIuOTZDMjUuOTA3NSAxMTIuOTYgMjUuMTY1MyAxMTMuMzE2IDI0LjQxMzkgMTEzLjk4QzIzLjY1NDYgMTE0LjY1IDIyLjg1NjUgMTE1LjY2IDIyLjEzIDExNy4wMzFDMjAuNjc2NCAxMTkuNzczIDE5LjQ5OTggMTIzLjk3NiAxOS40OTk4IDEyOS44NkgyMC4wMTk4QzIwLjAxOTggMTI0LjA0NCAyMS4xODMyIDExOS45MjcgMjIuNTg5NSAxMTcuMjc0QzIzLjI5MyAxMTUuOTQ3IDI0LjA1NDkgMTE0Ljk5MSAyNC43NTgxIDExNC4zN0MyNS40NjkyIDExMy43NDEgMjYuMDkyIDExMy40OCAyNi41MTk3IDExMy40OFYxMTIuOTZaTTcyLjc5OTggMTEyLjk2SDI2LjUxOTdWMTEzLjQ4SDcyLjc5OThWMTEyLjk2Wk03OS44MTk3IDEyOS44NkM3OS44MTk3IDEyMy45NzYgNzguNjQzMSAxMTkuNzczIDc3LjE4OTUgMTE3LjAzMUM3Ni40NjMgMTE1LjY2IDc1LjY2NDkgMTE0LjY1IDc0LjkwNTYgMTEzLjk4Qzc0LjE1NDIgMTEzLjMxNiA3My40MTIgMTEyLjk2IDcyLjc5OTggMTEyLjk2VjExMy40OEM3My4yMjc1IDExMy40OCA3My44NTAzIDExMy43NDEgNzQuNTYxNCAxMTQuMzdDNzUuMjY0NiAxMTQuOTkxIDc2LjAyNjUgMTE1Ljk0NyA3Ni43MyAxMTcuMjc0Qzc4LjEzNjMgMTE5LjkyNyA3OS4yOTk3IDEyNC4wNDQgNzkuMjk5NyAxMjkuODZINzkuODE5N1pNNzIuNzk5NyAxNDYuNzZDNzMuNDcxNCAxNDYuNzYgNzQuMjQ0OSAxNDYuNDA5IDc1LjAxMzcgMTQ1Ljc0MkM3NS43ODcxIDE0NS4wNyA3Ni41Nzc4IDE0NC4wNTggNzcuMjg4MSAxNDIuNjg3Qzc4LjcwOTEgMTM5Ljk0NCA3OS44MTk3IDEzNS43NDEgNzkuODE5NyAxMjkuODZINzkuMjk5N0M3OS4yOTk3IDEzNS42NzkgNzguMjAwNCAxMzkuNzk2IDc2LjgyNjQgMTQyLjQ0OEM3Ni4xMzkyIDE0My43NzQgNzUuMzg2MSAxNDQuNzI5IDc0LjY3MjYgMTQ1LjM0OUM3My45NTQ1IDE0NS45NzMgNzMuMjk4MSAxNDYuMjQgNzIuNzk5NyAxNDYuMjRWMTQ2Ljc2Wk0yNi41MTk4IDE0Ni43Nkg3Mi43OTk3VjE0Ni4yNEgyNi41MTk4VjE0Ni43NloiIGZpbGw9IiMyNDI3NzAiLz4KPG1hc2sgaWQ9Im1hc2syXzM0NjFfNDY4ODYiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjIwIiB5PSIxMTQiIHdpZHRoPSI1OSIgaGVpZ2h0PSIzMiI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjYuNTIgMTQ1LjcyQzI0Ljk2IDE0NS43MiAyMC41NCAxNDEuMDEyIDIwLjU0IDEyOS44NkMyMC41NCAxMTguNzA4IDI0Ljk2IDExNCAyNi41MiAxMTRINzIuOEM3NC4zNiAxMTQgNzguNzggMTE4LjcwOCA3OC43OCAxMjkuODZDNzguNzggMTQxLjAxMiA3NC4zNiAxNDUuNzIgNzIuOCAxNDUuNzJIMjYuNTJaIiBmaWxsPSIjRjFGMUY5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMl8zNDYxXzQ2ODg2KSI+CjxyZWN0IHg9IjIwLjM3OTkiIHk9IjEzMS42OCIgd2lkdGg9IjU4LjI0IiBoZWlnaHQ9IjMxLjcyIiBmaWxsPSIjN0E4QkZGIi8+CjwvZz4KPHBhdGggZD0iTTMxLjk3OTYgMTEzLjIyQzMwLjIxMzggMTE5LjAxMSAyNy43NDE3IDEzMy43NzUgMzEuOTc5NiAxNDYuNSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTIiLz4KPHBhdGggZD0iTTY3LjM0IDExMy4yMkM2NS41NzQyIDExOS4wMTEgNjMuMTAyIDEzMy43NzUgNjcuMzQgMTQ2LjUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIwLjUyIi8+CjxtYXNrIGlkPSJwYXRoLTQ0LWluc2lkZS02XzM0NjFfNDY4ODYiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01My4zOTk0IDEwOC44SDQ1Ljg1OTRWMTEzLjQ4QzQ1Ljg1OTQgMTEzLjkxMSA0Ny41NDczIDExNC4yNiA0OS42Mjk0IDExNC4yNkM1MS43MTE1IDExNC4yNiA1My4zOTk0IDExMy45MTEgNTMuMzk5NCAxMTMuNDhWMTA4LjhaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01My4zOTk0IDEwOC44SDQ1Ljg1OTRWMTEzLjQ4QzQ1Ljg1OTQgMTEzLjkxMSA0Ny41NDczIDExNC4yNiA0OS42Mjk0IDExNC4yNkM1MS43MTE1IDExNC4yNiA1My4zOTk0IDExMy45MTEgNTMuMzk5NCAxMTMuNDhWMTA4LjhaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDUuODU5NCAxMDguOFYxMDguMjhINDUuMzM5NFYxMDguOEg0NS44NTk0Wk01My4zOTk0IDEwOC44SDUzLjkxOTRWMTA4LjI4SDUzLjM5OTRWMTA4LjhaTTQ1Ljg1OTQgMTA5LjMySDUzLjM5OTRWMTA4LjI4SDQ1Ljg1OTRWMTA5LjMyWk00Ni4zNzk0IDExMy40OFYxMDguOEg0NS4zMzk0VjExMy40OEg0Ni4zNzk0Wk00OS42Mjk0IDExMy43NEM0OC42MTI3IDExMy43NCA0Ny43MDcyIDExMy42NTQgNDcuMDY4OSAxMTMuNTIyQzQ2Ljc0NTUgMTEzLjQ1NSA0Ni41MTgxIDExMy4zODIgNDYuMzg0MSAxMTMuMzE3QzQ2LjMxNjEgMTEzLjI4MyA0Ni4yOTkgMTEzLjI2NSA0Ni4zMDU3IDExMy4yNzJDNDYuMzE0IDExMy4yOCA0Ni4zNzk0IDExMy4zNTEgNDYuMzc5NCAxMTMuNDhINDUuMzM5NEM0NS4zMzk0IDExMy43MTcgNDUuNDU3NSAxMTMuODkzIDQ1LjU2NjMgMTE0LjAwM0M0NS42NzM0IDExNC4xMTEgNDUuODA0NCAxMTQuMTkxIDQ1LjkyNzEgMTE0LjI1MUM0Ni4xNzQ3IDExNC4zNzIgNDYuNDk5NCAxMTQuNDY3IDQ2Ljg1ODIgMTE0LjU0MUM0Ny41ODQ0IDExNC42OTEgNDguNTYzOSAxMTQuNzggNDkuNjI5NCAxMTQuNzhWMTEzLjc0Wk01Mi44Nzk0IDExMy40OEM1Mi44Nzk0IDExMy4zNTEgNTIuOTQ0OCAxMTMuMjggNTIuOTUzMSAxMTMuMjcyQzUyLjk1OTggMTEzLjI2NSA1Mi45NDI3IDExMy4yODMgNTIuODc0NiAxMTMuMzE3QzUyLjc0MDYgMTEzLjM4MiA1Mi41MTMyIDExMy40NTUgNTIuMTg5OCAxMTMuNTIyQzUxLjU1MTYgMTEzLjY1NCA1MC42NDYgMTEzLjc0IDQ5LjYyOTQgMTEzLjc0VjExNC43OEM1MC42OTQ4IDExNC43OCA1MS42NzQzIDExNC42OTEgNTIuNDAwNSAxMTQuNTQxQzUyLjc1OTQgMTE0LjQ2NyA1My4wODQgMTE0LjM3MiA1My4zMzE2IDExNC4yNTFDNTMuNDU0MyAxMTQuMTkxIDUzLjU4NTMgMTE0LjExMSA1My42OTI1IDExNC4wMDNDNTMuODAxMiAxMTMuODkzIDUzLjkxOTQgMTEzLjcxNyA1My45MTk0IDExMy40OEg1Mi44Nzk0Wk01Mi44Nzk0IDEwOC44VjExMy40OEg1My45MTk0VjEwOC44SDUyLjg3OTRaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtNDQtaW5zaWRlLTZfMzQ2MV80Njg4NikiLz4KPHBhdGggZD0iTTUzLjIzNDcgMTA4Ljk5M0M1My4yODk1IDEwOS4wMTggNTMuMzI5OCAxMDkuMDQxIDUzLjM1ODQgMTA5LjA2QzUzLjMyOTggMTA5LjA3OSA1My4yODk1IDEwOS4xMDIgNTMuMjM0NyAxMDkuMTI3QzUzLjA1ODIgMTA5LjIwOCA1Mi43ODYzIDEwOS4yODcgNTIuNDI5OCAxMDkuMzU2QzUxLjcyMTIgMTA5LjQ5MyA1MC43MzExIDEwOS41OCA0OS42Mjk2IDEwOS41OEM0OC41MjgxIDEwOS41OCA0Ny41MzggMTA5LjQ5MyA0Ni44Mjk0IDEwOS4zNTZDNDYuNDcyOSAxMDkuMjg3IDQ2LjIwMSAxMDkuMjA4IDQ2LjAyNDUgMTA5LjEyN0M0NS45Njk3IDEwOS4xMDIgNDUuOTI5NCAxMDkuMDc5IDQ1LjkwMDggMTA5LjA2QzQ1LjkyOTQgMTA5LjA0MSA0NS45Njk3IDEwOS4wMTggNDYuMDI0NSAxMDguOTkzQzQ2LjIwMSAxMDguOTEyIDQ2LjQ3MjkgMTA4LjgzMyA0Ni44Mjk0IDEwOC43NjRDNDcuNTM4IDEwOC42MjcgNDguNTI4MSAxMDguNTQgNDkuNjI5NiAxMDguNTRDNTAuNzMxMSAxMDguNTQgNTEuNzIxMiAxMDguNjI3IDUyLjQyOTggMTA4Ljc2NEM1Mi43ODYzIDEwOC44MzMgNTMuMDU4MiAxMDguOTEyIDUzLjIzNDcgMTA4Ljk5M1pNNTMuNDA5NyAxMDkuMTAzQzUzLjQxIDEwOS4xMDMgNTMuNDEwMiAxMDkuMTA0IDUzLjQxMDEgMTA5LjEwNEw1My40MDk3IDEwOS4xMDNaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTIiLz4KPHBhdGggZD0iTTUzLjIzNDcgMTA4LjIxM0M1My4yODk1IDEwOC4yMzggNTMuMzI5OCAxMDguMjYxIDUzLjM1ODQgMTA4LjI4QzUzLjMyOTggMTA4LjI5OSA1My4yODk1IDEwOC4zMjIgNTMuMjM0NyAxMDguMzQ3QzUzLjA1ODIgMTA4LjQyOCA1Mi43ODYzIDEwOC41MDcgNTIuNDI5OCAxMDguNTc2QzUxLjcyMTIgMTA4LjcxMyA1MC43MzExIDEwOC44IDQ5LjYyOTYgMTA4LjhDNDguNTI4MSAxMDguOCA0Ny41MzggMTA4LjcxMyA0Ni44Mjk0IDEwOC41NzZDNDYuNDcyOSAxMDguNTA3IDQ2LjIwMSAxMDguNDI4IDQ2LjAyNDUgMTA4LjM0N0M0NS45Njk3IDEwOC4zMjIgNDUuOTI5NCAxMDguMjk5IDQ1LjkwMDggMTA4LjI4QzQ1LjkyOTQgMTA4LjI2MSA0NS45Njk3IDEwOC4yMzggNDYuMDI0NSAxMDguMjEzQzQ2LjIwMSAxMDguMTMyIDQ2LjQ3MjkgMTA4LjA1MyA0Ni44Mjk0IDEwNy45ODRDNDcuNTM4IDEwNy44NDcgNDguNTI4MSAxMDcuNzYgNDkuNjI5NiAxMDcuNzZDNTAuNzMxMSAxMDcuNzYgNTEuNzIxMiAxMDcuODQ3IDUyLjQyOTggMTA3Ljk4NEM1Mi43ODYzIDEwOC4wNTMgNTMuMDU4MiAxMDguMTMyIDUzLjIzNDcgMTA4LjIxM1pNNTMuNDA5NyAxMDguMzIzQzUzLjQxIDEwOC4zMjMgNTMuNDEwMiAxMDguMzI0IDUzLjQxMDEgMTA4LjMyNEw1My40MDk3IDEwOC4zMjNaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTIiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjJfYl8zNDYxXzQ2ODg2KSI+CjxyZWN0IHg9IjM3LjUiIHk9IjEyMyIgd2lkdGg9IjIyIiBoZWlnaHQ9IjEzIiByeD0iMS4xODk2NiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNNDQuODQ3NyAxMjkuOTczVjEzMC43MjNINDAuNzQ2MUw0MC43MTQ4IDEzMC4xNTZMNDMuMTY4IDEyNi4zMTJINDMuOTIxOUw0My4xMDU1IDEyNy43MTFMNDEuNjk1MyAxMjkuOTczSDQ0Ljg0NzdaTTQ0LjEzNjcgMTI2LjMxMlYxMzJINDMuMTk1M1YxMjYuMzEySDQ0LjEzNjdaTTQ5LjE4MzYgMTI4LjY4VjEyOS42MDlDNDkuMTgzNiAxMzAuMDU1IDQ5LjEzOTMgMTMwLjQzNSA0OS4wNTA4IDEzMC43NUM0OC45NjQ4IDEzMS4wNjIgNDguODM5OCAxMzEuMzE2IDQ4LjY3NTggMTMxLjUxMkM0OC41MTE3IDEzMS43MDcgNDguMzE1MSAxMzEuODUgNDguMDg1OSAxMzEuOTQxQzQ3Ljg1OTQgMTMyLjAzMyA0Ny42MDU1IDEzMi4wNzggNDcuMzI0MiAxMzIuMDc4QzQ3LjEwMDMgMTMyLjA3OCA0Ni44OTE5IDEzMi4wNDkgNDYuNjk5MiAxMzEuOTkyQzQ2LjUwOTEgMTMxLjkzNSA0Ni4zMzcyIDEzMS44NDUgNDYuMTgzNiAxMzEuNzIzQzQ2LjAyOTkgMTMxLjYgNDUuODk4NCAxMzEuNDQzIDQ1Ljc4OTEgMTMxLjI1QzQ1LjY4MjMgMTMxLjA1NSA0NS41OTkgMTMwLjgyMiA0NS41MzkxIDEzMC41NTFDNDUuNDgxOCAxMzAuMjggNDUuNDUzMSAxMjkuOTY2IDQ1LjQ1MzEgMTI5LjYwOVYxMjguNjhDNDUuNDUzMSAxMjguMjMyIDQ1LjQ5NzQgMTI3Ljg1NCA0NS41ODU5IDEyNy41NDdDNDUuNjc0NSAxMjcuMjM3IDQ1LjgwMDggMTI2Ljk4NiA0NS45NjQ4IDEyNi43OTNDNDYuMTI4OSAxMjYuNTk4IDQ2LjMyNDIgMTI2LjQ1NiA0Ni41NTA4IDEyNi4zNjdDNDYuNzc5OSAxMjYuMjc5IDQ3LjAzNTIgMTI2LjIzNCA0Ny4zMTY0IDEyNi4yMzRDNDcuNTQzIDEyNi4yMzQgNDcuNzUxMyAxMjYuMjYzIDQ3Ljk0MTQgMTI2LjMyQzQ4LjEzNDEgMTI2LjM3NSA0OC4zMDYgMTI2LjQ2MiA0OC40NTcgMTI2LjU4MkM0OC42MTA3IDEyNi43MDIgNDguNzQwOSAxMjYuODU4IDQ4Ljg0NzcgMTI3LjA1MUM0OC45NTcgMTI3LjI0MSA0OS4wNDA0IDEyNy40NzEgNDkuMDk3NyAxMjcuNzQyQzQ5LjE1NDkgMTI4LjAxIDQ5LjE4MzYgMTI4LjMyMyA0OS4xODM2IDEyOC42OFpNNDguMjQyMiAxMjkuNzQyVjEyOC41MzlDNDguMjQyMiAxMjguMzEyIDQ4LjIyOTIgMTI4LjExMyA0OC4yMDMxIDEyNy45NDFDNDguMTc3MSAxMjcuNzY3IDQ4LjEzOCAxMjcuNjIgNDguMDg1OSAxMjcuNUM0OC4wMzY1IDEyNy4zNzggNDcuOTc0IDEyNy4yNzkgNDcuODk4NCAxMjcuMjAzQzQ3LjgyMjkgMTI3LjEyNSA0Ny43MzcgMTI3LjA2OSA0Ny42NDA2IDEyNy4wMzVDNDcuNTQ0MyAxMjYuOTk5IDQ3LjQzNjIgMTI2Ljk4IDQ3LjMxNjQgMTI2Ljk4QzQ3LjE3MDYgMTI2Ljk4IDQ3LjA0MDQgMTI3LjAwOSA0Ni45MjU4IDEyNy4wNjZDNDYuODExMiAxMjcuMTIxIDQ2LjcxNDggMTI3LjIxIDQ2LjYzNjcgMTI3LjMzMkM0Ni41NTg2IDEyNy40NTQgNDYuNDk4NyAxMjcuNjE2IDQ2LjQ1NyAxMjcuODE2QzQ2LjQxOCAxMjguMDE0IDQ2LjM5ODQgMTI4LjI1NSA0Ni4zOTg0IDEyOC41MzlWMTI5Ljc0MkM0Ni4zOTg0IDEyOS45NzEgNDYuNDExNSAxMzAuMTczIDQ2LjQzNzUgMTMwLjM0OEM0Ni40NjM1IDEzMC41MjIgNDYuNTAyNiAxMzAuNjcyIDQ2LjU1NDcgMTMwLjc5N0M0Ni42MDY4IDEzMC45MTkgNDYuNjY5MyAxMzEuMDIxIDQ2Ljc0MjIgMTMxLjEwMkM0Ni44MTc3IDEzMS4xOCA0Ni45MDM2IDEzMS4yMzcgNDcgMTMxLjI3M0M0Ny4wOTkgMTMxLjMxIDQ3LjIwNyAxMzEuMzI4IDQ3LjMyNDIgMTMxLjMyOEM0Ny40NzI3IDEzMS4zMjggNDcuNjA0MiAxMzEuMjk5IDQ3LjcxODggMTMxLjI0MkM0Ny44MzMzIDEzMS4xODUgNDcuOTI5NyAxMzEuMDk0IDQ4LjAwNzggMTMwLjk2OUM0OC4wODU5IDEzMC44NDEgNDguMTQ0NSAxMzAuNjc2IDQ4LjE4MzYgMTMwLjQ3M0M0OC4yMjI3IDEzMC4yNyA0OC4yNDIyIDEzMC4wMjYgNDguMjQyMiAxMjkuNzQyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNNTIuNzQ0MSAxMjkuMzE3VjEyOS4xMjlDNTIuNzQ0MSAxMjguOTk0IDUyLjc3MzQgMTI4Ljg3MSA1Mi44MzIgMTI4Ljc2QzUyLjg5MDYgMTI4LjY1IDUyLjk3NjEgMTI4LjU2MSA1My4wODg0IDEyOC40OTRDNTMuMjAwNyAxMjguNDI3IDUzLjMzNTggMTI4LjM5NCA1My40OTM3IDEyOC4zOTRDNTMuNjU2NCAxMjguMzk0IDUzLjc5MzEgMTI4LjQyNyA1My45MDM4IDEyOC40OTRDNTQuMDE2MSAxMjguNTYxIDU0LjEwMTYgMTI4LjY1IDU0LjE2MDIgMTI4Ljc2QzU0LjIxODggMTI4Ljg3MSA1NC4yNDggMTI4Ljk5NCA1NC4yNDggMTI5LjEyOVYxMjkuMzE3QzU0LjI0OCAxMjkuNDQ5IDU0LjIxODggMTI5LjU3IDU0LjE2MDIgMTI5LjY4MUM1NC4xMDMyIDEyOS43OTEgNTQuMDE4NiAxMjkuODggNTMuOTA2MiAxMjkuOTQ3QzUzLjc5NTYgMTMwLjAxNCA1My42NTk3IDEzMC4wNDcgNTMuNDk4NSAxMzAuMDQ3QzUzLjMzOSAxMzAuMDQ3IDUzLjIwMjMgMTMwLjAxNCA1My4wODg0IDEyOS45NDdDNTIuOTc2MSAxMjkuODggNTIuODkwNiAxMjkuNzkxIDUyLjgzMiAxMjkuNjgxQzUyLjc3MzQgMTI5LjU3IDUyLjc0NDEgMTI5LjQ0OSA1Mi43NDQxIDEyOS4zMTdaTTUzLjE1MTkgMTI5LjEyOVYxMjkuMzE3QzUzLjE1MTkgMTI5LjM4MiA1My4xNjQxIDEyOS40NDQgNTMuMTg4NSAxMjkuNTAyQzUzLjIxNDUgMTI5LjU2MSA1My4yNTM2IDEyOS42MDggNTMuMzA1NyAxMjkuNjQ0QzUzLjM1NzcgMTI5LjY4IDUzLjQyMiAxMjkuNjk4IDUzLjQ5ODUgMTI5LjY5OEM1My41NzY3IDEyOS42OTggNTMuNjQwMSAxMjkuNjggNTMuNjg5IDEyOS42NDRDNTMuNzM5NCAxMjkuNjA4IDUzLjc3NjkgMTI5LjU2MSA1My44MDEzIDEyOS41MDJDNTMuODI1NyAxMjkuNDQ0IDUzLjgzNzkgMTI5LjM4MiA1My44Mzc5IDEyOS4zMTdWMTI5LjEyOUM1My44Mzc5IDEyOS4wNjIgNTMuODI0OSAxMjkgNTMuNzk4OCAxMjguOTQxQzUzLjc3NDQgMTI4Ljg4MSA1My43MzcgMTI4LjgzMyA1My42ODY1IDEyOC43OTdDNTMuNjM2MSAxMjguNzYxIDUzLjU3MTggMTI4Ljc0MyA1My40OTM3IDEyOC43NDNDNTMuNDE4OCAxMjguNzQzIDUzLjM1NTMgMTI4Ljc2MSA1My4zMDMyIDEyOC43OTdDNTMuMjUyOCAxMjguODMzIDUzLjIxNDUgMTI4Ljg4MSA1My4xODg1IDEyOC45NDFDNTMuMTY0MSAxMjkgNTMuMTUxOSAxMjkuMDYyIDUzLjE1MTkgMTI5LjEyOVpNNTQuNDU4IDEzMS4zMTlWMTMxLjEyOEM1NC40NTggMTMwLjk5NSA1NC40ODczIDEzMC44NzMgNTQuNTQ1OSAxMzAuNzYyQzU0LjYwNjEgMTMwLjY1MiA1NC42OTI0IDEzMC41NjMgNTQuODA0NyAxMzAuNDk2QzU0LjkxNyAxMzAuNDI5IDU1LjA1MjEgMTMwLjM5NiA1NS4yMSAxMzAuMzk2QzU1LjM3MjcgMTMwLjM5NiA1NS41MDk0IDEzMC40MjkgNTUuNjIwMSAxMzAuNDk2QzU1LjczMjQgMTMwLjU2MyA1NS44MTcxIDEzMC42NTIgNTUuODc0IDEzMC43NjJDNTUuOTMyNiAxMzAuODczIDU1Ljk2MTkgMTMwLjk5NSA1NS45NjE5IDEzMS4xMjhWMTMxLjMxOUM1NS45NjE5IDEzMS40NTIgNTUuOTMyNiAxMzEuNTc0IDU1Ljg3NCAxMzEuNjg1QzU1LjgxNzEgMTMxLjc5NiA1NS43MzMyIDEzMS44ODQgNTUuNjIyNiAxMzEuOTUxQzU1LjUxMTkgMTMyLjAxOCA1NS4zNzY4IDEzMi4wNTEgNTUuMjE3MyAxMzIuMDUxQzU1LjA1NjIgMTMyLjA1MSA1NC45MTg2IDEzMi4wMTggNTQuODA0NyAxMzEuOTUxQzU0LjY5MjQgMTMxLjg4NCA1NC42MDYxIDEzMS43OTYgNTQuNTQ1OSAxMzEuNjg1QzU0LjQ4NzMgMTMxLjU3NCA1NC40NTggMTMxLjQ1MiA1NC40NTggMTMxLjMxOVpNNTQuODY4MiAxMzEuMTI4VjEzMS4zMTlDNTQuODY4MiAxMzEuMzg0IDU0Ljg4MTIgMTMxLjQ0NiA1NC45MDcyIDEzMS41MDRDNTQuOTM0OSAxMzEuNTYzIDU0Ljk3NDggMTMxLjYxMSA1NS4wMjY5IDEzMS42NDhDNTUuMDc4OSAxMzEuNjg0IDU1LjE0MTYgMTMxLjcwMiA1NS4yMTQ4IDEzMS43MDJDNTUuMjk3OSAxMzEuNzAyIDU1LjM2NDYgMTMxLjY4NCA1NS40MTUgMTMxLjY0OEM1NS40NjU1IDEzMS42MTEgNTUuNTAxMyAxMzEuNTY0IDU1LjUyMjUgMTMxLjUwN0M1NS41NDUyIDEzMS40NDggNTUuNTU2NiAxMzEuMzg2IDU1LjU1NjYgMTMxLjMxOVYxMzEuMTI4QzU1LjU1NjYgMTMxLjA2MiA1NS41NDM2IDEzMC45OTkgNTUuNTE3NiAxMzAuOTRDNTUuNDkzMiAxMzAuODgyIDU1LjQ1NDkgMTMwLjgzNSA1NS40MDI4IDEzMC43OTlDNTUuMzUyNCAxMzAuNzYzIDU1LjI4ODEgMTMwLjc0NSA1NS4yMSAxMzAuNzQ1QzU1LjEzMzUgMTMwLjc0NSA1NS4wNyAxMzAuNzYzIDU1LjAxOTUgMTMwLjc5OUM1NC45NjkxIDEzMC44MzUgNTQuOTMwOCAxMzAuODgyIDU0LjkwNDggMTMwLjk0QzU0Ljg4MDQgMTMwLjk5OSA1NC44NjgyIDEzMS4wNjIgNTQuODY4MiAxMzEuMTI4Wk01NS4zNTY0IDEyOC45NTNMNTMuNjIwNiAxMzEuNzMxTDUzLjMyMDMgMTMxLjU1OEw1NS4wNTYyIDEyOC43OEw1NS4zNTY0IDEyOC45NTNaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjwvZz4KPHJlY3QgeD0iMC4yNSIgeT0iODIuMjUiIHdpZHRoPSI5Ny41IiBoZWlnaHQ9Ijc3LjUiIHJ4PSIxLjc1IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4xMiIgc3Ryb2tlLXdpZHRoPSIwLjUiLz4KPHJlY3QgeD0iMTAyIiB5PSI4MiIgd2lkdGg9Ijk4IiBoZWlnaHQ9Ijc4IiByeD0iMiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTExNi4yMzkgOTQuMzkxOVY5NUgxMTQuMDA1Vjk0LjM5MTlIMTE2LjIzOVpNMTE0LjIxOSA5MC41NTA1Vjk1SDExMy40NTJWOTAuNTUwNUgxMTQuMjE5Wk0xMTcuNjY4IDkxLjY5MzRWOTVIMTE2LjkyOFY5MS42OTM0SDExNy42NjhaTTExNi44NzkgOTAuODI1NUMxMTYuODc5IDkwLjcxMzUgMTE2LjkxNiA5MC42MjA4IDExNi45ODkgOTAuNTQ3NEMxMTcuMDY1IDkwLjQ3MiAxMTcuMTY5IDkwLjQzNDMgMTE3LjMwMSA5MC40MzQzQzExNy40MzEgOTAuNDM0MyAxMTcuNTM0IDkwLjQ3MiAxMTcuNjEgOTAuNTQ3NEMxMTcuNjg1IDkwLjYyMDggMTE3LjcyMyA5MC43MTM1IDExNy43MjMgOTAuODI1NUMxMTcuNzIzIDkwLjkzNTUgMTE3LjY4NSA5MS4wMjcyIDExNy42MSA5MS4xMDA2QzExNy41MzQgOTEuMTczOSAxMTcuNDMxIDkxLjIxMDYgMTE3LjMwMSA5MS4yMTA2QzExNy4xNjkgOTEuMjEwNiAxMTcuMDY1IDkxLjE3MzkgMTE2Ljk4OSA5MS4xMDA2QzExNi45MTYgOTEuMDI3MiAxMTYuODc5IDkwLjkzNTUgMTE2Ljg3OSA5MC44MjU1Wk0xMjAuNjA5IDk2LjI3MTNWOTIuMzUwNUwxMjAuNjk0IDkxLjY5MzRIMTIxLjM1MVY5Ni4yNzEzSDEyMC42MDlaTTExOC40NiA5My4zODAzVjkzLjMxNjFDMTE4LjQ2IDkzLjA2NTYgMTE4LjQ4OSA5Mi44Mzc0IDExOC41NDYgOTIuNjMxNkMxMTguNjAzIDkyLjQyMzggMTE4LjY4OCA5Mi4yNDU1IDExOC44IDkyLjA5NjhDMTE4LjkxMiA5MS45NDgxIDExOS4wNDggOTEuODM0IDExOS4yMDkgOTEuNzU0NUMxMTkuMzcgOTEuNjczIDExOS41NTUgOTEuNjMyMyAxMTkuNzY1IDkxLjYzMjNDMTE5Ljk2OSA5MS42MzIzIDEyMC4xNDYgOTEuNjcxIDEyMC4yOTcgOTEuNzQ4NEMxMjAuNDUgOTEuODI1OCAxMjAuNTc4IDkxLjkzNjkgMTIwLjY4MiA5Mi4wODE1QzEyMC43ODggOTIuMjI0MSAxMjAuODczIDkyLjM5NDMgMTIwLjkzNiA5Mi41OTE5QzEyMC45OTkgOTIuNzg5NSAxMjEuMDQ1IDkzLjAwOTUgMTIxLjA3MyA5My4yNTJWOTMuNDU2N0MxMjEuMDQ3IDkzLjY5MzEgMTIxLjAwMiA5My45MDkgMTIwLjkzOSA5NC4xMDQ2QzEyMC44NzYgOTQuMzAwMiAxMjAuNzkxIDk0LjQ2OTMgMTIwLjY4NSA5NC42MTE5QzEyMC41NzkgOTQuNzU0NSAxMjAuNDUgOTQuODY1NSAxMjAuMjk3IDk0Ljk0NUMxMjAuMTQ0IDk1LjAyMjQgMTE5Ljk2NSA5NS4wNjExIDExOS43NTkgOTUuMDYxMUMxMTkuNTUzIDk1LjA2MTEgMTE5LjM3IDk1LjAxOTQgMTE5LjIwOSA5NC45MzU4QzExOS4wNDggOTQuODUyMyAxMTguOTEyIDk0LjczNTEgMTE4LjggOTQuNTg0NEMxMTguNjkgOTQuNDMxNiAxMTguNjA1IDk0LjI1MzMgMTE4LjU0NiA5NC4wNDk2QzExOC40ODkgOTMuODQzOCAxMTguNDYgOTMuNjIwNyAxMTguNDYgOTMuMzgwM1pNMTE5LjE5NyA5My4zMTYxVjkzLjM4MDNDMTE5LjE5NyA5My41MzExIDExOS4yMSA5My42NzI3IDExOS4yMzcgOTMuODA1MUMxMTkuMjY1IDkzLjkzNTUgMTE5LjMxIDk0LjA1MTYgMTE5LjM3MSA5NC4xNTM1QzExOS40MzIgOTQuMjUzMyAxMTkuNTEgOTQuMzMxOCAxMTkuNjAzIDk0LjM4ODhDMTE5LjY5NyA5NC40NDU4IDExOS44MSA5NC40NzQ0IDExOS45NDMgOTQuNDc0NEMxMjAuMTE2IDk0LjQ3NDQgMTIwLjI1NyA5NC40MzY3IDEyMC4zNjcgOTQuMzYxM0MxMjAuNDc5IDk0LjI4NTkgMTIwLjU2NSA5NC4xODUxIDEyMC42MjQgOTQuMDU4OEMxMjAuNjg1IDkzLjkzMDQgMTIwLjcyOCA5My43ODg4IDEyMC43NTIgOTMuNjM0VjkzLjA4MDhDMTIwLjczOCA5Mi45NjA2IDEyMC43MTMgOTIuODQ4NiAxMjAuNjc2IDkyLjc0NDdDMTIwLjYzOSA5Mi42Mzg3IDEyMC41ODggOTIuNTQ3MSAxMjAuNTIzIDkyLjQ2OTZDMTIwLjQ2IDkyLjM5MDIgMTIwLjM4MSA5Mi4zMjkxIDEyMC4yODUgOTIuMjg2M0MxMjAuMTkxIDkyLjI0MTUgMTIwLjA3OSA5Mi4yMTkgMTE5Ljk0OSA5Mi4yMTlDMTE5LjgxNiA5Mi4yMTkgMTE5LjcwMiA5Mi4yNDc2IDExOS42MDYgOTIuMzA0NkMxMTkuNTExIDkyLjM2MTcgMTE5LjQzMiA5Mi40NDExIDExOS4zNzEgOTIuNTQzQzExOS4zMTIgOTIuNjQyOCAxMTkuMjY4IDkyLjc1ODkgMTE5LjI0IDkyLjg5MTRDMTE5LjIxMSA5My4wMjM4IDExOS4xOTcgOTMuMTY1NCAxMTkuMTk3IDkzLjMxNjFaTTEyNC4yNSA5NC4yMjA3VjkxLjY5MzRIMTI0Ljk4OVY5NUgxMjQuMjkyTDEyNC4yNSA5NC4yMjA3Wk0xMjQuMzUzIDkzLjUzMzFMMTI0LjYwMSA5My41MjdDMTI0LjYwMSA5My43NDkxIDEyNC41NzcgOTMuOTUzOCAxMjQuNTI4IDk0LjE0MTNDMTI0LjQ3OSA5NC4zMjY3IDEyNC40MDMgOTQuNDg4NiAxMjQuMzAyIDk0LjYyNzJDMTI0LjIgOTQuNzYzNyAxMjQuMDY5IDk0Ljg3MDYgMTIzLjkxIDk0Ljk0OEMxMjMuNzUxIDk1LjAyMzQgMTIzLjU2MSA5NS4wNjExIDEyMy4zMzkgOTUuMDYxMUMxMjMuMTc4IDk1LjA2MTEgMTIzLjAzIDk1LjAzNzcgMTIyLjg5NiA5NC45OTA4QzEyMi43NjEgOTQuOTQ0IDEyMi42NDUgOTQuODcxNiAxMjIuNTQ3IDk0Ljc3MzlDMTIyLjQ1MiA5NC42NzYxIDEyMi4zNzcgOTQuNTQ4NyAxMjIuMzI0IDk0LjM5MTlDMTIyLjI3MSA5NC4yMzUgMTIyLjI0NSA5NC4wNDc1IDEyMi4yNDUgOTMuODI5NlY5MS42OTM0SDEyMi45ODFWOTMuODM1N0MxMjIuOTgxIDkzLjk1NTkgMTIyLjk5NiA5NC4wNTY3IDEyMy4wMjQgOTQuMTM4MkMxMjMuMDUzIDk0LjIxNzcgMTIzLjA5MSA5NC4yODE4IDEyMy4xNCA5NC4zMzA3QzEyMy4xODkgOTQuMzc5NiAxMjMuMjQ2IDk0LjQxNDMgMTIzLjMxMSA5NC40MzQ2QzEyMy4zNzcgOTQuNDU1IDEyMy40NDYgOTQuNDY1MiAxMjMuNTE5IDk0LjQ2NTJDMTIzLjcyOSA5NC40NjUyIDEyMy44OTQgOTQuNDI0NSAxMjQuMDE0IDk0LjM0M0MxMjQuMTM3IDk0LjI1OTQgMTI0LjIyMyA5NC4xNDc0IDEyNC4yNzQgOTQuMDA2OEMxMjQuMzI3IDkzLjg2NjIgMTI0LjM1MyA5My43MDgzIDEyNC4zNTMgOTMuNTMzMVpNMTI2LjY1MyA5MS42OTM0Vjk1SDEyNS45MTNWOTEuNjkzNEgxMjYuNjUzWk0xMjUuODY0IDkwLjgyNTVDMTI1Ljg2NCA5MC43MTM1IDEyNS45MDEgOTAuNjIwOCAxMjUuOTc0IDkwLjU0NzRDMTI2LjA1IDkwLjQ3MiAxMjYuMTU0IDkwLjQzNDMgMTI2LjI4NiA5MC40MzQzQzEyNi40MTYgOTAuNDM0MyAxMjYuNTE5IDkwLjQ3MiAxMjYuNTk1IDkwLjU0NzRDMTI2LjY3IDkwLjYyMDggMTI2LjcwOCA5MC43MTM1IDEyNi43MDggOTAuODI1NUMxMjYuNzA4IDkwLjkzNTUgMTI2LjY3IDkxLjAyNzIgMTI2LjU5NSA5MS4xMDA2QzEyNi41MTkgOTEuMTczOSAxMjYuNDE2IDkxLjIxMDYgMTI2LjI4NiA5MS4yMTA2QzEyNi4xNTQgOTEuMjEwNiAxMjYuMDUgOTEuMTczOSAxMjUuOTc0IDkxLjEwMDZDMTI1LjkwMSA5MS4wMjcyIDEyNS44NjQgOTAuOTM1NSAxMjUuODY0IDkwLjgyNTVaTTEyOS41OTcgOTQuMzE1NVY5MC4zMDZIMTMwLjMzNlY5NUgxMjkuNjY3TDEyOS41OTcgOTQuMzE1NVpNMTI3LjQ0NSA5My4zODM0VjkzLjMxOTJDMTI3LjQ0NSA5My4wNjg2IDEyNy40NzUgOTIuODQwNCAxMjcuNTM0IDkyLjYzNDdDMTI3LjU5MyA5Mi40MjY5IDEyNy42NzkgOTIuMjQ4NiAxMjcuNzkxIDkyLjA5OTlDMTI3LjkwMyA5MS45NDkxIDEyOC4wMzkgOTEuODM0IDEyOC4yIDkxLjc1NDVDMTI4LjM2MSA5MS42NzMgMTI4LjU0MyA5MS42MzIzIDEyOC43NDQgOTEuNjMyM0MxMjguOTQ0IDkxLjYzMjMgMTI5LjExOSA5MS42NzEgMTI5LjI3IDkxLjc0ODRDMTI5LjQyMSA5MS44MjU4IDEyOS41NDkgOTEuOTM2OSAxMjkuNjU1IDkyLjA4MTVDMTI5Ljc2MSA5Mi4yMjQxIDEyOS44NDUgOTIuMzk1MyAxMjkuOTA5IDkyLjU5NDlDMTI5Ljk3MiA5Mi43OTI2IDEzMC4wMTcgOTMuMDEyNiAxMzAuMDQzIDkzLjI1NVY5My40NTk4QzEzMC4wMTcgOTMuNjk2MSAxMjkuOTcyIDkzLjkxMjEgMTI5LjkwOSA5NC4xMDc2QzEyOS44NDUgOTQuMzAzMiAxMjkuNzYxIDk0LjQ3MjMgMTI5LjY1NSA5NC42MTQ5QzEyOS41NDkgOTQuNzU3NiAxMjkuNDIgOTQuODY3NiAxMjkuMjY3IDk0Ljk0NUMxMjkuMTE2IDk1LjAyMjQgMTI4Ljk0IDk1LjA2MTEgMTI4LjczOCA5NS4wNjExQzEyOC41MzggOTUuMDYxMSAxMjguMzU4IDk1LjAxOTQgMTI4LjE5NyA5NC45MzU4QzEyOC4wMzggOTQuODUyMyAxMjcuOTAzIDk0LjczNTEgMTI3Ljc5MSA5NC41ODQ0QzEyNy42NzkgOTQuNDMzNiAxMjcuNTkzIDk0LjI1NjQgMTI3LjUzNCA5NC4wNTI2QzEyNy40NzUgOTMuODQ2OSAxMjcuNDQ1IDkzLjYyMzggMTI3LjQ0NSA5My4zODM0Wk0xMjguMTgyIDkzLjMxOTJWOTMuMzgzNEMxMjguMTgyIDkzLjUzNDEgMTI4LjE5NSA5My42NzQ3IDEyOC4yMjIgOTMuODA1MUMxMjguMjUgOTMuOTM1NSAxMjguMjk0IDk0LjA1MDYgMTI4LjM1MyA5NC4xNTA0QzEyOC40MTIgOTQuMjQ4MiAxMjguNDg5IDk0LjMyNTYgMTI4LjU4MiA5NC4zODI3QzEyOC42NzggOTQuNDM3NyAxMjguNzkyIDk0LjQ2NTIgMTI4LjkyNSA5NC40NjUyQzEyOS4wOTIgOTQuNDY1MiAxMjkuMjI5IDk0LjQyODUgMTI5LjMzNyA5NC4zNTUyQzEyOS40NDUgOTQuMjgxOCAxMjkuNTMgOTQuMTgzIDEyOS41OTEgOTQuMDU4OEMxMjkuNjU0IDkzLjkzMjQgMTI5LjY5NyA5My43OTE5IDEyOS43MTkgOTMuNjM3VjkzLjA4MzlDMTI5LjcwNyA5Mi45NjM3IDEyOS42ODEgOTIuODUxNiAxMjkuNjQzIDkyLjc0NzdDMTI5LjYwNiA5Mi42NDM4IDEyOS41NTYgOTIuNTUzMiAxMjkuNDkzIDkyLjQ3NTdDMTI5LjQzIDkyLjM5NjMgMTI5LjM1MSA5Mi4zMzUyIDEyOS4yNTggOTIuMjkyNEMxMjkuMTY2IDkyLjI0NzYgMTI5LjA1NyA5Mi4yMjUyIDEyOC45MzEgOTIuMjI1MkMxMjguNzk2IDkyLjIyNTIgMTI4LjY4MiA5Mi4yNTM3IDEyOC41ODggOTIuMzEwN0MxMjguNDk1IDkyLjM2NzggMTI4LjQxNyA5Mi40NDYyIDEyOC4zNTYgOTIuNTQ2QzEyOC4yOTcgOTIuNjQ1OSAxMjguMjUzIDkyLjc2MiAxMjguMjI1IDkyLjg5NDRDMTI4LjE5NiA5My4wMjY4IDEyOC4xODIgOTMuMTY4NCAxMjguMTgyIDkzLjMxOTJaTTEzMy42OTQgOTAuMzA2Vjk1SDEzMi45NTVWOTAuMzA2SDEzMy42OTRaTTEzNi4wNzkgOTUuMDYxMUMxMzUuODM1IDk1LjA2MTEgMTM1LjYxNCA5NS4wMjE0IDEzNS40MTYgOTQuOTQxOUMxMzUuMjIgOTQuODYwNCAxMzUuMDUzIDk0Ljc0NzQgMTM0LjkxNSA5NC42MDI3QzEzNC43NzggOTQuNDU4MSAxMzQuNjczIDk0LjI4OCAxMzQuNiA5NC4wOTI0QzEzNC41MjcgOTMuODk2OCAxMzQuNDkgOTMuNjg1OSAxMzQuNDkgOTMuNDU5OFY5My4zMzc1QzEzNC40OSA5My4wNzg4IDEzNC41MjggOTIuODQ0NSAxMzQuNjAzIDkyLjYzNDdDMTM0LjY3OCA5Mi40MjQ4IDEzNC43ODMgOTIuMjQ1NSAxMzQuOTE4IDkyLjA5NjhDMTM1LjA1MiA5MS45NDYgMTM1LjIxMSA5MS44MzA5IDEzNS4zOTUgOTEuNzUxNUMxMzUuNTc4IDkxLjY3MiAxMzUuNzc3IDkxLjYzMjMgMTM1Ljk5IDkxLjYzMjNDMTM2LjIyNyA5MS42MzIzIDEzNi40MzQgOTEuNjcyIDEzNi42MTEgOTEuNzUxNUMxMzYuNzg4IDkxLjgzMDkgMTM2LjkzNSA5MS45NDMgMTM3LjA1MSA5Mi4wODc2QzEzNy4xNjkgOTIuMjMwMyAxMzcuMjU3IDkyLjQwMDQgMTM3LjMxNCA5Mi41OThDMTM3LjM3MyA5Mi43OTU2IDEzNy40MDIgOTMuMDEzNiAxMzcuNDAyIDkzLjI1MlY5My41NjY3SDEzNC44NDhWOTMuMDM4MUgxMzYuNjc1VjkyLjk4QzEzNi42NzEgOTIuODQ3NiAxMzYuNjQ0IDkyLjcyMzMgMTM2LjU5NiA5Mi42MDcyQzEzNi41NDkgOTIuNDkxIDEzNi40NzYgOTIuMzk3MyAxMzYuMzc5IDkyLjMyNkMxMzYuMjgxIDkyLjI1NDcgMTM2LjE1IDkyLjIxOSAxMzUuOTg3IDkyLjIxOUMxMzUuODY1IDkyLjIxOSAxMzUuNzU2IDkyLjI0NTUgMTM1LjY2IDkyLjI5ODVDMTM1LjU2NyA5Mi4zNDk0IDEzNS40ODggOTIuNDIzOCAxMzUuNDI1IDkyLjUyMTZDMTM1LjM2MiA5Mi42MTk0IDEzNS4zMTMgOTIuNzM3NSAxMzUuMjc4IDkyLjg3NjFDMTM1LjI0NiA5My4wMTI2IDEzNS4yMyA5My4xNjY0IDEzNS4yMyA5My4zMzc1VjkzLjQ1OThDMTM1LjIzIDkzLjYwNDQgMTM1LjI0OSA5My43Mzg5IDEzNS4yODggOTMuODYzMkMxMzUuMzI4IDkzLjk4NTQgMTM1LjM4NyA5NC4wOTI0IDEzNS40NjUgOTQuMTg0QzEzNS41NDIgOTQuMjc1NyAxMzUuNjM2IDk0LjM0ODEgMTM1Ljc0NiA5NC40MDFDMTM1Ljg1NiA5NC40NTIgMTM1Ljk4MSA5NC40Nzc0IDEzNi4xMjIgOTQuNDc3NEMxMzYuMjk5IDk0LjQ3NzQgMTM2LjQ1NyA5NC40NDE4IDEzNi41OTYgOTQuMzcwNUMxMzYuNzM0IDk0LjI5OTIgMTM2Ljg1NCA5NC4xOTgzIDEzNi45NTYgOTQuMDY3OUwxMzcuMzQ0IDk0LjQ0MzhDMTM3LjI3MyA5NC41NDc3IDEzNy4xOCA5NC42NDc1IDEzNy4wNjYgOTQuNzQzM0MxMzYuOTUyIDk0LjgzNyAxMzYuODEzIDk0LjkxMzQgMTM2LjY0OCA5NC45NzI1QzEzNi40ODUgOTUuMDMxNiAxMzYuMjk1IDk1LjA2MTEgMTM2LjA3OSA5NS4wNjExWk0xMzkuMTMgOTQuNDE2M0wxMzkuOTQgOTEuNjkzNEgxNDAuNzA0TDEzOS41NTUgOTVIMTM5LjA3OEwxMzkuMTMgOTQuNDE2M1pNMTM4LjUxIDkxLjY5MzRMMTM5LjMzNSA5NC40Mjg1TDEzOS4zNzUgOTVIMTM4Ljg5OEwxMzcuNzQzIDkxLjY5MzRIMTM4LjUxWk0xNDIuNjk1IDk1LjA2MTFDMTQyLjQ1IDk1LjA2MTEgMTQyLjIyOSA5NS4wMjE0IDE0Mi4wMzEgOTQuOTQxOUMxNDEuODM2IDk0Ljg2MDQgMTQxLjY2OSA5NC43NDc0IDE0MS41MyA5NC42MDI3QzE0MS4zOTQgOTQuNDU4MSAxNDEuMjg5IDk0LjI4OCAxNDEuMjE2IDk0LjA5MjRDMTQxLjE0MiA5My44OTY4IDE0MS4xMDYgOTMuNjg1OSAxNDEuMTA2IDkzLjQ1OThWOTMuMzM3NUMxNDEuMTA2IDkzLjA3ODggMTQxLjE0MyA5Mi44NDQ1IDE0MS4yMTkgOTIuNjM0N0MxNDEuMjk0IDkyLjQyNDggMTQxLjM5OSA5Mi4yNDU1IDE0MS41MzMgOTIuMDk2OEMxNDEuNjY4IDkxLjk0NiAxNDEuODI3IDkxLjgzMDkgMTQyLjAxIDkxLjc1MTVDMTQyLjE5MyA5MS42NzIgMTQyLjM5MiA5MS42MzIzIDE0Mi42MDYgOTEuNjMyM0MxNDIuODQyIDkxLjYzMjMgMTQzLjA0OSA5MS42NzIgMTQzLjIyNiA5MS43NTE1QzE0My40MDQgOTEuODMwOSAxNDMuNTUgOTEuOTQzIDE0My42NjYgOTIuMDg3NkMxNDMuNzg1IDkyLjIzMDMgMTQzLjg3MiA5Mi40MDA0IDE0My45MjkgOTIuNTk4QzE0My45ODggOTIuNzk1NiAxNDQuMDE4IDkzLjAxMzYgMTQ0LjAxOCA5My4yNTJWOTMuNTY2N0gxNDEuNDYzVjkzLjAzODFIMTQzLjI5MVY5Mi45OEMxNDMuMjg2IDkyLjg0NzYgMTQzLjI2IDkyLjcyMzMgMTQzLjIxMSA5Mi42MDcyQzE0My4xNjQgOTIuNDkxIDE0My4wOTIgOTIuMzk3MyAxNDIuOTk0IDkyLjMyNkMxNDIuODk2IDkyLjI1NDcgMTQyLjc2NiA5Mi4yMTkgMTQyLjYwMyA5Mi4yMTlDMTQyLjQ4MSA5Mi4yMTkgMTQyLjM3MiA5Mi4yNDU1IDE0Mi4yNzYgOTIuMjk4NUMxNDIuMTgyIDkyLjM0OTQgMTQyLjEwNCA5Mi40MjM4IDE0Mi4wNDEgOTIuNTIxNkMxNDEuOTc3IDkyLjYxOTQgMTQxLjkyOSA5Mi43Mzc1IDE0MS44OTQgOTIuODc2MUMxNDEuODYxIDkzLjAxMjYgMTQxLjg0NSA5My4xNjY0IDE0MS44NDUgOTMuMzM3NVY5My40NTk4QzE0MS44NDUgOTMuNjA0NCAxNDEuODY0IDkzLjczODkgMTQxLjkwMyA5My44NjMyQzE0MS45NDQgOTMuOTg1NCAxNDIuMDAzIDk0LjA5MjQgMTQyLjA4IDk0LjE4NEMxNDIuMTU4IDk0LjI3NTcgMTQyLjI1MSA5NC4zNDgxIDE0Mi4zNjIgOTQuNDAxQzE0Mi40NzIgOTQuNDUyIDE0Mi41OTcgOTQuNDc3NCAxNDIuNzM3IDk0LjQ3NzRDMTQyLjkxNSA5NC40Nzc0IDE0My4wNzMgOTQuNDQxOCAxNDMuMjExIDk0LjM3MDVDMTQzLjM1IDk0LjI5OTIgMTQzLjQ3IDk0LjE5ODMgMTQzLjU3MiA5NC4wNjc5TDE0My45NiA5NC40NDM4QzE0My44ODggOTQuNTQ3NyAxNDMuNzk2IDk0LjY0NzUgMTQzLjY4MiA5NC43NDMzQzE0My41NjggOTQuODM3IDE0My40MjggOTQuOTEzNCAxNDMuMjYzIDk0Ljk3MjVDMTQzLjEgOTUuMDMxNiAxNDIuOTExIDk1LjA2MTEgMTQyLjY5NSA5NS4wNjExWk0xNDUuNTAxIDkwLjMwNlY5NUgxNDQuNzYyVjkwLjMwNkgxNDUuNTAxWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cmVjdCB4PSIxMzUuNzc1IiB5PSIxNTIuNzI1IiB3aWR0aD0iNDguNDUwNCIgaGVpZ2h0PSIzMS40NTA0IiByeD0iMTUuNzI1MiIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDEzNS43NzUgMTUyLjcyNSkiIGZpbGw9IiM2MjE2RkYiIGZpbGwtb3BhY2l0eT0iMC4wMiIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTQ5NTc1Ii8+CjxtYXNrIGlkPSJtYXNrM18zNDYxXzQ2ODg2IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIxMzYiIHk9IjEwNSIgd2lkdGg9IjMxIiBoZWlnaHQ9IjQ3Ij4KPHJlY3QgeD0iMTM2Ljc3NSIgeT0iMTUxLjcyNSIgd2lkdGg9IjQ2LjQ1MDQiIGhlaWdodD0iMjkuNDUwNCIgcng9IjE0LjcyNTIiIHRyYW5zZm9ybT0icm90YXRlKC05MCAxMzYuNzc1IDE1MS43MjUpIiBmaWxsPSIjRjFGMUY5IiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMC41NDk1NzUiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2szXzM0NjFfNDY4ODYpIj4KPHJlY3QgeD0iMTM1LjUiIHk9IjEzMiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ3IiBmaWxsPSIjN0E4QkZGIi8+CjwvZz4KPHBhdGggZD0iTTEzNS40MTMgMTM4LjExOEgxNjcuMjg4IiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMC41NDk1NzUiLz4KPHBhdGggZD0iTTEzNS40MTIgMTE4LjM3NkgxNjcuMjg3IiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMC41NDk1NzUiLz4KPG1hc2sgaWQ9InBhdGgtNTktaW5zaWRlLTdfMzQ2MV80Njg4NiIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1NS4zMzQgOTkuNDE2SDE0Ny4zNjVWMTA0LjM2QzE0Ny4zNjUgMTA0LjM2MSAxNDcuMzY1IDEwNC4zNjEgMTQ3LjM2NSAxMDQuMzYyQzE0Ny4zNjUgMTA0LjgxNyAxNDkuMTQ5IDEwNS4xODcgMTUxLjM1IDEwNS4xODdDMTUzLjU1IDEwNS4xODcgMTU1LjMzNCAxMDQuODE3IDE1NS4zMzQgMTA0LjM2MkgxNTUuMzM0Vjk5LjQxNloiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1NS4zMzQgOTkuNDE2SDE0Ny4zNjVWMTA0LjM2QzE0Ny4zNjUgMTA0LjM2MSAxNDcuMzY1IDEwNC4zNjEgMTQ3LjM2NSAxMDQuMzYyQzE0Ny4zNjUgMTA0LjgxNyAxNDkuMTQ5IDEwNS4xODcgMTUxLjM1IDEwNS4xODdDMTUzLjU1IDEwNS4xODcgMTU1LjMzNCAxMDQuODE3IDE1NS4zMzQgMTA0LjM2MkgxNTUuMzM0Vjk5LjQxNloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xNDcuMzY1IDk5LjQxNlY5OC44NjY0SDE0Ni44MTZWOTkuNDE2SDE0Ny4zNjVaTTE1NS4zMzQgOTkuNDE2SDE1NS44ODRWOTguODY2NEgxNTUuMzM0Vjk5LjQxNlpNMTQ3LjM2NSAxMDQuMzZMMTQ3LjkxNSAxMDQuMzY3VjEwNC4zNkgxNDcuMzY1Wk0xNTUuMzM0IDEwNC4zNjJWMTAzLjgxM0gxNTQuNzg1TDE1NC43ODQgMTA0LjM2MkwxNTUuMzM0IDEwNC4zNjJaTTE1NS4zMzQgMTA0LjM2MlYxMDQuOTEySDE1NS44ODRWMTA0LjM2MkgxNTUuMzM0Wk0xNDcuMzY1IDk5Ljk2NTZIMTU1LjMzNFY5OC44NjY0SDE0Ny4zNjVWOTkuOTY1NlpNMTQ3LjkxNSAxMDQuMzZWOTkuNDE2SDE0Ni44MTZWMTA0LjM2SDE0Ny45MTVaTTE0Ny45MTUgMTA0LjM2MkMxNDcuOTE1IDEwNC4zNjQgMTQ3LjkxNSAxMDQuMzY1IDE0Ny45MTUgMTA0LjM2N0wxNDYuODE2IDEwNC4zNTNDMTQ2LjgxNiAxMDQuMzU2IDE0Ni44MTYgMTA0LjM1OSAxNDYuODE2IDEwNC4zNjJIMTQ3LjkxNVpNMTUxLjM1IDEwNC42MzdDMTUwLjI3NSAxMDQuNjM3IDE0OS4zMTggMTA0LjU0NiAxNDguNjQ0IDEwNC40MDdDMTQ4LjMwMiAxMDQuMzM2IDE0OC4wNjEgMTA0LjI1OSAxNDcuOTIgMTA0LjE4OUMxNDcuODQ4IDEwNC4xNTQgMTQ3LjgzIDEwNC4xMzUgMTQ3LjgzNyAxMDQuMTQyQzE0Ny44NDYgMTA0LjE1MSAxNDcuOTE1IDEwNC4yMjYgMTQ3LjkxNSAxMDQuMzYySDE0Ni44MTZDMTQ2LjgxNiAxMDQuNjEyIDE0Ni45NDEgMTA0Ljc5OSAxNDcuMDU1IDEwNC45MTVDMTQ3LjE2OSAxMDUuMDI5IDE0Ny4zMDcgMTA1LjExMyAxNDcuNDM3IDEwNS4xNzdDMTQ3LjY5OSAxMDUuMzA1IDE0OC4wNDIgMTA1LjQwNSAxNDguNDIxIDEwNS40ODNDMTQ5LjE4OCAxMDUuNjQyIDE1MC4yMjQgMTA1LjczNiAxNTEuMzUgMTA1LjczNlYxMDQuNjM3Wk0xNTQuNzg0IDEwNC4zNjJDMTU0Ljc4NSAxMDQuMjI2IDE1NC44NTQgMTA0LjE1MSAxNTQuODYyIDEwNC4xNDJDMTU0Ljg2OSAxMDQuMTM1IDE1NC44NTEgMTA0LjE1NCAxNTQuNzc5IDEwNC4xODlDMTU0LjYzOCAxMDQuMjU5IDE1NC4zOTcgMTA0LjMzNiAxNTQuMDU2IDEwNC40MDdDMTUzLjM4MSAxMDQuNTQ2IDE1Mi40MjQgMTA0LjYzNyAxNTEuMzUgMTA0LjYzN1YxMDUuNzM2QzE1Mi40NzYgMTA1LjczNiAxNTMuNTExIDEwNS42NDIgMTU0LjI3OCAxMDUuNDgzQzE1NC42NTggMTA1LjQwNSAxNTUuMDAxIDEwNS4zMDUgMTU1LjI2MiAxMDUuMTc3QzE1NS4zOTIgMTA1LjExMyAxNTUuNTMxIDEwNS4wMjkgMTU1LjY0NCAxMDQuOTE1QzE1NS43NTkgMTA0Ljc5OSAxNTUuODg0IDEwNC42MTIgMTU1Ljg4NCAxMDQuMzYyTDE1NC43ODQgMTA0LjM2MlpNMTU1LjMzNCAxMDMuODEzSDE1NS4zMzRWMTA0LjkxMkgxNTUuMzM0VjEwMy44MTNaTTE1NC43ODUgOTkuNDE2VjEwNC4zNjJIMTU1Ljg4NFY5OS40MTZIMTU0Ljc4NVoiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC01OS1pbnNpZGUtN18zNDYxXzQ2ODg2KSIvPgo8cGF0aCBkPSJNMTU2LjIwNiA5OS45ODQ2QzE1Ni4yMTIgOTkuOTkwOCAxNTYuMjE2IDk5Ljk5NTkgMTU2LjIxOSAxMDBDMTU2LjIxNiAxMDAuMDA0IDE1Ni4yMTIgMTAwLjAwOSAxNTYuMjA2IDEwMC4wMTVDMTU2LjE3NiAxMDAuMDQ5IDE1Ni4xMTcgMTAwLjA5NCAxNTYuMDE5IDEwMC4xNDZDMTU1LjgyMiAxMDAuMjQ5IDE1NS41MTkgMTAwLjM1MSAxNTUuMTIyIDEwMC40MzlDMTU0LjMzMyAxMDAuNjE0IDE1My4yMjkgMTAwLjcyNSAxNTIgMTAwLjcyNUMxNTAuNzcxIDEwMC43MjUgMTQ5LjY2NyAxMDAuNjE0IDE0OC44NzggMTAwLjQzOUMxNDguNDgxIDEwMC4zNTEgMTQ4LjE3OCAxMDAuMjQ5IDE0Ny45ODEgMTAwLjE0NkMxNDcuODgzIDEwMC4wOTQgMTQ3LjgyNCAxMDAuMDQ5IDE0Ny43OTQgMTAwLjAxNUMxNDcuNzg4IDEwMC4wMDkgMTQ3Ljc4NCAxMDAuMDA0IDE0Ny43ODEgMTAwQzE0Ny43ODQgOTkuOTk1OSAxNDcuNzg4IDk5Ljk5MDggMTQ3Ljc5NCA5OS45ODQ2QzE0Ny44MjQgOTkuOTUxMiAxNDcuODgzIDk5LjkwNTggMTQ3Ljk4MSA5OS44NTRDMTQ4LjE3OCA5OS43NTA3IDE0OC40ODEgOTkuNjQ5NCAxNDguODc4IDk5LjU2MTFDMTQ5LjY2NyA5OS4zODU3IDE1MC43NzEgOTkuMjc0OCAxNTIgOTkuMjc0OEMxNTMuMjI5IDk5LjI3NDggMTU0LjMzMyA5OS4zODU3IDE1NS4xMjIgOTkuNTYxMUMxNTUuNTE5IDk5LjY0OTQgMTU1LjgyMiA5OS43NTA3IDE1Ni4wMTkgOTkuODU0QzE1Ni4xMTcgOTkuOTA1OCAxNTYuMTc2IDk5Ljk1MTIgMTU2LjIwNiA5OS45ODQ2Wk0xNDcuNzczIDEwMC4wMTNDMTQ3Ljc3MyAxMDAuMDEzIDE0Ny43NzMgMTAwLjAxMiAxNDcuNzczIDEwMC4wMTFMMTQ3Ljc3MyAxMDAuMDEzWk0xNTYuMjI3IDEwMC4wMTFDMTU2LjIyNyAxMDAuMDEyIDE1Ni4yMjcgMTAwLjAxMyAxNTYuMjI3IDEwMC4wMTNMMTU2LjIyNyAxMDAuMDExWk0xNDcuNzczIDk5Ljk4ODZDMTQ3Ljc3MyA5OS45ODc3IDE0Ny43NzMgOTkuOTg3MyAxNDcuNzczIDk5Ljk4NzRDMTQ3Ljc3MyA5OS45ODc0IDE0Ny43NzMgOTkuOTg3OCAxNDcuNzczIDk5Ljk4ODZaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjAuNTQ5NTc1Ii8+CjxwYXRoIGQ9Ik0xNTYuMjA2IDk4Ljk4NDZDMTU2LjIxMiA5OC45OTA4IDE1Ni4yMTYgOTguOTk1OSAxNTYuMjE5IDk5QzE1Ni4yMTYgOTkuMDA0MSAxNTYuMjEyIDk5LjAwOTIgMTU2LjIwNiA5OS4wMTU0QzE1Ni4xNzYgOTkuMDQ4OCAxNTYuMTE3IDk5LjA5NDIgMTU2LjAxOSA5OS4xNDZDMTU1LjgyMiA5OS4yNDkzIDE1NS41MTkgOTkuMzUwNiAxNTUuMTIyIDk5LjQzODlDMTU0LjMzMyA5OS42MTQzIDE1My4yMjkgOTkuNzI1MiAxNTIgOTkuNzI1MkMxNTAuNzcxIDk5LjcyNTIgMTQ5LjY2NyA5OS42MTQzIDE0OC44NzggOTkuNDM4OUMxNDguNDgxIDk5LjM1MDYgMTQ4LjE3OCA5OS4yNDkzIDE0Ny45ODEgOTkuMTQ2QzE0Ny44ODMgOTkuMDk0MiAxNDcuODI0IDk5LjA0ODggMTQ3Ljc5NCA5OS4wMTU0QzE0Ny43ODggOTkuMDA5MiAxNDcuNzg0IDk5LjAwNDEgMTQ3Ljc4MSA5OUMxNDcuNzg0IDk4Ljk5NTkgMTQ3Ljc4OCA5OC45OTA4IDE0Ny43OTQgOTguOTg0NkMxNDcuODI0IDk4Ljk1MTIgMTQ3Ljg4MyA5OC45MDU4IDE0Ny45ODEgOTguODU0QzE0OC4xNzggOTguNzUwNyAxNDguNDgxIDk4LjY0OTQgMTQ4Ljg3OCA5OC41NjExQzE0OS42NjcgOTguMzg1NyAxNTAuNzcxIDk4LjI3NDggMTUyIDk4LjI3NDhDMTUzLjIyOSA5OC4yNzQ4IDE1NC4zMzMgOTguMzg1NyAxNTUuMTIyIDk4LjU2MTFDMTU1LjUxOSA5OC42NDk0IDE1NS44MjIgOTguNzUwNyAxNTYuMDE5IDk4Ljg1NEMxNTYuMTE3IDk4LjkwNTggMTU2LjE3NiA5OC45NTEyIDE1Ni4yMDYgOTguOTg0NlpNMTQ3Ljc3MyA5OS4wMTI2QzE0Ny43NzMgOTkuMDEyNyAxNDcuNzczIDk5LjAxMjMgMTQ3Ljc3MyA5OS4wMTE0TDE0Ny43NzMgOTkuMDEyNlpNMTU2LjIyNyA5OS4wMTE0QzE1Ni4yMjcgOTkuMDEyMyAxNTYuMjI3IDk5LjAxMjcgMTU2LjIyNyA5OS4wMTI2TDE1Ni4yMjcgOTkuMDExNFpNMTQ3Ljc3MyA5OC45ODg2QzE0Ny43NzMgOTguOTg3NyAxNDcuNzczIDk4Ljk4NzMgMTQ3Ljc3MyA5OC45ODc0QzE0Ny43NzMgOTguOTg3NCAxNDcuNzczIDk4Ljk4NzggMTQ3Ljc3MyA5OC45ODg2WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIwLjU0OTU3NSIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyM19iXzM0NjFfNDY4ODYpIj4KPHJlY3QgeD0iMTQwLjUiIHk9IjEyMiIgd2lkdGg9IjIyIiBoZWlnaHQ9IjEzIiByeD0iMS4xODk2NiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNMTQ3Ljg0OCAxMjguOTczVjEyOS43MjNIMTQzLjc0NkwxNDMuNzE1IDEyOS4xNTZMMTQ2LjE2OCAxMjUuMzEySDE0Ni45MjJMMTQ2LjEwNSAxMjYuNzExTDE0NC42OTUgMTI4Ljk3M0gxNDcuODQ4Wk0xNDcuMTM3IDEyNS4zMTJWMTMxSDE0Ni4xOTVWMTI1LjMxMkgxNDcuMTM3Wk0xNTIuMTg0IDEyNy42OFYxMjguNjA5QzE1Mi4xODQgMTI5LjA1NSAxNTIuMTM5IDEyOS40MzUgMTUyLjA1MSAxMjkuNzVDMTUxLjk2NSAxMzAuMDYyIDE1MS44NCAxMzAuMzE2IDE1MS42NzYgMTMwLjUxMkMxNTEuNTEyIDEzMC43MDcgMTUxLjMxNSAxMzAuODUgMTUxLjA4NiAxMzAuOTQxQzE1MC44NTkgMTMxLjAzMyAxNTAuNjA1IDEzMS4wNzggMTUwLjMyNCAxMzEuMDc4QzE1MC4xIDEzMS4wNzggMTQ5Ljg5MiAxMzEuMDQ5IDE0OS42OTkgMTMwLjk5MkMxNDkuNTA5IDEzMC45MzUgMTQ5LjMzNyAxMzAuODQ1IDE0OS4xODQgMTMwLjcyM0MxNDkuMDMgMTMwLjYgMTQ4Ljg5OCAxMzAuNDQzIDE0OC43ODkgMTMwLjI1QzE0OC42ODIgMTMwLjA1NSAxNDguNTk5IDEyOS44MjIgMTQ4LjUzOSAxMjkuNTUxQzE0OC40ODIgMTI5LjI4IDE0OC40NTMgMTI4Ljk2NiAxNDguNDUzIDEyOC42MDlWMTI3LjY4QzE0OC40NTMgMTI3LjIzMiAxNDguNDk3IDEyNi44NTQgMTQ4LjU4NiAxMjYuNTQ3QzE0OC42NzQgMTI2LjIzNyAxNDguODAxIDEyNS45ODYgMTQ4Ljk2NSAxMjUuNzkzQzE0OS4xMjkgMTI1LjU5OCAxNDkuMzI0IDEyNS40NTYgMTQ5LjU1MSAxMjUuMzY3QzE0OS43OCAxMjUuMjc5IDE1MC4wMzUgMTI1LjIzNCAxNTAuMzE2IDEyNS4yMzRDMTUwLjU0MyAxMjUuMjM0IDE1MC43NTEgMTI1LjI2MyAxNTAuOTQxIDEyNS4zMkMxNTEuMTM0IDEyNS4zNzUgMTUxLjMwNiAxMjUuNDYyIDE1MS40NTcgMTI1LjU4MkMxNTEuNjExIDEyNS43MDIgMTUxLjc0MSAxMjUuODU4IDE1MS44NDggMTI2LjA1MUMxNTEuOTU3IDEyNi4yNDEgMTUyLjA0IDEyNi40NzEgMTUyLjA5OCAxMjYuNzQyQzE1Mi4xNTUgMTI3LjAxIDE1Mi4xODQgMTI3LjMyMyAxNTIuMTg0IDEyNy42OFpNMTUxLjI0MiAxMjguNzQyVjEyNy41MzlDMTUxLjI0MiAxMjcuMzEyIDE1MS4yMjkgMTI3LjExMyAxNTEuMjAzIDEyNi45NDFDMTUxLjE3NyAxMjYuNzY3IDE1MS4xMzggMTI2LjYyIDE1MS4wODYgMTI2LjVDMTUxLjAzNiAxMjYuMzc4IDE1MC45NzQgMTI2LjI3OSAxNTAuODk4IDEyNi4yMDNDMTUwLjgyMyAxMjYuMTI1IDE1MC43MzcgMTI2LjA2OSAxNTAuNjQxIDEyNi4wMzVDMTUwLjU0NCAxMjUuOTk5IDE1MC40MzYgMTI1Ljk4IDE1MC4zMTYgMTI1Ljk4QzE1MC4xNzEgMTI1Ljk4IDE1MC4wNCAxMjYuMDA5IDE0OS45MjYgMTI2LjA2NkMxNDkuODExIDEyNi4xMjEgMTQ5LjcxNSAxMjYuMjEgMTQ5LjYzNyAxMjYuMzMyQzE0OS41NTkgMTI2LjQ1NCAxNDkuNDk5IDEyNi42MTYgMTQ5LjQ1NyAxMjYuODE2QzE0OS40MTggMTI3LjAxNCAxNDkuMzk4IDEyNy4yNTUgMTQ5LjM5OCAxMjcuNTM5VjEyOC43NDJDMTQ5LjM5OCAxMjguOTcxIDE0OS40MTEgMTI5LjE3MyAxNDkuNDM4IDEyOS4zNDhDMTQ5LjQ2NCAxMjkuNTIyIDE0OS41MDMgMTI5LjY3MiAxNDkuNTU1IDEyOS43OTdDMTQ5LjYwNyAxMjkuOTE5IDE0OS42NjkgMTMwLjAyMSAxNDkuNzQyIDEzMC4xMDJDMTQ5LjgxOCAxMzAuMTggMTQ5LjkwNCAxMzAuMjM3IDE1MCAxMzAuMjczQzE1MC4wOTkgMTMwLjMxIDE1MC4yMDcgMTMwLjMyOCAxNTAuMzI0IDEzMC4zMjhDMTUwLjQ3MyAxMzAuMzI4IDE1MC42MDQgMTMwLjI5OSAxNTAuNzE5IDEzMC4yNDJDMTUwLjgzMyAxMzAuMTg1IDE1MC45MyAxMzAuMDk0IDE1MS4wMDggMTI5Ljk2OUMxNTEuMDg2IDEyOS44NDEgMTUxLjE0NSAxMjkuNjc2IDE1MS4xODQgMTI5LjQ3M0MxNTEuMjIzIDEyOS4yNyAxNTEuMjQyIDEyOS4wMjYgMTUxLjI0MiAxMjguNzQyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNMTU1Ljc0NCAxMjguMzE3VjEyOC4xMjlDMTU1Ljc0NCAxMjcuOTk0IDE1NS43NzMgMTI3Ljg3MSAxNTUuODMyIDEyNy43NkMxNTUuODkxIDEyNy42NSAxNTUuOTc2IDEyNy41NjEgMTU2LjA4OCAxMjcuNDk0QzE1Ni4yMDEgMTI3LjQyNyAxNTYuMzM2IDEyNy4zOTQgMTU2LjQ5NCAxMjcuMzk0QzE1Ni42NTYgMTI3LjM5NCAxNTYuNzkzIDEyNy40MjcgMTU2LjkwNCAxMjcuNDk0QzE1Ny4wMTYgMTI3LjU2MSAxNTcuMTAyIDEyNy42NSAxNTcuMTYgMTI3Ljc2QzE1Ny4yMTkgMTI3Ljg3MSAxNTcuMjQ4IDEyNy45OTQgMTU3LjI0OCAxMjguMTI5VjEyOC4zMTdDMTU3LjI0OCAxMjguNDQ5IDE1Ny4yMTkgMTI4LjU3IDE1Ny4xNiAxMjguNjgxQzE1Ny4xMDMgMTI4Ljc5MSAxNTcuMDE5IDEyOC44OCAxNTYuOTA2IDEyOC45NDdDMTU2Ljc5NiAxMjkuMDE0IDE1Ni42NiAxMjkuMDQ3IDE1Ni40OTkgMTI5LjA0N0MxNTYuMzM5IDEyOS4wNDcgMTU2LjIwMiAxMjkuMDE0IDE1Ni4wODggMTI4Ljk0N0MxNTUuOTc2IDEyOC44OCAxNTUuODkxIDEyOC43OTEgMTU1LjgzMiAxMjguNjgxQzE1NS43NzMgMTI4LjU3IDE1NS43NDQgMTI4LjQ0OSAxNTUuNzQ0IDEyOC4zMTdaTTE1Ni4xNTIgMTI4LjEyOVYxMjguMzE3QzE1Ni4xNTIgMTI4LjM4MiAxNTYuMTY0IDEyOC40NDQgMTU2LjE4OCAxMjguNTAyQzE1Ni4yMTUgMTI4LjU2MSAxNTYuMjU0IDEyOC42MDggMTU2LjMwNiAxMjguNjQ0QzE1Ni4zNTggMTI4LjY4IDE1Ni40MjIgMTI4LjY5OCAxNTYuNDk5IDEyOC42OThDMTU2LjU3NyAxMjguNjk4IDE1Ni42NCAxMjguNjggMTU2LjY4OSAxMjguNjQ0QzE1Ni43MzkgMTI4LjYwOCAxNTYuNzc3IDEyOC41NjEgMTU2LjgwMSAxMjguNTAyQzE1Ni44MjYgMTI4LjQ0NCAxNTYuODM4IDEyOC4zODIgMTU2LjgzOCAxMjguMzE3VjEyOC4xMjlDMTU2LjgzOCAxMjguMDYyIDE1Ni44MjUgMTI4IDE1Ni43OTkgMTI3Ljk0MUMxNTYuNzc0IDEyNy44ODEgMTU2LjczNyAxMjcuODMzIDE1Ni42ODcgMTI3Ljc5N0MxNTYuNjM2IDEyNy43NjEgMTU2LjU3MiAxMjcuNzQzIDE1Ni40OTQgMTI3Ljc0M0MxNTYuNDE5IDEyNy43NDMgMTU2LjM1NSAxMjcuNzYxIDE1Ni4zMDMgMTI3Ljc5N0MxNTYuMjUzIDEyNy44MzMgMTU2LjIxNSAxMjcuODgxIDE1Ni4xODggMTI3Ljk0MUMxNTYuMTY0IDEyOCAxNTYuMTUyIDEyOC4wNjIgMTU2LjE1MiAxMjguMTI5Wk0xNTcuNDU4IDEzMC4zMTlWMTMwLjEyOEMxNTcuNDU4IDEyOS45OTUgMTU3LjQ4NyAxMjkuODczIDE1Ny41NDYgMTI5Ljc2MkMxNTcuNjA2IDEyOS42NTIgMTU3LjY5MiAxMjkuNTYzIDE1Ny44MDUgMTI5LjQ5NkMxNTcuOTE3IDEyOS40MjkgMTU4LjA1MiAxMjkuMzk2IDE1OC4yMSAxMjkuMzk2QzE1OC4zNzMgMTI5LjM5NiAxNTguNTA5IDEyOS40MjkgMTU4LjYyIDEyOS40OTZDMTU4LjczMiAxMjkuNTYzIDE1OC44MTcgMTI5LjY1MiAxNTguODc0IDEyOS43NjJDMTU4LjkzMyAxMjkuODczIDE1OC45NjIgMTI5Ljk5NSAxNTguOTYyIDEzMC4xMjhWMTMwLjMxOUMxNTguOTYyIDEzMC40NTIgMTU4LjkzMyAxMzAuNTc0IDE1OC44NzQgMTMwLjY4NUMxNTguODE3IDEzMC43OTYgMTU4LjczMyAxMzAuODg0IDE1OC42MjMgMTMwLjk1MUMxNTguNTEyIDEzMS4wMTggMTU4LjM3NyAxMzEuMDUxIDE1OC4yMTcgMTMxLjA1MUMxNTguMDU2IDEzMS4wNTEgMTU3LjkxOSAxMzEuMDE4IDE1Ny44MDUgMTMwLjk1MUMxNTcuNjkyIDEzMC44ODQgMTU3LjYwNiAxMzAuNzk2IDE1Ny41NDYgMTMwLjY4NUMxNTcuNDg3IDEzMC41NzQgMTU3LjQ1OCAxMzAuNDUyIDE1Ny40NTggMTMwLjMxOVpNMTU3Ljg2OCAxMzAuMTI4VjEzMC4zMTlDMTU3Ljg2OCAxMzAuMzg0IDE1Ny44ODEgMTMwLjQ0NiAxNTcuOTA3IDEzMC41MDRDMTU3LjkzNSAxMzAuNTYzIDE1Ny45NzUgMTMwLjYxMSAxNTguMDI3IDEzMC42NDhDMTU4LjA3OSAxMzAuNjg0IDE1OC4xNDIgMTMwLjcwMiAxNTguMjE1IDEzMC43MDJDMTU4LjI5OCAxMzAuNzAyIDE1OC4zNjUgMTMwLjY4NCAxNTguNDE1IDEzMC42NDhDMTU4LjQ2NSAxMzAuNjExIDE1OC41MDEgMTMwLjU2NCAxNTguNTIyIDEzMC41MDdDMTU4LjU0NSAxMzAuNDQ4IDE1OC41NTcgMTMwLjM4NiAxNTguNTU3IDEzMC4zMTlWMTMwLjEyOEMxNTguNTU3IDEzMC4wNjIgMTU4LjU0NCAxMjkuOTk5IDE1OC41MTggMTI5Ljk0QzE1OC40OTMgMTI5Ljg4MiAxNTguNDU1IDEyOS44MzUgMTU4LjQwMyAxMjkuNzk5QzE1OC4zNTIgMTI5Ljc2MyAxNTguMjg4IDEyOS43NDUgMTU4LjIxIDEyOS43NDVDMTU4LjEzMyAxMjkuNzQ1IDE1OC4wNyAxMjkuNzYzIDE1OC4wMiAxMjkuNzk5QzE1Ny45NjkgMTI5LjgzNSAxNTcuOTMxIDEyOS44ODIgMTU3LjkwNSAxMjkuOTRDMTU3Ljg4IDEyOS45OTkgMTU3Ljg2OCAxMzAuMDYyIDE1Ny44NjggMTMwLjEyOFpNMTU4LjM1NiAxMjcuOTUzTDE1Ni42MjEgMTMwLjczMUwxNTYuMzIgMTMwLjU1OEwxNTguMDU2IDEyNy43OEwxNTguMzU2IDEyNy45NTNaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjwvZz4KPHJlY3QgeD0iMTAyLjI1IiB5PSI4Mi4yNSIgd2lkdGg9Ijk3LjUiIGhlaWdodD0iNzcuNSIgcng9IjEuNzUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIiBzdHJva2Utd2lkdGg9IjAuNSIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzM0NjFfNDY4ODYiIHg9IjM1LjcxNTUiIHk9IjQyLjIxNTUiIHdpZHRoPSIyNS41NjkiIGhlaWdodD0iMTYuNTY5IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjAuODkyMjQzIi8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ2ODg2Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ2ODg2IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8ZmlsdGVyIGlkPSJmaWx0ZXIxX2JfMzQ2MV80Njg4NiIgeD0iMTQ5LjIxNiIgeT0iMzkuMjE1NSIgd2lkdGg9IjI1LjU2OSIgaGVpZ2h0PSIxNi41NjkiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iMC44OTIyNDMiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfNDY4ODYiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfNDY4ODYiIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjJfYl8zNDYxXzQ2ODg2IiB4PSIzNS43MTU1IiB5PSIxMjEuMjE2IiB3aWR0aD0iMjUuNTY5IiBoZWlnaHQ9IjE2LjU2OSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIwLjg5MjI0MyIvPgo8ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMzQ2MV80Njg4NiIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMzQ2MV80Njg4NiIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPGZpbHRlciBpZD0iZmlsdGVyM19iXzM0NjFfNDY4ODYiIHg9IjEzOC43MTYiIHk9IjEyMC4yMTYiIHdpZHRoPSIyNS41NjkiIGhlaWdodD0iMTYuNTY5IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjAuODkyMjQzIi8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ2ODg2Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ2ODg2IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzM0NjFfNDY4ODYiPgo8cmVjdCB3aWR0aD0iNzEiIGhlaWdodD0iNjEiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMy41IDE2KSIvPgo8L2NsaXBQYXRoPgo8Y2xpcFBhdGggaWQ9ImNsaXAxXzM0NjFfNDY4ODYiPgo8cmVjdCB3aWR0aD0iNDYiIGhlaWdodD0iNDEuMjc2NiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI2LjUgMjYuNzIzNCkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K", - "description": "By visually representing the liquid's volume, these widgets help in monitoring, optimizing storage, and ensuring efficient operations. Suitable for a variety of storage setups, they are essential for industries requiring precise liquid management.", - "externalId": null, - "name": "Liquid level widgets" - }, - "widgetTypeFqns": [ - "vertical_oval_tank", - "horizontal_2_1_elliptical", - "horizontal_capsule_tank", - "horizontal_cylinder_tank", - "horizontal_dish_ends", - "horizontal_ellipse_tank", - "horizontal_oval_tank", - "rectangle_tank", - "vertical_capsule_tank", - "vertical_cylinder_tank" - ] -} \ No newline at end of file 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 new file mode 100644 index 0000000000..bb44f9a192 --- /dev/null +++ b/application/src/main/data/json/system/widget_bundles/liquid_level_tanks.json @@ -0,0 +1,22 @@ +{ + "widgetsBundle": { + "alias": "liquid_level_tanks", + "title": "Liquid level tanks", + "image": "data:image/png;base64,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", + "description": "By visually representing the liquid's volume, these widgets help in monitoring, optimizing storage, and ensuring efficient operations. Suitable for a variety of storage setups, they are essential for industries requiring precise liquid management.", + "externalId": null, + "name": "Liquid level tanks" + }, + "widgetTypeFqns": [ + "vertical_cylinder_tank", + "rectangle_tank", + "horizontal_cylinder_tank", + "horizontal_ellipse_tank", + "horizontal_oval_tank", + "vertical_oval_tank", + "horizontal_capsule_tank", + "vertical_capsule_tank", + "horizontal_2_1_elliptical", + "horizontal_dish_ends" + ] +} diff --git a/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json new file mode 100644 index 0000000000..be83bb2a3e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_2_1_elliptical", + "name": "Horizontal 2:1 elliptical", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Horizontal 2:1 elliptical tank.", + "descriptor": { + "type": "latest", + "sizeX": 4, + "sizeY": 4, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 deleted file mode 100644 index 086e544ab2..0000000000 --- a/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "fqn": "horizontal_2_1_elliptical", - "name": "Horizontal 2:1 Elliptical tank", - "deprecated": false, - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUxLjY2MzcgNTcuMDc4MUgxNDguMzM2VjEyNi41OTVINTEuNjYzN1Y1Ny4wNzgxWk01MS42NjM3IDEyNi41OTVMNTEuNjYzNiA1Ny4wNzgxQzQ3LjMxODggNTcuMDc4MSAzNy41NDMgNjcuMzk3MSAzNy41NDMgOTEuODM2OEMzNy41NDMgMTE2LjI3NiA0Ni43NzU3IDEyNi41OTUgNTEuNjYzNyAxMjYuNTk1Wk0xNDguMzM2IDEyNi41OTVMMTQ4LjMzNiA1Ny4wNzgxQzE1Mi42ODEgNTcuMDc4MSAxNjIuNDU3IDY3LjM5NzEgMTYyLjQ1NyA5MS44MzY4QzE2Mi40NTcgMTE2LjI3NiAxNTMuMjI0IDEyNi41OTUgMTQ4LjMzNiAxMjYuNTk1WiIgZmlsbD0iIzYyMTZGRiIgZmlsbC1vcGFjaXR5PSIwLjAyIi8+CjxwYXRoIGQ9Ik0xNDguMzM2IDU3LjA3ODFIMTQ4Ljg3OVY1Ni41MzVIMTQ4LjMzNlY1Ny4wNzgxWk01MS42NjM3IDU3LjA3ODFWNTYuNTM1SDUxLjEyMDZWNTcuMDc4MUg1MS42NjM3Wk01MS42NjM2IDU3LjA3ODFMNTIuMjA2NyA1Ny4wNzgxVjU2LjUzNUg1MS42NjM2VjU3LjA3ODFaTTE0OC4zMzYgNTcuMDc4MVY1Ni41MzVIMTQ3Ljc5M1Y1Ny4wNzgxTDE0OC4zMzYgNTcuMDc4MVpNMTQ4LjMzNiA1Ni41MzVINTEuNjYzN1Y1Ny42MjEySDE0OC4zMzZWNTYuNTM1Wk0xNDguODc5IDEyNi41OTVWNTcuMDc4MUgxNDcuNzkzVjEyNi41OTVIMTQ4Ljg3OVpNNTEuNjYzNyAxMjcuMTM4SDE0OC4zMzZWMTI2LjA1Mkg1MS42NjM3VjEyNy4xMzhaTTUxLjEyMDYgNTcuMDc4MVYxMjYuNTk1SDUyLjIwNjhWNTcuMDc4MUg1MS4xMjA2Wk01Mi4yMDY4IDEyNi41OTVMNTIuMjA2NyA1Ny4wNzgxTDUxLjEyMDUgNTcuMDc4MUw1MS4xMjA2IDEyNi41OTVINTIuMjA2OFpNNTEuNjYzNiA1Ni41MzVDNTAuMzg0OCA1Ni41MzUgNDguODM0NSA1Ny4yNzg3IDQ3LjI2NDggNTguNjY1M0M0NS42Nzg4IDYwLjA2NjIgNDQuMDExNyA2Mi4xNzU1IDQyLjQ5NDIgNjUuMDM4MkMzOS40NTc2IDcwLjc2NjIgMzYuOTk5OSA3OS41NDY5IDM2Ljk5OTkgOTEuODM2OEgzOC4wODYxQzM4LjA4NjEgNzkuNjg3IDQwLjUxNjMgNzEuMDg4MyA0My40NTM4IDY1LjU0N0M0NC45MjM0IDYyLjc3NDkgNDYuNTE0OSA2MC43NzcgNDcuOTgzOSA1OS40Nzk0QzQ5LjQ2OTEgNTguMTY3NCA1MC43NzAxIDU3LjYyMTIgNTEuNjYzNiA1Ny42MjEyVjU2LjUzNVpNMzYuOTk5OSA5MS44MzY4QzM2Ljk5OTkgMTA0LjEyMSAzOS4zMTk4IDExMi45MDEgNDIuMjg4MSAxMTguNjMxQzQzLjc3MTggMTIxLjQ5NSA0NS40MjM0IDEyMy42MDcgNDcuMDM5IDEyNS4wMTFDNDguNjQ0OCAxMjYuNDA2IDUwLjI2MDYgMTI3LjEzOSA1MS42NjM3IDEyNy4xMzhMNTEuNjYzNyAxMjYuMDUyQzUwLjYyMjcgMTI2LjA1MiA0OS4yNTE1IDEyNS40OTUgNDcuNzUxNCAxMjQuMTkxQzQ2LjI2MTEgMTIyLjg5NiA0NC42ODgxIDEyMC45MDIgNDMuMjUyNiAxMTguMTMxQzQwLjM4MjUgMTEyLjU5MSAzOC4wODYxIDEwMy45OTIgMzguMDg2MSA5MS44MzY4SDM2Ljk5OTlaTTE0Ny43OTMgNTcuMDc4MUwxNDcuNzkzIDEyNi41OTVIMTQ4Ljg3OUwxNDguODc5IDU3LjA3ODFMMTQ3Ljc5MyA1Ny4wNzgxWk0xNjMgOTEuODM2OEMxNjMgNzkuNTQ2OSAxNjAuNTQyIDcwLjc2NjIgMTU3LjUwNiA2NS4wMzgyQzE1NS45ODggNjIuMTc1NSAxNTQuMzIxIDYwLjA2NjIgMTUyLjczNSA1OC42NjUzQzE1MS4xNjUgNTcuMjc4NyAxNDkuNjE1IDU2LjUzNSAxNDguMzM2IDU2LjUzNVY1Ny42MjEyQzE0OS4yMyA1Ny42MjEyIDE1MC41MzEgNTguMTY3NCAxNTIuMDE2IDU5LjQ3OTRDMTUzLjQ4NSA2MC43NzcgMTU1LjA3NiA2Mi43NzQ5IDE1Ni41NDYgNjUuNTQ3QzE1OS40ODQgNzEuMDg4MyAxNjEuOTE0IDc5LjY4NyAxNjEuOTE0IDkxLjgzNjhIMTYzWk0xNDguMzM2IDEyNy4xMzhDMTQ5LjczOSAxMjcuMTM5IDE1MS4zNTUgMTI2LjQwNiAxNTIuOTYxIDEyNS4wMTFDMTU0LjU3NiAxMjMuNjA3IDE1Ni4yMjggMTIxLjQ5NSAxNTcuNzEyIDExOC42MzFDMTYwLjY4IDExMi45MDEgMTYzIDEwNC4xMjEgMTYzIDkxLjgzNjhIMTYxLjkxNEMxNjEuOTE0IDEwMy45OTIgMTU5LjYxNyAxMTIuNTkxIDE1Ni43NDcgMTE4LjEzMUMxNTUuMzEyIDEyMC45MDIgMTUzLjczOSAxMjIuODk2IDE1Mi4yNDggMTI0LjE5MUMxNTAuNzQ4IDEyNS40OTUgMTQ5LjM3NyAxMjYuMDUyIDE0OC4zMzYgMTI2LjA1MlYxMjcuMTM4WiIgZmlsbD0iIzI0Mjc3MCIvPgo8bWFzayBpZD0ibWFzazBfMzQ2MV81OTA4NSIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMzkiIHk9IjU4IiB3aWR0aD0iMTIyIiBoZWlnaHQ9IjY3Ij4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01MS42NjMzIDU4LjcwNzVIMTQ4LjMzNlYxMjQuOTY2SDUxLjY2MzNWNTguNzA3NVpNNTEuNjYzMyAxMjQuOTY2TDUxLjY2MzIgNTguNzA3NUM0OC40MDQ2IDU4LjcwNzUgMzkuMTcxOSA2OC41NDI4IDM5LjE3MTkgOTEuODM2OUMzOS4xNzE5IDExNS4xMzEgNDguNDA0NiAxMjQuOTY2IDUxLjY2MzMgMTI0Ljk2NlpNMTQ4LjMzNiAxMjQuOTY2TDE0OC4zMzYgNTguNzA3NUMxNTEuNTk0IDU4LjcwNzUgMTYwLjgyNyA2OC41NDI4IDE2MC44MjcgOTEuODM2OUMxNjAuODI3IDExNS4xMzEgMTUxLjU5NCAxMjQuOTY2IDE0OC4zMzYgMTI0Ljk2NloiIGZpbGw9IiNGMUYxRjkiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzM0NjFfNTkwODUpIj4KPHJlY3QgeD0iMzkuMTcxOSIgeT0iOTYuMDE3OCIgd2lkdGg9IjEyMS42NTUiIGhlaWdodD0iNjYuMjU4NyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzE5IiB5PSI5Ni4wMTc4IiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwNCIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzE5IiB5PSI5Ni4wMTc4IiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwNCIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPHBhdGggZD0iTTYzLjA2ODYgNTcuMDc4MUM1OS4zOCA2OS4xNzU1IDU0LjIxNjEgMTAwLjAxNSA2My4wNjg2IDEyNi41OTUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xMzYuOTMxIDU3LjA3ODFDMTMzLjI0MiA2OS4xNzU1IDEyOC4wNzggMTAwLjAxNSAxMzYuOTMxIDEyNi41OTUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJwYXRoLTExLWluc2lkZS0xXzM0NjFfNTkwODUiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMDguMTQ2IDQ3LjUzNTJIOTIuMzk2NVY1Ny4zMTFDOTIuMzk2NSA1OC4yMTA5IDk1LjkyMjIgNTguOTQwMyAxMDAuMjcxIDU4Ljk0MDNDMTA0LjYyMSA1OC45NDAzIDEwOC4xNDYgNTguMjEwOSAxMDguMTQ2IDU3LjMxMVY0Ny41MzUyWiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA4LjE0NiA0Ny41MzUySDkyLjM5NjVWNTcuMzExQzkyLjM5NjUgNTguMjEwOSA5NS45MjIyIDU4Ljk0MDMgMTAwLjI3MSA1OC45NDAzQzEwNC42MjEgNTguOTQwMyAxMDguMTQ2IDU4LjIxMDkgMTA4LjE0NiA1Ny4zMTFWNDcuNTM1MloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik05Mi4zOTY1IDQ3LjUzNTJWNDYuNDQ4OUg5MS4zMTAzVjQ3LjUzNTJIOTIuMzk2NVpNMTA4LjE0NiA0Ny41MzUySDEwOS4yMzNWNDYuNDQ4OUgxMDguMTQ2VjQ3LjUzNTJaTTkyLjM5NjUgNDguNjIxNEgxMDguMTQ2VjQ2LjQ0ODlIOTIuMzk2NVY0OC42MjE0Wk05My40ODI3IDU3LjMxMVY0Ny41MzUySDkxLjMxMDNWNTcuMzExSDkzLjQ4MjdaTTEwMC4yNzEgNTcuODU0MUM5OC4xNDc4IDU3Ljg1NDEgOTYuMjU2MyA1Ny42NzUzIDk0LjkyMzEgNTcuMzk5NEM5NC4yNDc2IDU3LjI1OTcgOTMuNzcyNSA1Ny4xMDY0IDkzLjQ5MjYgNTYuOTY5NUM5My4zNTA1IDU2LjkgOTMuMzE0NyA1Ni44NjE0IDkzLjMyODggNTYuODc1NkM5My4zNDYxIDU2Ljg5MzEgOTMuNDgyNyA1Ny4wNDIxIDkzLjQ4MjcgNTcuMzExSDkxLjMxMDNDOTEuMzEwMyA1Ny44MDUgOTEuNTU3MSA1OC4xNzM2IDkxLjc4NDIgNTguNDAzMkM5Mi4wMDggNTguNjI5NSA5Mi4yODE3IDU4Ljc5NTYgOTIuNTM4MSA1OC45MjFDOTMuMDU1MiA1OS4xNzM5IDkzLjczMzQgNTkuMzcxNyA5NC40ODI5IDU5LjUyNjhDOTUuOTk5OSA1OS44NDA3IDk4LjA0NTkgNjAuMDI2NSAxMDAuMjcxIDYwLjAyNjVWNTcuODU0MVpNMTA3LjA2IDU3LjMxMUMxMDcuMDYgNTcuMDQyMSAxMDcuMTk3IDU2Ljg5MzEgMTA3LjIxNCA1Ni44NzU2QzEwNy4yMjggNTYuODYxNCAxMDcuMTkzIDU2LjkgMTA3LjA1IDU2Ljk2OTVDMTA2Ljc3IDU3LjEwNjQgMTA2LjI5NSA1Ny4yNTk3IDEwNS42MiA1Ny4zOTk0QzEwNC4yODcgNTcuNjc1MyAxMDIuMzk1IDU3Ljg1NDEgMTAwLjI3MSA1Ny44NTQxVjYwLjAyNjVDMTAyLjQ5NyA2MC4wMjY1IDEwNC41NDMgNTkuODQwNyAxMDYuMDYgNTkuNTI2OEMxMDYuODEgNTkuMzcxNyAxMDcuNDg4IDU5LjE3MzkgMTA4LjAwNSA1OC45MjFDMTA4LjI2MSA1OC43OTU2IDEwOC41MzUgNTguNjI5NSAxMDguNzU5IDU4LjQwMzJDMTA4Ljk4NiA1OC4xNzM2IDEwOS4yMzMgNTcuODA1IDEwOS4yMzMgNTcuMzExSDEwNy4wNlpNMTA3LjA2IDQ3LjUzNTJWNTcuMzExSDEwOS4yMzNWNDcuNTM1MkgxMDcuMDZaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMTEtaW5zaWRlLTFfMzQ2MV81OTA4NSkiLz4KPHBhdGggZD0iTTEwNy44MDIgNDcuOTM3OUMxMDcuOTE3IDQ3Ljk5MDMgMTA4LjAwMSA0OC4wMzggMTA4LjA2IDQ4LjA3ODNDMTA4LjAwMSA0OC4xMTg2IDEwNy45MTcgNDguMTY2MyAxMDcuODAyIDQ4LjIxODZDMTA3LjQzMyA0OC4zODc0IDEwNi44NjUgNDguNTUzMSAxMDYuMTIxIDQ4LjY5NzJDMTA0LjY0MSA0OC45ODM3IDEwMi41NzIgNDkuMTY0NSAxMDAuMjcyIDQ5LjE2NDVDOTcuOTcwOCA0OS4xNjQ1IDk1LjkwMjUgNDguOTgzNyA5NC40MjIzIDQ4LjY5NzJDOTMuNjc3OCA0OC41NTMxIDkzLjEwOTggNDguMzg3NCA5Mi43NDEgNDguMjE4NkM5Mi42MjY2IDQ4LjE2NjMgOTIuNTQyNSA0OC4xMTg2IDkyLjQ4MjcgNDguMDc4M0M5Mi41NDI1IDQ4LjAzOCA5Mi42MjY2IDQ3Ljk5MDMgOTIuNzQxIDQ3LjkzNzlDOTMuMTA5OCA0Ny43NjkyIDkzLjY3NzggNDcuNjAzNSA5NC40MjIzIDQ3LjQ1OTRDOTUuOTAyNSA0Ny4xNzI5IDk3Ljk3MDggNDYuOTkyMSAxMDAuMjcyIDQ2Ljk5MjFDMTAyLjU3MiA0Ni45OTIxIDEwNC42NDEgNDcuMTcyOSAxMDYuMTIxIDQ3LjQ1OTRDMTA2Ljg2NSA0Ny42MDM1IDEwNy40MzMgNDcuNzY5MiAxMDcuODAyIDQ3LjkzNzlaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEwNy44MDIgNDYuMzA4NUMxMDcuOTE3IDQ2LjM2MDkgMTA4LjAwMSA0Ni40MDg2IDEwOC4wNiA0Ni40NDg5QzEwOC4wMDEgNDYuNDg5MiAxMDcuOTE3IDQ2LjUzNjkgMTA3LjgwMiA0Ni41ODkyQzEwNy40MzMgNDYuNzU4IDEwNi44NjUgNDYuOTIzNyAxMDYuMTIxIDQ3LjA2NzhDMTA0LjY0MSA0Ny4zNTQzIDEwMi41NzIgNDcuNTM1MSAxMDAuMjcyIDQ3LjUzNTFDOTcuOTcwOCA0Ny41MzUxIDk1LjkwMjUgNDcuMzU0MyA5NC40MjIzIDQ3LjA2NzhDOTMuNjc3OCA0Ni45MjM3IDkzLjEwOTggNDYuNzU4IDkyLjc0MSA0Ni41ODkyQzkyLjYyNjYgNDYuNTM2OSA5Mi41NDI1IDQ2LjQ4OTIgOTIuNDgyNyA0Ni40NDg5QzkyLjU0MjUgNDYuNDA4NiA5Mi42MjY2IDQ2LjM2MDkgOTIuNzQxIDQ2LjMwODVDOTMuMTA5OCA0Ni4xMzk4IDkzLjY3NzggNDUuOTc0MSA5NC40MjIzIDQ1LjgzQzk1LjkwMjUgNDUuNTQzNSA5Ny45NzA4IDQ1LjM2MjcgMTAwLjI3MiA0NS4zNjI3QzEwMi41NzIgNDUuMzYyNyAxMDQuNjQxIDQ1LjU0MzUgMTA2LjEyMSA0NS44M0MxMDYuODY1IDQ1Ljk3NDEgMTA3LjQzMyA0Ni4xMzk4IDEwNy44MDIgNDYuMzA4NVoiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMF9iXzM0NjFfNTkwODUpIj4KPHJlY3QgeD0iNzYuMzczIiB5PSI3OS41NjMiIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik04OS43NDk5IDkzLjUxMzFWOTQuODc4NEg4Mi4yODNMODIuMjI2MSA5My44NDczTDg2LjY5MiA4Ni44NDk3SDg4LjA2NDVMODYuNTc4MyA4OS4zOTU2TDg0LjAxMSA5My41MTMxSDg5Ljc0OTlaTTg4LjQ1NTcgODYuODQ5N1Y5Ny4yMDM5SDg2Ljc0MThWODYuODQ5N0g4OC40NTU3Wk05Ny42NDM2IDkxLjE1OTJWOTIuODUxN0M5Ny42NDM2IDkzLjY2MjQgOTcuNTYzIDk0LjM1NDYgOTcuNDAxOCA5NC45MjgyQzk3LjI0NTMgOTUuNDk3MSA5Ny4wMTc4IDk1Ljk1OTQgOTYuNzE5MSA5Ni4zMTQ5Qzk2LjQyMDQgOTYuNjcwNSA5Ni4wNjI1IDk2LjkzMTMgOTUuNjQ1MyA5Ny4wOTcyQzk1LjIzMjggOTcuMjYzMSA5NC43NzA2IDk3LjM0NjEgOTQuMjU4NSA5Ny4zNDYxQzkzLjg1MDggOTcuMzQ2MSA5My40NzE1IDk3LjI5MzkgOTMuMTIwNyA5Ny4xODk2QzkyLjc3NDYgOTcuMDg1MyA5Mi40NjE3IDk2LjkyMTggOTIuMTgyIDk2LjY5ODlDOTEuOTAyMyA5Ni40NzYxIDkxLjY2MjkgOTYuMTg5MyA5MS40NjM4IDk1LjgzODVDOTEuMjY5NCA5NS40ODI5IDkxLjExNzcgOTUuMDU4NiA5MS4wMDg2IDk0LjU2NTVDOTAuOTA0MyA5NC4wNzI1IDkwLjg1MjIgOTMuNTAxMiA5MC44NTIyIDkyLjg1MTdWOTEuMTU5MkM5MC44NTIyIDkwLjM0MzcgOTAuOTMyOCA4OS42NTYzIDkxLjA5NCA4OS4wOTY5QzkxLjI1NTIgODguNTMyNyA5MS40ODUxIDg4LjA3NTIgOTEuNzgzOCA4Ny43MjQ0QzkyLjA4MjUgODcuMzY4OCA5Mi40MzggODcuMTEwNCA5Mi44NTA1IDg2Ljk0OTNDOTMuMjY3NyA4Ni43ODgxIDkzLjczMjMgODYuNzA3NSA5NC4yNDQzIDg2LjcwNzVDOTQuNjU2OCA4Ni43MDc1IDk1LjAzNiA4Ni43NTk2IDk1LjM4MjEgODYuODYzOUM5NS43MzMgODYuOTYzNSA5Ni4wNDU5IDg3LjEyMjMgOTYuMzIwOCA4Ny4zNDA0Qzk2LjYwMDYgODcuNTU4NSA5Ni44Mzc2IDg3Ljg0MjkgOTcuMDMyIDg4LjE5MzdDOTcuMjMxMSA4OC41Mzk4IDk3LjM4MjggODguOTU5NCA5Ny40ODcxIDg5LjQ1MjVDOTcuNTkxNCA4OS45NDA4IDk3LjY0MzYgOTAuNTA5NyA5Ny42NDM2IDkxLjE1OTJaTTk1LjkyOTcgOTMuMDkzNVY5MC45MDMyQzk1LjkyOTcgOTAuNDkwNyA5NS45MDYgOTAuMTI4IDk1Ljg1ODYgODkuODE1MUM5NS44MTEyIDg5LjQ5NzUgOTUuNzQwMSA4OS4yMjk2IDk1LjY0NTMgODkuMDExNUM5NS41NTUyIDg4Ljc4ODcgOTUuNDQxNCA4OC42MDg2IDk1LjMwMzkgODguNDcxMUM5NS4xNjY0IDg4LjMyODkgOTUuMDEgODguMjI2OSA5NC44MzQ2IDg4LjE2NTNDOTQuNjU5MSA4OC4wOTg5IDk0LjQ2MjQgODguMDY1NyA5NC4yNDQzIDg4LjA2NTdDOTMuOTc4OCA4OC4wNjU3IDkzLjc0MTggODguMTE3OSA5My41MzMyIDg4LjIyMjJDOTMuMzI0NiA4OC4zMjE3IDkzLjE0OTIgODguNDgyOSA5My4wMDY5IDg4LjcwNThDOTIuODY0NyA4OC45Mjg2IDkyLjc1NTcgODkuMjIyNSA5Mi42Nzk4IDg5LjU4NzZDOTIuNjA4NyA4OS45NDc5IDkyLjU3MzEgOTAuMzg2NCA5Mi41NzMxIDkwLjkwMzJWOTMuMDkzNUM5Mi41NzMxIDkzLjUxMDcgOTIuNTk2OCA5My44NzgxIDkyLjY0NDMgOTQuMTk1N0M5Mi42OTE3IDk0LjUxMzQgOTIuNzYyOCA5NC43ODYgOTIuODU3NiA5NS4wMTM2QzkyLjk1MjQgOTUuMjM2NCA5My4wNjYyIDk1LjQyMTMgOTMuMTk4OSA5NS41NjgyQzkzLjMzNjQgOTUuNzEwNSA5My40OTI5IDk1LjgxNDggOTMuNjY4MyA5NS44ODExQzkzLjg0ODQgOTUuOTQ3NSA5NC4wNDUyIDk1Ljk4MDcgOTQuMjU4NSA5NS45ODA3Qzk0LjUyODggOTUuOTgwNyA5NC43NjgyIDk1LjkyODYgOTQuOTc2OCA5NS44MjQzQzk1LjE4NTQgOTUuNzE5OSA5NS4zNjA4IDk1LjU1NCA5NS41MDMgOTUuMzI2NUM5NS42NDUzIDk1LjA5NDEgOTUuNzUxOSA5NC43OTMxIDk1LjgyMyA5NC40MjMzQzk1Ljg5NDIgOTQuMDUzNSA5NS45Mjk3IDkzLjYxMDIgOTUuOTI5NyA5My4wOTM1WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNMTAyLjkyIDkyLjMxOTVWOTEuOTc3MkMxMDIuOTIgOTEuNzMxMyAxMDIuOTczIDkxLjUwNzYgMTAzLjA4IDkxLjMwNjFDMTAzLjE4NyA5MS4xMDQ2IDEwMy4zNDIgOTAuOTQzMSAxMDMuNTQ3IDkwLjgyMTZDMTAzLjc1MSA5MC43MDAyIDEwMy45OTcgOTAuNjM5NCAxMDQuMjg1IDkwLjYzOTRDMTA0LjU4MSA5MC42Mzk0IDEwNC44MyA5MC43MDAyIDEwNS4wMzEgOTAuODIxNkMxMDUuMjM2IDkwLjk0MzEgMTA1LjM5MSA5MS4xMDQ2IDEwNS40OTggOTEuMzA2MUMxMDUuNjA1IDkxLjUwNzYgMTA1LjY1OCA5MS43MzEzIDEwNS42NTggOTEuOTc3MlY5Mi4zMTk1QzEwNS42NTggOTIuNTU5NSAxMDUuNjA1IDkyLjc4MDIgMTA1LjQ5OCA5Mi45ODE3QzEwNS4zOTQgOTMuMTgzMiAxMDUuMjQgOTMuMzQ0NyAxMDUuMDM2IDkzLjQ2NjJDMTA0LjgzNCA5My41ODc3IDEwNC41ODcgOTMuNjQ4NCAxMDQuMjkzIDkzLjY0ODRDMTA0LjAwMyA5My42NDg0IDEwMy43NTQgOTMuNTg3NyAxMDMuNTQ3IDkzLjQ2NjJDMTAzLjM0MiA5My4zNDQ3IDEwMy4xODcgOTMuMTgzMiAxMDMuMDggOTIuOTgxN0MxMDIuOTczIDkyLjc4MDIgMTAyLjkyIDkyLjU1OTUgMTAyLjkyIDkyLjMxOTVaTTEwMy42NjIgOTEuOTc3MlY5Mi4zMTk1QzEwMy42NjIgOTIuNDM4IDEwMy42ODUgOTIuNTUwNiAxMDMuNzI5IDkyLjY1NzNDMTAzLjc3NiA5Mi43NjM5IDEwMy44NDcgOTIuODQ5OSAxMDMuOTQyIDkyLjkxNTFDMTA0LjAzNyA5Mi45ODAyIDEwNC4xNTQgOTMuMDEyOCAxMDQuMjkzIDkzLjAxMjhDMTA0LjQzNiA5My4wMTI4IDEwNC41NTEgOTIuOTgwMiAxMDQuNjQgOTIuOTE1MUMxMDQuNzMyIDkyLjg0OTkgMTA0LjggOTIuNzYzOSAxMDQuODQ1IDkyLjY1NzNDMTA0Ljg4OSA5Mi41NTA2IDEwNC45MTEgOTIuNDM4IDEwNC45MTEgOTIuMzE5NVY5MS45NzcyQzEwNC45MTEgOTEuODU1OCAxMDQuODg4IDkxLjc0MTcgMTA0Ljg0IDkxLjYzNUMxMDQuNzk2IDkxLjUyNTQgMTA0LjcyOCA5MS40MzggMTA0LjYzNiA5MS4zNzI4QzEwNC41NDQgOTEuMzA3NiAxMDQuNDI3IDkxLjI3NSAxMDQuMjg1IDkxLjI3NUMxMDQuMTQ4IDkxLjI3NSAxMDQuMDMzIDkxLjMwNzYgMTAzLjkzOCA5MS4zNzI4QzEwMy44NDYgOTEuNDM4IDEwMy43NzYgOTEuNTI1NCAxMDMuNzI5IDkxLjYzNUMxMDMuNjg1IDkxLjc0MTcgMTAzLjY2MiA5MS44NTU4IDEwMy42NjIgOTEuOTc3MlpNMTA2LjA0IDk1Ljk2NDFWOTUuNjE3NEMxMDYuMDQgOTUuMzc0NCAxMDYuMDkzIDk1LjE1MjIgMTA2LjIgOTQuOTUwN0MxMDYuMzEgOTQuNzQ5MiAxMDYuNDY3IDk0LjU4NzcgMTA2LjY3MSA5NC40NjYyQzEwNi44NzYgOTQuMzQ0NyAxMDcuMTIyIDk0LjI4NCAxMDcuNDA5IDk0LjI4NEMxMDcuNzA1IDk0LjI4NCAxMDcuOTU0IDk0LjM0NDcgMTA4LjE1NiA5NC40NjYyQzEwOC4zNiA5NC41ODc3IDEwOC41MTQgOTQuNzQ5MiAxMDguNjE4IDk0Ljk1MDdDMTA4LjcyNSA5NS4xNTIyIDEwOC43NzggOTUuMzc0NCAxMDguNzc4IDk1LjYxNzRWOTUuOTY0MUMxMDguNzc4IDk2LjIwNyAxMDguNzI1IDk2LjQyOTMgMTA4LjYxOCA5Ni42MzA3QzEwOC41MTQgOTYuODMyMiAxMDguMzYyIDk2Ljk5MzcgMTA4LjE2IDk3LjExNTJDMTA3Ljk1OSA5Ny4yMzY3IDEwNy43MTMgOTcuMjk3NCAxMDcuNDIyIDk3LjI5NzRDMTA3LjEyOSA5Ny4yOTc0IDEwNi44NzkgOTcuMjM2NyAxMDYuNjcxIDk3LjExNTJDMTA2LjQ2NyA5Ni45OTM3IDEwNi4zMSA5Ni44MzIyIDEwNi4yIDk2LjYzMDdDMTA2LjA5MyA5Ni40MjkzIDEwNi4wNCA5Ni4yMDcgMTA2LjA0IDk1Ljk2NDFaTTEwNi43ODcgOTUuNjE3NFY5NS45NjQxQzEwNi43ODcgOTYuMDgyNiAxMDYuODExIDk2LjE5NTIgMTA2Ljg1OCA5Ni4zMDE4QzEwNi45MDggOTYuNDA4NSAxMDYuOTgxIDk2LjQ5NTkgMTA3LjA3NiA5Ni41NjQxQzEwNy4xNzEgOTYuNjI5MyAxMDcuMjg1IDk2LjY2MTkgMTA3LjQxOCA5Ni42NjE5QzEwNy41NjkgOTYuNjYxOSAxMDcuNjkxIDk2LjYyOTMgMTA3Ljc4MiA5Ni41NjQxQzEwNy44NzQgOTYuNDk1OSAxMDcuOTM5IDk2LjQxIDEwNy45NzggOTYuMzA2M0MxMDguMDE5IDk2LjE5OTYgMTA4LjA0IDk2LjA4NTUgMTA4LjA0IDk1Ljk2NDFWOTUuNjE3NEMxMDguMDQgOTUuNDk1OSAxMDguMDE3IDk1LjM4MTggMTA3Ljk2OSA5NS4yNzUxQzEwNy45MjUgOTUuMTY4NSAxMDcuODU1IDk1LjA4MjUgMTA3Ljc2IDk1LjAxNzRDMTA3LjY2OCA5NC45NTIyIDEwNy41NTEgOTQuOTE5NiAxMDcuNDA5IDk0LjkxOTZDMTA3LjI3IDk0LjkxOTYgMTA3LjE1NCA5NC45NTIyIDEwNy4wNjIgOTUuMDE3NEMxMDYuOTcxIDk1LjA4MjUgMTA2LjkwMSA5NS4xNjg1IDEwNi44NTQgOTUuMjc1MUMxMDYuODA5IDk1LjM4MTggMTA2Ljc4NyA5NS40OTU5IDEwNi43ODcgOTUuNjE3NFpNMTA3LjY3NiA5MS42NTcyTDEwNC41MTYgOTYuNzE1MkwxMDMuOTY5IDk2LjM5OTZMMTA3LjEyOSA5MS4zNDE3TDEwNy42NzYgOTEuNjU3MloiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPC9nPgo8cmVjdCB4PSIwLjUiIHk9IjAuNSIgd2lkdGg9IjE5OSIgaGVpZ2h0PSIxNTkiIHJ4PSIzLjUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIi8+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2JfMzQ2MV81OTA4NSIgeD0iNzMuMTI0NCIgeT0iNzYuMzE0MyIgd2lkdGg9IjQ1LjA2MTgiIGhlaWdodD0iMjkuOTU4OCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjYyNDM0Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzU5MDg1Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzU5MDg1IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", - "description": "Widget indicates the level of liquid in Horizontal 2:1 Elliptical tank.", - "descriptor": { - "type": "latest", - "sizeX": 7.5, - "sizeY": 3, - "resources": [], - "templateHtml": "\n", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", - "settingsSchema": "{}", - "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-liquid-level-card-widget-settings", - "hasBasicMode": true, - "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" - }, - "externalId": null, - "tags": null -} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_capsule.json b/application/src/main/data/json/system/widget_types/horizontal_capsule.json new file mode 100644 index 0000000000..9bd6ffe5d1 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_capsule.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_capsule_tank", + "name": "Horizontal capsule", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Horizontal capsule tank.", + "descriptor": { + "type": "latest", + "sizeX": 4, + "sizeY": 4, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 deleted file mode 100644 index 60765a5c7e..0000000000 --- a/application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "fqn": "horizontal_capsule_tank", - "name": "Horizontal Capsule tank", - "deprecated": false, - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cmVjdCB4PSI0Mi45NzM4IiB5PSI1Ni43NjgiIHdpZHRoPSIxMTQuMDUyIiBoZWlnaHQ9IjY4LjQzMTEiIHJ4PSIzNC4yMTU1IiBmaWxsPSIjNjIxNkZGIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJtYXNrMF8zNDYxXzM4Mjk1IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI0NCIgeT0iNTgiIHdpZHRoPSIxMTIiIGhlaWdodD0iNjYiPgo8cmVjdCB4PSI0NS4xNDY2IiB5PSI1OC45NDAzIiB3aWR0aD0iMTA5LjcwNyIgaGVpZ2h0PSI2NC4wODYyIiByeD0iMzIuMDQzMSIgZmlsbD0iI0YxRjFGOSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzM0NjFfMzgyOTUpIj4KPHJlY3QgeD0iNDQuNjAzNSIgeT0iOTUuMzI4NCIgd2lkdGg9IjExMS4zMzYiIGhlaWdodD0iNjUuMTcyNCIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSI0NC42MDM1IiB5PSI5NS4zMjg0IiB3aWR0aD0iMTExLjMzNiIgaGVpZ2h0PSIwLjU0MzEwNCIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSI0NC42MDM1IiB5PSI5NS4zMjg0IiB3aWR0aD0iMTExLjMzNiIgaGVpZ2h0PSIwLjU0MzEwNCIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPHBhdGggZD0iTTc2LjEwMjcgNTYuNzY3OEM2OS41NDUzIDY3LjEyNzkgNjAuMzY0OSA5NS4zMTgyIDc2LjEwMjcgMTI1LjE5OSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEyMy44OTYgNTYuNzY3OEMxMTcuMzM4IDY3LjEyNzkgMTA4LjE1OCA5NS4zMTgyIDEyMy44OTYgMTI1LjE5OSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPG1hc2sgaWQ9InBhdGgtMTAtaW5zaWRlLTFfMzQ2MV8zODI5NSIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwNi41MTcgNDcuNTM1Mkg5MC43NjY2VjU3LjMxMUM5MC43NjY2IDU4LjIxMDkgOTQuMjkyNCA1OC45NDAzIDk4LjY0MTYgNTguOTQwM0MxMDIuOTkxIDU4Ljk0MDMgMTA2LjUxNyA1OC4yMTA5IDEwNi41MTcgNTcuMzExVjQ3LjUzNTJaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMDYuNTE3IDQ3LjUzNTJIOTAuNzY2NlY1Ny4zMTFDOTAuNzY2NiA1OC4yMTA5IDk0LjI5MjQgNTguOTQwMyA5OC42NDE2IDU4Ljk0MDNDMTAyLjk5MSA1OC45NDAzIDEwNi41MTcgNTguMjEwOSAxMDYuNTE3IDU3LjMxMVY0Ny41MzUyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTkwLjc2NjYgNDcuNTM1MlY0Ni40NDg5SDg5LjY4MDRWNDcuNTM1Mkg5MC43NjY2Wk0xMDYuNTE3IDQ3LjUzNTJIMTA3LjYwM1Y0Ni40NDg5SDEwNi41MTdWNDcuNTM1MlpNOTAuNzY2NiA0OC42MjE0SDEwNi41MTdWNDYuNDQ4OUg5MC43NjY2VjQ4LjYyMTRaTTkxLjg1MjggNTcuMzExVjQ3LjUzNTJIODkuNjgwNFY1Ny4zMTFIOTEuODUyOFpNOTguNjQxNiA1Ny44NTQxQzk2LjUxNzkgNTcuODU0MSA5NC42MjY0IDU3LjY3NTMgOTMuMjkzMiA1Ny4zOTk0QzkyLjYxNzcgNTcuMjU5NyA5Mi4xNDI2IDU3LjEwNjQgOTEuODYyNyA1Ni45Njk1QzkxLjcyMDYgNTYuOSA5MS42ODQ5IDU2Ljg2MTQgOTEuNjk4OSA1Ni44NzU2QzkxLjcxNjIgNTYuODkzMSA5MS44NTI4IDU3LjA0MjEgOTEuODUyOCA1Ny4zMTFIODkuNjgwNEM4OS42ODA0IDU3LjgwNSA4OS45MjcyIDU4LjE3MzYgOTAuMTU0MyA1OC40MDMyQzkwLjM3ODEgNTguNjI5NSA5MC42NTE4IDU4Ljc5NTYgOTAuOTA4MiA1OC45MjFDOTEuNDI1MyA1OS4xNzM5IDkyLjEwMzUgNTkuMzcxNyA5Mi44NTMxIDU5LjUyNjhDOTQuMzcgNTkuODQwNyA5Ni40MTYgNjAuMDI2NSA5OC42NDE2IDYwLjAyNjVWNTcuODU0MVpNMTA1LjQzIDU3LjMxMUMxMDUuNDMgNTcuMDQyMSAxMDUuNTY3IDU2Ljg5MzEgMTA1LjU4NCA1Ni44NzU2QzEwNS41OTggNTYuODYxNCAxMDUuNTYzIDU2LjkgMTA1LjQyIDU2Ljk2OTVDMTA1LjE0MSA1Ny4xMDY0IDEwNC42NjYgNTcuMjU5NyAxMDMuOTkgNTcuMzk5NEMxMDIuNjU3IDU3LjY3NTMgMTAwLjc2NSA1Ny44NTQxIDk4LjY0MTYgNTcuODU0MVY2MC4wMjY1QzEwMC44NjcgNjAuMDI2NSAxMDIuOTEzIDU5Ljg0MDcgMTA0LjQzIDU5LjUyNjhDMTA1LjE4IDU5LjM3MTcgMTA1Ljg1OCA1OS4xNzM5IDEwNi4zNzUgNTguOTIxQzEwNi42MzEgNTguNzk1NiAxMDYuOTA1IDU4LjYyOTUgMTA3LjEyOSA1OC40MDMyQzEwNy4zNTYgNTguMTczNiAxMDcuNjAzIDU3LjgwNSAxMDcuNjAzIDU3LjMxMUgxMDUuNDNaTTEwNS40MyA0Ny41MzUyVjU3LjMxMUgxMDcuNjAzVjQ3LjUzNTJIMTA1LjQzWiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTEwLWluc2lkZS0xXzM0NjFfMzgyOTUpIi8+CjxwYXRoIGQ9Ik0xMDYuMTcyIDQ3LjkzNzlDMTA2LjI4NyA0Ny45OTAzIDEwNi4zNzEgNDguMDM4IDEwNi40MzEgNDguMDc4M0MxMDYuMzcxIDQ4LjExODYgMTA2LjI4NyA0OC4xNjYzIDEwNi4xNzIgNDguMjE4NkMxMDUuODA0IDQ4LjM4NzQgMTA1LjIzNiA0OC41NTMxIDEwNC40OTEgNDguNjk3MkMxMDMuMDExIDQ4Ljk4MzcgMTAwLjk0MyA0OS4xNjQ1IDk4LjY0MTcgNDkuMTY0NUM5Ni4zNDA5IDQ5LjE2NDUgOTQuMjcyNiA0OC45ODM3IDkyLjc5MjQgNDguNjk3MkM5Mi4wNDc5IDQ4LjU1MzEgOTEuNDggNDguMzg3NCA5MS4xMTEyIDQ4LjIxODZDOTAuOTk2NyA0OC4xNjYzIDkwLjkxMjYgNDguMTE4NiA5MC44NTI5IDQ4LjA3ODNDOTAuOTEyNiA0OC4wMzggOTAuOTk2NyA0Ny45OTAzIDkxLjExMTIgNDcuOTM3OUM5MS40OCA0Ny43NjkyIDkyLjA0NzkgNDcuNjAzNSA5Mi43OTI0IDQ3LjQ1OTRDOTQuMjcyNiA0Ny4xNzI5IDk2LjM0MDkgNDYuOTkyMSA5OC42NDE3IDQ2Ljk5MjFDMTAwLjk0MyA0Ni45OTIxIDEwMy4wMTEgNDcuMTcyOSAxMDQuNDkxIDQ3LjQ1OTRDMTA1LjIzNiA0Ny42MDM1IDEwNS44MDQgNDcuNzY5MiAxMDYuMTcyIDQ3LjkzNzlaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEwNi4xNzIgNDYuMzA4NUMxMDYuMjg3IDQ2LjM2MDkgMTA2LjM3MSA0Ni40MDg2IDEwNi40MzEgNDYuNDQ4OUMxMDYuMzcxIDQ2LjQ4OTIgMTA2LjI4NyA0Ni41MzY5IDEwNi4xNzIgNDYuNTg5MkMxMDUuODA0IDQ2Ljc1OCAxMDUuMjM2IDQ2LjkyMzcgMTA0LjQ5MSA0Ny4wNjc4QzEwMy4wMTEgNDcuMzU0MyAxMDAuOTQzIDQ3LjUzNTEgOTguNjQxNyA0Ny41MzUxQzk2LjM0MDkgNDcuNTM1MSA5NC4yNzI2IDQ3LjM1NDMgOTIuNzkyNCA0Ny4wNjc4QzkyLjA0NzkgNDYuOTIzNyA5MS40OCA0Ni43NTggOTEuMTExMiA0Ni41ODkyQzkwLjk5NjcgNDYuNTM2OSA5MC45MTI2IDQ2LjQ4OTIgOTAuODUyOSA0Ni40NDg5QzkwLjkxMjYgNDYuNDA4NiA5MC45OTY3IDQ2LjM2MDkgOTEuMTExMiA0Ni4zMDg1QzkxLjQ4IDQ2LjEzOTggOTIuMDQ3OSA0NS45NzQxIDkyLjc5MjQgNDUuODNDOTQuMjcyNiA0NS41NDM1IDk2LjM0MDkgNDUuMzYyNyA5OC42NDE3IDQ1LjM2MjdDMTAwLjk0MyA0NS4zNjI3IDEwMy4wMTEgNDUuNTQzNSAxMDQuNDkxIDQ1LjgzQzEwNS4yMzYgNDUuOTc0MSAxMDUuODA0IDQ2LjEzOTggMTA2LjE3MiA0Ni4zMDg1WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2JfMzQ2MV8zODI5NSkiPgo8cmVjdCB4PSI3My4xMTQzIiB5PSI3OS41NjMiIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik04Ni40OTExIDkzLjUxMzFWOTQuODc4NEg3OS4wMjQyTDc4Ljk2NzMgOTMuODQ3M0w4My40MzMyIDg2Ljg0OTdIODQuODA1N0w4My4zMTk1IDg5LjM5NTZMODAuNzUyMyA5My41MTMxSDg2LjQ5MTFaTTg1LjE5NjkgODYuODQ5N1Y5Ny4yMDM5SDgzLjQ4M1Y4Ni44NDk3SDg1LjE5NjlaTTk0LjM4NDggOTEuMTU5MlY5Mi44NTE3Qzk0LjM4NDggOTMuNjYyNCA5NC4zMDQyIDk0LjM1NDYgOTQuMTQzIDk0LjkyODJDOTMuOTg2NSA5NS40OTcxIDkzLjc1OSA5NS45NTk0IDkzLjQ2MDMgOTYuMzE0OUM5My4xNjE2IDk2LjY3MDUgOTIuODAzNyA5Ni45MzEzIDkyLjM4NjUgOTcuMDk3MkM5MS45NzQgOTcuMjYzMSA5MS41MTE4IDk3LjM0NjEgOTAuOTk5NyA5Ny4zNDYxQzkwLjU5MiA5Ny4zNDYxIDkwLjIxMjggOTcuMjkzOSA4OS44NjE5IDk3LjE4OTZDODkuNTE1OCA5Ny4wODUzIDg5LjIwMjkgOTYuOTIxOCA4OC45MjMyIDk2LjY5ODlDODguNjQzNSA5Ni40NzYxIDg4LjQwNDEgOTYuMTg5MyA4OC4yMDUgOTUuODM4NUM4OC4wMTA2IDk1LjQ4MjkgODcuODU4OSA5NS4wNTg2IDg3Ljc0OTggOTQuNTY1NUM4Ny42NDU1IDk0LjA3MjUgODcuNTkzNCA5My41MDEyIDg3LjU5MzQgOTIuODUxN1Y5MS4xNTkyQzg3LjU5MzQgOTAuMzQzNyA4Ny42NzQgODkuNjU2MyA4Ny44MzUyIDg5LjA5NjlDODcuOTk2NCA4OC41MzI3IDg4LjIyNjMgODguMDc1MiA4OC41MjUgODcuNzI0NEM4OC44MjM3IDg3LjM2ODggODkuMTc5MiA4Ny4xMTA0IDg5LjU5MTcgODYuOTQ5M0M5MC4wMDg5IDg2Ljc4ODEgOTAuNDczNSA4Ni43MDc1IDkwLjk4NTUgODYuNzA3NUM5MS4zOTggODYuNzA3NSA5MS43NzczIDg2Ljc1OTYgOTIuMTIzMyA4Ni44NjM5QzkyLjQ3NDIgODYuOTYzNSA5Mi43ODcxIDg3LjEyMjMgOTMuMDYyIDg3LjM0MDRDOTMuMzQxOCA4Ny41NTg1IDkzLjU3ODggODcuODQyOSA5My43NzMyIDg4LjE5MzdDOTMuOTcyMyA4OC41Mzk4IDk0LjEyNCA4OC45NTk0IDk0LjIyODMgODkuNDUyNUM5NC4zMzI2IDg5Ljk0MDggOTQuMzg0OCA5MC41MDk3IDk0LjM4NDggOTEuMTU5MlpNOTIuNjcwOSA5My4wOTM1VjkwLjkwMzJDOTIuNjcwOSA5MC40OTA3IDkyLjY0NzIgOTAuMTI4IDkyLjU5OTggODkuODE1MUM5Mi41NTI0IDg5LjQ5NzUgOTIuNDgxMyA4OS4yMjk2IDkyLjM4NjUgODkuMDExNUM5Mi4yOTY0IDg4Ljc4ODcgOTIuMTgyNiA4OC42MDg2IDkyLjA0NTEgODguNDcxMUM5MS45MDc2IDg4LjMyODkgOTEuNzUxMiA4OC4yMjY5IDkxLjU3NTggODguMTY1M0M5MS40MDA0IDg4LjA5ODkgOTEuMjAzNiA4OC4wNjU3IDkwLjk4NTUgODguMDY1N0M5MC43MiA4OC4wNjU3IDkwLjQ4MyA4OC4xMTc5IDkwLjI3NDQgODguMjIyMkM5MC4wNjU4IDg4LjMyMTcgODkuODkwNCA4OC40ODI5IDg5Ljc0ODEgODguNzA1OEM4OS42MDU5IDg4LjkyODYgODkuNDk2OSA4OS4yMjI1IDg5LjQyMSA4OS41ODc2Qzg5LjM0OTkgODkuOTQ3OSA4OS4zMTQ0IDkwLjM4NjQgODkuMzE0NCA5MC45MDMyVjkzLjA5MzVDODkuMzE0NCA5My41MTA3IDg5LjMzODEgOTMuODc4MSA4OS4zODU1IDk0LjE5NTdDODkuNDMyOSA5NC41MTM0IDg5LjUwNCA5NC43ODYgODkuNTk4OCA5NS4wMTM2Qzg5LjY5MzYgOTUuMjM2NCA4OS44MDc0IDk1LjQyMTMgODkuOTQwMiA5NS41NjgyQzkwLjA3NzYgOTUuNzEwNSA5MC4yMzQxIDk1LjgxNDggOTAuNDA5NSA5NS44ODExQzkwLjU4OTcgOTUuOTQ3NSA5MC43ODY0IDk1Ljk4MDcgOTAuOTk5NyA5NS45ODA3QzkxLjI3IDk1Ljk4MDcgOTEuNTA5NCA5NS45Mjg2IDkxLjcxOCA5NS44MjQzQzkxLjkyNjYgOTUuNzE5OSA5Mi4xMDIgOTUuNTU0IDkyLjI0NDIgOTUuMzI2NUM5Mi4zODY1IDk1LjA5NDEgOTIuNDkzMSA5NC43OTMxIDkyLjU2NDMgOTQuNDIzM0M5Mi42MzU0IDk0LjA1MzUgOTIuNjcwOSA5My42MTAyIDkyLjY3MDkgOTMuMDkzNVoiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPHBhdGggZD0iTTk5LjY2MTMgOTIuMzE5NVY5MS45NzcyQzk5LjY2MTMgOTEuNzMxMyA5OS43MTQ2IDkxLjUwNzYgOTkuODIxMyA5MS4zMDYxQzk5LjkyNzkgOTEuMTA0NiAxMDAuMDgzIDkwLjk0MzEgMTAwLjI4OCA5MC44MjE2QzEwMC40OTIgOTAuNzAwMiAxMDAuNzM4IDkwLjYzOTQgMTAxLjAyNiA5MC42Mzk0QzEwMS4zMjIgOTAuNjM5NCAxMDEuNTcxIDkwLjcwMDIgMTAxLjc3MiA5MC44MjE2QzEwMS45NzcgOTAuOTQzMSAxMDIuMTMyIDkxLjEwNDYgMTAyLjIzOSA5MS4zMDYxQzEwMi4zNDYgOTEuNTA3NiAxMDIuMzk5IDkxLjczMTMgMTAyLjM5OSA5MS45NzcyVjkyLjMxOTVDMTAyLjM5OSA5Mi41NTk1IDEwMi4zNDYgOTIuNzgwMiAxMDIuMjM5IDkyLjk4MTdDMTAyLjEzNSA5My4xODMyIDEwMS45ODEgOTMuMzQ0NyAxMDEuNzc3IDkzLjQ2NjJDMTAxLjU3NSA5My41ODc3IDEwMS4zMjggOTMuNjQ4NCAxMDEuMDM1IDkzLjY0ODRDMTAwLjc0NCA5My42NDg0IDEwMC40OTUgOTMuNTg3NyAxMDAuMjg4IDkzLjQ2NjJDMTAwLjA4MyA5My4zNDQ3IDk5LjkyNzkgOTMuMTgzMiA5OS44MjEzIDkyLjk4MTdDOTkuNzE0NiA5Mi43ODAyIDk5LjY2MTMgOTIuNTU5NSA5OS42NjEzIDkyLjMxOTVaTTEwMC40MDQgOTEuOTc3MlY5Mi4zMTk1QzEwMC40MDQgOTIuNDM4IDEwMC40MjYgOTIuNTUwNiAxMDAuNDcgOTIuNjU3M0MxMDAuNTE4IDkyLjc2MzkgMTAwLjU4OSA5Mi44NDk5IDEwMC42ODQgOTIuOTE1MUMxMDAuNzc4IDkyLjk4MDIgMTAwLjg5NSA5My4wMTI4IDEwMS4wMzUgOTMuMDEyOEMxMDEuMTc3IDkzLjAxMjggMTAxLjI5MiA5Mi45ODAyIDEwMS4zODEgOTIuOTE1MUMxMDEuNDczIDkyLjg0OTkgMTAxLjU0MSA5Mi43NjM5IDEwMS41ODYgOTIuNjU3M0MxMDEuNjMgOTIuNTUwNiAxMDEuNjUyIDkyLjQzOCAxMDEuNjUyIDkyLjMxOTVWOTEuOTc3MkMxMDEuNjUyIDkxLjg1NTggMTAxLjYyOSA5MS43NDE3IDEwMS41ODEgOTEuNjM1QzEwMS41MzcgOTEuNTI1NCAxMDEuNDY5IDkxLjQzOCAxMDEuMzc3IDkxLjM3MjhDMTAxLjI4NSA5MS4zMDc2IDEwMS4xNjggOTEuMjc1IDEwMS4wMjYgOTEuMjc1QzEwMC44ODkgOTEuMjc1IDEwMC43NzQgOTEuMzA3NiAxMDAuNjc5IDkxLjM3MjhDMTAwLjU4NyA5MS40MzggMTAwLjUxOCA5MS41MjU0IDEwMC40NyA5MS42MzVDMTAwLjQyNiA5MS43NDE3IDEwMC40MDQgOTEuODU1OCAxMDAuNDA0IDkxLjk3NzJaTTEwMi43ODEgOTUuOTY0MVY5NS42MTc0QzEwMi43ODEgOTUuMzc0NCAxMDIuODM1IDk1LjE1MjIgMTAyLjk0MSA5NC45NTA3QzEwMy4wNTEgOTQuNzQ5MiAxMDMuMjA4IDk0LjU4NzcgMTAzLjQxMyA5NC40NjYyQzEwMy42MTcgOTQuMzQ0NyAxMDMuODYzIDk0LjI4NCAxMDQuMTUgOTQuMjg0QzEwNC40NDcgOTQuMjg0IDEwNC42OTYgOTQuMzQ0NyAxMDQuODk3IDk0LjQ2NjJDMTA1LjEwMSA5NC41ODc3IDEwNS4yNTYgOTQuNzQ5MiAxMDUuMzU5IDk0Ljk1MDdDMTA1LjQ2NiA5NS4xNTIyIDEwNS41MTkgOTUuMzc0NCAxMDUuNTE5IDk1LjYxNzRWOTUuOTY0MUMxMDUuNTE5IDk2LjIwNyAxMDUuNDY2IDk2LjQyOTMgMTA1LjM1OSA5Ni42MzA3QzEwNS4yNTYgOTYuODMyMiAxMDUuMTAzIDk2Ljk5MzcgMTA0LjkwMSA5Ny4xMTUyQzEwNC43IDk3LjIzNjcgMTA0LjQ1NCA5Ny4yOTc0IDEwNC4xNjQgOTcuMjk3NEMxMDMuODcgOTcuMjk3NCAxMDMuNjIgOTcuMjM2NyAxMDMuNDEzIDk3LjExNTJDMTAzLjIwOCA5Ni45OTM3IDEwMy4wNTEgOTYuODMyMiAxMDIuOTQxIDk2LjYzMDdDMTAyLjgzNSA5Ni40MjkzIDEwMi43ODEgOTYuMjA3IDEwMi43ODEgOTUuOTY0MVpNMTAzLjUyOCA5NS42MTc0Vjk1Ljk2NDFDMTAzLjUyOCA5Ni4wODI2IDEwMy41NTIgOTYuMTk1MiAxMDMuNTk5IDk2LjMwMThDMTAzLjY1IDk2LjQwODUgMTAzLjcyMiA5Ni40OTU5IDEwMy44MTcgOTYuNTY0MUMxMDMuOTEyIDk2LjYyOTMgMTA0LjAyNiA5Ni42NjE5IDEwNC4xNTkgOTYuNjYxOUMxMDQuMzEgOTYuNjYxOSAxMDQuNDMyIDk2LjYyOTMgMTA0LjUyNCA5Ni41NjQxQzEwNC42MTYgOTYuNDk1OSAxMDQuNjgxIDk2LjQxIDEwNC43MTkgOTYuMzA2M0MxMDQuNzYxIDk2LjE5OTYgMTA0Ljc4MSA5Ni4wODU1IDEwNC43ODEgOTUuOTY0MVY5NS42MTc0QzEwNC43ODEgOTUuNDk1OSAxMDQuNzU4IDk1LjM4MTggMTA0LjcxIDk1LjI3NTFDMTA0LjY2NiA5NS4xNjg1IDEwNC41OTYgOTUuMDgyNSAxMDQuNTAxIDk1LjAxNzRDMTA0LjQxIDk0Ljk1MjIgMTA0LjI5MyA5NC45MTk2IDEwNC4xNSA5NC45MTk2QzEwNC4wMTEgOTQuOTE5NiAxMDMuODk1IDk0Ljk1MjIgMTAzLjgwNCA5NS4wMTc0QzEwMy43MTIgOTUuMDgyNSAxMDMuNjQyIDk1LjE2ODUgMTAzLjU5NSA5NS4yNzUxQzEwMy41NSA5NS4zODE4IDEwMy41MjggOTUuNDk1OSAxMDMuNTI4IDk1LjYxNzRaTTEwNC40MTcgOTEuNjU3MkwxMDEuMjU3IDk2LjcxNTJMMTAwLjcxIDk2LjM5OTZMMTAzLjg3IDkxLjM0MTdMMTA0LjQxNyA5MS42NTcyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8L2c+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iMTk5IiBoZWlnaHQ9IjE1OSIgcng9IjMuNSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLW9wYWNpdHk9IjAuMTIiLz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfYl8zNDYxXzM4Mjk1IiB4PSI2OS44NjU2IiB5PSI3Ni4zMTQzIiB3aWR0aD0iNDUuMDYxOCIgaGVpZ2h0PSIyOS45NTg4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjEuNjI0MzQiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfMzgyOTUiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfMzgyOTUiIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjwvZGVmcz4KPC9zdmc+Cg==", - "description": "Widget indicates the level of liquid in Horizontal Capsule tank.", - "descriptor": { - "type": "latest", - "sizeX": 7.5, - "sizeY": 3, - "resources": [], - "templateHtml": "\n", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", - "settingsSchema": "{}", - "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-liquid-level-card-widget-settings", - "hasBasicMode": true, - "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" - }, - "externalId": null, - "tags": null -} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_cylinder.json b/application/src/main/data/json/system/widget_types/horizontal_cylinder.json new file mode 100644 index 0000000000..285a4c11ef --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_cylinder.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_cylinder_tank", + "name": "Horizontal cylinder", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Horizontal cylinder tank.", + "descriptor": { + "type": "latest", + "sizeX": 4, + "sizeY": 4, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 deleted file mode 100644 index 9e779ab110..0000000000 --- a/application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "fqn": "horizontal_cylinder_tank", - "name": "Horizontal Cylinder tank", - "deprecated": false, - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBvcGFjaXR5PSIwLjEiIGQ9Ik0xMzMuNjczIDU2LjAyNjVDMTM5LjU5OCA1Ni4wMjY1IDE0NS4wMTYgNTkuNDIzMyAxNDguOTc0IDY1LjAyM0MxNTIuOTMyIDcwLjYyMTQgMTU1LjM5NyA3OC4zODM4IDE1NS4zOTcgODYuOTgzNEMxNTUuMzk3IDk1LjU4MyAxNTIuOTMyIDEwMy4zNDUgMTQ4Ljk3NCAxMDguOTQ0QzE0NS4wMTYgMTE0LjU0MyAxMzkuNTk4IDExNy45NCAxMzMuNjczIDExNy45NEMxMjcuNzQ3IDExNy45NCAxMjIuMzI5IDExNC41NDMgMTE4LjM3MSAxMDguOTQ0QzExNC40MTMgMTAzLjM0NSAxMTEuOTQ4IDk1LjU4MyAxMTEuOTQ4IDg2Ljk4MzRDMTExLjk0OCA3OC4zODM4IDExNC40MTMgNzAuNjIxNCAxMTguMzcxIDY1LjAyM0MxMjIuMzI5IDU5LjQyMzMgMTI3Ljc0NyA1Ni4wMjY1IDEzMy42NzMgNTYuMDI2NVoiIGZpbGw9IiM2MjE2RkYiIGZpbGwtb3BhY2l0eT0iMC4wMiIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPG1hc2sgaWQ9Im1hc2swXzM0NjFfNDYxMzQiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQ2IiB5PSI1NyIgd2lkdGg9IjEwOCIgaGVpZ2h0PSI2MCI+CjxtYXNrIGlkPSJwYXRoLTUtaW5zaWRlLTFfMzQ2MV80NjEzNCIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTY2LjMzODUgNTcuNjU1OEM2Ni4zMzUxIDU3LjY1NTggNjYuMzMxNyA1Ny42NTU4IDY2LjMyODIgNTcuNjU1OEM2Ni4zMjQ4IDU3LjY1NTggNjYuMzIxMyA1Ny42NTU4IDY2LjMxNzkgNTcuNjU1OEw2NS43ODUxIDU3LjY1NThWNTcuNjY2M0M1NC45MzgxIDU4LjA4NjMgNDYuMjMzNCA3MS4wNTEyIDQ2LjIzMzQgODYuOTgzM0M0Ni4yMzM0IDEwMi45MTUgNTQuOTM4MSAxMTUuODggNjUuNzg1MSAxMTYuM1YxMTYuMzExSDY2LjMyODJIMTMzLjY2NUgxMzMuNjczSDEzMy42ODFIMTM0LjIxNlYxMTYuM0MxNDUuMDYzIDExNS44OCAxNTMuNzY4IDEwMi45MTUgMTUzLjc2OCA4Ni45ODMzQzE1My43NjggNzEuMDUxMiAxNDUuMDYzIDU4LjA4NjMgMTM0LjIxNiA1Ny42NjYzVjU3LjY1NThIMTMzLjY3M0w2Ni4zMzg1IDU3LjY1NThaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02Ni4zMzg1IDU3LjY1NThDNjYuMzM1MSA1Ny42NTU4IDY2LjMzMTcgNTcuNjU1OCA2Ni4zMjgyIDU3LjY1NThDNjYuMzI0OCA1Ny42NTU4IDY2LjMyMTMgNTcuNjU1OCA2Ni4zMTc5IDU3LjY1NThMNjUuNzg1MSA1Ny42NTU4VjU3LjY2NjNDNTQuOTM4MSA1OC4wODYzIDQ2LjIzMzQgNzEuMDUxMiA0Ni4yMzM0IDg2Ljk4MzNDNDYuMjMzNCAxMDIuOTE1IDU0LjkzODEgMTE1Ljg4IDY1Ljc4NTEgMTE2LjNWMTE2LjMxMUg2Ni4zMjgySDEzMy42NjVIMTMzLjY3M0gxMzMuNjgxSDEzNC4yMTZWMTE2LjNDMTQ1LjA2MyAxMTUuODggMTUzLjc2OCAxMDIuOTE1IDE1My43NjggODYuOTgzM0MxNTMuNzY4IDcxLjA1MTIgMTQ1LjA2MyA1OC4wODYzIDEzNC4yMTYgNTcuNjY2M1Y1Ny42NTU4SDEzMy42NzNMNjYuMzM4NSA1Ny42NTU4WiIgZmlsbD0iIzdGODRGQiIvPgo8cGF0aCBkPSJNNjYuMzM4NSA1Ny42NTU4TDY2LjMzNzcgNTguNzQySDY2LjMzODVWNTcuNjU1OFpNNjYuMzE3OSA1Ny42NTU4VjU4Ljc0Mkw2Ni4zMTg3IDU4Ljc0Mkw2Ni4zMTc5IDU3LjY1NThaTTY1Ljc4NTEgNTcuNjU1OFY1Ni41Njk2TDY0LjY5ODkgNTYuNTY5NlY1Ny42NTU4SDY1Ljc4NTFaTTY1Ljc4NTEgNTcuNjY2M0w2NS44MjcyIDU4Ljc1MTdMNjYuODcxMyA1OC43MTEyVjU3LjY2NjNINjUuNzg1MVpNNjUuNzg1MSAxMTYuM0g2Ni44NzEzVjExNS4yNTVMNjUuODI3MiAxMTUuMjE1TDY1Ljc4NTEgMTE2LjNaTTY1Ljc4NTEgMTE2LjMxMUg2NC42OTg5VjExNy4zOTdINjUuNzg1MVYxMTYuMzExWk0xMzQuMjE2IDExNi4zMTFWMTE3LjM5N0gxMzUuMzAyVjExNi4zMTFIMTM0LjIxNlpNMTM0LjIxNiAxMTYuM0wxMzQuMTc0IDExNS4yMTVMMTMzLjEzIDExNS4yNTVWMTE2LjNIMTM0LjIxNlpNMTUzLjc2OCA4Ni45ODMzSDE1NC44NTRIMTUzLjc2OFpNMTM0LjIxNiA1Ny42NjYzSDEzMy4xM1Y1OC43MTEyTDEzNC4xNzQgNTguNzUxN0wxMzQuMjE2IDU3LjY2NjNaTTEzNC4yMTYgNTcuNjU1OEgxMzUuMzAyVjU2LjU2OTZIMTM0LjIxNlY1Ny42NTU4Wk0xMzMuNjczIDU3LjY1NThWNTYuNTY5NlY1Ny42NTU4Wk02Ni4zMjgyIDU4Ljc0MkM2Ni4zMzE0IDU4Ljc0MiA2Ni4zMzQ2IDU4Ljc0MiA2Ni4zMzc3IDU4Ljc0Mkw2Ni4zMzkzIDU2LjU2OTZDNjYuMzM1NiA1Ni41Njk2IDY2LjMzMTkgNTYuNTY5NiA2Ni4zMjgyIDU2LjU2OTZWNTguNzQyWk02Ni4zMTg3IDU4Ljc0MkM2Ni4zMjE5IDU4Ljc0MiA2Ni4zMjUgNTguNzQyIDY2LjMyODIgNTguNzQyVjU2LjU2OTZDNjYuMzI0NSA1Ni41Njk2IDY2LjMyMDggNTYuNTY5NiA2Ni4zMTcxIDU2LjU2OTZMNjYuMzE4NyA1OC43NDJaTTY2LjMxNzkgNTYuNTY5Nkg2NS43ODUxVjU4Ljc0Mkg2Ni4zMTc5VjU2LjU2OTZaTTY0LjY5ODkgNTcuNjU1OFY1Ny42NjYzSDY2Ljg3MTNWNTcuNjU1OEg2NC42OTg5Wk00Ny4zMTk2IDg2Ljk4MzNDNDcuMzE5NiA3OS4yMDUzIDQ5LjQ0NjIgNzIuMTk2OCA1Mi44NDQ3IDY3LjExMTNDNTYuMjQ3NiA2Mi4wMTk0IDYwLjg1MjQgNTguOTQ0MyA2NS44MjcyIDU4Ljc1MTdMNjUuNzQzMSA1Ni41ODA5QzU5Ljg3MDkgNTYuODA4MyA1NC42OTk4IDYwLjQyNTcgNTEuMDM4NSA2NS45MDQyQzQ3LjM3MyA3MS4zODkyIDQ1LjE0NzIgNzguODI5MyA0NS4xNDcyIDg2Ljk4MzNINDcuMzE5NlpNNjUuODI3MiAxMTUuMjE1QzYwLjg1MjQgMTE1LjAyMiA1Ni4yNDc2IDExMS45NDcgNTIuODQ0NyAxMDYuODU1QzQ5LjQ0NjIgMTAxLjc3IDQ3LjMxOTYgOTQuNzYxNCA0Ny4zMTk2IDg2Ljk4MzNINDUuMTQ3MkM0NS4xNDcyIDk1LjEzNzQgNDcuMzczIDEwMi41NzcgNTEuMDM4NSAxMDguMDYyQzU0LjY5OTggMTEzLjU0MSA1OS44NzA5IDExNy4xNTggNjUuNzQzMSAxMTcuMzg2TDY1LjgyNzIgMTE1LjIxNVpNNjQuNjk4OSAxMTYuM1YxMTYuMzExSDY2Ljg3MTNWMTE2LjNINjQuNjk4OVpNNjUuNzg1MSAxMTcuMzk3SDY2LjMyODJWMTE1LjIyNUg2NS43ODUxVjExNy4zOTdaTTY2LjMyODIgMTE3LjM5N0gxMzMuNjY1VjExNS4yMjVINjYuMzI4MlYxMTcuMzk3Wk0xMzMuNjY1IDExNy4zOTdIMTMzLjY3M1YxMTUuMjI1SDEzMy42NjVWMTE3LjM5N1pNMTMzLjY3MyAxMTcuMzk3SDEzMy42ODFWMTE1LjIyNUgxMzMuNjczVjExNy4zOTdaTTEzMy42ODEgMTE3LjM5N0gxMzQuMjE2VjExNS4yMjVIMTMzLjY4MVYxMTcuMzk3Wk0xMzUuMzAyIDExNi4zMTFWMTE2LjNIMTMzLjEzVjExNi4zMTFIMTM1LjMwMlpNMTM0LjI1OCAxMTcuMzg2QzE0MC4xMyAxMTcuMTU4IDE0NS4zMDEgMTEzLjU0MSAxNDguOTYzIDEwOC4wNjJDMTUyLjYyOCAxMDIuNTc3IDE1NC44NTQgOTUuMTM3NCAxNTQuODU0IDg2Ljk4MzNIMTUyLjY4MkMxNTIuNjgyIDk0Ljc2MTQgMTUwLjU1NSAxMDEuNzcgMTQ3LjE1NyAxMDYuODU1QzE0My43NTQgMTExLjk0NyAxMzkuMTQ5IDExNS4wMjIgMTM0LjE3NCAxMTUuMjE1TDEzNC4yNTggMTE3LjM4NlpNMTU0Ljg1NCA4Ni45ODMzQzE1NC44NTQgNzguODI5MyAxNTIuNjI4IDcxLjM4OTIgMTQ4Ljk2MyA2NS45MDQyQzE0NS4zMDEgNjAuNDI1NyAxNDAuMTMgNTYuODA4MyAxMzQuMjU4IDU2LjU4MDlMMTM0LjE3NCA1OC43NTE3QzEzOS4xNDkgNTguOTQ0MyAxNDMuNzU0IDYyLjAxOTQgMTQ3LjE1NyA2Ny4xMTEzQzE1MC41NTUgNzIuMTk2OCAxNTIuNjgyIDc5LjIwNTMgMTUyLjY4MiA4Ni45ODMzSDE1NC44NTRaTTEzNS4zMDIgNTcuNjY2M1Y1Ny42NTU4SDEzMy4xM1Y1Ny42NjYzSDEzNS4zMDJaTTEzNC4yMTYgNTYuNTY5NkgxMzMuNjczVjU4Ljc0MkgxMzQuMjE2VjU2LjU2OTZaTTEzMy42NzMgNTYuNTY5Nkw2Ni4zMzg1IDU2LjU2OTZWNTguNzQyTDEzMy42NzMgNTguNzQyVjU2LjU2OTZaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtNS1pbnNpZGUtMV8zNDYxXzQ2MTM0KSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMzQ2MV80NjEzNCkiPgo8cmVjdCB4PSI0Ni4yMzM0IiB5PSI5MS4zMjgxIiB3aWR0aD0iMTA3LjUzNCIgaGVpZ2h0PSI1OC42NTUyIiBmaWxsPSIjN0E4QkZGIi8+CjxyZWN0IHg9IjQ2LjIzMzQiIHk9IjkxLjMyODEiIHdpZHRoPSIxMDcuNTM0IiBoZWlnaHQ9IjAuNTQzMTAzIiBmaWxsPSIjN0E4QkZGIi8+CjxyZWN0IHg9IjQ2LjIzMzQiIHk9IjkxLjMyODEiIHdpZHRoPSIxMDcuNTM0IiBoZWlnaHQ9IjAuNTQzMTAzIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjEiLz4KPC9nPgo8bWFzayBpZD0icGF0aC05LWluc2lkZS0yXzM0NjFfNDYxMzQiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02Ni4zMzg5IDU1LjQ4MzRMMTMzLjY3MyA1NS40ODM0TDEzNC4yMTYgNTUuNDgzNEwxMzQuMjE2IDU1LjQ5MjZDMTQ2LjI2MyA1NS45MDA1IDE1NS45NCA2OS44NDMzIDE1NS45NCA4Ni45ODM0QzE1NS45NCAxMDQuMTI0IDE0Ni4yNjMgMTE4LjA2NiAxMzQuMjE2IDExOC40NzRMMTM0LjIxNiAxMTguNDgzTDEzMy42ODEgMTE4LjQ4M0wxMzMuNjczIDExOC40ODNMMTMzLjY2NSAxMTguNDgzTDY1Ljc4NDcgMTE4LjQ4M0w2NS43ODQ3IDExOC40NzRDNTMuNzM3OCAxMTguMDY2IDQ0LjA2MDUgMTA0LjEyNCA0NC4wNjA1IDg2Ljk4MzRDNDQuMDYwNSA2OS44NDMzIDUzLjczNzggNTUuOTAwNSA2NS43ODQ3IDU1LjQ5MjZMNjUuNzg0NyA1NS40ODM0TDY2LjMxNjcgNTUuNDgzNEM2Ni4zMjA0IDU1LjQ4MzQgNjYuMzI0MSA1NS40ODM0IDY2LjMyNzggNTUuNDgzNEM2Ni4zMzE1IDU1LjQ4MzQgNjYuMzM1MiA1NS40ODM0IDY2LjMzODkgNTUuNDgzNFoiLz4KPC9tYXNrPgo8cGF0aCBkPSJNMTM0LjIxNiA1NS40ODM0TDEzNS4zMDIgNTUuNDgzNEwxMzUuMzAyIDU0LjM5NzJMMTM0LjIxNiA1NC4zOTcyTDEzNC4yMTYgNTUuNDgzNFpNMTM0LjIxNiA1NS40OTI2TDEzMy4xMyA1NS40OTI2TDEzMy4xMyA1Ni41NDI2TDEzNC4xNzkgNTYuNTc4MkwxMzQuMjE2IDU1LjQ5MjZaTTEzNC4yMTYgMTE4LjQ3NEwxMzQuMTc5IDExNy4zODlMMTMzLjEzIDExNy40MjRMMTMzLjEzIDExOC40NzRMMTM0LjIxNiAxMTguNDc0Wk0xMzQuMjE2IDExOC40ODNMMTM0LjIxNiAxMTkuNTdMMTM1LjMwMiAxMTkuNTdMMTM1LjMwMiAxMTguNDgzTDEzNC4yMTYgMTE4LjQ4M1pNMTMzLjY4MSAxMTguNDgzTDEzMy42ODEgMTE3LjM5N0wxMzMuNjggMTE3LjM5N0wxMzMuNjgxIDExOC40ODNaTTEzMy42NzMgMTE4LjQ4M0wxMzMuNjcyIDExOS41N0wxMzMuNjczIDExOS41N0wxMzMuNjczIDExOC40ODNaTTEzMy42NjUgMTE4LjQ4M0wxMzMuNjY1IDExNy4zOTdMMTMzLjY2NSAxMTcuMzk3TDEzMy42NjUgMTE4LjQ4M1pNNjUuNzg0NyAxMTguNDgzTDY0LjY5ODUgMTE4LjQ4M0w2NC42OTg1IDExOS41N0w2NS43ODQ3IDExOS41N0w2NS43ODQ3IDExOC40ODNaTTY1Ljc4NDcgMTE4LjQ3NEw2Ni44NzA5IDExOC40NzRMNjYuODcwOSAxMTcuNDI0TDY1LjgyMTQgMTE3LjM4OUw2NS43ODQ3IDExOC40NzRaTTY1Ljc4NDcgNTUuNDkyNkw2NS44MjE0IDU2LjU3ODJMNjYuODcwOSA1Ni41NDI2TDY2Ljg3MDkgNTUuNDkyNkw2NS43ODQ3IDU1LjQ5MjZaTTY1Ljc4NDcgNTUuNDgzNEw2NS43ODQ3IDU0LjM5NzJMNjQuNjk4NSA1NC4zOTcyTDY0LjY5ODUgNTUuNDgzNEw2NS43ODQ3IDU1LjQ4MzRaTTEzMy42NzMgNTQuMzk3Mkw2Ni4zMzg5IDU0LjM5NzJMNjYuMzM4OSA1Ni41Njk2TDEzMy42NzMgNTYuNTY5NkwxMzMuNjczIDU0LjM5NzJaTTEzNC4yMTYgNTQuMzk3MkwxMzMuNjczIDU0LjM5NzJMMTMzLjY3MyA1Ni41Njk2TDEzNC4yMTYgNTYuNTY5NkwxMzQuMjE2IDU0LjM5NzJaTTEzNS4zMDIgNTUuNDkyNkwxMzUuMzAyIDU1LjQ4MzRMMTMzLjEzIDU1LjQ4MzRMMTMzLjEzIDU1LjQ5MjZMMTM1LjMwMiA1NS40OTI2Wk0xNTcuMDI2IDg2Ljk4MzRDMTU3LjAyNiA3OC4yMTggMTU0LjU1MyA3MC4yMjYzIDE1MC40ODkgNjQuMzQ1OEMxNDYuNDI3IDU4LjQ2OTMgMTQwLjcxMiA1NC42MjU3IDEzNC4yNTIgNTQuNDA3TDEzNC4xNzkgNTYuNTc4MkMxMzkuNzY3IDU2Ljc2NzQgMTQ0LjkxMyA2MC4wOTkyIDE0OC43MDIgNjUuNTgxQzE1Mi40ODggNzEuMDU4OSAxNTQuODU0IDc4LjYwODYgMTU0Ljg1NCA4Ni45ODM0TDE1Ny4wMjYgODYuOTgzNFpNMTM0LjI1MiAxMTkuNTZDMTQwLjcxMiAxMTkuMzQxIDE0Ni40MjcgMTE1LjQ5OCAxNTAuNDg5IDEwOS42MjFDMTU0LjU1MyAxMDMuNzQgMTU3LjAyNiA5NS43NDg4IDE1Ny4wMjYgODYuOTgzNEwxNTQuODU0IDg2Ljk4MzRDMTU0Ljg1NCA5NS4zNTgxIDE1Mi40ODggMTAyLjkwOCAxNDguNzAyIDEwOC4zODZDMTQ0LjkxMyAxMTMuODY4IDEzOS43NjcgMTE3LjE5OSAxMzQuMTc5IDExNy4zODlMMTM0LjI1MiAxMTkuNTZaTTEzNS4zMDIgMTE4LjQ4M0wxMzUuMzAyIDExOC40NzRMMTMzLjEzIDExOC40NzRMMTMzLjEzIDExOC40ODNMMTM1LjMwMiAxMTguNDgzWk0xMzMuNjgxIDExOS41N0wxMzQuMjE2IDExOS41N0wxMzQuMjE2IDExNy4zOTdMMTMzLjY4MSAxMTcuMzk3TDEzMy42ODEgMTE5LjU3Wk0xMzMuNjczIDExOS41N0wxMzMuNjgxIDExOS41N0wxMzMuNjggMTE3LjM5N0wxMzMuNjcyIDExNy4zOTdMMTMzLjY3MyAxMTkuNTdaTTEzMy42NjQgMTE5LjU3TDEzMy42NzIgMTE5LjU3TDEzMy42NzMgMTE3LjM5N0wxMzMuNjY1IDExNy4zOTdMMTMzLjY2NCAxMTkuNTdaTTY1Ljc4NDcgMTE5LjU3TDEzMy42NjUgMTE5LjU3TDEzMy42NjUgMTE3LjM5N0w2NS43ODQ3IDExNy4zOTdMNjUuNzg0NyAxMTkuNTdaTTY0LjY5ODUgMTE4LjQ3NEw2NC42OTg1IDExOC40ODNMNjYuODcwOSAxMTguNDgzTDY2Ljg3MDkgMTE4LjQ3NEw2NC42OTg1IDExOC40NzRaTTY1LjgyMTQgMTE3LjM4OUM2MC4yMzM1IDExNy4xOTkgNTUuMDg3MyAxMTMuODY4IDUxLjI5ODYgMTA4LjM4NkM0Ny41MTI1IDEwMi45MDggNDUuMTQ2OCA5NS4zNTgyIDQ1LjE0NjggODYuOTgzNEw0Mi45NzQzIDg2Ljk4MzRDNDIuOTc0MyA5NS43NDg4IDQ1LjQ0NzIgMTAzLjc0IDQ5LjUxMTUgMTA5LjYyMUM1My41NzMxIDExNS40OTggNTkuMjg4OSAxMTkuMzQxIDY1Ljc0NzkgMTE5LjU2TDY1LjgyMTQgMTE3LjM4OVpNNDUuMTQ2OCA4Ni45ODM0QzQ1LjE0NjggNzguNjA4NiA0Ny41MTI1IDcxLjA1ODkgNTEuMjk4NiA2NS41ODFDNTUuMDg3MyA2MC4wOTkyIDYwLjIzMzUgNTYuNzY3NCA2NS44MjE0IDU2LjU3ODJMNjUuNzQ3OSA1NC40MDdDNTkuMjg4OSA1NC42MjU3IDUzLjU3MyA1OC40NjkzIDQ5LjUxMTUgNjQuMzQ1OEM0NS40NDcyIDcwLjIyNjMgNDIuOTc0MyA3OC4yMTggNDIuOTc0MyA4Ni45ODM0TDQ1LjE0NjggODYuOTgzNFpNNjQuNjk4NSA1NS40ODM0TDY0LjY5ODUgNTUuNDkyNkw2Ni44NzA5IDU1LjQ5MjZMNjYuODcwOSA1NS40ODM0TDY0LjY5ODUgNTUuNDgzNFpNNjYuMzE2NyA1NC4zOTcyTDY1Ljc4NDcgNTQuMzk3Mkw2NS43ODQ3IDU2LjU2OTZMNjYuMzE2NyA1Ni41Njk2TDY2LjMxNjcgNTQuMzk3MlpNNjYuMzE2NyA1Ni41Njk2QzY2LjMxODkgNTYuNTY5NiA2Ni4zMjEgNTYuNTY5NiA2Ni4zMjI4IDU2LjU2OTZDNjYuMzI0NyA1Ni41Njk2IDY2LjMyNjMgNTYuNTY5NiA2Ni4zMjc4IDU2LjU2OTZMNjYuMzI3OCA1NC4zOTcyQzY2LjMyNTYgNTQuMzk3MiA2Ni4zMjM1IDU0LjM5NzIgNjYuMzIxNyA1NC4zOTcyQzY2LjMxOTggNTQuMzk3MiA2Ni4zMTgyIDU0LjM5NzIgNjYuMzE2NyA1NC4zOTcyTDY2LjMxNjcgNTYuNTY5NlpNNjYuMzI3OCA1Ni41Njk2QzY2LjMyOTMgNTYuNTY5NiA2Ni4zMzA5IDU2LjU2OTYgNjYuMzMyOCA1Ni41Njk2QzY2LjMzNDYgNTYuNTY5NiA2Ni4zMzY3IDU2LjU2OTYgNjYuMzM4OSA1Ni41Njk2TDY2LjMzODkgNTQuMzk3MkM2Ni4zMzczIDU0LjM5NzIgNjYuMzM1OCA1NC4zOTcyIDY2LjMzMzkgNTQuMzk3MkM2Ni4zMzIxIDU0LjM5NzIgNjYuMzMgNTQuMzk3MiA2Ni4zMjc4IDU0LjM5NzJMNjYuMzI3OCA1Ni41Njk2WiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTktaW5zaWRlLTJfMzQ2MV80NjEzNCkiLz4KPHBhdGggZD0iTTY2LjMyNzggNTYuMDI2NUM3Mi4yNTMzIDU2LjAyNjUgNzcuNjcxMiA1OS40MjMzIDgxLjYyOTYgNjUuMDIzQzg1LjU4NzEgNzAuNjIxNCA4OC4wNTE5IDc4LjM4MzggODguMDUxOSA4Ni45ODM0Qzg4LjA1MTkgOTUuNTgzIDg1LjU4NzEgMTAzLjM0NSA4MS42Mjk2IDEwOC45NDRDNzcuNjcxMiAxMTQuNTQzIDcyLjI1MzMgMTE3Ljk0IDY2LjMyNzggMTE3Ljk0QzYwLjQwMjMgMTE3Ljk0IDU0Ljk4NDQgMTE0LjU0MyA1MS4wMjYgMTA4Ljk0NEM0Ny4wNjg1IDEwMy4zNDUgNDQuNjAzNiA5NS41ODMgNDQuNjAzNiA4Ni45ODM0QzQ0LjYwMzYgNzguMzgzOCA0Ny4wNjg1IDcwLjYyMTQgNTEuMDI2IDY1LjAyM0M1NC45ODQ0IDU5LjQyMzMgNjAuNDAyMyA1Ni4wMjY1IDY2LjMyNzggNTYuMDI2NVoiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJwYXRoLTEyLWluc2lkZS0zXzM0NjFfNDYxMzQiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMDkuNzc2IDQ2Ljc5MzdIOTQuMDI2NFY1Ni41Njk2Qzk0LjAyNjQgNTcuNDY5NCA5Ny41NTIxIDU4LjE5ODkgMTAxLjkwMSA1OC4xOTg5QzEwNi4yNTEgNTguMTk4OSAxMDkuNzc2IDU3LjQ2OTQgMTA5Ljc3NiA1Ni41Njk2VjQ2Ljc5MzdaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMDkuNzc2IDQ2Ljc5MzdIOTQuMDI2NFY1Ni41Njk2Qzk0LjAyNjQgNTcuNDY5NCA5Ny41NTIxIDU4LjE5ODkgMTAxLjkwMSA1OC4xOTg5QzEwNi4yNTEgNTguMTk4OSAxMDkuNzc2IDU3LjQ2OTQgMTA5Ljc3NiA1Ni41Njk2VjQ2Ljc5MzdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTQuMDI2NCA0Ni43OTM3VjQ1LjcwNzVIOTIuOTQwMlY0Ni43OTM3SDk0LjAyNjRaTTEwOS43NzYgNDYuNzkzN0gxMTAuODYzVjQ1LjcwNzVIMTA5Ljc3NlY0Ni43OTM3Wk05NC4wMjY0IDQ3Ljg3OTlIMTA5Ljc3NlY0NS43MDc1SDk0LjAyNjRWNDcuODc5OVpNOTUuMTEyNiA1Ni41Njk2VjQ2Ljc5MzdIOTIuOTQwMlY1Ni41Njk2SDk1LjExMjZaTTEwMS45MDEgNTcuMTEyN0M5OS43Nzc3IDU3LjExMjcgOTcuODg2MiA1Ni45MzM4IDk2LjU1MyA1Ni42NThDOTUuODc3NCA1Ni41MTgyIDk1LjQwMjQgNTYuMzY0OSA5NS4xMjI1IDU2LjIyOEM5NC45ODA0IDU2LjE1ODUgOTQuOTQ0NiA1Ni4xMTk5IDk0Ljk1ODYgNTYuMTM0MUM5NC45NzYgNTYuMTUxNiA5NS4xMTI2IDU2LjMwMDYgOTUuMTEyNiA1Ni41Njk2SDkyLjk0MDJDOTIuOTQwMiA1Ny4wNjM1IDkzLjE4NyA1Ny40MzIxIDkzLjQxNDEgNTcuNjYxN0M5My42Mzc5IDU3Ljg4ODEgOTMuOTExNiA1OC4wNTQxIDk0LjE2NzkgNTguMTc5NUM5NC42ODUxIDU4LjQzMjUgOTUuMzYzMyA1OC42MzAzIDk2LjExMjggNTguNzg1M0M5Ny42Mjk4IDU5LjA5OTIgOTkuNjc1OCA1OS4yODUxIDEwMS45MDEgNTkuMjg1MVY1Ny4xMTI3Wk0xMDguNjkgNTYuNTY5NkMxMDguNjkgNTYuMzAwNiAxMDguODI3IDU2LjE1MTYgMTA4Ljg0NCA1Ni4xMzQxQzEwOC44NTggNTYuMTE5OSAxMDguODIyIDU2LjE1ODUgMTA4LjY4IDU2LjIyOEMxMDguNCA1Ni4zNjQ5IDEwNy45MjUgNTYuNTE4MiAxMDcuMjUgNTYuNjU4QzEwNS45MTcgNTYuOTMzOCAxMDQuMDI1IDU3LjExMjcgMTAxLjkwMSA1Ny4xMTI3VjU5LjI4NTFDMTA0LjEyNyA1OS4yODUxIDEwNi4xNzMgNTkuMDk5MiAxMDcuNjkgNTguNzg1M0MxMDguNDM5IDU4LjYzMDMgMTA5LjExOCA1OC40MzI1IDEwOS42MzUgNTguMTc5NUMxMDkuODkxIDU4LjA1NDEgMTEwLjE2NSA1Ny44ODgxIDExMC4zODkgNTcuNjYxN0MxMTAuNjE2IDU3LjQzMjEgMTEwLjg2MyA1Ny4wNjM1IDExMC44NjMgNTYuNTY5NkgxMDguNjlaTTEwOC42OSA0Ni43OTM3VjU2LjU2OTZIMTEwLjg2M1Y0Ni43OTM3SDEwOC42OVoiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC0xMi1pbnNpZGUtM18zNDYxXzQ2MTM0KSIvPgo8cGF0aCBkPSJNMTA5LjQzMiA0Ny4xOTY1QzEwOS41NDcgNDcuMjQ4OSAxMDkuNjMxIDQ3LjI5NjYgMTA5LjY5IDQ3LjMzNjhDMTA5LjYzMSA0Ny4zNzcxIDEwOS41NDcgNDcuNDI0OCAxMDkuNDMyIDQ3LjQ3NzJDMTA5LjA2MyA0Ny42NDU5IDEwOC40OTUgNDcuODExNiAxMDcuNzUxIDQ3Ljk1NTdDMTA2LjI3MSA0OC4yNDIyIDEwNC4yMDIgNDguNDIzIDEwMS45MDIgNDguNDIzQzk5LjYwMDcgNDguNDIzIDk3LjUzMjQgNDguMjQyMiA5Ni4wNTIyIDQ3Ljk1NTdDOTUuMzA3NyA0Ny44MTE2IDk0LjczOTcgNDcuNjQ1OSA5NC4zNzA5IDQ3LjQ3NzJDOTQuMjU2NSA0Ny40MjQ4IDk0LjE3MjQgNDcuMzc3MSA5NC4xMTI2IDQ3LjMzNjhDOTQuMTcyNCA0Ny4yOTY1IDk0LjI1NjUgNDcuMjQ4OSA5NC4zNzA5IDQ3LjE5NjVDOTQuNzM5NyA0Ny4wMjc3IDk1LjMwNzcgNDYuODYyIDk2LjA1MjIgNDYuNzE3OUM5Ny41MzI0IDQ2LjQzMTUgOTkuNjAwNyA0Ni4yNTA2IDEwMS45MDIgNDYuMjUwNkMxMDQuMjAyIDQ2LjI1MDYgMTA2LjI3MSA0Ni40MzE1IDEwNy43NTEgNDYuNzE3OUMxMDguNDk1IDQ2Ljg2MiAxMDkuMDYzIDQ3LjAyNzcgMTA5LjQzMiA0Ny4xOTY1WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xMDkuNDMyIDQ1LjU2NzFDMTA5LjU0NyA0NS42MTk1IDEwOS42MzEgNDUuNjY3MiAxMDkuNjkgNDUuNzA3NEMxMDkuNjMxIDQ1Ljc0NzcgMTA5LjU0NyA0NS43OTU0IDEwOS40MzIgNDUuODQ3OEMxMDkuMDYzIDQ2LjAxNjUgMTA4LjQ5NSA0Ni4xODIyIDEwNy43NTEgNDYuMzI2M0MxMDYuMjcxIDQ2LjYxMjggMTA0LjIwMiA0Ni43OTM2IDEwMS45MDIgNDYuNzkzNkM5OS42MDA3IDQ2Ljc5MzYgOTcuNTMyNCA0Ni42MTI4IDk2LjA1MjIgNDYuMzI2M0M5NS4zMDc3IDQ2LjE4MjIgOTQuNzM5NyA0Ni4wMTY1IDk0LjM3MDkgNDUuODQ3OEM5NC4yNTY1IDQ1Ljc5NTQgOTQuMTcyNCA0NS43NDc3IDk0LjExMjYgNDUuNzA3NEM5NC4xNzI0IDQ1LjY2NzIgOTQuMjU2NSA0NS42MTk1IDk0LjM3MDkgNDUuNTY3MUM5NC43Mzk3IDQ1LjM5ODMgOTUuMzA3NyA0NS4yMzI3IDk2LjA1MjIgNDUuMDg4NUM5Ny41MzI0IDQ0LjgwMjEgOTkuNjAwNyA0NC42MjEyIDEwMS45MDIgNDQuNjIxMkMxMDQuMjAyIDQ0LjYyMTIgMTA2LjI3MSA0NC44MDIxIDEwNy43NTEgNDUuMDg4NUMxMDguNDk1IDQ1LjIzMjcgMTA5LjA2MyA0NS4zOTgzIDEwOS40MzIgNDUuNTY3MVoiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMF9iXzM0NjFfNDYxMzQpIj4KPHJlY3QgeD0iMTAwLjI3IiB5PSI3NS44MzQ1IiB3aWR0aD0iMzguNTY0MSIgaGVpZ2h0PSIyMy40NjE1IiByeD0iMi4xNjU3OSIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNMTEzLjY0NiA4OS43ODQ1VjkxLjE0OTlIMTA2LjE3OUwxMDYuMTIzIDkwLjExODhMMTEwLjU4OSA4My4xMjEySDExMS45NjFMMTEwLjQ3NSA4NS42NjdMMTA3LjkwOCA4OS43ODQ1SDExMy42NDZaTTExMi4zNTIgODMuMTIxMlY5My40NzUzSDExMC42MzhWODMuMTIxMkgxMTIuMzUyWk0xMjEuNTQgODcuNDMwN1Y4OS4xMjMyQzEyMS41NCA4OS45MzM5IDEyMS40NTkgOTAuNjI2IDEyMS4yOTggOTEuMTk5N0MxMjEuMTQyIDkxLjc2ODYgMTIwLjkxNCA5Mi4yMzA5IDEyMC42MTYgOTIuNTg2NEMxMjAuMzE3IDkyLjk0MiAxMTkuOTU5IDkzLjIwMjcgMTE5LjU0MiA5My4zNjg3QzExOS4xMjkgOTMuNTM0NiAxMTguNjY3IDkzLjYxNzYgMTE4LjE1NSA5My42MTc2QzExNy43NDcgOTMuNjE3NiAxMTcuMzY4IDkzLjU2NTQgMTE3LjAxNyA5My40NjExQzExNi42NzEgOTMuMzU2OCAxMTYuMzU4IDkzLjE5MzMgMTE2LjA3OSA5Mi45NzA0QzExNS43OTkgOTIuNzQ3NiAxMTUuNTU5IDkyLjQ2MDggMTE1LjM2IDkyLjExQzExNS4xNjYgOTEuNzU0NCAxMTUuMDE0IDkxLjMzMDEgMTE0LjkwNSA5MC44MzdDMTE0LjgwMSA5MC4zNDQgMTE0Ljc0OSA4OS43NzI3IDExNC43NDkgODkuMTIzMlY4Ny40MzA3QzExNC43NDkgODYuNjE1MiAxMTQuODI5IDg1LjkyNzggMTE0Ljk5IDg1LjM2ODRDMTE1LjE1MiA4NC44MDQyIDExNS4zODIgODQuMzQ2NyAxMTUuNjggODMuOTk1OUMxMTUuOTc5IDgzLjY0MDMgMTE2LjMzNSA4My4zODE5IDExNi43NDcgODMuMjIwN0MxMTcuMTY0IDgzLjA1OTUgMTE3LjYyOSA4Mi45Nzg5IDExOC4xNDEgODIuOTc4OUMxMTguNTUzIDgyLjk3ODkgMTE4LjkzMyA4My4wMzExIDExOS4yNzkgODMuMTM1NEMxMTkuNjI5IDgzLjIzNSAxMTkuOTQyIDgzLjM5MzggMTIwLjIxNyA4My42MTE5QzEyMC40OTcgODMuODI5OSAxMjAuNzM0IDg0LjExNDQgMTIwLjkyOCA4NC40NjUyQzEyMS4xMjggODQuODExMyAxMjEuMjc5IDg1LjIzMDkgMTIxLjM4NCA4NS43MjM5QzEyMS40ODggODYuMjEyMyAxMjEuNTQgODYuNzgxMiAxMjEuNTQgODcuNDMwN1pNMTE5LjgyNiA4OS4zNjVWODcuMTc0N0MxMTkuODI2IDg2Ljc2MjIgMTE5LjgwMiA4Ni4zOTk1IDExOS43NTUgODYuMDg2NkMxMTkuNzA4IDg1Ljc2OSAxMTkuNjM3IDg1LjUwMTEgMTE5LjU0MiA4NS4yODNDMTE5LjQ1MiA4NS4wNjAyIDExOS4zMzggODQuODgwMSAxMTkuMiA4NC43NDI2QzExOS4wNjMgODQuNjAwMyAxMTguOTA2IDg0LjQ5ODQgMTE4LjczMSA4NC40MzY4QzExOC41NTYgODQuMzcwNCAxMTguMzU5IDg0LjMzNzIgMTE4LjE0MSA4NC4zMzcyQzExNy44NzUgODQuMzM3MiAxMTcuNjM4IDg0LjM4OTQgMTE3LjQzIDg0LjQ5MzdDMTE3LjIyMSA4NC41OTMyIDExNy4wNDYgODQuNzU0NCAxMTYuOTAzIDg0Ljk3NzJDMTE2Ljc2MSA4NS4yMDAxIDExNi42NTIgODUuNDk0IDExNi41NzYgODUuODU5MUMxMTYuNTA1IDg2LjIxOTQgMTE2LjQ3IDg2LjY1NzkgMTE2LjQ3IDg3LjE3NDdWODkuMzY1QzExNi40NyA4OS43ODIyIDExNi40OTMgOTAuMTQ5NiAxMTYuNTQxIDkwLjQ2NzJDMTE2LjU4OCA5MC43ODQ5IDExNi42NTkgOTEuMDU3NSAxMTYuNzU0IDkxLjI4NUMxMTYuODQ5IDkxLjUwNzkgMTE2Ljk2MyA5MS42OTI4IDExNy4wOTUgOTEuODM5N0MxMTcuMjMzIDkxLjk4MiAxMTcuMzg5IDkyLjA4NjMgMTE3LjU2NSA5Mi4xNTI2QzExNy43NDUgOTIuMjE5IDExNy45NDIgOTIuMjUyMiAxMTguMTU1IDkyLjI1MjJDMTE4LjQyNSA5Mi4yNTIyIDExOC42NjUgOTIuMiAxMTguODczIDkyLjA5NTdDMTE5LjA4MiA5MS45OTE0IDExOS4yNTcgOTEuODI1NSAxMTkuNCA5MS41OTc5QzExOS41NDIgOTEuMzY1NiAxMTkuNjQ4IDkxLjA2NDYgMTE5LjcyIDkwLjY5NDhDMTE5Ljc5MSA5MC4zMjUgMTE5LjgyNiA4OS44ODE3IDExOS44MjYgODkuMzY1WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNMTI2LjgxNyA4OC41OTFWODguMjQ4N0MxMjYuODE3IDg4LjAwMjggMTI2Ljg3IDg3Ljc3OTEgMTI2Ljk3NyA4Ny41Nzc2QzEyNy4wODMgODcuMzc2MSAxMjcuMjM5IDg3LjIxNDYgMTI3LjQ0MyA4Ny4wOTMxQzEyNy42NDggODYuOTcxNiAxMjcuODk0IDg2LjkxMDkgMTI4LjE4MSA4Ni45MTA5QzEyOC40NzcgODYuOTEwOSAxMjguNzI2IDg2Ljk3MTYgMTI4LjkyOCA4Ny4wOTMxQzEyOS4xMzIgODcuMjE0NiAxMjkuMjg4IDg3LjM3NjEgMTI5LjM5NCA4Ny41Nzc2QzEyOS41MDEgODcuNzc5MSAxMjkuNTU0IDg4LjAwMjggMTI5LjU1NCA4OC4yNDg3Vjg4LjU5MUMxMjkuNTU0IDg4LjgzMSAxMjkuNTAxIDg5LjA1MTcgMTI5LjM5NCA4OS4yNTMyQzEyOS4yOTEgODkuNDU0NyAxMjkuMTM3IDg5LjYxNjIgMTI4LjkzMiA4OS43Mzc3QzEyOC43MzEgODkuODU5MiAxMjguNDgzIDg5LjkxOTkgMTI4LjE5IDg5LjkxOTlDMTI3LjkgODkuOTE5OSAxMjcuNjUxIDg5Ljg1OTIgMTI3LjQ0MyA4OS43Mzc3QzEyNy4yMzkgODkuNjE2MiAxMjcuMDgzIDg5LjQ1NDcgMTI2Ljk3NyA4OS4yNTMyQzEyNi44NyA4OS4wNTE3IDEyNi44MTcgODguODMxIDEyNi44MTcgODguNTkxWk0xMjcuNTU5IDg4LjI0ODdWODguNTkxQzEyNy41NTkgODguNzA5NSAxMjcuNTgxIDg4LjgyMjEgMTI3LjYyNSA4OC45Mjg3QzEyNy42NzMgODkuMDM1NCAxMjcuNzQ0IDg5LjEyMTMgMTI3LjgzOSA4OS4xODY1QzEyNy45MzQgODkuMjUxNyAxMjguMDUxIDg5LjI4NDMgMTI4LjE5IDg5LjI4NDNDMTI4LjMzMiA4OS4yODQzIDEyOC40NDggODkuMjUxNyAxMjguNTM3IDg5LjE4NjVDMTI4LjYyOCA4OS4xMjEzIDEyOC42OTcgODkuMDM1NCAxMjguNzQxIDg4LjkyODdDMTI4Ljc4NSA4OC44MjIxIDEyOC44MDggODguNzA5NSAxMjguODA4IDg4LjU5MVY4OC4yNDg3QzEyOC44MDggODguMTI3MiAxMjguNzg0IDg4LjAxMzIgMTI4LjczNyA4Ny45MDY1QzEyOC42OTIgODcuNzk2OSAxMjguNjI0IDg3LjcwOTQgMTI4LjUzMiA4Ny42NDQzQzEyOC40NCA4Ny41NzkxIDEyOC4zMjMgODcuNTQ2NSAxMjguMTgxIDg3LjU0NjVDMTI4LjA0NSA4Ny41NDY1IDEyNy45MjkgODcuNTc5MSAxMjcuODM0IDg3LjY0NDNDMTI3Ljc0MiA4Ny43MDk0IDEyNy42NzMgODcuNzk2OSAxMjcuNjI1IDg3LjkwNjVDMTI3LjU4MSA4OC4wMTMyIDEyNy41NTkgODguMTI3MiAxMjcuNTU5IDg4LjI0ODdaTTEyOS45MzcgOTIuMjM1NVY5MS44ODg5QzEyOS45MzcgOTEuNjQ1OSAxMjkuOTkgOTEuNDIzNyAxMzAuMDk3IDkxLjIyMjJDMTMwLjIwNiA5MS4wMjA3IDEzMC4zNjMgOTAuODU5MiAxMzAuNTY4IDkwLjczNzdDMTMwLjc3MiA5MC42MTYyIDEzMS4wMTggOTAuNTU1NSAxMzEuMzA2IDkwLjU1NTVDMTMxLjYwMiA5MC41NTU1IDEzMS44NTEgOTAuNjE2MiAxMzIuMDUyIDkwLjczNzdDMTMyLjI1NyA5MC44NTkyIDEzMi40MTEgOTEuMDIwNyAxMzIuNTE1IDkxLjIyMjJDMTMyLjYyMSA5MS40MjM3IDEzMi42NzUgOTEuNjQ1OSAxMzIuNjc1IDkxLjg4ODlWOTIuMjM1NUMxMzIuNjc1IDkyLjQ3ODUgMTMyLjYyMSA5Mi43MDA3IDEzMi41MTUgOTIuOTAyMkMxMzIuNDExIDkzLjEwMzcgMTMyLjI1OCA5My4yNjUyIDEzMi4wNTcgOTMuMzg2N0MxMzEuODU1IDkzLjUwODIgMTMxLjYwOSA5My41Njg5IDEzMS4zMTkgOTMuNTY4OUMxMzEuMDI2IDkzLjU2ODkgMTMwLjc3NSA5My41MDgyIDEzMC41NjggOTMuMzg2N0MxMzAuMzYzIDkzLjI2NTIgMTMwLjIwNiA5My4xMDM3IDEzMC4wOTcgOTIuOTAyMkMxMjkuOTkgOTIuNzAwNyAxMjkuOTM3IDkyLjQ3ODUgMTI5LjkzNyA5Mi4yMzU1Wk0xMzAuNjgzIDkxLjg4ODlWOTIuMjM1NUMxMzAuNjgzIDkyLjM1NDEgMTMwLjcwNyA5Mi40NjY3IDEzMC43NTQgOTIuNTczM0MxMzAuODA1IDkyLjY4IDEzMC44NzcgOTIuNzY3NCAxMzAuOTcyIDkyLjgzNTZDMTMxLjA2NyA5Mi45MDA3IDEzMS4xODEgOTIuOTMzMyAxMzEuMzE0IDkyLjkzMzNDMTMxLjQ2NiA5Mi45MzMzIDEzMS41ODcgOTIuOTAwNyAxMzEuNjc5IDkyLjgzNTZDMTMxLjc3MSA5Mi43Njc0IDEzMS44MzYgOTIuNjgxNSAxMzEuODc0IDkyLjU3NzhDMTMxLjkxNiA5Mi40NzExIDEzMS45MzcgOTIuMzU3IDEzMS45MzcgOTIuMjM1NVY5MS44ODg5QzEzMS45MzcgOTEuNzY3NCAxMzEuOTEzIDkxLjY1MzMgMTMxLjg2NiA5MS41NDY2QzEzMS44MjEgOTEuNDQgMTMxLjc1MiA5MS4zNTQgMTMxLjY1NyA5MS4yODg4QzEzMS41NjUgOTEuMjIzNiAxMzEuNDQ4IDkxLjE5MTEgMTMxLjMwNiA5MS4xOTExQzEzMS4xNjYgOTEuMTkxMSAxMzEuMDUxIDkxLjIyMzYgMTMwLjk1OSA5MS4yODg4QzEzMC44NjcgOTEuMzU0IDEzMC43OTcgOTEuNDQgMTMwLjc1IDkxLjU0NjZDMTMwLjcwNiA5MS42NTMzIDEzMC42ODMgOTEuNzY3NCAxMzAuNjgzIDkxLjg4ODlaTTEzMS41NzIgODcuOTI4N0wxMjguNDEyIDkyLjk4NjdMMTI3Ljg2NSA5Mi42NzExTDEzMS4wMjYgODcuNjEzMUwxMzEuNTcyIDg3LjkyODdaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjwvZz4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxOTkiIGhlaWdodD0iMTU5IiByeD0iMy41IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4xMiIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzM0NjFfNDYxMzQiIHg9Ijk3LjAyMDkiIHk9IjcyLjU4NTgiIHdpZHRoPSI0NS4wNjE4IiBoZWlnaHQ9IjI5Ljk1ODgiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iMS42MjQzNCIvPgo8ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMzQ2MV80NjEzNCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMzQ2MV80NjEzNCIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K", - "description": "Widget indicates the level of liquid in Horizontal Cylinder tank.", - "descriptor": { - "type": "latest", - "sizeX": 7.5, - "sizeY": 3, - "resources": [], - "templateHtml": "\n", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", - "settingsSchema": "{}", - "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-liquid-level-card-widget-settings", - "hasBasicMode": true, - "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" - }, - "externalId": null, - "tags": null -} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json b/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json new file mode 100644 index 0000000000..c791a1adac --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_dish_ends", + "name": "Horizontal dish ends", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Horizontal dish ends tank.", + "descriptor": { + "type": "latest", + "sizeX": 4, + "sizeY": 4, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 deleted file mode 100644 index cae54462f2..0000000000 --- a/application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "fqn": "horizontal_dish_ends", - "name": "Horizontal Dish Ends tank", - "deprecated": false, - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUxLjY2MzYgNTcuMDc4MUgxNDguMzM2VjEyNi41OTVINTEuNjYzNlY1Ny4wNzgxWk01MS42NjM2IDEyNi41OTVMNTEuNjYzNSA1Ny4wNzgxQzUxLjY2MzUgNTcuMDc4MSA0MS44ODc3IDY3LjM5NzEgNDEuODg3NyA5MS44MzY4QzQxLjg4NzcgMTE2LjI3NiA1MS42NjM2IDEyNi41OTUgNTEuNjYzNiAxMjYuNTk1Wk0xNDguMzM2IDEyNi41OTVMMTQ4LjMzNiA1Ny4wNzgxQzE0OC4zMzYgNTcuMDc4MSAxNTguMTEyIDY3LjM5NzEgMTU4LjExMiA5MS44MzY4QzE1OC4xMTIgMTE2LjI3NiAxNDguMzM2IDEyNi41OTUgMTQ4LjMzNiAxMjYuNTk1WiIgZmlsbD0iIzYyMTZGRiIgZmlsbC1vcGFjaXR5PSIwLjAyIi8+CjxwYXRoIGQ9Ik0xNDguMzM2IDU3LjA3ODFIMTQ4Ljg3OVY1Ni41MzVIMTQ4LjMzNlY1Ny4wNzgxWk01MS42NjM2IDU3LjA3ODFWNTYuNTM1SDUxLjEyMDVWNTcuMDc4MUg1MS42NjM2Wk01MS42NjM1IDU3LjA3ODFMNTIuMjA2NiA1Ny4wNzgxTDUyLjIwNjYgNTUuNzE1Mkw1MS4yNjkyIDU2LjcwNDZMNTEuNjYzNSA1Ny4wNzgxWk0xNDguMzM2IDU3LjA3ODFMMTQ4LjczIDU2LjcwNDZMMTQ3Ljc5MyA1NS43MTUyVjU3LjA3ODFMMTQ4LjMzNiA1Ny4wNzgxWk0xNDguMzM2IDU2LjUzNUg1MS42NjM2VjU3LjYyMTJIMTQ4LjMzNlY1Ni41MzVaTTE0OC44NzkgMTI2LjU5NVY1Ny4wNzgxSDE0Ny43OTNWMTI2LjU5NUgxNDguODc5Wk01MS42NjM2IDEyNy4xMzhIMTQ4LjMzNlYxMjYuMDUySDUxLjY2MzZWMTI3LjEzOFpNNTEuMTIwNSA1Ny4wNzgxVjEyNi41OTVINTIuMjA2N1Y1Ny4wNzgxSDUxLjEyMDVaTTUyLjIwNjcgMTI2LjU5NUw1Mi4yMDY2IDU3LjA3ODFMNTEuMTIwNCA1Ny4wNzgxTDUxLjEyMDUgMTI2LjU5NUg1Mi4yMDY3Wk01MS42NjM1IDU3LjA3ODFDNTEuMjY5MiA1Ni43MDQ2IDUxLjI2OSA1Ni43MDQ5IDUxLjI2ODcgNTYuNzA1MkM1MS4yNjg2IDU2LjcwNTMgNTEuMjY4MiA1Ni43MDU3IDUxLjI2NzkgNTYuNzA2QzUxLjI2NzMgNTYuNzA2NiA1MS4yNjY2IDU2LjcwNzQgNTEuMjY1NyA1Ni43MDgzQzUxLjI2NCA1Ni43MTAyIDUxLjI2MTYgNTYuNzEyNyA1MS4yNTg3IDU2LjcxNTlDNTEuMjUyOSA1Ni43MjIyIDUxLjI0NDcgNTYuNzMxIDUxLjIzNDMgNTYuNzQyNEM1MS4yMTM1IDU2Ljc2NTIgNTEuMTgzNyA1Ni43OTgyIDUxLjE0NTYgNTYuODQxNkM1MS4wNjk0IDU2LjkyODUgNTAuOTU5OCA1Ny4wNTY3IDUwLjgyMTUgNTcuMjI3M0M1MC41NDUgNTcuNTY4NiA1MC4xNTM5IDU4LjA3OTQgNDkuNjg2OCA1OC43NjcyQzQ4Ljc1MjQgNjAuMTQyOCA0Ny41MTM2IDYyLjIyNjEgNDYuMjc3MyA2NS4wNzY1QzQzLjgwNCA3MC43NzkgNDEuMzQ0NiA3OS41NDIyIDQxLjM0NDYgOTEuODM2OEg0Mi40MzA4QzQyLjQzMDggNzkuNjkxNyA0NC44NTkzIDcxLjA3NTUgNDcuMjczOSA2NS41MDg3QzQ4LjQ4MTUgNjIuNzI0MyA0OS42ODY3IDYwLjcwMDQgNTAuNTg1MyA1OS4zNzc1QzUxLjAzNDYgNTguNzE2IDUxLjQwNzMgNTguMjI5NyA1MS42NjU0IDU3LjkxMTJDNTEuNzk0NSA1Ny43NTE5IDUxLjg5NDkgNTcuNjM0NiA1MS45NjE4IDU3LjU1ODNDNTEuOTk1MyA1Ny41MjAyIDUyLjAyMDUgNTcuNDkyMyA1Mi4wMzY2IDU3LjQ3NDZDNTIuMDQ0NyA1Ny40NjU3IDUyLjA1MDYgNTcuNDU5NCA1Mi4wNTQxIDU3LjQ1NTVDNTIuMDU1OSA1Ny40NTM2IDUyLjA1NzEgNTcuNDUyNCA1Mi4wNTc3IDU3LjQ1MTdDNTIuMDU4IDU3LjQ1MTQgNTIuMDU4MiA1Ny40NTEyIDUyLjA1ODIgNTcuNDUxMkM1Mi4wNTgyIDU3LjQ1MTIgNTIuMDU4MSA1Ny40NTEzIDUyLjA1ODEgNTcuNDUxM0M1Mi4wNTggNTcuNDUxNSA1Mi4wNTc4IDU3LjQ1MTYgNTEuNjYzNSA1Ny4wNzgxWk00MS4zNDQ2IDkxLjgzNjhDNDEuMzQ0NiAxMDQuMTMxIDQzLjgwNCAxMTIuODk1IDQ2LjI3NzQgMTE4LjU5N0M0Ny41MTM3IDEyMS40NDcgNDguNzUyNCAxMjMuNTMxIDQ5LjY4NjggMTI0LjkwNkM1MC4xNTQgMTI1LjU5NCA1MC41NDUgMTI2LjEwNSA1MC44MjE1IDEyNi40NDZDNTAuOTU5OCAxMjYuNjE3IDUxLjA2OTQgMTI2Ljc0NSA1MS4xNDU3IDEyNi44MzJDNTEuMTgzOCAxMjYuODc1IDUxLjIxMzUgMTI2LjkwOCA1MS4yMzQzIDEyNi45MzFDNTEuMjQ0NyAxMjYuOTQzIDUxLjI1MjkgMTI2Ljk1MSA1MS4yNTg4IDEyNi45NThDNTEuMjYxNyAxMjYuOTYxIDUxLjI2NCAxMjYuOTYzIDUxLjI2NTggMTI2Ljk2NUM1MS4yNjY3IDEyNi45NjYgNTEuMjY3NCAxMjYuOTY3IDUxLjI2OCAxMjYuOTY4QzUxLjI2ODMgMTI2Ljk2OCA1MS4yNjg2IDEyNi45NjggNTEuMjY4OCAxMjYuOTY4QzUxLjI2OTEgMTI2Ljk2OSA1MS44NjQ2IDEyNy4xIDUyLjIwNjcgMTI2LjU5NUg1MS4xMjA1QzUxLjQ2MjUgMTI2LjA5MSA1Mi4wNTggMTI2LjIyMiA1Mi4wNTgxIDEyNi4yMjJDNTIuMDU4MSAxMjYuMjIyIDUyLjA1ODIgMTI2LjIyMiA1Mi4wNTgyIDEyNi4yMjJDNTIuMDU4MiAxMjYuMjIyIDUyLjA1ODEgMTI2LjIyMiA1Mi4wNTc4IDEyNi4yMjJDNTIuMDU3MiAxMjYuMjIxIDUyLjA1NiAxMjYuMjIgNTIuMDU0MiAxMjYuMjE4QzUyLjA1MDYgMTI2LjIxNCA1Mi4wNDQ4IDEyNi4yMDggNTIuMDM2NyAxMjYuMTk5QzUyLjAyMDUgMTI2LjE4MSA1MS45OTU0IDEyNi4xNTMgNTEuOTYxOSAxMjYuMTE1QzUxLjg5NDkgMTI2LjAzOSA1MS43OTQ1IDEyNS45MjIgNTEuNjY1NSAxMjUuNzYyQzUxLjQwNzQgMTI1LjQ0NCA1MS4wMzQ3IDEyNC45NTggNTAuNTg1MyAxMjQuMjk2QzQ5LjY4NjggMTIyLjk3MyA0OC40ODE1IDEyMC45NDkgNDcuMjczOSAxMTguMTY1QzQ0Ljg1OTMgMTEyLjU5OCA0Mi40MzA4IDEwMy45ODIgNDIuNDMwOCA5MS44MzY4SDQxLjM0NDZaTTE0Ny43OTMgNTcuMDc4MUwxNDcuNzkzIDEyNi41OTVIMTQ4Ljg3OUwxNDguODc5IDU3LjA3ODFMMTQ3Ljc5MyA1Ny4wNzgxWk0xNTguNjU1IDkxLjgzNjhDMTU4LjY1NSA3OS41NDIyIDE1Ni4xOTYgNzAuNzc5IDE1My43MjIgNjUuMDc2NUMxNTIuNDg2IDYyLjIyNjEgMTUxLjI0NyA2MC4xNDI4IDE1MC4zMTMgNTguNzY3MkMxNDkuODQ2IDU4LjA3OTQgMTQ5LjQ1NSA1Ny41Njg2IDE0OS4xNzggNTcuMjI3M0MxNDkuMDQgNTcuMDU2NyAxNDguOTMgNTYuOTI4NSAxNDguODU0IDU2Ljg0MTZDMTQ4LjgxNiA1Ni43OTgyIDE0OC43ODYgNTYuNzY1MiAxNDguNzY1IDU2Ljc0MjRDMTQ4Ljc1NSA1Ni43MzEgMTQ4Ljc0NyA1Ni43MjIyIDE0OC43NDEgNTYuNzE1OUMxNDguNzM4IDU2LjcxMjcgMTQ4LjczNiA1Ni43MTAyIDE0OC43MzQgNTYuNzA4M0MxNDguNzMzIDU2LjcwNzQgMTQ4LjczMiA1Ni43MDY2IDE0OC43MzIgNTYuNzA2QzE0OC43MzEgNTYuNzA1NyAxNDguNzMxIDU2LjcwNTMgMTQ4LjczMSA1Ni43MDUyQzE0OC43MzEgNTYuNzA0OSAxNDguNzMgNTYuNzA0NiAxNDguMzM2IDU3LjA3ODFDMTQ3Ljk0MiA1Ny40NTE2IDE0Ny45NDIgNTcuNDUxNSAxNDcuOTQxIDU3LjQ1MTNDMTQ3Ljk0MSA1Ny40NTEzIDE0Ny45NDEgNTcuNDUxMiAxNDcuOTQxIDU3LjQ1MTJDMTQ3Ljk0MSA1Ny40NTEyIDE0Ny45NDIgNTcuNDUxNCAxNDcuOTQyIDU3LjQ1MTdDMTQ3Ljk0MiA1Ny40NTI0IDE0Ny45NDQgNTcuNDUzNiAxNDcuOTQ1IDU3LjQ1NTVDMTQ3Ljk0OSA1Ny40NTk0IDE0Ny45NTUgNTcuNDY1NyAxNDcuOTYzIDU3LjQ3NDZDMTQ3Ljk3OSA1Ny40OTIzIDE0OC4wMDQgNTcuNTIwMiAxNDguMDM4IDU3LjU1ODNDMTQ4LjEwNSA1Ny42MzQ2IDE0OC4yMDUgNTcuNzUxOSAxNDguMzM0IDU3LjkxMTJDMTQ4LjU5MiA1OC4yMjk3IDE0OC45NjUgNTguNzE2IDE0OS40MTQgNTkuMzc3NUMxNTAuMzEzIDYwLjcwMDQgMTUxLjUxOCA2Mi43MjQzIDE1Mi43MjYgNjUuNTA4N0MxNTUuMTQgNzEuMDc1NSAxNTcuNTY5IDc5LjY5MTcgMTU3LjU2OSA5MS44MzY4SDE1OC42NTVaTTE0Ny45NTIgMTI2Ljk3OUMxNDguMzQzIDEyNy4xMzggMTQ4LjczIDEyNi45NjkgMTQ4LjczMSAxMjYuOTY4QzE0OC43MzEgMTI2Ljk2OCAxNDguNzMxIDEyNi45NjggMTQ4LjczMiAxMjYuOTY4QzE0OC43MzIgMTI2Ljk2NyAxNDguNzMzIDEyNi45NjYgMTQ4LjczNCAxMjYuOTY1QzE0OC43MzYgMTI2Ljk2MyAxNDguNzM4IDEyNi45NjEgMTQ4Ljc0MSAxMjYuOTU4QzE0OC43NDcgMTI2Ljk1MSAxNDguNzU1IDEyNi45NDMgMTQ4Ljc2NSAxMjYuOTMxQzE0OC43ODYgMTI2LjkwOCAxNDguODE2IDEyNi44NzUgMTQ4Ljg1NCAxMjYuODMyQzE0OC45MyAxMjYuNzQ1IDE0OS4wNCAxMjYuNjE3IDE0OS4xNzggMTI2LjQ0NkMxNDkuNDU1IDEyNi4xMDUgMTQ5Ljg0NiAxMjUuNTk0IDE1MC4zMTMgMTI0LjkwNkMxNTEuMjQ3IDEyMy41MzEgMTUyLjQ4NiAxMjEuNDQ3IDE1My43MjIgMTE4LjU5N0MxNTYuMTk2IDExMi44OTUgMTU4LjY1NSAxMDQuMTMxIDE1OC42NTUgOTEuODM2OEgxNTcuNTY5QzE1Ny41NjkgMTAzLjk4MiAxNTUuMTQgMTEyLjU5OCAxNTIuNzI2IDExOC4xNjVDMTUxLjUxOCAxMjAuOTQ5IDE1MC4zMTMgMTIyLjk3MyAxNDkuNDE0IDEyNC4yOTZDMTQ4Ljk2NSAxMjQuOTU4IDE0OC41OTIgMTI1LjQ0NCAxNDguMzM0IDEyNS43NjJDMTQ4LjIwNSAxMjUuOTIyIDE0OC4xMDUgMTI2LjAzOSAxNDguMDM4IDEyNi4xMTVDMTQ4LjAwNCAxMjYuMTUzIDE0Ny45NzkgMTI2LjE4MSAxNDcuOTYzIDEyNi4xOTlDMTQ3Ljk1NSAxMjYuMjA4IDE0Ny45NDkgMTI2LjIxNCAxNDcuOTQ1IDEyNi4yMThDMTQ3Ljk0NCAxMjYuMjIgMTQ3Ljk0MiAxMjYuMjIxIDE0Ny45NDIgMTI2LjIyMkMxNDcuOTQyIDEyNi4yMjIgMTQ3Ljk0MSAxMjYuMjIyIDE0Ny45NDEgMTI2LjIyMkMxNDcuOTQxIDEyNi4yMjIgMTQ3Ljk0MSAxMjYuMjIyIDE0Ny45NDEgMTI2LjIyMkMxNDcuOTQyIDEyNi4yMjIgMTQ4LjMyOSAxMjYuMDUyIDE0OC43MiAxMjYuMjExTDE0Ny45NTIgMTI2Ljk3OVoiIGZpbGw9IiMyNDI3NzAiLz4KPG1hc2sgaWQ9Im1hc2swXzM0NjFfNDc1NTkiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQzIiB5PSI1OCIgd2lkdGg9IjExNCIgaGVpZ2h0PSI2NyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNTIuMjA2MyA1OC43MDc1SDE0Ny43OTNWMTI0Ljk2Nkg1Mi4yMDYzVjU4LjcwNzVaTTUyLjIwNjMgMTI0Ljk2Nkw1Mi4yMDYyIDU4LjcwNzVDNTIuMjA2MiA1OC43MDc1IDQzLjUxNjYgNjguNTQyOCA0My41MTY2IDkxLjgzNjlDNDMuNTE2NiAxMTUuMTMxIDUyLjIwNjMgMTI0Ljk2NiA1Mi4yMDYzIDEyNC45NjZaTTE0Ny43OTMgMTI0Ljk2NkwxNDcuNzkzIDU4LjcwNzVDMTQ3Ljc5MyA1OC43MDc1IDE1Ni40ODIgNjguNTQyOCAxNTYuNDgyIDkxLjgzNjlDMTU2LjQ4MiAxMTUuMTMxIDE0Ny43OTMgMTI0Ljk2NiAxNDcuNzkzIDEyNC45NjZaIiBmaWxsPSIjRjFGMUY5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF8zNDYxXzQ3NTU5KSI+CjxyZWN0IHg9IjQzLjUxNjYiIHk9Ijk2LjAxNzgiIHdpZHRoPSIxMTIuOTY2IiBoZWlnaHQ9IjY2LjI1ODciIGZpbGw9IiM3QThCRkYiLz4KPHJlY3QgeD0iNDMuNTE2NiIgeT0iOTYuMDE3OCIgd2lkdGg9IjExMi45NjYiIGhlaWdodD0iMC41NDMxMDQiIGZpbGw9IiM3QThCRkYiLz4KPHJlY3QgeD0iNDMuNTE2NiIgeT0iOTYuMDE3OCIgd2lkdGg9IjExMi45NjYiIGhlaWdodD0iMC41NDMxMDQiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuMSIvPgo8L2c+CjxwYXRoIGQ9Ik01MS42NjAyIDU3LjA3ODFWMTI2LjU5NSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTE0OC4zMzMgNTcuMDc4MVYxMjYuNTk1IiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8bWFzayBpZD0icGF0aC0xMS1pbnNpZGUtMV8zNDYxXzQ3NTU5IiBmaWxsPSJ3aGl0ZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA4LjE0NiA0Ny41MzUySDkyLjM5NjVWNTcuMzExQzkyLjM5NjUgNTguMjEwOSA5NS45MjIyIDU4Ljk0MDMgMTAwLjI3MSA1OC45NDAzQzEwNC42MjEgNTguOTQwMyAxMDguMTQ2IDU4LjIxMDkgMTA4LjE0NiA1Ny4zMTFWNDcuNTM1MloiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwOC4xNDYgNDcuNTM1Mkg5Mi4zOTY1VjU3LjMxMUM5Mi4zOTY1IDU4LjIxMDkgOTUuOTIyMiA1OC45NDAzIDEwMC4yNzEgNTguOTQwM0MxMDQuNjIxIDU4Ljk0MDMgMTA4LjE0NiA1OC4yMTA5IDEwOC4xNDYgNTcuMzExVjQ3LjUzNTJaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTIuMzk2NSA0Ny41MzUyVjQ2LjQ0ODlIOTEuMzEwM1Y0Ny41MzUySDkyLjM5NjVaTTEwOC4xNDYgNDcuNTM1MkgxMDkuMjMzVjQ2LjQ0ODlIMTA4LjE0NlY0Ny41MzUyWk05Mi4zOTY1IDQ4LjYyMTRIMTA4LjE0NlY0Ni40NDg5SDkyLjM5NjVWNDguNjIxNFpNOTMuNDgyNyA1Ny4zMTFWNDcuNTM1Mkg5MS4zMTAzVjU3LjMxMUg5My40ODI3Wk0xMDAuMjcxIDU3Ljg1NDFDOTguMTQ3OCA1Ny44NTQxIDk2LjI1NjMgNTcuNjc1MyA5NC45MjMxIDU3LjM5OTRDOTQuMjQ3NiA1Ny4yNTk3IDkzLjc3MjUgNTcuMTA2NCA5My40OTI2IDU2Ljk2OTVDOTMuMzUwNSA1Ni45IDkzLjMxNDcgNTYuODYxNCA5My4zMjg4IDU2Ljg3NTZDOTMuMzQ2MSA1Ni44OTMxIDkzLjQ4MjcgNTcuMDQyMSA5My40ODI3IDU3LjMxMUg5MS4zMTAzQzkxLjMxMDMgNTcuODA1IDkxLjU1NzEgNTguMTczNiA5MS43ODQyIDU4LjQwMzJDOTIuMDA4IDU4LjYyOTUgOTIuMjgxNyA1OC43OTU2IDkyLjUzODEgNTguOTIxQzkzLjA1NTIgNTkuMTczOSA5My43MzM0IDU5LjM3MTcgOTQuNDgyOSA1OS41MjY4Qzk1Ljk5OTkgNTkuODQwNyA5OC4wNDU5IDYwLjAyNjUgMTAwLjI3MSA2MC4wMjY1VjU3Ljg1NDFaTTEwNy4wNiA1Ny4zMTFDMTA3LjA2IDU3LjA0MjEgMTA3LjE5NyA1Ni44OTMxIDEwNy4yMTQgNTYuODc1NkMxMDcuMjI4IDU2Ljg2MTQgMTA3LjE5MyA1Ni45IDEwNy4wNSA1Ni45Njk1QzEwNi43NyA1Ny4xMDY0IDEwNi4yOTUgNTcuMjU5NyAxMDUuNjIgNTcuMzk5NEMxMDQuMjg3IDU3LjY3NTMgMTAyLjM5NSA1Ny44NTQxIDEwMC4yNzEgNTcuODU0MVY2MC4wMjY1QzEwMi40OTcgNjAuMDI2NSAxMDQuNTQzIDU5Ljg0MDcgMTA2LjA2IDU5LjUyNjhDMTA2LjgxIDU5LjM3MTcgMTA3LjQ4OCA1OS4xNzM5IDEwOC4wMDUgNTguOTIxQzEwOC4yNjEgNTguNzk1NiAxMDguNTM1IDU4LjYyOTUgMTA4Ljc1OSA1OC40MDMyQzEwOC45ODYgNTguMTczNiAxMDkuMjMzIDU3LjgwNSAxMDkuMjMzIDU3LjMxMUgxMDcuMDZaTTEwNy4wNiA0Ny41MzUyVjU3LjMxMUgxMDkuMjMzVjQ3LjUzNTJIMTA3LjA2WiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTExLWluc2lkZS0xXzM0NjFfNDc1NTkpIi8+CjxwYXRoIGQ9Ik0xMDcuODAyIDQ3LjkzNzlDMTA3LjkxNyA0Ny45OTAzIDEwOC4wMDEgNDguMDM4IDEwOC4wNiA0OC4wNzgzQzEwOC4wMDEgNDguMTE4NiAxMDcuOTE3IDQ4LjE2NjMgMTA3LjgwMiA0OC4yMTg2QzEwNy40MzMgNDguMzg3NCAxMDYuODY1IDQ4LjU1MzEgMTA2LjEyMSA0OC42OTcyQzEwNC42NDEgNDguOTgzNyAxMDIuNTcyIDQ5LjE2NDUgMTAwLjI3MiA0OS4xNjQ1Qzk3Ljk3MDggNDkuMTY0NSA5NS45MDI1IDQ4Ljk4MzcgOTQuNDIyMyA0OC42OTcyQzkzLjY3NzggNDguNTUzMSA5My4xMDk4IDQ4LjM4NzQgOTIuNzQxIDQ4LjIxODZDOTIuNjI2NiA0OC4xNjYzIDkyLjU0MjUgNDguMTE4NiA5Mi40ODI3IDQ4LjA3ODNDOTIuNTQyNSA0OC4wMzggOTIuNjI2NiA0Ny45OTAzIDkyLjc0MSA0Ny45Mzc5QzkzLjEwOTggNDcuNzY5MiA5My42Nzc4IDQ3LjYwMzUgOTQuNDIyMyA0Ny40NTk0Qzk1LjkwMjUgNDcuMTcyOSA5Ny45NzA4IDQ2Ljk5MjEgMTAwLjI3MiA0Ni45OTIxQzEwMi41NzIgNDYuOTkyMSAxMDQuNjQxIDQ3LjE3MjkgMTA2LjEyMSA0Ny40NTk0QzEwNi44NjUgNDcuNjAzNSAxMDcuNDMzIDQ3Ljc2OTIgMTA3LjgwMiA0Ny45Mzc5WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xMDcuODAyIDQ2LjMwODVDMTA3LjkxNyA0Ni4zNjA5IDEwOC4wMDEgNDYuNDA4NiAxMDguMDYgNDYuNDQ4OUMxMDguMDAxIDQ2LjQ4OTIgMTA3LjkxNyA0Ni41MzY5IDEwNy44MDIgNDYuNTg5MkMxMDcuNDMzIDQ2Ljc1OCAxMDYuODY1IDQ2LjkyMzcgMTA2LjEyMSA0Ny4wNjc4QzEwNC42NDEgNDcuMzU0MyAxMDIuNTcyIDQ3LjUzNTEgMTAwLjI3MiA0Ny41MzUxQzk3Ljk3MDggNDcuNTM1MSA5NS45MDI1IDQ3LjM1NDMgOTQuNDIyMyA0Ny4wNjc4QzkzLjY3NzggNDYuOTIzNyA5My4xMDk4IDQ2Ljc1OCA5Mi43NDEgNDYuNTg5MkM5Mi42MjY2IDQ2LjUzNjkgOTIuNTQyNSA0Ni40ODkyIDkyLjQ4MjcgNDYuNDQ4OUM5Mi41NDI1IDQ2LjQwODYgOTIuNjI2NiA0Ni4zNjA5IDkyLjc0MSA0Ni4zMDg1QzkzLjEwOTggNDYuMTM5OCA5My42Nzc4IDQ1Ljk3NDEgOTQuNDIyMyA0NS44M0M5NS45MDI1IDQ1LjU0MzUgOTcuOTcwOCA0NS4zNjI3IDEwMC4yNzIgNDUuMzYyN0MxMDIuNTcyIDQ1LjM2MjcgMTA0LjY0MSA0NS41NDM1IDEwNi4xMjEgNDUuODNDMTA2Ljg2NSA0NS45NzQxIDEwNy40MzMgNDYuMTM5OCAxMDcuODAyIDQ2LjMwODVaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8zNDYxXzQ3NTU5KSI+CjxyZWN0IHg9IjgwLjcxNzgiIHk9IjgwLjY0OTIiIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik05NC4wOTQ3IDk0LjU5OTJWOTUuOTY0Nkg4Ni42Mjc3TDg2LjU3MDggOTQuOTMzNUw5MS4wMzY4IDg3LjkzNTlIOTIuNDA5M0w5MC45MjMgOTAuNDgxN0w4OC4zNTU4IDk0LjU5OTJIOTQuMDk0N1pNOTIuODAwNCA4Ny45MzU5Vjk4LjI5SDkxLjA4NjVWODcuOTM1OUg5Mi44MDA0Wk0xMDEuOTg4IDkyLjI0NTRWOTMuOTM3OUMxMDEuOTg4IDk0Ljc0ODYgMTAxLjkwOCA5NS40NDA3IDEwMS43NDYgOTYuMDE0NEMxMDEuNTkgOTYuNTgzMyAxMDEuMzYyIDk3LjA0NTUgMTAxLjA2NCA5Ny40MDExQzEwMC43NjUgOTcuNzU2NyAxMDAuNDA3IDk4LjAxNzQgOTkuOTkgOTguMTgzNEM5OS41Nzc1IDk4LjM0OTMgOTkuMTE1MyA5OC40MzIzIDk4LjYwMzMgOTguNDMyM0M5OC4xOTU1IDk4LjQzMjMgOTcuODE2MyA5OC4zODAxIDk3LjQ2NTQgOTguMjc1OEM5Ny4xMTk0IDk4LjE3MTUgOTYuODA2NSA5OC4wMDggOTYuNTI2NyA5Ny43ODUxQzk2LjI0NyA5Ny41NjIzIDk2LjAwNzYgOTcuMjc1NSA5NS44MDg1IDk2LjkyNDdDOTUuNjE0MSA5Ni41NjkxIDk1LjQ2MjQgOTYuMTQ0OCA5NS4zNTM0IDk1LjY1MTdDOTUuMjQ5MSA5NS4xNTg3IDk1LjE5NjkgOTQuNTg3NCA5NS4xOTY5IDkzLjkzNzlWOTIuMjQ1NEM5NS4xOTY5IDkxLjQyOTkgOTUuMjc3NSA5MC43NDI1IDk1LjQzODcgOTAuMTgzMUM5NS41OTk5IDg5LjYxODkgOTUuODI5OCA4OS4xNjE0IDk2LjEyODUgODguODEwNkM5Ni40MjcyIDg4LjQ1NSA5Ni43ODI4IDg4LjE5NjYgOTcuMTk1MiA4OC4wMzU0Qzk3LjYxMjQgODcuODc0MiA5OC4wNzcgODcuNzkzNiA5OC41ODkgODcuNzkzNkM5OS4wMDE1IDg3Ljc5MzYgOTkuMzgwOCA4Ny44NDU4IDk5LjcyNjkgODcuOTUwMUMxMDAuMDc4IDg4LjA0OTcgMTAwLjM5MSA4OC4yMDg1IDEwMC42NjYgODguNDI2NkMxMDAuOTQ1IDg4LjY0NDYgMTAxLjE4MiA4OC45MjkxIDEwMS4zNzcgODkuMjc5OUMxMDEuNTc2IDg5LjYyNiAxMDEuNzI4IDkwLjA0NTYgMTAxLjgzMiA5MC41Mzg2QzEwMS45MzYgOTEuMDI3IDEwMS45ODggOTEuNTk1OSAxMDEuOTg4IDkyLjI0NTRaTTEwMC4yNzQgOTQuMTc5N1Y5MS45ODk0QzEwMC4yNzQgOTEuNTc2OSAxMDAuMjUxIDkxLjIxNDIgMTAwLjIwMyA5MC45MDEzQzEwMC4xNTYgOTAuNTgzNyAxMDAuMDg1IDkwLjMxNTggOTkuOTkgOTAuMDk3N0M5OS44OTk5IDg5Ljg3NDkgOTkuNzg2MSA4OS42OTQ4IDk5LjY0ODYgODkuNTU3M0M5OS41MTEyIDg5LjQxNSA5OS4zNTQ3IDg5LjMxMzEgOTkuMTc5MyA4OS4yNTE1Qzk5LjAwMzkgODkuMTg1MSA5OC44MDcxIDg5LjE1MTkgOTguNTg5IDg5LjE1MTlDOTguMzIzNiA4OS4xNTE5IDk4LjA4NjUgODkuMjA0MSA5Ny44Nzc5IDg5LjMwODRDOTcuNjY5MyA4OS40MDc5IDk3LjQ5MzkgODkuNTY5MSA5Ny4zNTE3IDg5Ljc5MTlDOTcuMjA5NCA5MC4wMTQ4IDk3LjEwMDQgOTAuMzA4NyA5Ny4wMjQ1IDkwLjY3MzhDOTYuOTUzNCA5MS4wMzQxIDk2LjkxNzkgOTEuNDcyNiA5Ni45MTc5IDkxLjk4OTRWOTQuMTc5N0M5Ni45MTc5IDk0LjU5NjkgOTYuOTQxNiA5NC45NjQzIDk2Ljk4OSA5NS4yODE5Qzk3LjAzNjQgOTUuNTk5NiA5Ny4xMDc1IDk1Ljg3MjIgOTcuMjAyMyA5Ni4wOTk3Qzk3LjI5NzEgOTYuMzIyNiA5Ny40MTA5IDk2LjUwNzUgOTcuNTQzNyA5Ni42NTQ0Qzk3LjY4MTIgOTYuNzk2NiA5Ny44Mzc2IDk2LjkwMDkgOTguMDEzIDk2Ljk2NzNDOTguMTkzMiA5Ny4wMzM3IDk4LjM4OTkgOTcuMDY2OSA5OC42MDMzIDk3LjA2NjlDOTguODczNSA5Ny4wNjY5IDk5LjExMjkgOTcuMDE0NyA5OS4zMjE1IDk2LjkxMDRDOTkuNTMwMSA5Ni44MDYxIDk5LjcwNTUgOTYuNjQwMiA5OS44NDc4IDk2LjQxMjZDOTkuOTkgOTYuMTgwMyAxMDAuMDk3IDk1Ljg3OTMgMTAwLjE2OCA5NS41MDk1QzEwMC4yMzkgOTUuMTM5NyAxMDAuMjc0IDk0LjY5NjQgMTAwLjI3NCA5NC4xNzk3WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNMTA3LjI2NSA5My40MDU3VjkzLjA2MzRDMTA3LjI2NSA5Mi44MTc1IDEwNy4zMTggOTIuNTkzOCAxMDcuNDI1IDkyLjM5MjNDMTA3LjUzMSA5Mi4xOTA4IDEwNy42ODcgOTIuMDI5MyAxMDcuODkxIDkxLjkwNzhDMTA4LjA5NiA5MS43ODYzIDEwOC4zNDIgOTEuNzI1NiAxMDguNjI5IDkxLjcyNTZDMTA4LjkyNiA5MS43MjU2IDEwOS4xNzQgOTEuNzg2MyAxMDkuMzc2IDkxLjkwNzhDMTA5LjU4IDkyLjAyOTMgMTA5LjczNiA5Mi4xOTA4IDEwOS44NDMgOTIuMzkyM0MxMDkuOTQ5IDkyLjU5MzggMTEwLjAwMyA5Mi44MTc1IDExMC4wMDMgOTMuMDYzNFY5My40MDU3QzExMC4wMDMgOTMuNjQ1NyAxMDkuOTQ5IDkzLjg2NjQgMTA5Ljg0MyA5NC4wNjc5QzEwOS43MzkgOTQuMjY5NCAxMDkuNTg1IDk0LjQzMDkgMTA5LjM4IDk0LjU1MjRDMTA5LjE3OSA5NC42NzM5IDEwOC45MzIgOTQuNzM0NiAxMDguNjM4IDk0LjczNDZDMTA4LjM0OCA5NC43MzQ2IDEwOC4wOTkgOTQuNjczOSAxMDcuODkxIDk0LjU1MjRDMTA3LjY4NyA5NC40MzA5IDEwNy41MzEgOTQuMjY5NCAxMDcuNDI1IDk0LjA2NzlDMTA3LjMxOCA5My44NjY0IDEwNy4yNjUgOTMuNjQ1NyAxMDcuMjY1IDkzLjQwNTdaTTEwOC4wMDcgOTMuMDYzNFY5My40MDU3QzEwOC4wMDcgOTMuNTI0MiAxMDguMDI5IDkzLjYzNjggMTA4LjA3NCA5My43NDM0QzEwOC4xMjEgOTMuODUwMSAxMDguMTkyIDkzLjkzNiAxMDguMjg3IDk0LjAwMTJDMTA4LjM4MiA5NC4wNjY0IDEwOC40OTkgOTQuMDk5IDEwOC42MzggOTQuMDk5QzEwOC43OCA5NC4wOTkgMTA4Ljg5NiA5NC4wNjY0IDEwOC45ODUgOTQuMDAxMkMxMDkuMDc3IDkzLjkzNiAxMDkuMTQ1IDkzLjg1MDEgMTA5LjE4OSA5My43NDM0QzEwOS4yMzQgOTMuNjM2OCAxMDkuMjU2IDkzLjUyNDIgMTA5LjI1NiA5My40MDU3VjkzLjA2MzRDMTA5LjI1NiA5Mi45NDE5IDEwOS4yMzIgOTIuODI3OSAxMDkuMTg1IDkyLjcyMTJDMTA5LjE0IDkyLjYxMTYgMTA5LjA3MiA5Mi41MjQxIDEwOC45OCA5Mi40NTlDMTA4Ljg4OSA5Mi4zOTM4IDEwOC43NzEgOTIuMzYxMiAxMDguNjI5IDkyLjM2MTJDMTA4LjQ5MyA5Mi4zNjEyIDEwOC4zNzcgOTIuMzkzOCAxMDguMjgzIDkyLjQ1OUMxMDguMTkxIDkyLjUyNDEgMTA4LjEyMSA5Mi42MTE2IDEwOC4wNzQgOTIuNzIxMkMxMDguMDI5IDkyLjgyNzkgMTA4LjAwNyA5Mi45NDE5IDEwOC4wMDcgOTMuMDYzNFpNMTEwLjM4NSA5Ny4wNTAyVjk2LjcwMzZDMTEwLjM4NSA5Ni40NjA2IDExMC40MzggOTYuMjM4NCAxMTAuNTQ1IDk2LjAzNjlDMTEwLjY1NSA5NS44MzU0IDExMC44MTIgOTUuNjczOSAxMTEuMDE2IDk1LjU1MjRDMTExLjIyIDk1LjQzMDkgMTExLjQ2NiA5NS4zNzAyIDExMS43NTQgOTUuMzcwMkMxMTIuMDUgOTUuMzcwMiAxMTIuMjk5IDk1LjQzMDkgMTEyLjUwMSA5NS41NTI0QzExMi43MDUgOTUuNjczOSAxMTIuODU5IDk1LjgzNTQgMTEyLjk2MyA5Ni4wMzY5QzExMy4wNjkgOTYuMjM4NCAxMTMuMTIzIDk2LjQ2MDYgMTEzLjEyMyA5Ni43MDM2Vjk3LjA1MDJDMTEzLjEyMyA5Ny4yOTMyIDExMy4wNjkgOTcuNTE1NCAxMTIuOTYzIDk3LjcxNjlDMTEyLjg1OSA5Ny45MTg0IDExMi43MDYgOTguMDc5OSAxMTIuNTA1IDk4LjIwMTRDMTEyLjMwMyA5OC4zMjI5IDExMi4wNTggOTguMzgzNiAxMTEuNzY3IDk4LjM4MzZDMTExLjQ3NCA5OC4zODM2IDExMS4yMjMgOTguMzIyOSAxMTEuMDE2IDk4LjIwMTRDMTEwLjgxMiA5OC4wNzk5IDExMC42NTUgOTcuOTE4NCAxMTAuNTQ1IDk3LjcxNjlDMTEwLjQzOCA5Ny41MTU0IDExMC4zODUgOTcuMjkzMiAxMTAuMzg1IDk3LjA1MDJaTTExMS4xMzIgOTYuNzAzNlY5Ny4wNTAyQzExMS4xMzIgOTcuMTY4OCAxMTEuMTU1IDk3LjI4MTQgMTExLjIwMyA5Ny4zODhDMTExLjI1MyA5Ny40OTQ3IDExMS4zMjYgOTcuNTgyMSAxMTEuNDIgOTcuNjUwM0MxMTEuNTE1IDk3LjcxNTQgMTExLjYyOSA5Ny43NDggMTExLjc2MyA5Ny43NDhDMTExLjkxNCA5Ny43NDggMTEyLjAzNSA5Ny43MTU0IDExMi4xMjcgOTcuNjUwM0MxMTIuMjE5IDk3LjU4MjEgMTEyLjI4NCA5Ny40OTYyIDExMi4zMjMgOTcuMzkyNUMxMTIuMzY0IDk3LjI4NTggMTEyLjM4NSA5Ny4xNzE3IDExMi4zODUgOTcuMDUwMlY5Ni43MDM2QzExMi4zODUgOTYuNTgyMSAxMTIuMzYxIDk2LjQ2OCAxMTIuMzE0IDk2LjM2MTNDMTEyLjI2OSA5Ni4yNTQ3IDExMi4yIDk2LjE2ODcgMTEyLjEwNSA5Ni4xMDM1QzExMi4wMTMgOTYuMDM4MyAxMTEuODk2IDk2LjAwNTggMTExLjc1NCA5Ni4wMDU4QzExMS42MTUgOTYuMDA1OCAxMTEuNDk5IDk2LjAzODMgMTExLjQwNyA5Ni4xMDM1QzExMS4zMTUgOTYuMTY4NyAxMTEuMjQ2IDk2LjI1NDcgMTExLjE5OCA5Ni4zNjEzQzExMS4xNTQgOTYuNDY4IDExMS4xMzIgOTYuNTgyMSAxMTEuMTMyIDk2LjcwMzZaTTExMi4wMjEgOTIuNzQzNEwxMDguODYgOTcuODAxNEwxMDguMzE0IDk3LjQ4NThMMTExLjQ3NCA5Mi40Mjc4TDExMi4wMjEgOTIuNzQzNFoiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPC9nPgo8cmVjdCB4PSIwLjUiIHk9IjAuNSIgd2lkdGg9IjE5OSIgaGVpZ2h0PSIxNTkiIHJ4PSIzLjUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIi8+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2JfMzQ2MV80NzU1OSIgeD0iNzcuNDY5MSIgeT0iNzcuNDAwNSIgd2lkdGg9IjQ1LjA2MTgiIGhlaWdodD0iMjkuOTU4OCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjYyNDM0Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ3NTU5Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ3NTU5IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", - "description": "Widget indicates the level of liquid in Horizontal Dish Ends tank.", - "descriptor": { - "type": "latest", - "sizeX": 7.5, - "sizeY": 3, - "resources": [], - "templateHtml": "\n", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", - "settingsSchema": "{}", - "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-liquid-level-card-widget-settings", - "hasBasicMode": true, - "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" - }, - "externalId": null, - "tags": null -} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_ellipse.json b/application/src/main/data/json/system/widget_types/horizontal_ellipse.json new file mode 100644 index 0000000000..474a2d20a4 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_ellipse.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_ellipse_tank", + "name": "Horizontal ellipse", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAABaFBMVEXg4ODf39/g4ODg4OAAAAD///96i//g4ODf4/8gICHj5O3IyduyvP/9/f8kJ3A/QoJ2eKaRk7fy8vaQkJAxNHmsrKzIyMitrsnj4+O5wv9bXZTk5O0/QoF0dHTx8fHm6v89PT3i5f/W1+T29/9aXZOdnZ5NT4vt8P/8/P27vNOEhq6eoMBYWFguLi7V1dWfoMDv8f+bqP+Dha5ZWVlvfu1mZmY7OzzFzf89P4BnapyCgoL19fg6QJUuM4JKSkqCkv/s7PK6urpOWbeEhq/e4v/M0/+st//6+vzu7vNoap2Pj4/T2f+9xf/w8PVmdN4pLXl1hfZUX8CnqKx0doKhrv91hPbw8PBKUq9ETKVpa52HiJDp6vHV2fHMz+PFx9VZZsmxsrqgoaxqa3RfYGZcXWZQUVjY3f+8xf+Tof+Lmv+foKw+QIH4+f/e3urP0OC0t8hxeMCYmqyTlJ5SV5xVWJA0OYsuNIFCQ0sFvgoaAAAABXRSTlPvIL+vAC9A4IoAAAc3SURBVHja7NaxiqwwFMZx5+5+DKcOCafJIU1gCpNGtLAI2O4D7Ps/yo3rhbDDwN1qOO7kjxqDjT+ikOH98me4nr23y/twGT5vOHk3qYw3wS/os35Wp1+PvdswXPErunaIsjpEWx2irZeFOG7Dg9jhyT2G2OkYSsZdazlGMm14kCE8vwa5f4/sGXfZeEYIWwFcdHn7uhXLcBuALXKDQGzkeslAtsdMHcSSwweFkAIcOTBZ+ACMVFKD8JJGihgn7GdOKaSsEbLMQPkGcRTBDeITY03yQbI/X8ruUQhhisD4DWJIgAYpwZiZWMja/ToaU4JKiP0PJARfE4x+nsA01cmqECLJ/4NsyAfE7qYGmZMA9YgpWSBNgLAiyFTLx8/uZwqQtKzLAZGw+NIgOS1mLIAQ7Rya10XPijizx9kwYL0ZA8DebyZjiwCv3kV3iN3X1AiAaFHbVh8BZ/C8fr5FqZDT9BqQnHGaXnYbr7YO0VaHaKtDtNUh2uoQbXWItjrkLzt2s6o2EAVwfHU2M2TOBwcGJlmFIahZBO7qBjeCC3XhA0gfobSrvj81tvSWqngKidXifz2Q88sJgeTRekEerRfk0XpBHq37QKSOLS+ImFtfw4+eEFLngInWfIx2SZEEjj0hZK6ae+YYh7X0VUglHHtCSBs0dWs6xdwEfNaN1CFpqKqcc1NpwHSAoSeEuAAgtT/lBCLB0JNCPnpBXpAX5D+AiLuU/wNycD+Th4O4ebvoqyqEoIgYfqV4KvjfsaTv758RUYcDTV603j0CRHzbqzbEce7ch6z2kXdNwL71AIyhybRgJspVSPXZMc3s/ylE2qxIXQ3X8t0OtY9f6nnHQ12sBc6rIw3H3MgQuyKk7ubFi6/8LfQRblXGFHKUu0PqhaZO4CZjudovizIikrNYlNxdIT7r2vBUz+STbOCUp2CZsRyO3Q3isrJYGKtl8dczlozk7gIRDhYGLFdSnN1uBtNWWKaHeDR94W22+82FGRGdhbJDPzXkTTswrWMJF+PAYCgqTwqR3FjWUey3G7hSiSSWpWBy00GcbYjZdl/A1WSHzrR7dFNBHDJYHCsZZURGNwnE7lgaRjRKpoCIzQFbgZtRAzaJTAAhsnm3YCgtwBIdxoe0lrtTFMVsBoZKnduegm5siFPTe/dIsf5HFTDk1Y0MIbI4CjCXGCy90bgQF0oTxE7xtpWIulEhRGCEjL6S7+zaa0/aUBjA8VcHd3qhBYtlRVIpUqwusSiXbUJwXNQhggIGhvf7ZUt2y7avv3MgZDM29IkeGUv8vzBRSZof55SS9plnCpEMoAMO4SXoygEhwIMyhyDFQJAkHghhs76xcJBAKqnlABjyZhG4txhCZi00vCDGU0h8i5dTOAWFLMgIkqoBIUyWN00gRBMWURgHgRDLRJAMiSHEy6GhVWbCBDKFYyIK4ADbs53zjg4SxIFJAiEGkWj6kFQq+B9BxH7pGZFARAoRCUQkTU2+i1UCYq8xgkjGMEgMT4gVAmngxhyBNETSxqtULCyKwySWBtyBDCGaihyL9krjXt1j3IhG6Q/a3kSX3+v//xNybOEDAkS8bK8jZcEhPU47vr09OcPdQw6fxeOn+DDe6+TbxdlJnHYpOPb9i+BemRyb7ZX9yuPQpT6oiz/r+jk+beJzvdfBxcHpYVOnlT2O5Woe9wRkWgwhfoXXPQ5tRgZ9vbAikf3mr3RzP9JvP9I8P4jQMh6najkPIJtTmH5pXPKhhBPkBSRnSKcAcCSQLDOF8Iq/xBaS9CYBkBLnDcEhwLsFCaaQTgfgWKMLwhYSUng7zxBylAMsyI1NFoQxBC1K/vL9dwwEaTlsrNyRx70yvZfGGkI3V/XeoVov3XP6lMi2AY4qWtKe6E7jmodNhdw25BLik0KsIbQQkQiMHEnIiU4dzCEDSXVUjqqDAwCBSzL5RzJ2OwBHPoOWiIM9ZCAxTc6+eZQj+SPrfn5c29ysGXraZ4iS+qjttVMvuC9HFVlK8amf6qqSzNlrD12OLOArb4IsB4OnuqDH4A+j7Ba8hW1XRsnvU4oMnrNDKJqk/qHAGfVs0m1TCZSh8aObRdHoBisn4Ixau56tuS1GJgpgsJ4OkulQEtCyu5Ott2tuCtuvzioyP/J5rZBqkjksLlq6SuSHnuBEkd3ZHrahEkIpShSgwSn2EGpZ1LzmvGUgvZQRWg6e5FH75zDFdUvIbNqIU+dNOsT2T2caraKmKGTE0uK5v/7KGeqCbCqKVuT9iLa+srW6urG1sr4+Jzq/bBymTA3L916T6NToNE3xDpq+0+tBH/u/kxdImuxTx2LK9E4cx8MzOM4/bnO/Y9AzZNx6hoxbv9u7oyIAQhiIoS1wgwu+TxH+pYCM0EkcvFkBK4SWEFpCaAmhJYSWEFpCaAmhJYSWEFpCaAmhJYSWEFpCaAmhJYRWIUjUOAie0fZXoNUjYz2/yb8vY2SfrxctxwH1s0SZo8iyaQAAAABJRU5ErkJggg==", + "description": "Widget indicates the level of liquid in Horizontal ellipse tank.", + "descriptor": { + "type": "latest", + "sizeX": 4, + "sizeY": 4, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + }, + "externalId": null, + "tags": null +} \ 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 deleted file mode 100644 index 6317bef188..0000000000 --- a/application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "fqn": "horizontal_ellipse_tank", - "name": "Horizontal Ellipse tank", - "deprecated": false, - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBvcGFjaXR5PSIwLjEiIGQ9Ik0xMTkuNTUyIDYwLjM3MTJDMTMxLjQ2MiA2MC4zNzEyIDE0Mi4yMiA2My40NDk4IDE0OS45ODIgNjguMzk4N0MxNTcuNzUyIDczLjM1MTUgMTYyLjQ1NyA4MC4xMjczIDE2Mi40NTcgODcuNTI2M0MxNjIuNDU3IDk0LjkyNTQgMTU3Ljc1MiAxMDEuNzAxIDE0OS45ODIgMTA2LjY1NEMxNDIuMjIgMTExLjYwMyAxMzEuNDYyIDExNC42ODIgMTE5LjU1MiAxMTQuNjgyQzEwNy42NDEgMTE0LjY4MiA5Ni44ODQgMTExLjYwMyA4OS4xMjEyIDEwNi42NTRDODEuMzUyIDEwMS43MDEgNzYuNjQ2NiA5NC45MjU0IDc2LjY0NjYgODcuNTI2M0M3Ni42NDY2IDgwLjEyNzMgODEuMzUyIDczLjM1MTUgODkuMTIxMiA2OC4zOTg3Qzk2Ljg4NCA2My40NDk4IDEwNy42NDEgNjAuMzcxMiAxMTkuNTUyIDYwLjM3MTJaIiBmaWxsPSIjNjIxNkZGIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJtYXNrMF8zNDYxXzEwNTU4MCIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMzkiIHk9IjYyIiB3aWR0aD0iMTIyIiBoZWlnaHQ9IjUyIj4KPG1hc2sgaWQ9InBhdGgtNS1pbnNpZGUtMV8zNDYxXzEwNTU4MCIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTc1LjU2MDYgNjIuMTgyNFY2Mi4wMDA1TDgwLjQzNjQgNjIuMDAwNUM4MC40NDA1IDYyLjAwMDUgODAuNDQ0NSA2Mi4wMDA1IDgwLjQ0ODYgNjIuMDAwNUM4MC40NTI2IDYyLjAwMDUgODAuNDU2NyA2Mi4wMDA1IDgwLjQ2MDcgNjIuMDAwNUwxMTkuNTUyIDYyLjAwMDVMMTI0Ljk4MyA2Mi4wMDA1VjYyLjIyNTRDMTQ0LjkxMSA2My44ODkzIDE2MC4yODUgNzQuNTgyOCAxNjAuMjg1IDg3LjUyNjNDMTYwLjI4NSAxMDAuNDcgMTQ0LjkxMSAxMTEuMTYzIDEyNC45ODMgMTEyLjgyN0wxMjQuOTgzIDExMy4wNTJIMTE5LjU1Mkw4MC40NTYxIDExMy4wNTJDODAuNDUzNiAxMTMuMDUyIDgwLjQ1MTEgMTEzLjA1MiA4MC40NDg2IDExMy4wNTJDODAuNDQ2MSAxMTMuMDUyIDgwLjQ0MzYgMTEzLjA1MiA4MC40NDExIDExMy4wNTJINzUuNTYwNlYxMTIuODdDNTUuMzY5MSAxMTEuMzU3IDM5LjcxNTggMTAwLjU4NyAzOS43MTU4IDg3LjUyNjNDMzkuNzE1OCA3NC40NjU0IDU1LjM2OTEgNjMuNjk1NiA3NS41NjA2IDYyLjE4MjRaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03NS41NjA2IDYyLjE4MjRWNjIuMDAwNUw4MC40MzY0IDYyLjAwMDVDODAuNDQwNSA2Mi4wMDA1IDgwLjQ0NDUgNjIuMDAwNSA4MC40NDg2IDYyLjAwMDVDODAuNDUyNiA2Mi4wMDA1IDgwLjQ1NjcgNjIuMDAwNSA4MC40NjA3IDYyLjAwMDVMMTE5LjU1MiA2Mi4wMDA1TDEyNC45ODMgNjIuMDAwNVY2Mi4yMjU0QzE0NC45MTEgNjMuODg5MyAxNjAuMjg1IDc0LjU4MjggMTYwLjI4NSA4Ny41MjYzQzE2MC4yODUgMTAwLjQ3IDE0NC45MTEgMTExLjE2MyAxMjQuOTgzIDExMi44MjdMMTI0Ljk4MyAxMTMuMDUySDExOS41NTJMODAuNDU2MSAxMTMuMDUyQzgwLjQ1MzYgMTEzLjA1MiA4MC40NTExIDExMy4wNTIgODAuNDQ4NiAxMTMuMDUyQzgwLjQ0NjEgMTEzLjA1MiA4MC40NDM2IDExMy4wNTIgODAuNDQxMSAxMTMuMDUySDc1LjU2MDZWMTEyLjg3QzU1LjM2OTEgMTExLjM1NyAzOS43MTU4IDEwMC41ODcgMzkuNzE1OCA4Ny41MjYzQzM5LjcxNTggNzQuNDY1NCA1NS4zNjkxIDYzLjY5NTYgNzUuNTYwNiA2Mi4xODI0WiIgZmlsbD0iIzdGODRGQiIvPgo8cGF0aCBkPSJNNzUuNTYwNiA2Mi4wMDA1VjYwLjkxNDNMNzQuNDc0NCA2MC45MTQzVjYyLjAwMDVINzUuNTYwNlpNNzUuNTYwNiA2Mi4xODI0TDc1LjY0MTggNjMuMjY1Nkw3Ni42NDY5IDYzLjE5MDJWNjIuMTgyNEg3NS41NjA2Wk04MC40MzY0IDYyLjAwMDVWNjMuMDg2N0w4MC40MzY2IDYzLjA4NjdMODAuNDM2NCA2Mi4wMDA1Wk04MC40NDg2IDYyLjAwMDVWNjMuMDg2N1Y2Mi4wMDA1Wk04MC40NjA3IDYyLjAwMDVMODAuNDYwNSA2My4wODY3SDgwLjQ2MDdWNjIuMDAwNVpNMTE5LjU1MiA2Mi4wMDA1VjYzLjA4NjdWNjIuMDAwNVpNMTI0Ljk4MyA2Mi4wMDA1SDEyNi4wNjlWNjAuOTE0M0wxMjQuOTgzIDYwLjkxNDNWNjIuMDAwNVpNMTI0Ljk4MyA2Mi4yMjU0SDEyMy44OTdWNjMuMjI0N0wxMjQuODkzIDYzLjMwNzlMMTI0Ljk4MyA2Mi4yMjU0Wk0xMjQuOTgzIDExMi44MjdMMTI0Ljg5MyAxMTEuNzQ1TDEyMy44OTcgMTExLjgyOEwxMjMuODk3IDExMi44MjdMMTI0Ljk4MyAxMTIuODI3Wk0xMjQuOTgzIDExMy4wNTJWMTE0LjEzOEgxMjYuMDY5TDEyNi4wNjkgMTEzLjA1MkwxMjQuOTgzIDExMy4wNTJaTTExOS41NTIgMTEzLjA1MlYxMTEuOTY2VjExMy4wNTJaTTgwLjQ1NjEgMTEzLjA1MlYxMTQuMTM4VjExMy4wNTJaTTc1LjU2MDYgMTEzLjA1Mkg3NC40NzQ0VjExNC4xMzhINzUuNTYwNlYxMTMuMDUyWk03NS41NjA2IDExMi44N0g3Ni42NDY5VjExMS44NjJMNzUuNjQxOCAxMTEuNzg3TDc1LjU2MDYgMTEyLjg3Wk03NC40NzQ0IDYyLjAwMDVWNjIuMTgyNEg3Ni42NDY5VjYyLjAwMDVINzQuNDc0NFpNODAuNDM2NCA2MC45MTQzTDc1LjU2MDYgNjAuOTE0M1Y2My4wODY3TDgwLjQzNjQgNjMuMDg2N1Y2MC45MTQzWk04MC40MzY2IDYzLjA4NjdDODAuNDQwNiA2My4wODY3IDgwLjQ0NDYgNjMuMDg2NyA4MC40NDg2IDYzLjA4NjdWNjAuOTE0M0M4MC40NDQ1IDYwLjkxNDMgODAuNDQwMyA2MC45MTQzIDgwLjQzNjIgNjAuOTE0M0w4MC40MzY2IDYzLjA4NjdaTTgwLjQ0ODYgNjMuMDg2N0M4MC40NTI1IDYzLjA4NjcgODAuNDU2NSA2My4wODY3IDgwLjQ2MDUgNjMuMDg2N0w4MC40NjA5IDYwLjkxNDNDODAuNDU2OCA2MC45MTQzIDgwLjQ1MjcgNjAuOTE0MyA4MC40NDg2IDYwLjkxNDNWNjMuMDg2N1pNMTE5LjU1MiA2MC45MTQzTDgwLjQ2MDcgNjAuOTE0M1Y2My4wODY3TDExOS41NTIgNjMuMDg2N1Y2MC45MTQzWk0xMjQuOTgzIDYwLjkxNDNMMTE5LjU1MiA2MC45MTQzVjYzLjA4NjdMMTI0Ljk4MyA2My4wODY3VjYwLjkxNDNaTTEyNi4wNjkgNjIuMjI1NFY2Mi4wMDA1SDEyMy44OTdWNjIuMjI1NEgxMjYuMDY5Wk0xNjEuMzcxIDg3LjUyNjNDMTYxLjM3MSA4MC41ODk2IDE1Ny4yNTEgNzQuMzg3NyAxNTAuNzM2IDY5Ljc2MDVDMTQ0LjIxNSA2NS4xMjg4IDEzNS4xOTUgNjEuOTg4MSAxMjUuMDczIDYxLjE0M0wxMjQuODkzIDYzLjMwNzlDMTM0LjcgNjQuMTI2NyAxNDMuMzMgNjcuMTY0NiAxNDkuNDc4IDcxLjUzMTZDMTU1LjYzMiA3NS45MDI5IDE1OS4xOTkgODEuNTE5NiAxNTkuMTk5IDg3LjUyNjNIMTYxLjM3MVpNMTI1LjA3MyAxMTMuOTFDMTM1LjE5NSAxMTMuMDY1IDE0NC4yMTUgMTA5LjkyNCAxNTAuNzM2IDEwNS4yOTJDMTU3LjI1MSAxMDAuNjY1IDE2MS4zNzEgOTQuNDYzMSAxNjEuMzcxIDg3LjUyNjNIMTU5LjE5OUMxNTkuMTk5IDkzLjUzMzEgMTU1LjYzMiA5OS4xNDk3IDE0OS40NzggMTAzLjUyMUMxNDMuMzMgMTA3Ljg4OCAxMzQuNyAxMTAuOTI2IDEyNC44OTMgMTExLjc0NUwxMjUuMDczIDExMy45MVpNMTI2LjA2OSAxMTMuMDUyTDEyNi4wNjkgMTEyLjgyN0wxMjMuODk3IDExMi44MjdMMTIzLjg5NyAxMTMuMDUyTDEyNi4wNjkgMTEzLjA1MlpNMTE5LjU1MiAxMTQuMTM4SDEyNC45ODNWMTExLjk2NkgxMTkuNTUyVjExNC4xMzhaTTgwLjQ1NjEgMTE0LjEzOEwxMTkuNTUyIDExNC4xMzhWMTExLjk2Nkw4MC40NTYxIDExMS45NjZWMTE0LjEzOFpNODAuNDU2MSAxMTEuOTY2QzgwLjQ1NjEgMTExLjk2NiA4MC40NTYxIDExMS45NjYgODAuNDU2MSAxMTEuOTY2QzgwLjQ1NjEgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NiA4MC40NTYgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTkgMTExLjk2NkM4MC40NTU5IDExMS45NjYgODAuNDU1OSAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTggMTExLjk2NkM4MC40NTU4IDExMS45NjYgODAuNDU1OCAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTcgMTExLjk2NkM4MC40NTU3IDExMS45NjYgODAuNDU1NyAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NiAxMTEuOTY2IDgwLjQ1NTYgMTExLjk2NkM4MC40NTU2IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NSAxMTEuOTY2IDgwLjQ1NTUgMTExLjk2NkM4MC40NTU1IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTU0IDExMS45NjYgODAuNDU1NCAxMTEuOTY2IDgwLjQ1NTQgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTMgMTExLjk2NkM4MC40NTUzIDExMS45NjYgODAuNDU1MyAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTIgMTExLjk2NkM4MC40NTUyIDExMS45NjYgODAuNDU1MiAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NTEgMTExLjk2NkM4MC40NTUxIDExMS45NjYgODAuNDU1MSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2IDgwLjQ1NSAxMTEuOTY2QzgwLjQ1NSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OSAxMTEuOTY2IDgwLjQ1NDkgMTExLjk2NiA4MC40NTQ5IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0OCAxMTEuOTY2IDgwLjQ1NDggMTExLjk2NiA4MC40NTQ4IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NyAxMTEuOTY2IDgwLjQ1NDcgMTExLjk2NiA4MC40NTQ3IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ2IDExMS45NjZDODAuNDU0NiAxMTEuOTY2IDgwLjQ1NDYgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDUgMTExLjk2NiA4MC40NTQ1IDExMS45NjZDODAuNDU0NSAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDQgMTExLjk2NiA4MC40NTQ0IDExMS45NjZDODAuNDU0NCAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDMgMTExLjk2NiA4MC40NTQzIDExMS45NjZDODAuNDU0MyAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MiAxMTEuOTY2IDgwLjQ1NDIgMTExLjk2NiA4MC40NTQyIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQxIDExMS45NjZDODAuNDU0MSAxMTEuOTY2IDgwLjQ1NDEgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NkM4MC40NTQgMTExLjk2NiA4MC40NTQgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzkgMTExLjk2NiA4MC40NTM5IDExMS45NjZDODAuNDUzOSAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzggMTExLjk2NiA4MC40NTM4IDExMS45NjZDODAuNDUzOCAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNyAxMTEuOTY2IDgwLjQ1MzcgMTExLjk2NiA4MC40NTM3IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNiAxMTEuOTY2IDgwLjQ1MzYgMTExLjk2NiA4MC40NTM2IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM1IDExMS45NjZDODAuNDUzNSAxMTEuOTY2IDgwLjQ1MzUgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTM0IDExMS45NjZDODAuNDUzNCAxMTEuOTY2IDgwLjQ1MzQgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzMgMTExLjk2NiA4MC40NTMzIDExMS45NjZDODAuNDUzMyAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzIgMTExLjk2NiA4MC40NTMyIDExMS45NjZDODAuNDUzMiAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzMSAxMTEuOTY2IDgwLjQ1MzEgMTExLjk2NiA4MC40NTMxIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjZDODAuNDUzIDExMS45NjYgODAuNDUzIDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOSAxMTEuOTY2QzgwLjQ1MjkgMTExLjk2NiA4MC40NTI5IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyOCAxMTEuOTY2QzgwLjQ1MjggMTExLjk2NiA4MC40NTI4IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI3IDExMS45NjYgODAuNDUyNyAxMTEuOTY2QzgwLjQ1MjcgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjYgMTExLjk2NiA4MC40NTI2IDExMS45NjYgODAuNDUyNiAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjUgMTExLjk2NiA4MC40NTI1IDExMS45NjYgODAuNDUyNSAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjQgMTExLjk2NiA4MC40NTI0IDExMS45NjYgODAuNDUyNCAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMyAxMTEuOTY2QzgwLjQ1MjMgMTExLjk2NiA4MC40NTIzIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIyIDExMS45NjYgODAuNDUyMiAxMTEuOTY2QzgwLjQ1MjIgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIxIDExMS45NjYgODAuNDUyMSAxMTEuOTY2QzgwLjQ1MjEgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NiA4MC40NTIgMTExLjk2NkM4MC40NTIgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTkgMTExLjk2NiA4MC40NTE5IDExMS45NjYgODAuNDUxOSAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxOCAxMTEuOTY2QzgwLjQ1MTggMTExLjk2NiA4MC40NTE4IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNyAxMTEuOTY2QzgwLjQ1MTcgMTExLjk2NiA4MC40NTE3IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE2IDExMS45NjYgODAuNDUxNiAxMTEuOTY2QzgwLjQ1MTYgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE1IDExMS45NjYgODAuNDUxNSAxMTEuOTY2QzgwLjQ1MTUgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTQgMTExLjk2NiA4MC40NTE0IDExMS45NjYgODAuNDUxNCAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTMgMTExLjk2NiA4MC40NTEzIDExMS45NjYgODAuNDUxMyAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMiAxMTEuOTY2QzgwLjQ1MTIgMTExLjk2NiA4MC40NTEyIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTExIDExMS45NjYgODAuNDUxMSAxMTEuOTY2QzgwLjQ1MTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NiA4MC40NTEgMTExLjk2NkM4MC40NTEgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA5IDExMS45NjYgODAuNDUwOSAxMTEuOTY2QzgwLjQ1MDkgMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDggMTExLjk2NiA4MC40NTA4IDExMS45NjYgODAuNDUwOCAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNyAxMTEuOTY2QzgwLjQ1MDcgMTExLjk2NiA4MC40NTA3IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNiAxMTEuOTY2QzgwLjQ1MDYgMTExLjk2NiA4MC40NTA2IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNSAxMTEuOTY2QzgwLjQ1MDUgMTExLjk2NiA4MC40NTA1IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTA0IDExMS45NjYgODAuNDUwNCAxMTEuOTY2QzgwLjQ1MDQgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDMgMTExLjk2NiA4MC40NTAzIDExMS45NjYgODAuNDUwMyAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDIgMTExLjk2NiA4MC40NTAyIDExMS45NjYgODAuNDUwMiAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1MDEgMTExLjk2NiA4MC40NTAxIDExMS45NjYgODAuNDUwMSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NSAxMTEuOTY2QzgwLjQ1IDExMS45NjYgODAuNDUgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTkgMTExLjk2NiA4MC40NDk5IDExMS45NjZDODAuNDQ5OSAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTggMTExLjk2NiA4MC40NDk4IDExMS45NjZDODAuNDQ5OCAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NyAxMTEuOTY2IDgwLjQ0OTcgMTExLjk2NiA4MC40NDk3IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NiAxMTEuOTY2IDgwLjQ0OTYgMTExLjk2NiA4MC40NDk2IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk1IDExMS45NjZDODAuNDQ5NSAxMTEuOTY2IDgwLjQ0OTUgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDk0IDExMS45NjZDODAuNDQ5NCAxMTEuOTY2IDgwLjQ0OTQgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTMgMTExLjk2NiA4MC40NDkzIDExMS45NjZDODAuNDQ5MyAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTIgMTExLjk2NiA4MC40NDkyIDExMS45NjZDODAuNDQ5MiAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5MSAxMTEuOTY2IDgwLjQ0OTEgMTExLjk2NiA4MC40NDkxIDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjYgODAuNDQ5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg5IDExMS45NjZDODAuNDQ4OSAxMTEuOTY2IDgwLjQ0ODkgMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODggMTExLjk2NiA4MC40NDg4IDExMS45NjZDODAuNDQ4OCAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODcgMTExLjk2NiA4MC40NDg3IDExMS45NjZDODAuNDQ4NyAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZDODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZDODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZDODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZDODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZDODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NiA4MC40NDg2IDExMS45NjZWMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4IDgwLjQ0ODYgMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4IDgwLjQ0ODYgMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4IDgwLjQ0ODYgMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4IDgwLjQ0ODYgMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4IDgwLjQ0ODYgMTE0LjEzOEM4MC40NDg2IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4NyAxMTQuMTM4IDgwLjQ0ODcgMTE0LjEzOEM4MC40NDg3IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg4IDExNC4xMzggODAuNDQ4OCAxMTQuMTM4IDgwLjQ0ODggMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0ODkgMTE0LjEzOEM4MC40NDg5IDExNC4xMzggODAuNDQ4OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4QzgwLjQ0OSAxMTQuMTM4IDgwLjQ0OSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MSAxMTQuMTM4IDgwLjQ0OTEgMTE0LjEzOEM4MC40NDkxIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MiAxMTQuMTM4IDgwLjQ0OTIgMTE0LjEzOEM4MC40NDkyIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDkzIDExNC4xMzggODAuNDQ5MyAxMTQuMTM4IDgwLjQ0OTMgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk0IDExNC4xMzggODAuNDQ5NCAxMTQuMTM4IDgwLjQ0OTQgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTUgMTE0LjEzOEM4MC40NDk1IDExNC4xMzggODAuNDQ5NSAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTYgMTE0LjEzOEM4MC40NDk2IDExNC4xMzggODAuNDQ5NiAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5NyAxMTQuMTM4IDgwLjQ0OTcgMTE0LjEzOEM4MC40NDk3IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OCAxMTQuMTM4IDgwLjQ0OTggMTE0LjEzOEM4MC40NDk4IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NDk5IDExNC4xMzggODAuNDQ5OSAxMTQuMTM4IDgwLjQ0OTkgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUgMTE0LjEzOEM4MC40NSAxMTQuMTM4IDgwLjQ1IDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMSAxMTQuMTM4QzgwLjQ1MDEgMTE0LjEzOCA4MC40NTAxIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMiAxMTQuMTM4QzgwLjQ1MDIgMTE0LjEzOCA4MC40NTAyIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTAzIDExNC4xMzggODAuNDUwMyAxMTQuMTM4QzgwLjQ1MDMgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDQgMTE0LjEzOCA4MC40NTA0IDExNC4xMzggODAuNDUwNCAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDUgMTE0LjEzOCA4MC40NTA1IDExNC4xMzggODAuNDUwNSAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDYgMTE0LjEzOCA4MC40NTA2IDExNC4xMzggODAuNDUwNiAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwNyAxMTQuMTM4QzgwLjQ1MDcgMTE0LjEzOCA4MC40NTA3IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA4IDExNC4xMzggODAuNDUwOCAxMTQuMTM4QzgwLjQ1MDggMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTA5IDExNC4xMzggODAuNDUwOSAxMTQuMTM4QzgwLjQ1MDkgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOCA4MC40NTEgMTE0LjEzOEM4MC40NTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTEgMTE0LjEzOCA4MC40NTExIDExNC4xMzggODAuNDUxMSAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMiAxMTQuMTM4QzgwLjQ1MTIgMTE0LjEzOCA4MC40NTEyIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxMyAxMTQuMTM4QzgwLjQ1MTMgMTE0LjEzOCA4MC40NTEzIDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE0IDExNC4xMzggODAuNDUxNCAxMTQuMTM4QzgwLjQ1MTQgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE1IDExNC4xMzggODAuNDUxNSAxMTQuMTM4QzgwLjQ1MTUgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTYgMTE0LjEzOCA4MC40NTE2IDExNC4xMzggODAuNDUxNiAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTcgMTE0LjEzOCA4MC40NTE3IDExNC4xMzggODAuNDUxNyAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOCAxMTQuMTM4QzgwLjQ1MTggMTE0LjEzOCA4MC40NTE4IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTE5IDExNC4xMzggODAuNDUxOSAxMTQuMTM4QzgwLjQ1MTkgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOCA4MC40NTIgMTE0LjEzOEM4MC40NTIgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIxIDExNC4xMzggODAuNDUyMSAxMTQuMTM4QzgwLjQ1MjEgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjIgMTE0LjEzOCA4MC40NTIyIDExNC4xMzggODAuNDUyMiAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyMyAxMTQuMTM4QzgwLjQ1MjMgMTE0LjEzOCA4MC40NTIzIDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNCAxMTQuMTM4QzgwLjQ1MjQgMTE0LjEzOCA4MC40NTI0IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNSAxMTQuMTM4QzgwLjQ1MjUgMTE0LjEzOCA4MC40NTI1IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI2IDExNC4xMzggODAuNDUyNiAxMTQuMTM4QzgwLjQ1MjYgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjcgMTE0LjEzOCA4MC40NTI3IDExNC4xMzggODAuNDUyNyAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjggMTE0LjEzOCA4MC40NTI4IDExNC4xMzggODAuNDUyOCAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MjkgMTE0LjEzOCA4MC40NTI5IDExNC4xMzggODAuNDUyOSAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4QzgwLjQ1MyAxMTQuMTM4IDgwLjQ1MyAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMSAxMTQuMTM4IDgwLjQ1MzEgMTE0LjEzOEM4MC40NTMxIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMiAxMTQuMTM4IDgwLjQ1MzIgMTE0LjEzOEM4MC40NTMyIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTMzIDExNC4xMzggODAuNDUzMyAxMTQuMTM4IDgwLjQ1MzMgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM0IDExNC4xMzggODAuNDUzNCAxMTQuMTM4IDgwLjQ1MzQgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzUgMTE0LjEzOEM4MC40NTM1IDExNC4xMzggODAuNDUzNSAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzYgMTE0LjEzOEM4MC40NTM2IDExNC4xMzggODAuNDUzNiAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzNyAxMTQuMTM4IDgwLjQ1MzcgMTE0LjEzOEM4MC40NTM3IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOCAxMTQuMTM4IDgwLjQ1MzggMTE0LjEzOEM4MC40NTM4IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTM5IDExNC4xMzggODAuNDUzOSAxMTQuMTM4IDgwLjQ1MzkgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOCA4MC40NTQgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDEgMTE0LjEzOEM4MC40NTQxIDExNC4xMzggODAuNDU0MSAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MiAxMTQuMTM4IDgwLjQ1NDIgMTE0LjEzOEM4MC40NTQyIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0MyAxMTQuMTM4IDgwLjQ1NDMgMTE0LjEzOEM4MC40NTQzIDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NCAxMTQuMTM4IDgwLjQ1NDQgMTE0LjEzOEM4MC40NTQ0IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ1IDExNC4xMzggODAuNDU0NSAxMTQuMTM4IDgwLjQ1NDUgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDYgMTE0LjEzOEM4MC40NTQ2IDExNC4xMzggODAuNDU0NiAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDcgMTE0LjEzOEM4MC40NTQ3IDExNC4xMzggODAuNDU0NyAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDggMTE0LjEzOEM4MC40NTQ4IDExNC4xMzggODAuNDU0OCAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU0OSAxMTQuMTM4IDgwLjQ1NDkgMTE0LjEzOEM4MC40NTQ5IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzggODAuNDU1IDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MSAxMTQuMTM4IDgwLjQ1NTEgMTE0LjEzOCA4MC40NTUxIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MiAxMTQuMTM4IDgwLjQ1NTIgMTE0LjEzOCA4MC40NTUyIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTUzIDExNC4xMzhDODAuNDU1MyAxMTQuMTM4IDgwLjQ1NTMgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTQgMTE0LjEzOCA4MC40NTU0IDExNC4xMzhDODAuNDU1NCAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTUgMTE0LjEzOCA4MC40NTU1IDExNC4xMzhDODAuNDU1NSAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NiAxMTQuMTM4IDgwLjQ1NTYgMTE0LjEzOCA4MC40NTU2IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1NyAxMTQuMTM4IDgwLjQ1NTcgMTE0LjEzOCA4MC40NTU3IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OCAxMTQuMTM4IDgwLjQ1NTggMTE0LjEzOCA4MC40NTU4IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTU5IDExNC4xMzhDODAuNDU1OSAxMTQuMTM4IDgwLjQ1NTkgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOCA4MC40NTYgMTE0LjEzOEM4MC40NTYgMTE0LjEzOCA4MC40NTYxIDExNC4xMzggODAuNDU2MSAxMTQuMTM4QzgwLjQ1NjEgMTE0LjEzOCA4MC40NTYxIDExNC4xMzggODAuNDU2MSAxMTQuMTM4VjExMS45NjZaTTgwLjQ0ODYgMTExLjk2NkM4MC40NDg2IDExMS45NjYgODAuNDQ4NiAxMTEuOTY2IDgwLjQ0ODYgMTExLjk2NkM4MC40NDg2IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg1IDExMS45NjYgODAuNDQ4NSAxMTEuOTY2IDgwLjQ0ODUgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODQgMTExLjk2NkM4MC40NDg0IDExMS45NjYgODAuNDQ4NCAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODMgMTExLjk2NkM4MC40NDgzIDExMS45NjYgODAuNDQ4MyAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODIgMTExLjk2NkM4MC40NDgyIDExMS45NjYgODAuNDQ4MiAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4MSAxMTEuOTY2IDgwLjQ0ODEgMTExLjk2NkM4MC40NDgxIDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjYgODAuNDQ4IDExMS45NjZDODAuNDQ4IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc5IDExMS45NjYgODAuNDQ3OSAxMTEuOTY2IDgwLjQ0NzkgMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc4IDExMS45NjYgODAuNDQ3OCAxMTEuOTY2IDgwLjQ0NzggMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzcgMTExLjk2NkM4MC40NDc3IDExMS45NjYgODAuNDQ3NyAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzYgMTExLjk2NkM4MC40NDc2IDExMS45NjYgODAuNDQ3NiAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NSAxMTEuOTY2IDgwLjQ0NzUgMTExLjk2NkM4MC40NDc1IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDc0IDExMS45NjYgODAuNDQ3NCAxMTEuOTY2IDgwLjQ0NzQgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDczIDExMS45NjYgODAuNDQ3MyAxMTEuOTY2IDgwLjQ0NzMgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcyIDExMS45NjYgODAuNDQ3MiAxMTEuOTY2IDgwLjQ0NzIgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NzEgMTExLjk2NkM4MC40NDcxIDExMS45NjYgODAuNDQ3MSAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2IDgwLjQ0NyAxMTEuOTY2QzgwLjQ0NyAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjkgMTExLjk2NiA4MC40NDY5IDExMS45NjZDODAuNDQ2OSAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjggMTExLjk2NiA4MC40NDY4IDExMS45NjZDODAuNDQ2OCAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NyAxMTEuOTY2IDgwLjQ0NjcgMTExLjk2NiA4MC40NDY3IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY2IDExMS45NjZDODAuNDQ2NiAxMTEuOTY2IDgwLjQ0NjYgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY1IDExMS45NjZDODAuNDQ2NSAxMTEuOTY2IDgwLjQ0NjUgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDY0IDExMS45NjZDODAuNDQ2NCAxMTEuOTY2IDgwLjQ0NjQgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjMgMTExLjk2NiA4MC40NDYzIDExMS45NjZDODAuNDQ2MyAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MiAxMTEuOTY2IDgwLjQ0NjIgMTExLjk2NiA4MC40NDYyIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2MSAxMTEuOTY2IDgwLjQ0NjEgMTExLjk2NiA4MC40NDYxIDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjZDODAuNDQ2IDExMS45NjYgODAuNDQ2IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OSAxMTEuOTY2QzgwLjQ0NTkgMTExLjk2NiA4MC40NDU5IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU4IDExMS45NjYgODAuNDQ1OCAxMTEuOTY2QzgwLjQ0NTggMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU3IDExMS45NjYgODAuNDQ1NyAxMTEuOTY2QzgwLjQ0NTcgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTYgMTExLjk2NiA4MC40NDU2IDExMS45NjYgODAuNDQ1NiAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NSAxMTEuOTY2QzgwLjQ0NTUgMTExLjk2NiA4MC40NDU1IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1NCAxMTEuOTY2QzgwLjQ0NTQgMTExLjk2NiA4MC40NDU0IDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MyAxMTEuOTY2QzgwLjQ0NTMgMTExLjk2NiA4MC40NDUzIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUyIDExMS45NjYgODAuNDQ1MiAxMTEuOTY2QzgwLjQ0NTIgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NTEgMTExLjk2NiA4MC40NDUxIDExMS45NjYgODAuNDQ1MSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2IDgwLjQ0NSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDkgMTExLjk2NiA4MC40NDQ5IDExMS45NjYgODAuNDQ0OSAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0OCAxMTEuOTY2QzgwLjQ0NDggMTExLjk2NiA4MC40NDQ4IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ3IDExMS45NjYgODAuNDQ0NyAxMTEuOTY2QzgwLjQ0NDcgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ2IDExMS45NjYgODAuNDQ0NiAxMTEuOTY2QzgwLjQ0NDYgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ1IDExMS45NjYgODAuNDQ0NSAxMTEuOTY2QzgwLjQ0NDUgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDQgMTExLjk2NiA4MC40NDQ0IDExMS45NjYgODAuNDQ0NCAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MyAxMTEuOTY2QzgwLjQ0NDMgMTExLjk2NiA4MC40NDQzIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MiAxMTEuOTY2QzgwLjQ0NDIgMTExLjk2NiA4MC40NDQyIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQxIDExMS45NjYgODAuNDQ0MSAxMTEuOTY2QzgwLjQ0NDEgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NiA4MC40NDQgMTExLjk2NkM4MC40NDQgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzkgMTExLjk2NiA4MC40NDM5IDExMS45NjYgODAuNDQzOSAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzggMTExLjk2NiA4MC40NDM4IDExMS45NjYgODAuNDQzOCAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNyAxMTEuOTY2QzgwLjQ0MzcgMTExLjk2NiA4MC40NDM3IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNiAxMTEuOTY2QzgwLjQ0MzYgMTExLjk2NiA4MC40NDM2IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM1IDExMS45NjYgODAuNDQzNSAxMTEuOTY2QzgwLjQ0MzUgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDM0IDExMS45NjYgODAuNDQzNCAxMTEuOTY2QzgwLjQ0MzQgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzMgMTExLjk2NiA4MC40NDMzIDExMS45NjYgODAuNDQzMyAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMiAxMTEuOTY2QzgwLjQ0MzIgMTExLjk2NiA4MC40NDMyIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzMSAxMTEuOTY2QzgwLjQ0MzEgMTExLjk2NiA4MC40NDMxIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjZDODAuNDQzIDExMS45NjYgODAuNDQzIDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI5IDExMS45NjYgODAuNDQyOSAxMTEuOTY2QzgwLjQ0MjkgMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjggMTExLjk2NiA4MC40NDI4IDExMS45NjYgODAuNDQyOCAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjcgMTExLjk2NiA4MC40NDI3IDExMS45NjYgODAuNDQyNyAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjYgMTExLjk2NiA4MC40NDI2IDExMS45NjYgODAuNDQyNiAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNSAxMTEuOTY2QzgwLjQ0MjUgMTExLjk2NiA4MC40NDI1IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDI0IDExMS45NjYgODAuNDQyNCAxMTEuOTY2QzgwLjQ0MjQgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIzIDExMS45NjYgODAuNDQyMyAxMTEuOTY2QzgwLjQ0MjMgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIyIDExMS45NjYgODAuNDQyMiAxMTEuOTY2QzgwLjQ0MjIgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MjEgMTExLjk2NiA4MC40NDIxIDExMS45NjYgODAuNDQyMSAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2QzgwLjQ0MiAxMTEuOTY2IDgwLjQ0MiAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTkgMTExLjk2NkM4MC40NDE5IDExMS45NjYgODAuNDQxOSAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxOCAxMTEuOTY2IDgwLjQ0MTggMTExLjk2NkM4MC40NDE4IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNyAxMTEuOTY2IDgwLjQ0MTcgMTExLjk2NkM4MC40NDE3IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE2IDExMS45NjYgODAuNDQxNiAxMTEuOTY2IDgwLjQ0MTYgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE1IDExMS45NjYgODAuNDQxNSAxMTEuOTY2IDgwLjQ0MTUgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTQgMTExLjk2NkM4MC40NDE0IDExMS45NjYgODAuNDQxNCAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMyAxMTEuOTY2IDgwLjQ0MTMgMTExLjk2NkM4MC40NDEzIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMiAxMTEuOTY2IDgwLjQ0MTIgMTExLjk2NkM4MC40NDEyIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NkM4MC40NDExIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NkM4MC40NDExIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NkM4MC40NDExIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NkM4MC40NDExIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NkM4MC40NDExIDExMS45NjYgODAuNDQxMSAxMTEuOTY2IDgwLjQ0MTEgMTExLjk2NlYxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDExIDExNC4xMzggODAuNDQxMSAxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDExIDExNC4xMzggODAuNDQxMSAxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDExIDExNC4xMzggODAuNDQxMSAxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDExIDExNC4xMzggODAuNDQxMSAxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDExIDExNC4xMzggODAuNDQxMSAxMTQuMTM4QzgwLjQ0MTEgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEyIDExNC4xMzggODAuNDQxMiAxMTQuMTM4QzgwLjQ0MTIgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTMgMTE0LjEzOCA4MC40NDEzIDExNC4xMzggODAuNDQxMyAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNCAxMTQuMTM4QzgwLjQ0MTQgMTE0LjEzOCA4MC40NDE0IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNSAxMTQuMTM4QzgwLjQ0MTUgMTE0LjEzOCA4MC40NDE1IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE2IDExNC4xMzggODAuNDQxNiAxMTQuMTM4QzgwLjQ0MTYgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE3IDExNC4xMzggODAuNDQxNyAxMTQuMTM4QzgwLjQ0MTcgMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTggMTE0LjEzOCA4MC40NDE4IDExNC4xMzggODAuNDQxOCAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MTkgMTE0LjEzOCA4MC40NDE5IDExNC4xMzggODAuNDQxOSAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4QzgwLjQ0MiAxMTQuMTM4IDgwLjQ0MiAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMSAxMTQuMTM4IDgwLjQ0MjEgMTE0LjEzOEM4MC40NDIxIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMiAxMTQuMTM4IDgwLjQ0MjIgMTE0LjEzOEM4MC40NDIyIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyMyAxMTQuMTM4IDgwLjQ0MjMgMTE0LjEzOEM4MC40NDIzIDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI0IDExNC4xMzggODAuNDQyNCAxMTQuMTM4IDgwLjQ0MjQgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjUgMTE0LjEzOEM4MC40NDI1IDExNC4xMzggODAuNDQyNSAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjYgMTE0LjEzOEM4MC40NDI2IDExNC4xMzggODAuNDQyNiAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjcgMTE0LjEzOEM4MC40NDI3IDExNC4xMzggODAuNDQyNyAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOCAxMTQuMTM4IDgwLjQ0MjggMTE0LjEzOEM4MC40NDI4IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDI5IDExNC4xMzggODAuNDQyOSAxMTQuMTM4IDgwLjQ0MjkgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOCA4MC40NDMgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMxIDExNC4xMzggODAuNDQzMSAxMTQuMTM4IDgwLjQ0MzEgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzIgMTE0LjEzOEM4MC40NDMyIDExNC4xMzggODAuNDQzMiAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzMyAxMTQuMTM4IDgwLjQ0MzMgMTE0LjEzOEM4MC40NDMzIDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNCAxMTQuMTM4IDgwLjQ0MzQgMTE0LjEzOEM4MC40NDM0IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM1IDExNC4xMzggODAuNDQzNSAxMTQuMTM4IDgwLjQ0MzUgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM2IDExNC4xMzggODAuNDQzNiAxMTQuMTM4IDgwLjQ0MzYgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzcgMTE0LjEzOEM4MC40NDM3IDExNC4xMzggODAuNDQzNyAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzggMTE0LjEzOEM4MC40NDM4IDExNC4xMzggODAuNDQzOCAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQzOSAxMTQuMTM4IDgwLjQ0MzkgMTE0LjEzOEM4MC40NDM5IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzggODAuNDQ0IDExNC4xMzhDODAuNDQ0IDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQxIDExNC4xMzggODAuNDQ0MSAxMTQuMTM4IDgwLjQ0NDEgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQyIDExNC4xMzggODAuNDQ0MiAxMTQuMTM4IDgwLjQ0NDIgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDMgMTE0LjEzOEM4MC40NDQzIDExNC4xMzggODAuNDQ0MyAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NCAxMTQuMTM4IDgwLjQ0NDQgMTE0LjEzOEM4MC40NDQ0IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NSAxMTQuMTM4IDgwLjQ0NDUgMTE0LjEzOEM4MC40NDQ1IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NiAxMTQuMTM4IDgwLjQ0NDYgMTE0LjEzOEM4MC40NDQ2IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ3IDExNC4xMzggODAuNDQ0NyAxMTQuMTM4IDgwLjQ0NDcgMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDggMTE0LjEzOEM4MC40NDQ4IDExNC4xMzggODAuNDQ0OCAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NDkgMTE0LjEzOEM4MC40NDQ5IDExNC4xMzggODAuNDQ0OSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4QzgwLjQ0NSAxMTQuMTM4IDgwLjQ0NSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MSAxMTQuMTM4IDgwLjQ0NTEgMTE0LjEzOEM4MC40NDUxIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUyIDExNC4xMzggODAuNDQ1MiAxMTQuMTM4IDgwLjQ0NTIgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDUzIDExNC4xMzggODAuNDQ1MyAxMTQuMTM4IDgwLjQ0NTMgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU0IDExNC4xMzggODAuNDQ1NCAxMTQuMTM4IDgwLjQ0NTQgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTUgMTE0LjEzOEM4MC40NDU1IDExNC4xMzggODAuNDQ1NSAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NiAxMTQuMTM4IDgwLjQ0NTYgMTE0LjEzOEM4MC40NDU2IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1NyAxMTQuMTM4IDgwLjQ0NTcgMTE0LjEzOEM4MC40NDU3IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU4IDExNC4xMzggODAuNDQ1OCAxMTQuMTM4IDgwLjQ0NTggMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDU5IDExNC4xMzggODAuNDQ1OSAxMTQuMTM4IDgwLjQ0NTkgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOEM4MC40NDYgMTE0LjEzOCA4MC40NDYgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYxIDExNC4xMzhDODAuNDQ2MSAxMTQuMTM4IDgwLjQ0NjEgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjIgMTE0LjEzOCA4MC40NDYyIDExNC4xMzhDODAuNDQ2MiAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2MyAxMTQuMTM4IDgwLjQ0NjMgMTE0LjEzOCA4MC40NDYzIDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NCAxMTQuMTM4IDgwLjQ0NjQgMTE0LjEzOCA4MC40NDY0IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NSAxMTQuMTM4IDgwLjQ0NjUgMTE0LjEzOCA4MC40NDY1IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY2IDExNC4xMzhDODAuNDQ2NiAxMTQuMTM4IDgwLjQ0NjYgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjcgMTE0LjEzOCA4MC40NDY3IDExNC4xMzhDODAuNDQ2NyAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjggMTE0LjEzOCA4MC40NDY4IDExNC4xMzhDODAuNDQ2OCAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NjkgMTE0LjEzOCA4MC40NDY5IDExNC4xMzhDODAuNDQ2OSAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4IDgwLjQ0NyAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MSAxMTQuMTM4QzgwLjQ0NzEgMTE0LjEzOCA4MC40NDcxIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MiAxMTQuMTM4QzgwLjQ0NzIgMTE0LjEzOCA4MC40NDcyIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3MyAxMTQuMTM4QzgwLjQ0NzMgMTE0LjEzOCA4MC40NDczIDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc0IDExNC4xMzggODAuNDQ3NCAxMTQuMTM4QzgwLjQ0NzQgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzUgMTE0LjEzOCA4MC40NDc1IDExNC4xMzggODAuNDQ3NSAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzYgMTE0LjEzOCA4MC40NDc2IDExNC4xMzggODAuNDQ3NiAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3NyAxMTQuMTM4QzgwLjQ0NzcgMTE0LjEzOCA4MC40NDc3IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OCAxMTQuMTM4QzgwLjQ0NzggMTE0LjEzOCA4MC40NDc4IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDc5IDExNC4xMzggODAuNDQ3OSAxMTQuMTM4QzgwLjQ0NzkgMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOCA4MC40NDggMTE0LjEzOEM4MC40NDggMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODEgMTE0LjEzOCA4MC40NDgxIDExNC4xMzggODAuNDQ4MSAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODIgMTE0LjEzOCA4MC40NDgyIDExNC4xMzggODAuNDQ4MiAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODMgMTE0LjEzOCA4MC40NDgzIDExNC4xMzggODAuNDQ4MyAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NCAxMTQuMTM4QzgwLjQ0ODQgMTE0LjEzOCA4MC40NDg0IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg1IDExNC4xMzggODAuNDQ4NSAxMTQuMTM4QzgwLjQ0ODUgMTE0LjEzOCA4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4QzgwLjQ0ODYgMTE0LjEzOCA4MC40NDg2IDExNC4xMzggODAuNDQ4NiAxMTQuMTM4VjExMS45NjZaTTc1LjU2MDYgMTE0LjEzOEg4MC40NDExVjExMS45NjZINzUuNTYwNlYxMTQuMTM4Wk03NC40NzQ0IDExMi44N1YxMTMuMDUySDc2LjY0NjlWMTEyLjg3SDc0LjQ3NDRaTTc1LjY0MTggMTExLjc4N0M2NS43MDQ2IDExMS4wNDIgNTYuOTM5OCAxMDguMDIyIDUwLjY5MDEgMTAzLjYzOUM0NC40MzM0IDk5LjI1MTggNDAuODAyIDkzLjU4NzQgNDAuODAyIDg3LjUyNjNIMzguNjI5NkMzOC42Mjk2IDk0LjUyNjIgNDIuODI0OSAxMDAuNzc3IDQ5LjQ0MjggMTA1LjQxOEM1Ni4wNjc2IDExMC4wNjQgNjUuMjI1MiAxMTMuMTg1IDc1LjQ3OTUgMTEzLjk1M0w3NS42NDE4IDExMS43ODdaTTQwLjgwMiA4Ny41MjYzQzQwLjgwMiA4MS40NjUzIDQ0LjQzMzQgNzUuODAwOSA1MC42OTAxIDcxLjQxMzNDNTYuOTM5OCA2Ny4wMzA2IDY1LjcwNDYgNjQuMDEwMyA3NS42NDE4IDYzLjI2NTZMNzUuNDc5NSA2MS4wOTkyQzY1LjIyNTIgNjEuODY3NyA1Ni4wNjc2IDY0Ljk4ODkgNDkuNDQyOCA2OS42MzQ3QzQyLjgyNDkgNzQuMjc1NSAzOC42Mjk2IDgwLjUyNjUgMzguNjI5NiA4Ny41MjYzSDQwLjgwMloiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC01LWluc2lkZS0xXzM0NjFfMTA1NTgwKSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMzQ2MV8xMDU1ODApIj4KPHJlY3QgeD0iMzkuMTcyOSIgeT0iOTEuMzI4MSIgd2lkdGg9IjEyMS42NTUiIGhlaWdodD0iNTEuMDUxNyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzI5IiB5PSI5MS4zMjgxIiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzI5IiB5PSI5MS4zMjgxIiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPG1hc2sgaWQ9InBhdGgtOS1pbnNpZGUtMl8zNDYxXzEwNTU4MCIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTgxLjUzNDUgNTkuODM2NkM4MS4xNzM1IDU5LjgzMDkgODAuODExNCA1OS44MjgxIDgwLjQ0ODMgNTkuODI4MUM1Ni40NTI0IDU5LjgyODEgMzcgNzIuMjI5IDM3IDg3LjUyNjNDMzcgMTAyLjgyNCA1Ni40NTI1IDExNS4yMjUgODAuNDQ4MyAxMTUuMjI1QzgwLjgxMTQgMTE1LjIyNSA4MS4xNzM1IDExNS4yMjIgODEuNTM0NSAxMTUuMjE2TDgxLjUzNDUgMTE1LjIyNUwxMTguNDY1IDExNS4yMjVMMTE4LjQ2NSAxMTUuMjE2QzExOC44MjYgMTE1LjIyMiAxMTkuMTg5IDExNS4yMjUgMTE5LjU1MiAxMTUuMjI1QzE0My41NDggMTE1LjIyNSAxNjMgMTAyLjgyNCAxNjMgODcuNTI2M0MxNjMgNzIuMjI5IDE0My41NDggNTkuODI4MSAxMTkuNTUyIDU5LjgyODFDMTE5LjE4OSA1OS44MjgxIDExOC44MjYgNTkuODMwOSAxMTguNDY1IDU5LjgzNjZMMTE4LjQ2NSA1OS44MjgxTDgxLjUzNDUgNTkuODI4MUw4MS41MzQ1IDU5LjgzNjZaIi8+CjwvbWFzaz4KPHBhdGggZD0iTTgxLjUzNDUgNTkuODM2Nkw4MS41MTc1IDYwLjkyMjZMODIuNjIwNyA2MC45Mzk5TDgyLjYyMDcgNTkuODM2Nkw4MS41MzQ1IDU5LjgzNjZaTTgxLjUzNDUgMTE1LjIxNkw4Mi42MjA3IDExNS4yMTZMODIuNjIwNyAxMTQuMTEzTDgxLjUxNzUgMTE0LjEzTDgxLjUzNDUgMTE1LjIxNlpNODEuNTM0NSAxMTUuMjI1TDgwLjQ0ODMgMTE1LjIyNUw4MC40NDgzIDExNi4zMTFMODEuNTM0NSAxMTYuMzExTDgxLjUzNDUgMTE1LjIyNVpNMTE4LjQ2NSAxMTUuMjI1TDExOC40NjUgMTE2LjMxMUwxMTkuNTUyIDExNi4zMTFMMTE5LjU1MiAxMTUuMjI1TDExOC40NjUgMTE1LjIyNVpNMTE4LjQ2NSAxMTUuMjE2TDExOC40ODIgMTE0LjEzTDExNy4zNzkgMTE0LjExM0wxMTcuMzc5IDExNS4yMTZMMTE4LjQ2NSAxMTUuMjE2Wk0xMTguNDY1IDU5LjgzNjZMMTE3LjM3OSA1OS44MzY2TDExNy4zNzkgNjAuOTM5OUwxMTguNDgyIDYwLjkyMjZMMTE4LjQ2NSA1OS44MzY2Wk0xMTguNDY1IDU5LjgyODFMMTE5LjU1MiA1OS44MjgxTDExOS41NTIgNTguNzQxOUwxMTguNDY1IDU4Ljc0MTlMMTE4LjQ2NSA1OS44MjgxWk04MS41MzQ1IDU5LjgyODFMODEuNTM0NSA1OC43NDE5TDgwLjQ0ODMgNTguNzQxOUw4MC40NDgzIDU5LjgyODFMODEuNTM0NSA1OS44MjgxWk04MC40NDgzIDYwLjkxNDNDODAuODA1NyA2MC45MTQzIDgxLjE2MjEgNjAuOTE3MSA4MS41MTc1IDYwLjkyMjZMODEuNTUxNSA1OC43NTA1QzgxLjE4NDggNTguNzQ0NyA4MC44MTcxIDU4Ljc0MTkgODAuNDQ4MyA1OC43NDE5TDgwLjQ0ODMgNjAuOTE0M1pNMzguMDg2MiA4Ny41MjYzQzM4LjA4NjIgODAuMzc2OSA0Mi42MzM4IDczLjc0OTkgNTAuMzA5NiA2OC44NTY2QzU3Ljk3MjcgNjMuOTcxNCA2OC42MjU0IDYwLjkxNDMgODAuNDQ4MyA2MC45MTQzTDgwLjQ0ODMgNTguNzQxOUM2OC4yNzUzIDU4Ljc0MTkgNTcuMjAzOSA2MS44ODUyIDQ5LjE0MTggNjcuMDI0OEM0MS4wOTI0IDcyLjE1NjMgMzUuOTEzOCA3OS4zNzg0IDM1LjkxMzggODcuNTI2M0wzOC4wODYyIDg3LjUyNjNaTTgwLjQ0ODMgMTE0LjEzOEM2OC42MjU0IDExNC4xMzggNTcuOTcyNyAxMTEuMDgxIDUwLjMwOTYgMTA2LjE5NkM0Mi42MzM4IDEwMS4zMDMgMzguMDg2MiA5NC42NzU4IDM4LjA4NjIgODcuNTI2M0wzNS45MTM4IDg3LjUyNjNDMzUuOTEzOCA5NS42NzQzIDQxLjA5MjQgMTAyLjg5NiA0OS4xNDE4IDEwOC4wMjhDNTcuMjAzOSAxMTMuMTY3IDY4LjI3NTMgMTE2LjMxMSA4MC40NDgzIDExNi4zMTFMODAuNDQ4MyAxMTQuMTM4Wk04MS41MTc1IDExNC4xM0M4MS4xNjIyIDExNC4xMzYgODAuODA1NyAxMTQuMTM4IDgwLjQ0ODMgMTE0LjEzOEw4MC40NDgzIDExNi4zMTFDODAuODE3MSAxMTYuMzExIDgxLjE4NDggMTE2LjMwOCA4MS41NTE1IDExNi4zMDJMODEuNTE3NSAxMTQuMTNaTTgwLjQ0ODMgMTE1LjIxNkw4MC40NDgzIDExNS4yMjVMODIuNjIwNyAxMTUuMjI1TDgyLjYyMDcgMTE1LjIxNkw4MC40NDgzIDExNS4yMTZaTTgxLjUzNDUgMTE2LjMxMUwxMTguNDY1IDExNi4zMTFMMTE4LjQ2NSAxMTQuMTM4TDgxLjUzNDUgMTE0LjEzOEw4MS41MzQ1IDExNi4zMTFaTTExOS41NTIgMTE1LjIyNUwxMTkuNTUyIDExNS4yMTZMMTE3LjM3OSAxMTUuMjE2TDExNy4zNzkgMTE1LjIyNUwxMTkuNTUyIDExNS4yMjVaTTExOC40NDkgMTE2LjMwMkMxMTguODE1IDExNi4zMDggMTE5LjE4MyAxMTYuMzExIDExOS41NTIgMTE2LjMxMUwxMTkuNTUyIDExNC4xMzhDMTE5LjE5NCAxMTQuMTM4IDExOC44MzggMTE0LjEzNiAxMTguNDgyIDExNC4xM0wxMTguNDQ5IDExNi4zMDJaTTExOS41NTIgMTE2LjMxMUMxMzEuNzI1IDExNi4zMTEgMTQyLjc5NiAxMTMuMTY3IDE1MC44NTggMTA4LjAyOEMxNTguOTA4IDEwMi44OTYgMTY0LjA4NiA5NS42NzQzIDE2NC4wODYgODcuNTI2M0wxNjEuOTE0IDg3LjUyNjNDMTYxLjkxNCA5NC42NzU4IDE1Ny4zNjYgMTAxLjMwMyAxNDkuNjkgMTA2LjE5NkMxNDIuMDI3IDExMS4wODEgMTMxLjM3NSAxMTQuMTM4IDExOS41NTIgMTE0LjEzOEwxMTkuNTUyIDExNi4zMTFaTTE2NC4wODYgODcuNTI2M0MxNjQuMDg2IDc5LjM3ODQgMTU4LjkwOCA3Mi4xNTYzIDE1MC44NTggNjcuMDI0OEMxNDIuNzk2IDYxLjg4NTIgMTMxLjcyNSA1OC43NDE5IDExOS41NTIgNTguNzQxOUwxMTkuNTUyIDYwLjkxNDNDMTMxLjM3NSA2MC45MTQzIDE0Mi4wMjcgNjMuOTcxNCAxNDkuNjkgNjguODU2NkMxNTcuMzY2IDczLjc0OTkgMTYxLjkxNCA4MC4zNzY5IDE2MS45MTQgODcuNTI2M0wxNjQuMDg2IDg3LjUyNjNaTTExOS41NTIgNTguNzQxOUMxMTkuMTgzIDU4Ljc0MTkgMTE4LjgxNSA1OC43NDQ3IDExOC40NDkgNTguNzUwNUwxMTguNDgyIDYwLjkyMjZDMTE4LjgzOCA2MC45MTcxIDExOS4xOTQgNjAuOTE0MyAxMTkuNTUyIDYwLjkxNDNMMTE5LjU1MiA1OC43NDE5Wk0xMTkuNTUyIDU5LjgzNjZMMTE5LjU1MiA1OS44MjgxTDExNy4zNzkgNTkuODI4MUwxMTcuMzc5IDU5LjgzNjZMMTE5LjU1MiA1OS44MzY2Wk0xMTguNDY1IDU4Ljc0MTlMODEuNTM0NSA1OC43NDE5TDgxLjUzNDUgNjAuOTE0M0wxMTguNDY1IDYwLjkxNDNMMTE4LjQ2NSA1OC43NDE5Wk04MC40NDgzIDU5LjgyODFMODAuNDQ4MyA1OS44MzY2TDgyLjYyMDcgNTkuODM2Nkw4Mi42MjA3IDU5LjgyODFMODAuNDQ4MyA1OS44MjgxWiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTktaW5zaWRlLTJfMzQ2MV8xMDU1ODApIi8+CjxwYXRoIGQ9Ik04MC40NDgzIDYwLjM3MTJDOTIuMzU4NyA2MC4zNzEyIDEwMy4xMTYgNjMuNDQ5OCAxMTAuODc5IDY4LjM5ODdDMTE4LjY0OCA3My4zNTE1IDEyMy4zNTMgODAuMTI3MyAxMjMuMzUzIDg3LjUyNjNDMTIzLjM1MyA5NC45MjU0IDExOC42NDggMTAxLjcwMSAxMTAuODc5IDEwNi42NTRDMTAzLjExNiAxMTEuNjAzIDkyLjM1ODcgMTE0LjY4MiA4MC40NDgzIDExNC42ODJDNjguNTM3OSAxMTQuNjgyIDU3Ljc4MDUgMTExLjYwMyA1MC4wMTc3IDEwNi42NTRDNDIuMjQ4NSAxMDEuNzAxIDM3LjU0MzEgOTQuOTI1NCAzNy41NDMxIDg3LjUyNjNDMzcuNTQzMSA4MC4xMjczIDQyLjI0ODUgNzMuMzUxNSA1MC4wMTc3IDY4LjM5ODdDNTcuNzgwNSA2My40NDk4IDY4LjUzNzkgNjAuMzcxMiA4MC40NDgzIDYwLjM3MTJaIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8bWFzayBpZD0icGF0aC0xMi1pbnNpZGUtM18zNDYxXzEwNTU4MCIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExNC42NjQgNTEuMTM4NEg5OC45MTQxVjYwLjkxNDNDOTguOTE0MSA2MS44MTQxIDEwMi40NCA2Mi41NDM2IDEwNi43ODkgNjIuNTQzNkMxMTEuMTM4IDYyLjU0MzYgMTE0LjY2NCA2MS44MTQxIDExNC42NjQgNjAuOTE0M1Y1MS4xMzg0WiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTE0LjY2NCA1MS4xMzg0SDk4LjkxNDFWNjAuOTE0M0M5OC45MTQxIDYxLjgxNDEgMTAyLjQ0IDYyLjU0MzYgMTA2Ljc4OSA2Mi41NDM2QzExMS4xMzggNjIuNTQzNiAxMTQuNjY0IDYxLjgxNDEgMTE0LjY2NCA2MC45MTQzVjUxLjEzODRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTguOTE0MSA1MS4xMzg0VjUwLjA1MjJIOTcuODI3OVY1MS4xMzg0SDk4LjkxNDFaTTExNC42NjQgNTEuMTM4NEgxMTUuNzVWNTAuMDUyMkgxMTQuNjY0VjUxLjEzODRaTTk4LjkxNDEgNTIuMjI0NkgxMTQuNjY0VjUwLjA1MjJIOTguOTE0MVY1Mi4yMjQ2Wk0xMDAgNjAuOTE0M1Y1MS4xMzg0SDk3LjgyNzlWNjAuOTE0M0gxMDBaTTEwNi43ODkgNjEuNDU3NEMxMDQuNjY1IDYxLjQ1NzQgMTAyLjc3NCA2MS4yNzg1IDEwMS40NDEgNjEuMDAyN0MxMDAuNzY1IDYwLjg2MjkgMTAwLjI5IDYwLjcwOTcgMTAwLjAxIDYwLjU3MjhDOTkuODY4IDYwLjUwMzIgOTkuODMyMyA2MC40NjQ3IDk5Ljg0NjMgNjAuNDc4OEM5OS44NjM2IDYwLjQ5NjMgMTAwIDYwLjY0NTMgMTAwIDYwLjkxNDNIOTcuODI3OUM5Ny44Mjc5IDYxLjQwODIgOTguMDc0NyA2MS43NzY4IDk4LjMwMTggNjIuMDA2NUM5OC41MjU2IDYyLjIzMjggOTguNzk5MyA2Mi4zOTg4IDk5LjA1NTYgNjIuNTI0MkM5OS41NzI4IDYyLjc3NzIgMTAwLjI1MSA2Mi45NzUgMTAxLjAwMSA2My4xMzAxQzEwMi41MTcgNjMuNDQzOSAxMDQuNTYzIDYzLjYyOTggMTA2Ljc4OSA2My42Mjk4VjYxLjQ1NzRaTTExMy41NzggNjAuOTE0M0MxMTMuNTc4IDYwLjY0NTMgMTEzLjcxNCA2MC40OTYzIDExMy43MzIgNjAuNDc4OEMxMTMuNzQ2IDYwLjQ2NDcgMTEzLjcxIDYwLjUwMzIgMTEzLjU2OCA2MC41NzI4QzExMy4yODggNjAuNzA5NyAxMTIuODEzIDYwLjg2MjkgMTEyLjEzNyA2MS4wMDI3QzExMC44MDQgNjEuMjc4NSAxMDguOTEzIDYxLjQ1NzQgMTA2Ljc4OSA2MS40NTc0VjYzLjYyOThDMTA5LjAxNSA2My42Mjk4IDExMS4wNjEgNjMuNDQzOSAxMTIuNTc4IDYzLjEzMDFDMTEzLjMyNyA2Mi45NzUgMTE0LjAwNSA2Mi43NzcyIDExNC41MjIgNjIuNTI0MkMxMTQuNzc5IDYyLjM5ODggMTE1LjA1MyA2Mi4yMzI4IDExNS4yNzYgNjIuMDA2NUMxMTUuNTAzIDYxLjc3NjggMTE1Ljc1IDYxLjQwODIgMTE1Ljc1IDYwLjkxNDNIMTEzLjU3OFpNMTEzLjU3OCA1MS4xMzg0VjYwLjkxNDNIMTE1Ljc1VjUxLjEzODRIMTEzLjU3OFoiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC0xMi1pbnNpZGUtM18zNDYxXzEwNTU4MCkiLz4KPHBhdGggZD0iTTExNC4zMiA1MS41NDEyQzExNC40MzQgNTEuNTkzNiAxMTQuNTE4IDUxLjY0MTMgMTE0LjU3OCA1MS42ODE2QzExNC41MTggNTEuNzIxOCAxMTQuNDM0IDUxLjc2OTUgMTE0LjMyIDUxLjgyMTlDMTEzLjk1MSA1MS45OTA3IDExMy4zODMgNTIuMTU2MyAxMTIuNjM4IDUyLjMwMDRDMTExLjE1OCA1Mi41ODY5IDEwOS4wOSA1Mi43Njc4IDEwNi43ODkgNTIuNzY3OEMxMDQuNDg4IDUyLjc2NzggMTAyLjQyIDUyLjU4NjkgMTAwLjk0IDUyLjMwMDRDMTAwLjE5NSA1Mi4xNTYzIDk5LjYyNzQgNTEuOTkwNyA5OS4yNTg2IDUxLjgyMTlDOTkuMTQ0MiA1MS43Njk1IDk5LjA2MDEgNTEuNzIxOCA5OS4wMDAzIDUxLjY4MTZDOTkuMDYwMSA1MS42NDEzIDk5LjE0NDIgNTEuNTkzNiA5OS4yNTg2IDUxLjU0MTJDOTkuNjI3NCA1MS4zNzI0IDEwMC4xOTUgNTEuMjA2OCAxMDAuOTQgNTEuMDYyN0MxMDIuNDIgNTAuNzc2MiAxMDQuNDg4IDUwLjU5NTMgMTA2Ljc4OSA1MC41OTUzQzEwOS4wOSA1MC41OTUzIDExMS4xNTggNTAuNzc2MiAxMTIuNjM4IDUxLjA2MjdDMTEzLjM4MyA1MS4yMDY4IDExMy45NTEgNTEuMzcyNCAxMTQuMzIgNTEuNTQxMloiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8cGF0aCBkPSJNMTE0LjMyIDQ5LjkxMThDMTE0LjQzNCA0OS45NjQyIDExNC41MTggNTAuMDExOSAxMTQuNTc4IDUwLjA1MjJDMTE0LjUxOCA1MC4wOTI0IDExNC40MzQgNTAuMTQwMSAxMTQuMzIgNTAuMTkyNUMxMTMuOTUxIDUwLjM2MTMgMTEzLjM4MyA1MC41MjY5IDExMi42MzggNTAuNjcxQzExMS4xNTggNTAuOTU3NSAxMDkuMDkgNTEuMTM4NCAxMDYuNzg5IDUxLjEzODRDMTA0LjQ4OCA1MS4xMzg0IDEwMi40MiA1MC45NTc1IDEwMC45NCA1MC42NzFDMTAwLjE5NSA1MC41MjY5IDk5LjYyNzQgNTAuMzYxMyA5OS4yNTg2IDUwLjE5MjVDOTkuMTQ0MiA1MC4xNDAxIDk5LjA2MDEgNTAuMDkyNCA5OS4wMDAzIDUwLjA1MjJDOTkuMDYwMSA1MC4wMTE5IDk5LjE0NDIgNDkuOTY0MiA5OS4yNTg2IDQ5LjkxMThDOTkuNjI3NCA0OS43NDMxIDEwMC4xOTUgNDkuNTc3NCAxMDAuOTQgNDkuNDMzM0MxMDIuNDIgNDkuMTQ2OCAxMDQuNDg4IDQ4Ljk2NiAxMDYuNzg5IDQ4Ljk2NkMxMDkuMDkgNDguOTY2IDExMS4xNTggNDkuMTQ2OCAxMTIuNjM4IDQ5LjQzMzNDMTEzLjM4MyA0OS41Nzc0IDExMy45NTEgNDkuNzQzMSAxMTQuMzIgNDkuOTExOFoiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMF9iXzM0NjFfMTA1NTgwKSI+CjxyZWN0IHg9IjYxLjE2NiIgeT0iNzYuMTA2IiB3aWR0aD0iMzguNTY0MSIgaGVpZ2h0PSIyMy40NjE1IiByeD0iMi4xNjU3OSIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNNzQuNTQyOSA5MC4wNTZWOTEuNDIxNEg2Ny4wNzU5TDY3LjAxOTEgOTAuMzkwM0w3MS40ODUgODMuMzkyN0g3Mi44NTc1TDcxLjM3MTIgODUuOTM4NUw2OC44MDQgOTAuMDU2SDc0LjU0MjlaTTczLjI0ODYgODMuMzkyN1Y5My43NDY4SDcxLjUzNDhWODMuMzkyN0g3My4yNDg2Wk04Mi40MzY1IDg3LjcwMjJWODkuMzk0N0M4Mi40MzY1IDkwLjIwNTQgODIuMzU1OSA5MC44OTc1IDgyLjE5NDcgOTEuNDcxMkM4Mi4wMzgzIDkyLjA0MDEgODEuODEwNyA5Mi41MDIzIDgxLjUxMiA5Mi44NTc5QzgxLjIxMzQgOTMuMjEzNSA4MC44NTU0IDkzLjQ3NDIgODAuNDM4MiA5My42NDAyQzgwLjAyNTggOTMuODA2MSA3OS41NjM1IDkzLjg4OTEgNzkuMDUxNSA5My44ODkxQzc4LjY0MzggOTMuODg5MSA3OC4yNjQ1IDkzLjgzNjkgNzcuOTEzNyA5My43MzI2Qzc3LjU2NzYgOTMuNjI4MyA3Ny4yNTQ3IDkzLjQ2NDcgNzYuOTc1IDkzLjI0MTlDNzYuNjk1MyA5My4wMTkxIDc2LjQ1NTkgOTIuNzMyMyA3Ni4yNTY3IDkyLjM4MTRDNzYuMDYyNCA5Mi4wMjU5IDc1LjkxMDYgOTEuNjAxNiA3NS44MDE2IDkxLjEwODVDNzUuNjk3MyA5MC42MTU0IDc1LjY0NTIgOTAuMDQ0MiA3NS42NDUyIDg5LjM5NDdWODcuNzAyMkM3NS42NDUyIDg2Ljg4NjcgNzUuNzI1OCA4Ni4xOTkzIDc1Ljg4NjkgODUuNjM5OUM3Ni4wNDgxIDg1LjA3NTcgNzYuMjc4MSA4NC42MTgyIDc2LjU3NjcgODQuMjY3NEM3Ni44NzU0IDgzLjkxMTggNzcuMjMxIDgzLjY1MzQgNzcuNjQzNSA4My40OTIyQzc4LjA2MDcgODMuMzMxIDc4LjUyNTMgODMuMjUwNCA3OS4wMzczIDgzLjI1MDRDNzkuNDQ5NyA4My4yNTA0IDc5LjgyOSA4My4zMDI2IDgwLjE3NTEgODMuNDA2OUM4MC41MjU5IDgzLjUwNjQgODAuODM4OCA4My42NjUzIDgxLjExMzggODMuODgzM0M4MS4zOTM1IDg0LjEwMTQgODEuNjMwNiA4NC4zODU5IDgxLjgyNDkgODQuNzM2N0M4Mi4wMjQxIDg1LjA4MjggODIuMTc1OCA4NS41MDI0IDgyLjI4MDEgODUuOTk1NEM4Mi4zODQ0IDg2LjQ4MzcgODIuNDM2NSA4Ny4wNTI2IDgyLjQzNjUgODcuNzAyMlpNODAuNzIyNyA4OS42MzY0Vjg3LjQ0NjFDODAuNzIyNyA4Ny4wMzM3IDgwLjY5OSA4Ni42NzEgODAuNjUxNiA4Ni4zNTgxQzgwLjYwNDIgODYuMDQwNSA4MC41MzMgODUuNzcyNiA4MC40MzgyIDg1LjU1NDVDODAuMzQ4MSA4NS4zMzE3IDgwLjIzNDQgODUuMTUxNSA4MC4wOTY5IDg1LjAxNDFDNzkuOTU5NCA4NC44NzE4IDc5LjgwMjkgODQuNzY5OSA3OS42Mjc1IDg0LjcwODNDNzkuNDUyMSA4NC42NDE5IDc5LjI1NTQgODQuNjA4NyA3OS4wMzczIDg0LjYwODdDNzguNzcxOCA4NC42MDg3IDc4LjUzNDcgODQuNjYwOSA3OC4zMjYxIDg0Ljc2NTJDNzguMTE3NSA4NC44NjQ3IDc3Ljk0MjEgODUuMDI1OSA3Ny43OTk5IDg1LjI0ODdDNzcuNjU3NyA4NS40NzE2IDc3LjU0ODYgODUuNzY1NSA3Ny40NzI4IDg2LjEzMDVDNzcuNDAxNyA4Ni40OTA5IDc3LjM2NjEgODYuOTI5NCA3Ny4zNjYxIDg3LjQ0NjFWODkuNjM2NEM3Ny4zNjYxIDkwLjA1MzcgNzcuMzg5OCA5MC40MjExIDc3LjQzNzIgOTAuNzM4N0M3Ny40ODQ2IDkxLjA1NjQgNzcuNTU1NyA5MS4zMjkgNzcuNjUwNiA5MS41NTY1Qzc3Ljc0NTQgOTEuNzc5MyA3Ny44NTkyIDkxLjk2NDIgNzcuOTkxOSA5Mi4xMTEyQzc4LjEyOTQgOTIuMjUzNCA3OC4yODU4IDkyLjM1NzcgNzguNDYxMyA5Mi40MjQxQzc4LjY0MTQgOTIuNDkwNSA3OC44MzgyIDkyLjUyMzcgNzkuMDUxNSA5Mi41MjM3Qzc5LjMyMTcgOTIuNTIzNyA3OS41NjEyIDkyLjQ3MTUgNzkuNzY5OCA5Mi4zNjcyQzc5Ljk3ODQgOTIuMjYyOSA4MC4xNTM4IDkyLjA5NyA4MC4yOTYgOTEuODY5NEM4MC40MzgyIDkxLjYzNzEgODAuNTQ0OSA5MS4zMzYxIDgwLjYxNiA5MC45NjYzQzgwLjY4NzEgOTAuNTk2NSA4MC43MjI3IDkwLjE1MzIgODAuNzIyNyA4OS42MzY0WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBkPSJNODcuNzEzIDg4Ljg2MjRWODguNTIwMkM4Ny43MTMgODguMjc0MyA4Ny43NjY0IDg4LjA1MDYgODcuODczIDg3Ljg0OTFDODcuOTc5NyA4Ny42NDc2IDg4LjEzNTMgODcuNDg2MSA4OC4zMzk3IDg3LjM2NDZDODguNTQ0MiA4Ny4yNDMxIDg4Ljc5MDEgODcuMTgyNCA4OS4wNzc1IDg3LjE4MjRDODkuMzczOCA4Ny4xODI0IDg5LjYyMjcgODcuMjQzMSA4OS44MjQyIDg3LjM2NDZDOTAuMDI4NyA4Ny40ODYxIDkwLjE4NDIgODcuNjQ3NiA5MC4yOTA5IDg3Ljg0OTFDOTAuMzk3NiA4OC4wNTA2IDkwLjQ1MDkgODguMjc0MyA5MC40NTA5IDg4LjUyMDJWODguODYyNEM5MC40NTA5IDg5LjEwMjUgOTAuMzk3NiA4OS4zMjMyIDkwLjI5MDkgODkuNTI0N0M5MC4xODcyIDg5LjcyNjIgOTAuMDMzMSA4OS44ODc3IDg5LjgyODcgOTAuMDA5MkM4OS42MjcyIDkwLjEzMDYgODkuMzc5NyA5MC4xOTE0IDg5LjA4NjQgOTAuMTkxNEM4OC43OTYgOTAuMTkxNCA4OC41NDcxIDkwLjEzMDYgODguMzM5NyA5MC4wMDkyQzg4LjEzNTMgODkuODg3NyA4Ny45Nzk3IDg5LjcyNjIgODcuODczIDg5LjUyNDdDODcuNzY2NCA4OS4zMjMyIDg3LjcxMyA4OS4xMDI1IDg3LjcxMyA4OC44NjI0Wk04OC40NTUzIDg4LjUyMDJWODguODYyNEM4OC40NTUzIDg4Ljk4MSA4OC40Nzc1IDg5LjA5MzYgODguNTIxOSA4OS4yMDAyQzg4LjU2OTMgODkuMzA2OSA4OC42NDA1IDg5LjM5MjggODguNzM1MyA4OS40NThDODguODMwMSA4OS41MjMyIDg4Ljk0NzEgODkuNTU1OCA4OS4wODY0IDg5LjU1NThDODkuMjI4NiA4OS41NTU4IDg5LjM0NDIgODkuNTIzMiA4OS40MzMxIDg5LjQ1OEM4OS41MjQ5IDg5LjM5MjggODkuNTkzMSA4OS4zMDY5IDg5LjYzNzUgODkuMjAwMkM4OS42ODIgODkuMDkzNiA4OS43MDQyIDg4Ljk4MSA4OS43MDQyIDg4Ljg2MjRWODguNTIwMkM4OS43MDQyIDg4LjM5ODcgODkuNjgwNSA4OC4yODQ2IDg5LjYzMzEgODguMTc4Qzg5LjU4ODYgODguMDY4MyA4OS41MjA1IDg3Ljk4MDkgODkuNDI4NiA4Ny45MTU3Qzg5LjMzNjggODcuODUwNiA4OS4yMTk3IDg3LjgxOCA4OS4wNzc1IDg3LjgxOEM4OC45NDEyIDg3LjgxOCA4OC44MjU3IDg3Ljg1MDYgODguNzMwOCA4Ny45MTU3Qzg4LjYzOSA4Ny45ODA5IDg4LjU2OTMgODguMDY4MyA4OC41MjE5IDg4LjE3OEM4OC40Nzc1IDg4LjI4NDYgODguNDU1MyA4OC4zOTg3IDg4LjQ1NTMgODguNTIwMlpNOTAuODMzMSA5Mi41MDdWOTIuMTYwM0M5MC44MzMxIDkxLjkxNzQgOTAuODg2NSA5MS42OTUxIDkwLjk5MzEgOTEuNDkzN0M5MS4xMDI4IDkxLjI5MjIgOTEuMjU5OCA5MS4xMzA3IDkxLjQ2NDMgOTEuMDA5MkM5MS42Njg3IDkwLjg4NzcgOTEuOTE0NyA5MC44MjcgOTIuMjAyMSA5MC44MjdDOTIuNDk4NCA5MC44MjcgOTIuNzQ3MyA5MC44ODc3IDkyLjk0ODggOTEuMDA5MkM5My4xNTMyIDkxLjEzMDcgOTMuMzA3MyA5MS4yOTIyIDkzLjQxMSA5MS40OTM3QzkzLjUxNzcgOTEuNjk1MSA5My41NzEgOTEuOTE3NCA5My41NzEgOTIuMTYwM1Y5Mi41MDdDOTMuNTcxIDkyLjc1IDkzLjUxNzcgOTIuOTcyMiA5My40MTEgOTMuMTczN0M5My4zMDczIDkzLjM3NTIgOTMuMTU0NyA5My41MzY3IDkyLjk1MzIgOTMuNjU4MkM5Mi43NTE3IDkzLjc3OTcgOTIuNTA1OCA5My44NDA0IDkyLjIxNTQgOTMuODQwNEM5MS45MjIxIDkzLjg0MDQgOTEuNjcxNyA5My43Nzk3IDkxLjQ2NDMgOTMuNjU4MkM5MS4yNTk4IDkzLjUzNjcgOTEuMTAyOCA5My4zNzUyIDkwLjk5MzEgOTMuMTczN0M5MC44ODY1IDkyLjk3MjIgOTAuODMzMSA5Mi43NSA5MC44MzMxIDkyLjUwN1pNOTEuNTc5OCA5Mi4xNjAzVjkyLjUwN0M5MS41Nzk4IDkyLjYyNTUgOTEuNjAzNSA5Mi43MzgxIDkxLjY1MDkgOTIuODQ0OEM5MS43MDEzIDkyLjk1MTUgOTEuNzczOSA5My4wMzg5IDkxLjg2ODcgOTMuMTA3QzkxLjk2MzUgOTMuMTcyMiA5Mi4wNzc2IDkzLjIwNDggOTIuMjExIDkzLjIwNDhDOTIuMzYyMSA5My4yMDQ4IDkyLjQ4MzYgOTMuMTcyMiA5Mi41NzU0IDkzLjEwN0M5Mi42NjczIDkzLjAzODkgOTIuNzMyNSA5Mi45NTMgOTIuNzcxIDkyLjg0OTNDOTIuODEyNSA5Mi43NDI2IDkyLjgzMzIgOTIuNjI4NSA5Mi44MzMyIDkyLjUwN1Y5Mi4xNjAzQzkyLjgzMzIgOTIuMDM4OSA5Mi44MDk1IDkxLjkyNDggOTIuNzYyMSA5MS44MTgxQzkyLjcxNzYgOTEuNzExNCA5Mi42NDggOTEuNjI1NSA5Mi41NTMyIDkxLjU2MDNDOTIuNDYxMyA5MS40OTUxIDkyLjM0NDMgOTEuNDYyNSA5Mi4yMDIxIDkxLjQ2MjVDOTIuMDYyOCA5MS40NjI1IDkxLjk0NzIgOTEuNDk1MSA5MS44NTU0IDkxLjU2MDNDOTEuNzYzNSA5MS42MjU1IDkxLjY5MzkgOTEuNzExNCA5MS42NDY1IDkxLjgxODFDOTEuNjAyMSA5MS45MjQ4IDkxLjU3OTggOTIuMDM4OSA5MS41Nzk4IDkyLjE2MDNaTTkyLjQ2ODcgODguMjAwMkw4OS4zMDg2IDkzLjI1ODJMODguNzYxOSA5Mi45NDI2TDkxLjkyMjEgODcuODg0Nkw5Mi40Njg3IDg4LjIwMDJaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjwvZz4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxOTkiIGhlaWdodD0iMTU5IiByeD0iMy41IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4xMiIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzM0NjFfMTA1NTgwIiB4PSI1Ny45MTczIiB5PSI3Mi44NTczIiB3aWR0aD0iNDUuMDYxOCIgaGVpZ2h0PSIyOS45NTg4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjEuNjI0MzQiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfMTA1NTgwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzEwNTU4MCIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K", - "description": "Widget indicates the level of liquid in Horizontal Ellipse tank.", - "descriptor": { - "type": "latest", - "sizeX": 7.5, - "sizeY": 3, - "resources": [], - "templateHtml": "\n", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", - "settingsSchema": "{}", - "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-liquid-level-card-widget-settings", - "hasBasicMode": true, - "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" - }, - "externalId": null, - "tags": null -} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_oval.json b/application/src/main/data/json/system/widget_types/horizontal_oval.json new file mode 100644 index 0000000000..f248fc26d2 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_oval.json @@ -0,0 +1,24 @@ +{ + "fqn": "horizontal_oval_tank", + "name": "Horizontal oval", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Horizontal oval tank.", + "descriptor": { + "type": "latest", + "sizeX": 4, + "sizeY": 4, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 deleted file mode 100644 index f2c1bf2cf0..0000000000 --- a/application/src/main/data/json/system/widget_types/horizontal_oval_tank.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "fqn": "horizontal_oval_tank", - "name": "Horizontal Oval tank", - "deprecated": false, - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMzQ2MV85NDc3NSkiPgo8cmVjdCBvcGFjaXR5PSIwLjEiIHg9Ijg2LjQyMiIgeT0iNTkuODI4MyIgd2lkdGg9Ijc2LjAzNDUiIGhlaWdodD0iNTQuMzEwMyIgcng9IjI3LjE1NTIiIGZpbGw9IiM2MjE2RkYiIGZpbGwtb3BhY2l0eT0iMC4wMiIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPG1hc2sgaWQ9Im1hc2swXzM0NjFfOTQ3NzUiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjM5IiB5PSI2MSIgd2lkdGg9IjEyMiIgaGVpZ2h0PSI1MiI+CjxtYXNrIGlkPSJwYXRoLTUtaW5zaWRlLTFfMzQ2MV85NDc3NSIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTYzLjYxMjUgNjEuNDgwMlY2MS40NTc2TDY0LjY2MjEgNjEuNDU3NkM2NC42NzQzIDYxLjQ1NzUgNjQuNjg2NSA2MS40NTc1IDY0LjY5ODcgNjEuNDU3NUg4Ni45NjU5Qzg2Ljk3NzkgNjEuNDU3NSA4Ni45ODk5IDYxLjQ1NzUgODcuMDAxOSA2MS40NTc2TDExNS43MDggNjEuNDU3NkwxMTUuNzUgNjEuNDU3NUwxMzUuMzAyIDYxLjQ1NzVDMTQ5LjQgNjEuNDU3NSAxNjAuODI4IDcyLjg4NTggMTYwLjgyOCA4Ni45ODM0QzE2MC44MjggMTAxLjA4MSAxNDkuNCAxMTIuNTA5IDEzNS4zMDIgMTEyLjUwOUwxMzQuNzU5IDExMi41MDlMNjMuNjEyNSAxMTIuNTA5VjExMi40ODdDNTAuMDE4OCAxMTEuOTE3IDM5LjE3MjkgMTAwLjcxNyAzOS4xNzI5IDg2Ljk4MzRDMzkuMTcyOSA3My4yNDk3IDUwLjAxODggNjIuMDQ5MyA2My42MTI1IDYxLjQ4MDJaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02My42MTI1IDYxLjQ4MDJWNjEuNDU3Nkw2NC42NjIxIDYxLjQ1NzZDNjQuNjc0MyA2MS40NTc1IDY0LjY4NjUgNjEuNDU3NSA2NC42OTg3IDYxLjQ1NzVIODYuOTY1OUM4Ni45Nzc5IDYxLjQ1NzUgODYuOTg5OSA2MS40NTc1IDg3LjAwMTkgNjEuNDU3NkwxMTUuNzA4IDYxLjQ1NzZMMTE1Ljc1IDYxLjQ1NzVMMTM1LjMwMiA2MS40NTc1QzE0OS40IDYxLjQ1NzUgMTYwLjgyOCA3Mi44ODU4IDE2MC44MjggODYuOTgzNEMxNjAuODI4IDEwMS4wODEgMTQ5LjQgMTEyLjUwOSAxMzUuMzAyIDExMi41MDlMMTM0Ljc1OSAxMTIuNTA5TDYzLjYxMjUgMTEyLjUwOVYxMTIuNDg3QzUwLjAxODggMTExLjkxNyAzOS4xNzI5IDEwMC43MTcgMzkuMTcyOSA4Ni45ODM0QzM5LjE3MjkgNzMuMjQ5NyA1MC4wMTg4IDYyLjA0OTMgNjMuNjEyNSA2MS40ODAyWiIgZmlsbD0iIzdGODRGQiIvPgo8cGF0aCBkPSJNNjMuNjEyNSA2MS40NTc2VjYwLjM3MTNMNjIuNTI2MyA2MC4zNzEzVjYxLjQ1NzZINjMuNjEyNVpNNjMuNjEyNSA2MS40ODAyTDYzLjY1NzkgNjIuNTY1NUw2NC42OTg3IDYyLjUyMTlWNjEuNDgwMkg2My42MTI1Wk02NC42NjIxIDYxLjQ1NzZWNjIuNTQzOEw2NC42NjM2IDYyLjU0MzhMNjQuNjYyMSA2MS40NTc2Wk04Ny4wMDE5IDYxLjQ1NzZMODcuMDAwNCA2Mi41NDM4SDg3LjAwMTlWNjEuNDU3NlpNMTE1LjcwOCA2MS40NTc2VjYyLjU0MzhMMTE1LjcwOSA2Mi41NDM4TDExNS43MDggNjEuNDU3NlpNMTE1Ljc1IDYxLjQ1NzVWNjAuMzcxM0wxMTUuNzUgNjAuMzcxM0wxMTUuNzUgNjEuNDU3NVpNMTM1LjMwMiA2MS40NTc1VjYyLjU0MzdWNjEuNDU3NVpNMTM1LjMwMiAxMTIuNTA5VjExMS40MjNIMTM1LjMwMkwxMzUuMzAyIDExMi41MDlaTTEzNC43NTkgMTEyLjUwOVYxMTMuNTk1SDEzNC43NTlMMTM0Ljc1OSAxMTIuNTA5Wk02My42MTI1IDExMi41MDlINjIuNTI2M1YxMTMuNTk1SDYzLjYxMjVWMTEyLjUwOVpNNjMuNjEyNSAxMTIuNDg3SDY0LjY5ODdWMTExLjQ0NUw2My42NTc5IDExMS40MDFMNjMuNjEyNSAxMTIuNDg3Wk02Mi41MjYzIDYxLjQ1NzZWNjEuNDgwMkg2NC42OTg3VjYxLjQ1NzZINjIuNTI2M1pNNjQuNjYyMSA2MC4zNzEzSDYzLjYxMjVWNjIuNTQzOEg2NC42NjIxVjYwLjM3MTNaTTY0LjY2MzYgNjIuNTQzOEM2NC42NzUzIDYyLjU0MzcgNjQuNjg3IDYyLjU0MzcgNjQuNjk4NyA2Mi41NDM3VjYwLjM3MTNDNjQuNjg2IDYwLjM3MTMgNjQuNjczMyA2MC4zNzEzIDY0LjY2MDUgNjAuMzcxNEw2NC42NjM2IDYyLjU0MzhaTTY0LjY5ODcgNjIuNTQzN0g4Ni45NjU5VjYwLjM3MTNINjQuNjk4N1Y2Mi41NDM3Wk04Ni45NjU5IDYyLjU0MzdDODYuOTc3NCA2Mi41NDM3IDg2Ljk4ODkgNjIuNTQzNyA4Ny4wMDA0IDYyLjU0MzhMODcuMDAzNCA2MC4zNzEzQzg2Ljk5MDkgNjAuMzcxMyA4Ni45Nzg0IDYwLjM3MTMgODYuOTY1OSA2MC4zNzEzVjYyLjU0MzdaTTExNS43MDggNjAuMzcxM0w4Ny4wMDE5IDYwLjM3MTNWNjIuNTQzOEwxMTUuNzA4IDYyLjU0MzhWNjAuMzcxM1pNMTE1Ljc1IDYwLjM3MTNMMTE1LjcwNyA2MC4zNzEzTDExNS43MDkgNjIuNTQzOEwxMTUuNzUxIDYyLjU0MzdMMTE1Ljc1IDYwLjM3MTNaTTEzNS4zMDIgNjAuMzcxM0wxMTUuNzUgNjAuMzcxM1Y2Mi41NDM3TDEzNS4zMDIgNjIuNTQzN1Y2MC4zNzEzWk0xNjEuOTE0IDg2Ljk4MzRDMTYxLjkxNCA3Mi4yODU5IDE1MCA2MC4zNzEzIDEzNS4zMDIgNjAuMzcxM1Y2Mi41NDM3QzE0OC44IDYyLjU0MzcgMTU5Ljc0MiA3My40ODU3IDE1OS43NDIgODYuOTgzNEgxNjEuOTE0Wk0xMzUuMzAyIDExMy41OTVDMTUwIDExMy41OTUgMTYxLjkxNCAxMDEuNjgxIDE2MS45MTQgODYuOTgzNEgxNTkuNzQyQzE1OS43NDIgMTAwLjQ4MSAxNDguOCAxMTEuNDIzIDEzNS4zMDIgMTExLjQyM1YxMTMuNTk1Wk0xMzQuNzU5IDExMy41OTVMMTM1LjMwMiAxMTMuNTk1TDEzNS4zMDIgMTExLjQyM0wxMzQuNzU5IDExMS40MjNMMTM0Ljc1OSAxMTMuNTk1Wk02My42MTI1IDExMy41OTVMMTM0Ljc1OSAxMTMuNTk1VjExMS40MjNMNjMuNjEyNSAxMTEuNDIzVjExMy41OTVaTTYyLjUyNjMgMTEyLjQ4N1YxMTIuNTA5SDY0LjY5ODdWMTEyLjQ4N0g2Mi41MjYzWk02My42NTc5IDExMS40MDFDNTAuNjQzNSAxMTAuODU2IDQwLjI1OTEgMTAwLjEzMiA0MC4yNTkxIDg2Ljk4MzRIMzguMDg2NkMzOC4wODY2IDEwMS4zMDIgNDkuMzk0MSAxMTIuOTc4IDYzLjU2NzEgMTEzLjU3Mkw2My42NTc5IDExMS40MDFaTTQwLjI1OTEgODYuOTgzNEM0MC4yNTkxIDczLjgzNDQgNTAuNjQzNSA2My4xMTAzIDYzLjY1NzkgNjIuNTY1NUw2My41NjcxIDYwLjM5NUM0OS4zOTQxIDYwLjk4ODMgMzguMDg2NiA3Mi42NjUxIDM4LjA4NjYgODYuOTgzNEg0MC4yNTkxWiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTUtaW5zaWRlLTFfMzQ2MV85NDc3NSkiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzM0NjFfOTQ3NzUpIj4KPHJlY3QgeD0iMzkuMTcyOSIgeT0iOTEuMzI4MSIgd2lkdGg9IjEyMS42NTUiIGhlaWdodD0iNTEuMDUxNyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzI5IiB5PSI5MS4zMjgxIiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSIzOS4xNzI5IiB5PSI5MS4zMjgxIiB3aWR0aD0iMTIxLjY1NSIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPG1hc2sgaWQ9InBhdGgtOS1pbnNpZGUtMl8zNDYxXzk0Nzc1IiBmaWxsPSJ3aGl0ZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjMuNjEyMSA1OS4zMDZDNDguODE4MiA1OS44NzY1IDM3IDcyLjA0OTggMzcgODYuOTgzNEMzNyAxMDEuOTE3IDQ4LjgxODIgMTE0LjA5IDYzLjYxMjEgMTE0LjY2MUw2My42MTIxIDExNC42ODJMNjQuNjc3MSAxMTQuNjgyQzY0LjY4NDEgMTE0LjY4MiA2NC42OTEyIDExNC42ODIgNjQuNjk4MyAxMTQuNjgyTDg2Ljk2NTUgMTE0LjY4MkM4Ni45NzM3IDExNC42ODIgODYuOTgxOCAxMTQuNjgyIDg2Ljk5IDExNC42ODJMMTEzLjU2MiAxMTQuNjgyTDExMy41NzggMTE0LjY4MkwxMzUuMzAyIDExNC42ODJDMTUwLjU5OSAxMTQuNjgyIDE2MyAxMDIuMjgxIDE2MyA4Ni45ODM0QzE2MyA3MS42ODYgMTUwLjU5OSA1OS4yODUxIDEzNS4zMDIgNTkuMjg1MUwxMzQuNzU5IDU5LjI4NTFMMTEzLjU3OCA1OS4yODUxTDY0LjY5ODMgNTkuMjg1MUw2My42MTIxIDU5LjI4NTFMNjMuNjEyMSA1OS4zMDZaIi8+CjwvbWFzaz4KPHBhdGggZD0iTTYzLjYxMjEgNTkuMzA2TDYzLjY1MzkgNjAuMzkxNEw2NC42OTgzIDYwLjM1MTFMNjQuNjk4MyA1OS4zMDZMNjMuNjEyMSA1OS4zMDZaTTYzLjYxMjEgMTE0LjY2MUw2NC42OTgzIDExNC42NjFMNjQuNjk4MyAxMTMuNjE2TDYzLjY1MzkgMTEzLjU3NUw2My42MTIxIDExNC42NjFaTTYzLjYxMjEgMTE0LjY4Mkw2Mi41MjU5IDExNC42ODJMNjIuNTI1OSAxMTUuNzY4TDYzLjYxMjEgMTE1Ljc2OEw2My42MTIxIDExNC42ODJaTTY0LjY3NzEgMTE0LjY4Mkw2NC42Nzc5IDExMy41OTVMNjQuNjc3MSAxMTMuNTk1TDY0LjY3NzEgMTE0LjY4MlpNNjQuNjk4MyAxMTQuNjgyTDY0LjY5ODMgMTEzLjU5NUw2NC42OTgzIDExNC42ODJaTTg2Ljk2NTUgMTE0LjY4Mkw4Ni45NjU1IDExNS43NjhMODYuOTY1NSAxMTQuNjgyWk04Ni45OSAxMTQuNjgyTDg2Ljk5IDExMy41OTVMODYuOTg5IDExMy41OTVMODYuOTkgMTE0LjY4MlpNMTEzLjU2MiAxMTQuNjgyTDExMy41NjMgMTEzLjU5NUwxMTMuNTYyIDExMy41OTVMMTEzLjU2MiAxMTQuNjgyWk0xMTMuNTc4IDExNC42ODJMMTEzLjU3NyAxMTUuNzY4TDExMy41NzggMTE1Ljc2OEwxMTMuNTc4IDExNC42ODJaTTEzNS4zMDIgMTE0LjY4MkwxMzUuMzAyIDExNS43NjhMMTM1LjMwMiAxMTQuNjgyWk0xMzUuMzAyIDU5LjI4NTFMMTM1LjMwMiA2MC4zNzEzTDEzNS4zMDIgNjAuMzcxM0wxMzUuMzAyIDU5LjI4NTFaTTEzNC43NTkgNTkuMjg1MUwxMzQuNzU5IDU4LjE5ODlMMTM0Ljc1OSA1OC4xOTg5TDEzNC43NTkgNTkuMjg1MVpNMTEzLjU3OCA1OS4yODUxTDExMy41NzggNTguMTk4OUwxMTMuNTc4IDU5LjI4NTFaTTY0LjY5ODMgNTkuMjg1MUw2NC42OTgzIDYwLjM3MTNMNjQuNjk4MyA2MC4zNzEzTDY0LjY5ODMgNTkuMjg1MVpNNjMuNjEyMSA1OS4yODUxTDYzLjYxMjEgNTguMTk4OUw2Mi41MjU5IDU4LjE5ODlMNjIuNTI1OSA1OS4yODUxTDYzLjYxMjEgNTkuMjg1MVpNMzguMDg2MiA4Ni45ODM0QzM4LjA4NjIgNzIuNjM1NyA0OS40NDEgNjAuOTM5NSA2My42NTM5IDYwLjM5MTRMNjMuNTcwMiA1OC4yMjA2QzQ4LjE5NTQgNTguODEzNSAzNS45MTM4IDcxLjQ2MzkgMzUuOTEzOCA4Ni45ODM0TDM4LjA4NjIgODYuOTgzNFpNNjMuNjUzOSAxMTMuNTc1QzQ5LjQ0MSAxMTMuMDI3IDM4LjA4NjIgMTAxLjMzMSAzOC4wODYyIDg2Ljk4MzRMMzUuOTEzOCA4Ni45ODM0QzM1LjkxMzggMTAyLjUwMyA0OC4xOTU0IDExNS4xNTMgNjMuNTcwMiAxMTUuNzQ2TDYzLjY1MzkgMTEzLjU3NVpNNjIuNTI1OSAxMTQuNjYxTDYyLjUyNTkgMTE0LjY4Mkw2NC42OTgzIDExNC42ODJMNjQuNjk4MyAxMTQuNjYxTDYyLjUyNTkgMTE0LjY2MVpNNjMuNjEyMSAxMTUuNzY4TDY0LjY3NzEgMTE1Ljc2OEw2NC42NzcxIDExMy41OTVMNjMuNjEyMSAxMTMuNTk1TDYzLjYxMjEgMTE1Ljc2OFpNNjQuNjk4MyAxMTMuNTk1QzY0LjY5MTUgMTEzLjU5NSA2NC42ODQ3IDExMy41OTUgNjQuNjc3OSAxMTMuNTk1TDY0LjY3NjMgMTE1Ljc2OEM2NC42ODM2IDExNS43NjggNjQuNjkwOSAxMTUuNzY4IDY0LjY5ODMgMTE1Ljc2OEw2NC42OTgzIDExMy41OTVaTTg2Ljk2NTUgMTEzLjU5NUw2NC42OTgzIDExMy41OTVMNjQuNjk4MyAxMTUuNzY4TDg2Ljk2NTUgMTE1Ljc2OEw4Ni45NjU1IDExMy41OTVaTTg2Ljk4OSAxMTMuNTk1Qzg2Ljk4MTIgMTEzLjU5NSA4Ni45NzM0IDExMy41OTUgODYuOTY1NSAxMTMuNTk1TDg2Ljk2NTUgMTE1Ljc2OEM4Ni45NzQgMTE1Ljc2OCA4Ni45ODI0IDExNS43NjggODYuOTkwOSAxMTUuNzY4TDg2Ljk4OSAxMTMuNTk1Wk04Ni45OSAxMTUuNzY4TDExMy41NjIgMTE1Ljc2OEwxMTMuNTYyIDExMy41OTVMODYuOTkgMTEzLjU5NUw4Ni45OSAxMTUuNzY4Wk0xMTMuNTYyIDExNS43NjhMMTEzLjU3NyAxMTUuNzY4TDExMy41NzggMTEzLjU5NUwxMTMuNTYzIDExMy41OTVMMTEzLjU2MiAxMTUuNzY4Wk0xMTMuNTc4IDExNS43NjhMMTM1LjMwMiAxMTUuNzY4TDEzNS4zMDIgMTEzLjU5NUwxMTMuNTc4IDExMy41OTVMMTEzLjU3OCAxMTUuNzY4Wk0xMzUuMzAyIDExNS43NjhDMTUxLjE5OSAxMTUuNzY4IDE2NC4wODYgMTAyLjg4MSAxNjQuMDg2IDg2Ljk4MzRMMTYxLjkxNCA4Ni45ODM0QzE2MS45MTQgMTAxLjY4MSAxNDkuOTk5IDExMy41OTUgMTM1LjMwMiAxMTMuNTk1TDEzNS4zMDIgMTE1Ljc2OFpNMTY0LjA4NiA4Ni45ODM0QzE2NC4wODYgNzEuMDg2MSAxNTEuMTk5IDU4LjE5ODkgMTM1LjMwMiA1OC4xOTg5TDEzNS4zMDIgNjAuMzcxM0MxNDkuOTk5IDYwLjM3MTMgMTYxLjkxNCA3Mi4yODU5IDE2MS45MTQgODYuOTgzNEwxNjQuMDg2IDg2Ljk4MzRaTTEzNS4zMDIgNTguMTk4OUwxMzQuNzU5IDU4LjE5ODlMMTM0Ljc1OSA2MC4zNzEzTDEzNS4zMDIgNjAuMzcxM0wxMzUuMzAyIDU4LjE5ODlaTTEzNC43NTkgNTguMTk4OUwxMTMuNTc4IDU4LjE5ODlMMTEzLjU3OCA2MC4zNzEzTDEzNC43NTkgNjAuMzcxM0wxMzQuNzU5IDU4LjE5ODlaTTExMy41NzggNTguMTk4OUw2NC42OTgzIDU4LjE5ODlMNjQuNjk4MyA2MC4zNzEzTDExMy41NzggNjAuMzcxM0wxMTMuNTc4IDU4LjE5ODlaTTY0LjY5ODMgNTguMTk4OUw2My42MTIxIDU4LjE5ODlMNjMuNjEyMSA2MC4zNzEzTDY0LjY5ODMgNjAuMzcxM0w2NC42OTgzIDU4LjE5ODlaTTYyLjUyNTkgNTkuMjg1MUw2Mi41MjU5IDU5LjMwNkw2NC42OTgzIDU5LjMwNkw2NC42OTgzIDU5LjI4NTFMNjIuNTI1OSA1OS4yODUxWiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTktaW5zaWRlLTJfMzQ2MV85NDc3NSkiLz4KPHJlY3QgeD0iMzcuNTQzMSIgeT0iNTkuODI4MyIgd2lkdGg9Ijc2LjU3NzYiIGhlaWdodD0iNTQuMzEwMyIgcng9IjI3LjE1NTIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJwYXRoLTEyLWluc2lkZS0zXzM0NjFfOTQ3NzUiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMjcuNjk4IDUwLjU5NTVIMTExLjk0OFY2MC4zNzEzQzExMS45NDggNjEuMjcxMiAxMTUuNDc0IDYyLjAwMDYgMTE5LjgyMyA2Mi4wMDA2QzEyNC4xNzIgNjIuMDAwNiAxMjcuNjk4IDYxLjI3MTIgMTI3LjY5OCA2MC4zNzEzVjUwLjU5NTVaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMjcuNjk4IDUwLjU5NTVIMTExLjk0OFY2MC4zNzEzQzExMS45NDggNjEuMjcxMiAxMTUuNDc0IDYyLjAwMDYgMTE5LjgyMyA2Mi4wMDA2QzEyNC4xNzIgNjIuMDAwNiAxMjcuNjk4IDYxLjI3MTIgMTI3LjY5OCA2MC4zNzEzVjUwLjU5NTVaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTExLjk0OCA1MC41OTU1VjQ5LjUwOTNIMTEwLjg2MlY1MC41OTU1SDExMS45NDhaTTEyNy42OTggNTAuNTk1NUgxMjguNzg0VjQ5LjUwOTNIMTI3LjY5OFY1MC41OTU1Wk0xMTEuOTQ4IDUxLjY4MTdIMTI3LjY5OFY0OS41MDkzSDExMS45NDhWNTEuNjgxN1pNMTEzLjAzNCA2MC4zNzEzVjUwLjU5NTVIMTEwLjg2MlY2MC4zNzEzSDExMy4wMzRaTTExOS44MjMgNjAuOTE0NEMxMTcuNyA2MC45MTQ0IDExNS44MDggNjAuNzM1NiAxMTQuNDc1IDYwLjQ1OTdDMTEzLjc5OSA2MC4zMiAxMTMuMzI0IDYwLjE2NjcgMTEzLjA0NCA2MC4wMjk4QzExMi45MDIgNTkuOTYwMyAxMTIuODY2IDU5LjkyMTcgMTEyLjg4MSA1OS45MzU5QzExMi44OTggNTkuOTUzNCAxMTMuMDM0IDYwLjEwMjQgMTEzLjAzNCA2MC4zNzEzSDExMC44NjJDMTEwLjg2MiA2MC44NjUzIDExMS4xMDkgNjEuMjMzOSAxMTEuMzM2IDYxLjQ2MzVDMTExLjU2IDYxLjY4OTggMTExLjgzMyA2MS44NTU5IDExMi4wOSA2MS45ODEyQzExMi42MDcgNjIuMjM0MiAxMTMuMjg1IDYyLjQzMiAxMTQuMDM1IDYyLjU4NzFDMTE1LjU1MiA2Mi45MDEgMTE3LjU5OCA2My4wODY4IDExOS44MjMgNjMuMDg2OFY2MC45MTQ0Wk0xMjYuNjEyIDYwLjM3MTNDMTI2LjYxMiA2MC4xMDI0IDEyNi43NDkgNTkuOTUzNCAxMjYuNzY2IDU5LjkzNTlDMTI2Ljc4IDU5LjkyMTcgMTI2Ljc0NCA1OS45NjAzIDEyNi42MDIgNjAuMDI5OEMxMjYuMzIyIDYwLjE2NjcgMTI1Ljg0NyA2MC4zMiAxMjUuMTcyIDYwLjQ1OTdDMTIzLjgzOCA2MC43MzU2IDEyMS45NDcgNjAuOTE0NCAxMTkuODIzIDYwLjkxNDRWNjMuMDg2OEMxMjIuMDQ5IDYzLjA4NjggMTI0LjA5NSA2Mi45MDEgMTI1LjYxMiA2Mi41ODcxQzEyNi4zNjEgNjIuNDMyIDEyNy4wNCA2Mi4yMzQyIDEyNy41NTcgNjEuOTgxMkMxMjcuODEzIDYxLjg1NTkgMTI4LjA4NyA2MS42ODk4IDEyOC4zMTEgNjEuNDYzNUMxMjguNTM4IDYxLjIzMzkgMTI4Ljc4NCA2MC44NjUzIDEyOC43ODQgNjAuMzcxM0gxMjYuNjEyWk0xMjYuNjEyIDUwLjU5NTVWNjAuMzcxM0gxMjguNzg0VjUwLjU5NTVIMTI2LjYxMloiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC0xMi1pbnNpZGUtM18zNDYxXzk0Nzc1KSIvPgo8cGF0aCBkPSJNMTI3LjM1NCA1MC45OTgyQzEyNy40NjggNTEuMDUwNiAxMjcuNTUyIDUxLjA5ODMgMTI3LjYxMiA1MS4xMzg2QzEyNy41NTIgNTEuMTc4OSAxMjcuNDY4IDUxLjIyNjYgMTI3LjM1NCA1MS4yNzg5QzEyNi45ODUgNTEuNDQ3NyAxMjYuNDE3IDUxLjYxMzQgMTI1LjY3MyA1MS43NTc1QzEyNC4xOTMgNTIuMDQ0IDEyMi4xMjQgNTIuMjI0OCAxMTkuODIzIDUyLjIyNDhDMTE3LjUyMyA1Mi4yMjQ4IDExNS40NTQgNTIuMDQ0IDExMy45NzQgNTEuNzU3NUMxMTMuMjMgNTEuNjEzNCAxMTIuNjYyIDUxLjQ0NzcgMTEyLjI5MyA1MS4yNzg5QzExMi4xNzggNTEuMjI2NiAxMTIuMDk0IDUxLjE3ODkgMTEyLjAzNSA1MS4xMzg2QzExMi4wOTQgNTEuMDk4MyAxMTIuMTc4IDUxLjA1MDYgMTEyLjI5MyA1MC45OTgyQzExMi42NjIgNTAuODI5NSAxMTMuMjMgNTAuNjYzOCAxMTMuOTc0IDUwLjUxOTdDMTE1LjQ1NCA1MC4yMzMyIDExNy41MjMgNTAuMDUyNCAxMTkuODIzIDUwLjA1MjRDMTIyLjEyNCA1MC4wNTI0IDEyNC4xOTMgNTAuMjMzMiAxMjUuNjczIDUwLjUxOTdDMTI2LjQxNyA1MC42NjM4IDEyNi45ODUgNTAuODI5NSAxMjcuMzU0IDUwLjk5ODJaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEyNy4zNTQgNDkuMzY4OEMxMjcuNDY4IDQ5LjQyMTIgMTI3LjU1MiA0OS40Njg5IDEyNy42MTIgNDkuNTA5MkMxMjcuNTUyIDQ5LjU0OTUgMTI3LjQ2OCA0OS41OTcyIDEyNy4zNTQgNDkuNjQ5NUMxMjYuOTg1IDQ5LjgxODMgMTI2LjQxNyA0OS45ODQgMTI1LjY3MyA1MC4xMjgxQzEyNC4xOTMgNTAuNDE0NiAxMjIuMTI0IDUwLjU5NTQgMTE5LjgyMyA1MC41OTU0QzExNy41MjMgNTAuNTk1NCAxMTUuNDU0IDUwLjQxNDYgMTEzLjk3NCA1MC4xMjgxQzExMy4yMyA0OS45ODQgMTEyLjY2MiA0OS44MTgzIDExMi4yOTMgNDkuNjQ5NUMxMTIuMTc4IDQ5LjU5NzIgMTEyLjA5NCA0OS41NDk1IDExMi4wMzUgNDkuNTA5MkMxMTIuMDk0IDQ5LjQ2ODkgMTEyLjE3OCA0OS40MjEyIDExMi4yOTMgNDkuMzY4OEMxMTIuNjYyIDQ5LjIwMDEgMTEzLjIzIDQ5LjAzNDQgMTEzLjk3NCA0OC44OTAzQzExNS40NTQgNDguNjAzOCAxMTcuNTIzIDQ4LjQyMyAxMTkuODIzIDQ4LjQyM0MxMjIuMTI0IDQ4LjQyMyAxMjQuMTkzIDQ4LjYwMzggMTI1LjY3MyA0OC44OTAzQzEyNi40MTcgNDkuMDM0NCAxMjYuOTg1IDQ5LjIwMDEgMTI3LjM1NCA0OS4zNjg4WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjwvZz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8zNDYxXzk0Nzc1KSI+CjxyZWN0IHg9IjU2LjgyMTMiIHk9Ijc1LjU2MjciIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik03MC4xOTgyIDg5LjUxMjhWOTAuODc4Mkg2Mi43MzEyTDYyLjY3NDMgODkuODQ3TDY3LjE0MDMgODIuODQ5NEg2OC41MTI4TDY3LjAyNjUgODUuMzk1M0w2NC40NTkzIDg5LjUxMjhINzAuMTk4MlpNNjguOTAzOSA4Mi44NDk0VjkzLjIwMzZINjcuMTkwMVY4Mi44NDk0SDY4LjkwMzlaTTc4LjA5MTggODcuMTU4OVY4OC44NTE0Qzc4LjA5MTggODkuNjYyMSA3OC4wMTEyIDkwLjM1NDMgNzcuODUgOTAuOTI4Qzc3LjY5MzYgOTEuNDk2OSA3Ny40NjYgOTEuOTU5MSA3Ny4xNjczIDkyLjMxNDdDNzYuODY4NiA5Mi42NzAzIDc2LjUxMDcgOTIuOTMxIDc2LjA5MzUgOTMuMDk2OUM3NS42ODEgOTMuMjYyOSA3NS4yMTg4IDkzLjM0NTggNzQuNzA2OCA5My4zNDU4Qzc0LjI5OTEgOTMuMzQ1OCA3My45MTk4IDkzLjI5MzcgNzMuNTY5IDkzLjE4OTRDNzMuMjIyOSA5My4wODUxIDcyLjkxIDkyLjkyMTUgNzIuNjMwMyA5Mi42OTg3QzcyLjM1MDUgOTIuNDc1OSA3Mi4xMTExIDkyLjE4OTEgNzEuOTEyIDkxLjgzODJDNzEuNzE3NiA5MS40ODI3IDcxLjU2NTkgOTEuMDU4MyA3MS40NTY5IDkwLjU2NTNDNzEuMzUyNiA5MC4wNzIyIDcxLjMwMDQgODkuNTAxIDcxLjMwMDQgODguODUxNFY4Ny4xNTg5QzcxLjMwMDQgODYuMzQzNSA3MS4zODEgODUuNjU2MSA3MS41NDIyIDg1LjA5NjZDNzEuNzAzNCA4NC41MzI1IDcxLjkzMzMgODQuMDc1IDcyLjIzMiA4My43MjQxQzcyLjUzMDcgODMuMzY4NiA3Mi44ODYzIDgzLjExMDIgNzMuMjk4NyA4Mi45NDlDNzMuNzE1OSA4Mi43ODc4IDc0LjE4MDUgODIuNzA3MiA3NC42OTI2IDgyLjcwNzJDNzUuMTA1IDgyLjcwNzIgNzUuNDg0MyA4Mi43NTk0IDc1LjgzMDQgODIuODYzN0M3Ni4xODEyIDgyLjk2MzIgNzYuNDk0MSA4My4xMjIgNzYuNzY5MSA4My4zNDAxQzc3LjA0ODggODMuNTU4MiA3Ny4yODU4IDgzLjg0MjcgNzcuNDgwMiA4NC4xOTM1Qzc3LjY3OTMgODQuNTM5NiA3Ny44MzEgODQuOTU5MiA3Ny45MzUzIDg1LjQ1MjJDNzguMDM5NiA4NS45NDA1IDc4LjA5MTggODYuNTA5NCA3OC4wOTE4IDg3LjE1ODlaTTc2LjM3OCA4OS4wOTMyVjg2LjkwMjlDNzYuMzc4IDg2LjQ5MDUgNzYuMzU0MiA4Ni4xMjc4IDc2LjMwNjggODUuODE0OUM3Ni4yNTk0IDg1LjQ5NzIgNzYuMTg4MyA4NS4yMjk0IDc2LjA5MzUgODUuMDExM0M3Ni4wMDM0IDg0Ljc4ODUgNzUuODg5NiA4NC42MDgzIDc1Ljc1MjIgODQuNDcwOEM3NS42MTQ3IDg0LjMyODYgNzUuNDU4MiA4NC4yMjY3IDc1LjI4MjggODQuMTY1MUM3NS4xMDc0IDg0LjA5ODcgNzQuOTEwNiA4NC4wNjU1IDc0LjY5MjYgODQuMDY1NUM3NC40MjcxIDg0LjA2NTUgNzQuMTkgODQuMTE3NiA3My45ODE0IDg0LjIyMTlDNzMuNzcyOCA4NC4zMjE1IDczLjU5NzQgODQuNDgyNyA3My40NTUyIDg0LjcwNTVDNzMuMzEzIDg0LjkyODMgNzMuMjAzOSA4NS4yMjIzIDczLjEyODEgODUuNTg3M0M3My4wNTY5IDg1Ljk0NzYgNzMuMDIxNCA4Ni4zODYyIDczLjAyMTQgODYuOTAyOVY4OS4wOTMyQzczLjAyMTQgODkuNTEwNCA3My4wNDUxIDg5Ljg3NzkgNzMuMDkyNSA5MC4xOTU1QzczLjEzOTkgOTAuNTEzMSA3My4yMTEgOTAuNzg1NyA3My4zMDU4IDkxLjAxMzNDNzMuNDAwNyA5MS4yMzYxIDczLjUxNDQgOTEuNDIxIDczLjY0NzIgOTEuNTY4QzczLjc4NDcgOTEuNzEwMiA3My45NDExIDkxLjgxNDUgNzQuMTE2NSA5MS44ODA5Qzc0LjI5NjcgOTEuOTQ3MyA3NC40OTM0IDkxLjk4MDUgNzQuNzA2OCA5MS45ODA1Qzc0Ljk3NyA5MS45ODA1IDc1LjIxNjQgOTEuOTI4MyA3NS40MjUgOTEuODI0Qzc1LjYzMzYgOTEuNzE5NyA3NS44MDkgOTEuNTUzOCA3NS45NTEzIDkxLjMyNjJDNzYuMDkzNSA5MS4wOTM5IDc2LjIwMDIgOTAuNzkyOSA3Ni4yNzEzIDkwLjQyMzFDNzYuMzQyNCA5MC4wNTMzIDc2LjM3OCA4OS42MSA3Ni4zNzggODkuMDkzMloiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPHBhdGggZD0iTTgzLjM2ODMgODguMzE5MlY4Ny45NzdDODMuMzY4MyA4Ny43MzExIDgzLjQyMTYgODcuNTA3MyA4My41MjgzIDg3LjMwNTlDODMuNjM1IDg3LjEwNDQgODMuNzkwNSA4Ni45NDI5IDgzLjk5NSA4Ni44MjE0Qzg0LjE5OTQgODYuNjk5OSA4NC40NDU0IDg2LjYzOTIgODQuNzMyOCA4Ni42MzkyQzg1LjAyOTEgODYuNjM5MiA4NS4yNzggODYuNjk5OSA4NS40Nzk1IDg2LjgyMTRDODUuNjgzOSA4Ni45NDI5IDg1LjgzOTUgODcuMTA0NCA4NS45NDYyIDg3LjMwNTlDODYuMDUyOCA4Ny41MDczIDg2LjEwNjIgODcuNzMxMSA4Ni4xMDYyIDg3Ljk3N1Y4OC4zMTkyQzg2LjEwNjIgODguNTU5MiA4Ni4wNTI4IDg4Ljc4IDg1Ljk0NjIgODguOTgxNUM4NS44NDI1IDg5LjE4MyA4NS42ODg0IDg5LjM0NDUgODUuNDgzOSA4OS40NjU5Qzg1LjI4MjQgODkuNTg3NCA4NS4wMzUgODkuNjQ4MiA4NC43NDE3IDg5LjY0ODJDODQuNDUxMyA4OS42NDgyIDg0LjIwMjQgODkuNTg3NCA4My45OTUgODkuNDY1OUM4My43OTA1IDg5LjM0NDUgODMuNjM1IDg5LjE4MyA4My41MjgzIDg4Ljk4MTVDODMuNDIxNiA4OC43OCA4My4zNjgzIDg4LjU1OTIgODMuMzY4MyA4OC4zMTkyWk04NC4xMTA1IDg3Ljk3N1Y4OC4zMTkyQzg0LjExMDUgODguNDM3OCA4NC4xMzI4IDg4LjU1MDMgODQuMTc3MiA4OC42NTdDODQuMjI0NiA4OC43NjM3IDg0LjI5NTcgODguODQ5NiA4NC4zOTA1IDg4LjkxNDhDODQuNDg1NCA4OC45OCA4NC42MDI0IDg5LjAxMjYgODQuNzQxNyA4OS4wMTI2Qzg0Ljg4MzkgODkuMDEyNiA4NC45OTk1IDg4Ljk4IDg1LjA4ODQgODguOTE0OEM4NS4xODAyIDg4Ljg0OTYgODUuMjQ4NCA4OC43NjM3IDg1LjI5MjggODguNjU3Qzg1LjMzNzMgODguNTUwMyA4NS4zNTk1IDg4LjQzNzggODUuMzU5NSA4OC4zMTkyVjg3Ljk3N0M4NS4zNTk1IDg3Ljg1NTUgODUuMzM1OCA4Ny43NDE0IDg1LjI4ODQgODcuNjM0OEM4NS4yNDM5IDg3LjUyNTEgODUuMTc1OCA4Ny40Mzc3IDg1LjA4MzkgODcuMzcyNUM4NC45OTIxIDg3LjMwNzMgODQuODc1IDg3LjI3NDcgODQuNzMyOCA4Ny4yNzQ3Qzg0LjU5NjUgODcuMjc0NyA4NC40ODA5IDg3LjMwNzMgODQuMzg2MSA4Ny4zNzI1Qzg0LjI5NDIgODcuNDM3NyA4NC4yMjQ2IDg3LjUyNTEgODQuMTc3MiA4Ny42MzQ4Qzg0LjEzMjggODcuNzQxNCA4NC4xMTA1IDg3Ljg1NTUgODQuMTEwNSA4Ny45NzdaTTg2LjQ4ODQgOTEuOTYzOFY5MS42MTcxQzg2LjQ4ODQgOTEuMzc0MiA4Ni41NDE3IDkxLjE1MTkgODYuNjQ4NCA5MC45NTA0Qzg2Ljc1OCA5MC43NDkgODYuOTE1MSA5MC41ODc1IDg3LjExOTUgOTAuNDY2Qzg3LjMyNCA5MC4zNDQ1IDg3LjU2OTkgOTAuMjgzNyA4Ny44NTczIDkwLjI4MzdDODguMTUzNyA5MC4yODM3IDg4LjQwMjYgOTAuMzQ0NSA4OC42MDQgOTAuNDY2Qzg4LjgwODUgOTAuNTg3NSA4OC45NjI2IDkwLjc0OSA4OS4wNjYzIDkwLjk1MDRDODkuMTczIDkxLjE1MTkgODkuMjI2MyA5MS4zNzQyIDg5LjIyNjMgOTEuNjE3MVY5MS45NjM4Qzg5LjIyNjMgOTIuMjA2OCA4OS4xNzMgOTIuNDI5IDg5LjA2NjMgOTIuNjMwNUM4OC45NjI2IDkyLjgzMiA4OC44MSA5Mi45OTM1IDg4LjYwODUgOTMuMTE1Qzg4LjQwNyA5My4yMzY1IDg4LjE2MTEgOTMuMjk3MiA4Ny44NzA3IDkzLjI5NzJDODcuNTc3MyA5My4yOTcyIDg3LjMyNyA5My4yMzY1IDg3LjExOTUgOTMuMTE1Qzg2LjkxNTEgOTIuOTkzNSA4Ni43NTggOTIuODMyIDg2LjY0ODQgOTIuNjMwNUM4Ni41NDE3IDkyLjQyOSA4Ni40ODg0IDkyLjIwNjggODYuNDg4NCA5MS45NjM4Wk04Ny4yMzUxIDkxLjYxNzFWOTEuOTYzOEM4Ny4yMzUxIDkyLjA4MjMgODcuMjU4OCA5Mi4xOTQ5IDg3LjMwNjIgOTIuMzAxNkM4Ny4zNTY2IDkyLjQwODMgODcuNDI5MiA5Mi40OTU3IDg3LjUyNCA5Mi41NjM4Qzg3LjYxODggOTIuNjI5IDg3LjczMjkgOTIuNjYxNiA4Ny44NjYyIDkyLjY2MTZDODguMDE3NCA5Mi42NjE2IDg4LjEzODggOTIuNjI5IDg4LjIzMDcgOTIuNTYzOEM4OC4zMjI1IDkyLjQ5NTcgODguMzg3NyA5Mi40MDk4IDg4LjQyNjMgOTIuMzA2Qzg4LjQ2NzcgOTIuMTk5NCA4OC40ODg1IDkyLjA4NTMgODguNDg4NSA5MS45NjM4VjkxLjYxNzFDODguNDg4NSA5MS40OTU2IDg4LjQ2NDggOTEuMzgxNiA4OC40MTc0IDkxLjI3NDlDODguMzcyOSA5MS4xNjgyIDg4LjMwMzMgOTEuMDgyMyA4OC4yMDg1IDkxLjAxNzFDODguMTE2NiA5MC45NTE5IDg3Ljk5OTYgOTAuOTE5MyA4Ny44NTczIDkwLjkxOTNDODcuNzE4MSA5MC45MTkzIDg3LjYwMjUgOTAuOTUxOSA4Ny41MTA3IDkxLjAxNzFDODcuNDE4OCA5MS4wODIzIDg3LjM0OTIgOTEuMTY4MiA4Ny4zMDE4IDkxLjI3NDlDODcuMjU3MyA5MS4zODE2IDg3LjIzNTEgOTEuNDk1NiA4Ny4yMzUxIDkxLjYxNzFaTTg4LjEyNCA4Ny42NTdMODQuOTYzOSA5Mi43MTVMODQuNDE3MiA5Mi4zOTk0TDg3LjU3NzMgODcuMzQxNEw4OC4xMjQgODcuNjU3WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8L2c+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iMTk5IiBoZWlnaHQ9IjE1OSIgcng9IjMuNSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLW9wYWNpdHk9IjAuMTIiLz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfYl8zNDYxXzk0Nzc1IiB4PSI1My41NzI2IiB5PSI3Mi4zMTQxIiB3aWR0aD0iNDUuMDYxOCIgaGVpZ2h0PSIyOS45NTg4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjEuNjI0MzQiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfOTQ3NzUiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfOTQ3NzUiIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMzQ2MV85NDc3NSI+CjxyZWN0IHdpZHRoPSIxMjYiIGhlaWdodD0iMTA4LjYyMSIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM3IDI3LjU1MjIpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==", - "description": "Widget indicates the level of liquid in Horizontal Oval tank.", - "descriptor": { - "type": "latest", - "sizeX": 7.5, - "sizeY": 3, - "resources": [], - "templateHtml": "\n", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", - "settingsSchema": "{}", - "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-liquid-level-card-widget-settings", - "hasBasicMode": true, - "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" - }, - "externalId": null, - "tags": null -} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/rectangle.json b/application/src/main/data/json/system/widget_types/rectangle.json new file mode 100644 index 0000000000..4cd788a408 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/rectangle.json @@ -0,0 +1,24 @@ +{ + "fqn": "rectangle_tank", + "name": "Rectangle", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Rectangle tank.", + "descriptor": { + "type": "latest", + "sizeX": 4, + "sizeY": 4, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"advanced\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 deleted file mode 100644 index e858159358..0000000000 --- a/application/src/main/data/json/system/widget_types/rectangle_tank.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "fqn": "rectangle_tank", - "name": "Rectangle tank", - "deprecated": false, - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cGF0aCBvcGFjaXR5PSIwLjEiIGQ9Ik00Mi40MzA3IDYyLjUwOTFDNDIuNDMwNyA2MC4xMDk2IDQ0LjM3NTkgNTguMTY0MyA0Ni43NzU1IDU4LjE2NDNINTEuMTIwM0M1My41MTk5IDU4LjE2NDMgNTUuNDY1MSA2MC4xMDk2IDU1LjQ2NTEgNjIuNTA5MVYxMjAuMDc4QzU1LjQ2NTEgMTIyLjQ3OCA1My41MTk5IDEyNC40MjMgNTEuMTIwMyAxMjQuNDIzSDQ2Ljc3NTVDNDQuMzc1OSAxMjQuNDIzIDQyLjQzMDcgMTIyLjQ3OCA0Mi40MzA3IDEyMC4wNzhWNjIuNTA5MVoiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJtYXNrMF8zNDYxXzI5MTM1IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI0NCIgeT0iNTkiIHdpZHRoPSIxMTIiIGhlaWdodD0iNjQiPgo8cGF0aCBkPSJNNDQuMDYwNSA2My4wNTI0QzQ0LjA2MDUgNjEuMjUyNyA0NS41MTk1IDU5Ljc5MzggNDcuMzE5MiA1OS43OTM4TDE1Mi4xMzggNTkuNzkzOEMxNTMuOTM4IDU5Ljc5MzggMTU1LjM5NyA2MS4yNTI3IDE1NS4zOTcgNjMuMDUyNFYxMTkuNTM1QzE1NS4zOTcgMTIxLjMzNSAxNTMuOTM4IDEyMi43OTQgMTUyLjEzOCAxMjIuNzk0TDQ3LjMxOTIgMTIyLjc5NEM0NS41MTk1IDEyMi43OTQgNDQuMDYwNSAxMjEuMzM1IDQ0LjA2MDUgMTE5LjUzNVY2My4wNTI0WiIgZmlsbD0iIzdBOEJGRiIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMzQ2MV8yOTEzNSkiPgo8cmVjdCB4PSI0NC4wNjA1IiB5PSI5NS42Mzg0IiB3aWR0aD0iMTExLjMzNiIgaGVpZ2h0PSI2MyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSI0NC4wNjA1IiB5PSI5NS42Mzg0IiB3aWR0aD0iMTExLjMzNiIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0iIzdBOEJGRiIvPgo8cmVjdCB4PSI0NC4wNjA1IiB5PSI5NS42Mzg0IiB3aWR0aD0iMTExLjMzNiIgaGVpZ2h0PSIwLjU0MzEwMyIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvZz4KPHJlY3QgeD0iNDIuNDMwNyIgeT0iNTguMTY0MyIgd2lkdGg9IjExNC41OTUiIGhlaWdodD0iNjYuMjU4NiIgcng9IjQuMzQ0ODMiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xNDMuOTkxIDYyLjUwOTFDMTQzLjk5MSA2MC4xMDk2IDE0NS45MzYgNTguMTY0MyAxNDguMzM2IDU4LjE2NDNIMTUyLjY4MUMxNTUuMDggNTguMTY0MyAxNTcuMDI2IDYwLjEwOTYgMTU3LjAyNiA2Mi41MDkxVjEyMC4wNzhDMTU3LjAyNiAxMjIuNDc4IDE1NS4wOCAxMjQuNDIzIDE1Mi42ODEgMTI0LjQyM0gxNDguMzM2QzE0NS45MzYgMTI0LjQyMyAxNDMuOTkxIDEyMi40NzggMTQzLjk5MSAxMjAuMDc4VjYyLjUwOTFaIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8bWFzayBpZD0icGF0aC0xMC1pbnNpZGUtMV8zNDYxXzI5MTM1IiBmaWxsPSJ3aGl0ZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA1Ljk3NCA0OC42MjEzSDkwLjIyMzZWNTguMzk3MkM5MC4yMjM2IDU5LjI5NyA5My43NDk0IDYwLjAyNjUgOTguMDk4NiA2MC4wMjY1QzEwMi40NDggNjAuMDI2NSAxMDUuOTc0IDU5LjI5NyAxMDUuOTc0IDU4LjM5NzJWNDguNjIxM1oiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwNS45NzQgNDguNjIxM0g5MC4yMjM2VjU4LjM5NzJDOTAuMjIzNiA1OS4yOTcgOTMuNzQ5NCA2MC4wMjY1IDk4LjA5ODYgNjAuMDI2NUMxMDIuNDQ4IDYwLjAyNjUgMTA1Ljk3NCA1OS4yOTcgMTA1Ljk3NCA1OC4zOTcyVjQ4LjYyMTNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTAuMjIzNiA0OC42MjEzVjQ3LjUzNTFIODkuMTM3NFY0OC42MjEzSDkwLjIyMzZaTTEwNS45NzQgNDguNjIxM0gxMDcuMDZWNDcuNTM1MUgxMDUuOTc0VjQ4LjYyMTNaTTkwLjIyMzYgNDkuNzA3NUgxMDUuOTc0VjQ3LjUzNTFIOTAuMjIzNlY0OS43MDc1Wk05MS4zMDk4IDU4LjM5NzJWNDguNjIxM0g4OS4xMzc0VjU4LjM5NzJIOTEuMzA5OFpNOTguMDk4NiA1OC45NDAzQzk1Ljk3NSA1OC45NDAzIDk0LjA4MzUgNTguNzYxNSA5Mi43NTAyIDU4LjQ4NTZDOTIuMDc0NyA1OC4zNDU4IDkxLjU5OTYgNTguMTkyNiA5MS4zMTk4IDU4LjA1NTdDOTEuMTc3NiA1Ny45ODYxIDkxLjE0MTkgNTcuOTQ3NiA5MS4xNTU5IDU3Ljk2MTdDOTEuMTczMiA1Ny45NzkyIDkxLjMwOTggNTguMTI4MiA5MS4zMDk4IDU4LjM5NzJIODkuMTM3NEM4OS4xMzc0IDU4Ljg5MTEgODkuMzg0MiA1OS4yNTk4IDg5LjYxMTMgNTkuNDg5NEM4OS44MzUyIDU5LjcxNTcgOTAuMTA4OSA1OS44ODE3IDkwLjM2NTIgNjAuMDA3MUM5MC44ODIzIDYwLjI2MDEgOTEuNTYwNSA2MC40NTc5IDkyLjMxMDEgNjAuNjEzQzkzLjgyNzEgNjAuOTI2OCA5NS44NzMxIDYxLjExMjcgOTguMDk4NiA2MS4xMTI3VjU4Ljk0MDNaTTEwNC44ODcgNTguMzk3MkMxMDQuODg3IDU4LjEyODIgMTA1LjAyNCA1Ny45NzkyIDEwNS4wNDEgNTcuOTYxN0MxMDUuMDU1IDU3Ljk0NzYgMTA1LjAyIDU3Ljk4NjEgMTA0Ljg3NyA1OC4wNTU3QzEwNC41OTggNTguMTkyNiAxMDQuMTIzIDU4LjM0NTggMTAzLjQ0NyA1OC40ODU2QzEwMi4xMTQgNTguNzYxNSAxMDAuMjIyIDU4Ljk0MDMgOTguMDk4NiA1OC45NDAzVjYxLjExMjdDMTAwLjMyNCA2MS4xMTI3IDEwMi4zNyA2MC45MjY4IDEwMy44ODcgNjAuNjEzQzEwNC42MzcgNjAuNDU3OSAxMDUuMzE1IDYwLjI2MDEgMTA1LjgzMiA2MC4wMDcxQzEwNi4wODggNTkuODgxNyAxMDYuMzYyIDU5LjcxNTcgMTA2LjU4NiA1OS40ODk0QzEwNi44MTMgNTkuMjU5OCAxMDcuMDYgNTguODkxMSAxMDcuMDYgNTguMzk3MkgxMDQuODg3Wk0xMDQuODg3IDQ4LjYyMTNWNTguMzk3MkgxMDcuMDZWNDguNjIxM0gxMDQuODg3WiIgZmlsbD0iIzI0Mjc3MCIgbWFzaz0idXJsKCNwYXRoLTEwLWluc2lkZS0xXzM0NjFfMjkxMzUpIi8+CjxwYXRoIGQ9Ik0xMDUuNjI5IDQ5LjAyNDFDMTA1Ljc0NCA0OS4wNzY1IDEwNS44MjggNDkuMTI0MiAxMDUuODg4IDQ5LjE2NDVDMTA1LjgyOCA0OS4yMDQ3IDEwNS43NDQgNDkuMjUyNCAxMDUuNjI5IDQ5LjMwNDhDMTA1LjI2MSA0OS40NzM2IDEwNC42OTMgNDkuNjM5MiAxMDMuOTQ4IDQ5Ljc4MzRDMTAyLjQ2OCA1MC4wNjk4IDEwMC40IDUwLjI1MDcgOTguMDk4OCA1MC4yNTA3Qzk1Ljc5OCA1MC4yNTA3IDkzLjcyOTYgNTAuMDY5OCA5Mi4yNDk1IDQ5Ljc4MzRDOTEuNTA0OSA0OS42MzkyIDkwLjkzNyA0OS40NzM2IDkwLjU2ODIgNDkuMzA0OEM5MC40NTM3IDQ5LjI1MjQgOTAuMzY5NiA0OS4yMDQ3IDkwLjMwOTkgNDkuMTY0NUM5MC4zNjk2IDQ5LjEyNDIgOTAuNDUzNyA0OS4wNzY1IDkwLjU2ODIgNDkuMDI0MUM5MC45MzcgNDguODU1NCA5MS41MDQ5IDQ4LjY4OTcgOTIuMjQ5NSA0OC41NDU2QzkzLjcyOTYgNDguMjU5MSA5NS43OTggNDguMDc4MyA5OC4wOTg4IDQ4LjA3ODNDMTAwLjQgNDguMDc4MyAxMDIuNDY4IDQ4LjI1OTEgMTAzLjk0OCA0OC41NDU2QzEwNC42OTMgNDguNjg5NyAxMDUuMjYxIDQ4Ljg1NTQgMTA1LjYyOSA0OS4wMjQxWiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xMDUuNjI5IDQ3LjM5NDdDMTA1Ljc0NCA0Ny40NDcxIDEwNS44MjggNDcuNDk0OCAxMDUuODg4IDQ3LjUzNTFDMTA1LjgyOCA0Ny41NzU0IDEwNS43NDQgNDcuNjIzIDEwNS42MjkgNDcuNjc1NEMxMDUuMjYxIDQ3Ljg0NDIgMTA0LjY5MyA0OC4wMDk5IDEwMy45NDggNDguMTU0QzEwMi40NjggNDguNDQwNCAxMDAuNCA0OC42MjEzIDk4LjA5ODggNDguNjIxM0M5NS43OTggNDguNjIxMyA5My43Mjk2IDQ4LjQ0MDQgOTIuMjQ5NSA0OC4xNTRDOTEuNTA0OSA0OC4wMDk5IDkwLjkzNyA0Ny44NDQyIDkwLjU2ODIgNDcuNjc1NEM5MC40NTM3IDQ3LjYyMyA5MC4zNjk2IDQ3LjU3NTQgOTAuMzA5OSA0Ny41MzUxQzkwLjM2OTYgNDcuNDk0OCA5MC40NTM3IDQ3LjQ0NzEgOTAuNTY4MiA0Ny4zOTQ3QzkwLjkzNyA0Ny4yMjYgOTEuNTA0OSA0Ny4wNjAzIDkyLjI0OTUgNDYuOTE2MkM5My43Mjk2IDQ2LjYyOTcgOTUuNzk4IDQ2LjQ0ODkgOTguMDk4OCA0Ni40NDg5QzEwMC40IDQ2LjQ0ODkgMTAyLjQ2OCA0Ni42Mjk3IDEwMy45NDggNDYuOTE2MkMxMDQuNjkzIDQ3LjA2MDMgMTA1LjI2MSA0Ny4yMjYgMTA1LjYyOSA0Ny4zOTQ3WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2JfMzQ2MV8yOTEzNSkiPgo8cmVjdCB4PSI3Mi42OTM0IiB5PSI3Ny45NTQzIiB3aWR0aD0iNDMuODUyMSIgaGVpZ2h0PSIyNi42Nzg3IiByeD0iMi40NjI3NyIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNODcuOTAzNiA5My44OTc4Vjk1LjQ1MDRINzkuNDEyOEw3OS4zNDgxIDk0LjI3NzlMODQuNDI2NCA4Ni4zMjA4SDg1Ljk4NzFMODQuMjk3IDg5LjIxNTdMODEuMzc3OCA5My44OTc4SDg3LjkwMzZaTTg2LjQzMTkgODYuMzIwOFY5OC4wOTQ3SDg0LjQ4M1Y4Ni4zMjA4SDg2LjQzMTlaTTk2Ljg3OTYgOTEuMjIxMlY5My4xNDU4Qzk2Ljg3OTYgOTQuMDY3NiA5Ni43ODggOTQuODU0NyA5Ni42MDQ3IDk1LjUwN0M5Ni40MjY4IDk2LjE1NCA5Ni4xNjggOTYuNjc5NiA5NS44Mjg0IDk3LjA4MzlDOTUuNDg4OCA5Ny40ODgyIDk1LjA4MTcgOTcuNzg0NyA5NC42MDczIDk3Ljk3MzRDOTQuMTM4MyA5OC4xNjIxIDkzLjYxMjcgOTguMjU2NSA5My4wMzA1IDk4LjI1NjVDOTIuNTY2OCA5OC4yNTY1IDkyLjEzNTUgOTguMTk3MiA5MS43MzY2IDk4LjA3ODZDOTEuMzQzMSA5Ny45NiA5MC45ODczIDk3Ljc3NCA5MC42NjkyIDk3LjUyMDZDOTAuMzUxMSA5Ny4yNjcyIDkwLjA3ODkgOTYuOTQxMSA4OS44NTI1IDk2LjU0MjFDODkuNjMxNCA5Ni4xMzc4IDg5LjQ1ODkgOTUuNjU1MyA4OS4zMzQ5IDk1LjA5NDZDODkuMjE2MyA5NC41MzQgODkuMTU3IDkzLjg4NDMgODkuMTU3IDkzLjE0NThWOTEuMjIxMkM4OS4xNTcgOTAuMjkzOSA4OS4yNDg3IDg5LjUxMjIgODkuNDMyIDg4Ljg3NjFDODkuNjE1MyA4OC4yMzQ2IDg5Ljg3NjcgODcuNzE0MyA5MC4yMTYzIDg3LjMxNTRDOTAuNTU2IDg2LjkxMTEgOTAuOTYwMyA4Ni42MTczIDkxLjQyOTMgODYuNDM0QzkxLjkwMzcgODYuMjUwNyA5Mi40MzIxIDg2LjE1OSA5My4wMTQzIDg2LjE1OUM5My40ODMzIDg2LjE1OSA5My45MTQ2IDg2LjIxODMgOTQuMzA4MSA4Ni4zMzY5Qzk0LjcwNzEgODYuNDUwMiA5NS4wNjI5IDg2LjYzMDcgOTUuMzc1NSA4Ni44Nzg3Qzk1LjY5MzYgODcuMTI2NyA5NS45NjMyIDg3LjQ1MDIgOTYuMTg0MiA4Ny44NDkxQzk2LjQxMDYgODguMjQyNyA5Ni41ODMxIDg4LjcxOTggOTYuNzAxNyA4OS4yODA0Qzk2LjgyMDMgODkuODM1NyA5Ni44Nzk2IDkwLjQ4MjYgOTYuODc5NiA5MS4yMjEyWk05NC45MzA4IDkzLjQyMDdWOTAuOTMwMUM5NC45MzA4IDkwLjQ2MTEgOTQuOTAzOCA5MC4wNDg2IDk0Ljg0OTkgODkuNjkyOEM5NC43OTYgODkuMzMxNiA5NC43MTUxIDg5LjAyNzEgOTQuNjA3MyA4OC43NzkxQzk0LjUwNDkgODguNTI1NyA5NC4zNzU1IDg4LjMyMDggOTQuMjE5MiA4OC4xNjQ1Qzk0LjA2MjggODguMDAyOCA5My44ODQ5IDg3Ljg4NjkgOTMuNjg1NSA4Ny44MTY4QzkzLjQ4NiA4Ny43NDEzIDkzLjI2MjMgODcuNzAzNiA5My4wMTQzIDg3LjcwMzZDOTIuNzEyNCA4Ny43MDM2IDkyLjQ0MjggODcuNzYyOSA5Mi4yMDU2IDg3Ljg4MTVDOTEuOTY4NCA4Ny45OTQ3IDkxLjc2OSA4OC4xNzggOTEuNjA3MiA4OC40MzEzQzkxLjQ0NTUgODguNjg0NyA5MS4zMjE1IDg5LjAxOSA5MS4yMzUyIDg5LjQzNDFDOTEuMTU0NCA4OS44NDM4IDkxLjExNCA5MC4zNDI1IDkxLjExNCA5MC45MzAxVjkzLjQyMDdDOTEuMTE0IDkzLjg5NTEgOTEuMTQwOSA5NC4zMTI5IDkxLjE5NDggOTQuNjc0MUM5MS4yNDg3IDk1LjAzNTMgOTEuMzI5NiA5NS4zNDUzIDkxLjQzNzQgOTUuNjA0MUM5MS41NDUyIDk1Ljg1NzUgOTEuNjc0NiA5Ni4wNjc3IDkxLjgyNTYgOTYuMjM0OEM5MS45ODE5IDk2LjM5NjYgOTIuMTU5OCA5Ni41MTUyIDkyLjM1OTMgOTYuNTkwNkM5Mi41NjQxIDk2LjY2NjEgOTIuNzg3OSA5Ni43MDM4IDkzLjAzMDUgOTYuNzAzOEM5My4zMzc3IDk2LjcwMzggOTMuNjEgOTYuNjQ0NSA5My44NDcyIDk2LjUyNTlDOTQuMDg0NCA5Ni40MDczIDk0LjI4MzkgOTYuMjE4NyA5NC40NDU2IDk1Ljk1OTlDOTQuNjA3MyA5NS42OTU3IDk0LjcyODYgOTUuMzUzNCA5NC44MDk1IDk0LjkzMjlDOTQuODkwNCA5NC41MTI0IDk0LjkzMDggOTQuMDA4MyA5NC45MzA4IDkzLjQyMDdaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjxwYXRoIGQ9Ik0xMDIuNTQ5IDkyLjU0MDNWOTIuMTUxMUMxMDIuNTQ5IDkxLjg3MTUgMTAyLjYxIDkxLjYxNzEgMTAyLjczMSA5MS4zODhDMTAyLjg1MyA5MS4xNTg5IDEwMy4wMjkgOTAuOTc1MiAxMDMuMjYyIDkwLjgzNzFDMTAzLjQ5NCA5MC42OTg5IDEwMy43NzQgOTAuNjI5OSAxMDQuMTAxIDkwLjYyOTlDMTA0LjQzOCA5MC42Mjk5IDEwNC43MjEgOTAuNjk4OSAxMDQuOTUgOTAuODM3MUMxMDUuMTgzIDkwLjk3NTIgMTA1LjM1OSA5MS4xNTg5IDEwNS40ODEgOTEuMzg4QzEwNS42MDIgOTEuNjE3MSAxMDUuNjYzIDkxLjg3MTUgMTA1LjY2MyA5Mi4xNTExVjkyLjU0MDNDMTA1LjY2MyA5Mi44MTMyIDEwNS42MDIgOTMuMDY0MiAxMDUuNDgxIDkzLjI5MzRDMTA1LjM2MyA5My41MjI1IDEwNS4xODggOTMuNzA2MSAxMDQuOTU1IDkzLjg0NDNDMTA0LjcyNiA5My45ODI0IDEwNC40NDUgOTQuMDUxNSAxMDQuMTExIDk0LjA1MTVDMTAzLjc4MSA5NC4wNTE1IDEwMy40OTggOTMuOTgyNCAxMDMuMjYyIDkzLjg0NDNDMTAzLjAyOSA5My43MDYxIDEwMi44NTMgOTMuNTIyNSAxMDIuNzMxIDkzLjI5MzRDMTAyLjYxIDkzLjA2NDIgMTAyLjU0OSA5Mi44MTMyIDEwMi41NDkgOTIuNTQwM1pNMTAzLjM5MyA5Mi4xNTExVjkyLjU0MDNDMTAzLjM5MyA5Mi42NzUxIDEwMy40MTkgOTIuODAzMSAxMDMuNDY5IDkyLjkyNDRDMTAzLjUyMyA5My4wNDU3IDEwMy42MDQgOTMuMTQzNCAxMDMuNzEyIDkzLjIxNzVDMTAzLjgyIDkzLjI5MTcgMTAzLjk1MyA5My4zMjg3IDEwNC4xMTEgOTMuMzI4N0MxMDQuMjczIDkzLjMyODcgMTA0LjQwNCA5My4yOTE3IDEwNC41MDUgOTMuMjE3NUMxMDQuNjEgOTMuMTQzNCAxMDQuNjg3IDkzLjA0NTcgMTA0LjczOCA5Mi45MjQ0QzEwNC43ODggOTIuODAzMSAxMDQuODE0IDkyLjY3NTEgMTA0LjgxNCA5Mi41NDAzVjkyLjE1MTFDMTA0LjgxNCA5Mi4wMTMgMTA0Ljc4NyA5MS44ODMzIDEwNC43MzMgOTEuNzYyQzEwNC42ODIgOTEuNjM3MyAxMDQuNjA1IDkxLjUzNzkgMTA0LjUgOTEuNDYzOEMxMDQuMzk2IDkxLjM4OTcgMTA0LjI2MyA5MS4zNTI2IDEwNC4xMDEgOTEuMzUyNkMxMDMuOTQ2IDkxLjM1MjYgMTAzLjgxNSA5MS4zODk3IDEwMy43MDcgOTEuNDYzOEMxMDMuNjAyIDkxLjUzNzkgMTAzLjUyMyA5MS42MzczIDEwMy40NjkgOTEuNzYyQzEwMy40MTkgOTEuODgzMyAxMDMuMzkzIDkyLjAxMyAxMDMuMzkzIDkyLjE1MTFaTTEwNi4wOTcgOTYuNjg0NlY5Ni4yOTA0QzEwNi4wOTcgOTYuMDE0MSAxMDYuMTU4IDk1Ljc2MTQgMTA2LjI3OSA5NS41MzIzQzEwNi40MDQgOTUuMzAzMiAxMDYuNTgyIDk1LjExOTYgMTA2LjgxNSA5NC45ODE0QzEwNy4wNDcgOTQuODQzMyAxMDcuMzI3IDk0Ljc3NDIgMTA3LjY1NCA5NC43NzQyQzEwNy45OTEgOTQuNzc0MiAxMDguMjc0IDk0Ljg0MzMgMTA4LjUwMyA5NC45ODE0QzEwOC43MzYgOTUuMTE5NiAxMDguOTExIDk1LjMwMzIgMTA5LjAyOSA5NS41MzIzQzEwOS4xNSA5NS43NjE0IDEwOS4yMTEgOTYuMDE0MSAxMDkuMjExIDk2LjI5MDRWOTYuNjg0NkMxMDkuMjExIDk2Ljk2MDkgMTA5LjE1IDk3LjIxMzYgMTA5LjAyOSA5Ny40NDI4QzEwOC45MTEgOTcuNjcxOSAxMDguNzM3IDk3Ljg1NTUgMTA4LjUwOCA5Ny45OTM2QzEwOC4yNzkgOTguMTMxOCAxMDcuOTk5IDk4LjIwMDkgMTA3LjY2OSA5OC4yMDA5QzEwNy4zMzYgOTguMjAwOSAxMDcuMDUxIDk4LjEzMTggMTA2LjgxNSA5Ny45OTM2QzEwNi41ODIgOTcuODU1NSAxMDYuNDA0IDk3LjY3MTkgMTA2LjI3OSA5Ny40NDI4QzEwNi4xNTggOTcuMjEzNiAxMDYuMDk3IDk2Ljk2MDkgMTA2LjA5NyA5Ni42ODQ2Wk0xMDYuOTQ2IDk2LjI5MDRWOTYuNjg0NkMxMDYuOTQ2IDk2LjgxOTQgMTA2Ljk3MyA5Ni45NDc1IDEwNy4wMjcgOTcuMDY4OEMxMDcuMDg1IDk3LjE5IDEwNy4xNjcgOTcuMjg5NCAxMDcuMjc1IDk3LjM2NjlDMTA3LjM4MyA5Ny40NDExIDEwNy41MTIgOTcuNDc4MSAxMDcuNjY0IDk3LjQ3ODFDMTA3LjgzNiA5Ny40NzgxIDEwNy45NzQgOTcuNDQxMSAxMDguMDc5IDk3LjM2NjlDMTA4LjE4MyA5Ny4yODk0IDEwOC4yNTcgOTcuMTkxNyAxMDguMzAxIDk3LjA3MzhDMTA4LjM0OCA5Ni45NTI1IDEwOC4zNzIgOTYuODIyOCAxMDguMzcyIDk2LjY4NDZWOTYuMjkwNEMxMDguMzcyIDk2LjE1MjMgMTA4LjM0NSA5Ni4wMjI2IDEwOC4yOTEgOTUuOTAxM0MxMDguMjQgOTUuNzggMTA4LjE2MSA5NS42ODIzIDEwOC4wNTMgOTUuNjA4MUMxMDcuOTQ5IDk1LjUzNCAxMDcuODE2IDk1LjQ5NjkgMTA3LjY1NCA5NS40OTY5QzEwNy40OTYgOTUuNDk2OSAxMDcuMzY0IDk1LjUzNCAxMDcuMjYgOTUuNjA4MUMxMDcuMTU1IDk1LjY4MjMgMTA3LjA3NiA5NS43OCAxMDcuMDIyIDk1LjkwMTNDMTA2Ljk3MiA5Ni4wMjI2IDEwNi45NDYgOTYuMTUyMyAxMDYuOTQ2IDk2LjI5MDRaTTEwNy45NTcgOTEuNzg3MkwxMDQuMzY0IDk3LjUzODhMMTAzLjc0MiA5Ny4xNzk5TDEwNy4zMzYgOTEuNDI4NEwxMDcuOTU3IDkxLjc4NzJaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjwvZz4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxOTkiIGhlaWdodD0iMTU5IiByeD0iMy41IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4xMiIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzM0NjFfMjkxMzUiIHg9IjY4Ljk5OTIiIHk9Ijc0LjI2MDIiIHdpZHRoPSI1MS4yNDA4IiBoZWlnaHQ9IjM0LjA2NyIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjg0NzA3Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzI5MTM1Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzI5MTM1IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", - "description": "Widget indicates the level of liquid in Rectangle tank.", - "descriptor": { - "type": "latest", - "sizeX": 7.5, - "sizeY": 3, - "resources": [], - "templateHtml": "\n", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", - "settingsSchema": "{}", - "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-liquid-level-card-widget-settings", - "hasBasicMode": true, - "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" - }, - "externalId": null, - "tags": null -} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/vertical_capsule.json b/application/src/main/data/json/system/widget_types/vertical_capsule.json new file mode 100644 index 0000000000..108228be37 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/vertical_capsule.json @@ -0,0 +1,24 @@ +{ + "fqn": "vertical_capsule_tank", + "name": "Vertical capsule", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Vertical capsule tank.", + "descriptor": { + "type": "latest", + "sizeX": 4, + "sizeY": 4, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 deleted file mode 100644 index 19ee91e362..0000000000 --- a/application/src/main/data/json/system/widget_types/vertical_capsule_tank.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "fqn": "vertical_capsule_tank", - "name": "Vertical Capsule tank", - "deprecated": false, - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cmVjdCB4PSI2OC41MDAxIiB5PSIxNDEuMzE5IiB3aWR0aD0iOTYuNjcyNCIgaGVpZ2h0PSI2MyIgcng9IjMxLjUiIHRyYW5zZm9ybT0icm90YXRlKC05MCA2OC41MDAxIDE0MS4zMTkpIiBmaWxsPSIjNjIxNkZGIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJtYXNrMF8zNDYxXzQ3NDU2IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI3MCIgeT0iNDYiIHdpZHRoPSI2MCIgaGVpZ2h0PSI5NCI+CjxyZWN0IHg9IjcwLjY3MyIgeT0iMTM5LjE0NyIgd2lkdGg9IjkyLjMyNzYiIGhlaWdodD0iNTguNjU1MiIgcng9IjI5LjMyNzYiIHRyYW5zZm9ybT0icm90YXRlKC05MCA3MC42NzMgMTM5LjE0NykiIGZpbGw9IiNGMUYxRjkiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF8zNDYxXzQ3NDU2KSI+CjxyZWN0IHg9IjcwLjEyOTkiIHk9Ijk4LjAxNzgiIHdpZHRoPSI1OS43NDE0IiBoZWlnaHQ9IjkzLjQxMzgiIGZpbGw9IiM3QThCRkYiLz4KPHJlY3QgeD0iNzAuMTI5OSIgeT0iOTguMDE3OCIgd2lkdGg9IjU5Ljc0MTQiIGhlaWdodD0iMC41NDMxMDMiIGZpbGw9IiM3QThCRkYiLz4KPHJlY3QgeD0iNzAuMTI5OSIgeT0iOTguMDE3OCIgd2lkdGg9IjU5Ljc0MTQiIGhlaWdodD0iMC41NDMxMDMiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuMSIvPgo8L2c+CjxwYXRoIGQ9Ik02OC4yMjg1IDExMi44NDVIMTMxLjIyOSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTY4Ljc3MTUgNzMuNDMxNkgxMzEuNzcxIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8bWFzayBpZD0icGF0aC0xMC1pbnNpZGUtMV8zNDYxXzQ3NDU2IiBmaWxsPSJ3aGl0ZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA4LjE0NiAzNS45NTc1SDkyLjM5NjVWNDUuNzMzNEM5Mi4zOTY1IDQ2LjYzMzIgOTUuOTIyMiA0Ny4zNjI3IDEwMC4yNzEgNDcuMzYyN0MxMDQuNjIxIDQ3LjM2MjcgMTA4LjE0NiA0Ni42MzMyIDEwOC4xNDYgNDUuNzMzNFYzNS45NTc1WiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA4LjE0NiAzNS45NTc1SDkyLjM5NjVWNDUuNzMzNEM5Mi4zOTY1IDQ2LjYzMzIgOTUuOTIyMiA0Ny4zNjI3IDEwMC4yNzEgNDcuMzYyN0MxMDQuNjIxIDQ3LjM2MjcgMTA4LjE0NiA0Ni42MzMyIDEwOC4xNDYgNDUuNzMzNFYzNS45NTc1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTkyLjM5NjUgMzUuOTU3NVYzNC44NzEzSDkxLjMxMDNWMzUuOTU3NUg5Mi4zOTY1Wk0xMDguMTQ2IDM1Ljk1NzVIMTA5LjIzM1YzNC44NzEzSDEwOC4xNDZWMzUuOTU3NVpNOTIuMzk2NSAzNy4wNDM3SDEwOC4xNDZWMzQuODcxM0g5Mi4zOTY1VjM3LjA0MzdaTTkzLjQ4MjcgNDUuNzMzNFYzNS45NTc1SDkxLjMxMDNWNDUuNzMzNEg5My40ODI3Wk0xMDAuMjcxIDQ2LjI3NjVDOTguMTQ3OCA0Ni4yNzY1IDk2LjI1NjMgNDYuMDk3NiA5NC45MjMxIDQ1LjgyMThDOTQuMjQ3NiA0NS42ODIgOTMuNzcyNSA0NS41Mjg3IDkzLjQ5MjYgNDUuMzkxOUM5My4zNTA1IDQ1LjMyMjMgOTMuMzE0NyA0NS4yODM3IDkzLjMyODggNDUuMjk3OUM5My4zNDYxIDQ1LjMxNTQgOTMuNDgyNyA0NS40NjQ0IDkzLjQ4MjcgNDUuNzMzNEg5MS4zMTAzQzkxLjMxMDMgNDYuMjI3MyA5MS41NTcxIDQ2LjU5NTkgOTEuNzg0MiA0Ni44MjU2QzkyLjAwOCA0Ny4wNTE5IDkyLjI4MTcgNDcuMjE3OSA5Mi41MzgxIDQ3LjM0MzNDOTMuMDU1MiA0Ny41OTYzIDkzLjczMzQgNDcuNzk0MSA5NC40ODI5IDQ3Ljk0OTJDOTUuOTk5OSA0OC4yNjMgOTguMDQ1OSA0OC40NDg5IDEwMC4yNzEgNDguNDQ4OVY0Ni4yNzY1Wk0xMDcuMDYgNDUuNzMzNEMxMDcuMDYgNDUuNDY0NCAxMDcuMTk3IDQ1LjMxNTQgMTA3LjIxNCA0NS4yOTc5QzEwNy4yMjggNDUuMjgzNyAxMDcuMTkzIDQ1LjMyMjMgMTA3LjA1IDQ1LjM5MTlDMTA2Ljc3IDQ1LjUyODcgMTA2LjI5NSA0NS42ODIgMTA1LjYyIDQ1LjgyMThDMTA0LjI4NyA0Ni4wOTc2IDEwMi4zOTUgNDYuMjc2NSAxMDAuMjcxIDQ2LjI3NjVWNDguNDQ4OUMxMDIuNDk3IDQ4LjQ0ODkgMTA0LjU0MyA0OC4yNjMgMTA2LjA2IDQ3Ljk0OTJDMTA2LjgxIDQ3Ljc5NDEgMTA3LjQ4OCA0Ny41OTYzIDEwOC4wMDUgNDcuMzQzM0MxMDguMjYxIDQ3LjIxNzkgMTA4LjUzNSA0Ny4wNTE5IDEwOC43NTkgNDYuODI1NkMxMDguOTg2IDQ2LjU5NTkgMTA5LjIzMyA0Ni4yMjczIDEwOS4yMzMgNDUuNzMzNEgxMDcuMDZaTTEwNy4wNiAzNS45NTc1VjQ1LjczMzRIMTA5LjIzM1YzNS45NTc1SDEwNy4wNloiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC0xMC1pbnNpZGUtMV8zNDYxXzQ3NDU2KSIvPgo8cGF0aCBkPSJNMTA3LjgwMiAzNi4zNjAzQzEwNy45MTcgMzYuNDEyNyAxMDguMDAxIDM2LjQ2MDQgMTA4LjA2IDM2LjUwMDdDMTA4LjAwMSAzNi41NDA5IDEwNy45MTcgMzYuNTg4NiAxMDcuODAyIDM2LjY0MUMxMDcuNDMzIDM2LjgwOTggMTA2Ljg2NSAzNi45NzU0IDEwNi4xMjEgMzcuMTE5NUMxMDQuNjQxIDM3LjQwNiAxMDIuNTcyIDM3LjU4NjkgMTAwLjI3MiAzNy41ODY5Qzk3Ljk3MDggMzcuNTg2OSA5NS45MDI1IDM3LjQwNiA5NC40MjIzIDM3LjExOTVDOTMuNjc3OCAzNi45NzU0IDkzLjEwOTggMzYuODA5OCA5Mi43NDEgMzYuNjQxQzkyLjYyNjYgMzYuNTg4NiA5Mi41NDI1IDM2LjU0MDkgOTIuNDgyNyAzNi41MDA2QzkyLjU0MjUgMzYuNDYwNCA5Mi42MjY2IDM2LjQxMjcgOTIuNzQxIDM2LjM2MDNDOTMuMTA5OCAzNi4xOTE1IDkzLjY3NzggMzYuMDI1OSA5NC40MjIzIDM1Ljg4MThDOTUuOTAyNSAzNS41OTUzIDk3Ljk3MDggMzUuNDE0NCAxMDAuMjcyIDM1LjQxNDRDMTAyLjU3MiAzNS40MTQ0IDEwNC42NDEgMzUuNTk1MyAxMDYuMTIxIDM1Ljg4MThDMTA2Ljg2NSAzNi4wMjU5IDEwNy40MzMgMzYuMTkxNSAxMDcuODAyIDM2LjM2MDNaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEwNy44MDIgMzQuNzMwOUMxMDcuOTE3IDM0Ljc4MzMgMTA4LjAwMSAzNC44MzEgMTA4LjA2IDM0Ljg3MTNDMTA4LjAwMSAzNC45MTE1IDEwNy45MTcgMzQuOTU5MiAxMDcuODAyIDM1LjAxMTZDMTA3LjQzMyAzNS4xODA0IDEwNi44NjUgMzUuMzQ2IDEwNi4xMjEgMzUuNDkwMUMxMDQuNjQxIDM1Ljc3NjYgMTAyLjU3MiAzNS45NTc1IDEwMC4yNzIgMzUuOTU3NUM5Ny45NzA4IDM1Ljk1NzUgOTUuOTAyNSAzNS43NzY2IDk0LjQyMjMgMzUuNDkwMUM5My42Nzc4IDM1LjM0NiA5My4xMDk4IDM1LjE4MDQgOTIuNzQxIDM1LjAxMTZDOTIuNjI2NiAzNC45NTkyIDkyLjU0MjUgMzQuOTExNSA5Mi40ODI3IDM0Ljg3MTNDOTIuNTQyNSAzNC44MzEgOTIuNjI2NiAzNC43ODMzIDkyLjc0MSAzNC43MzA5QzkzLjEwOTggMzQuNTYyMSA5My42Nzc4IDM0LjM5NjUgOTQuNDIyMyAzNC4yNTI0Qzk1LjkwMjUgMzMuOTY1OSA5Ny45NzA4IDMzLjc4NSAxMDAuMjcyIDMzLjc4NUMxMDIuNTcyIDMzLjc4NSAxMDQuNjQxIDMzLjk2NTkgMTA2LjEyMSAzNC4yNTI0QzEwNi44NjUgMzQuMzk2NSAxMDcuNDMzIDM0LjU2MjEgMTA3LjgwMiAzNC43MzA5WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2JfMzQ2MV80NzQ1NikiPgo8cmVjdCB4PSI4MC43MTc4IiB5PSI4MS41NjI3IiB3aWR0aD0iMzguNTY0MSIgaGVpZ2h0PSIyMy40NjE1IiByeD0iMi4xNjU3OSIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NiIvPgo8cGF0aCBkPSJNOTQuMDk0NyA5NS41MTI4Vjk2Ljg3ODJIODYuNjI3N0w4Ni41NzA4IDk1Ljg0N0w5MS4wMzY4IDg4Ljg0OTRIOTIuNDA5M0w5MC45MjMgOTEuMzk1M0w4OC4zNTU4IDk1LjUxMjhIOTQuMDk0N1pNOTIuODAwNCA4OC44NDk0Vjk5LjIwMzZIOTEuMDg2NVY4OC44NDk0SDkyLjgwMDRaTTEwMS45ODggOTMuMTU4OVY5NC44NTE0QzEwMS45ODggOTUuNjYyMSAxMDEuOTA4IDk2LjM1NDMgMTAxLjc0NiA5Ni45MjhDMTAxLjU5IDk3LjQ5NjkgMTAxLjM2MiA5Ny45NTkxIDEwMS4wNjQgOTguMzE0N0MxMDAuNzY1IDk4LjY3MDMgMTAwLjQwNyA5OC45MzEgOTkuOTkgOTkuMDk2OUM5OS41Nzc1IDk5LjI2MjkgOTkuMTE1MyA5OS4zNDU4IDk4LjYwMzMgOTkuMzQ1OEM5OC4xOTU1IDk5LjM0NTggOTcuODE2MyA5OS4yOTM3IDk3LjQ2NTQgOTkuMTg5NEM5Ny4xMTk0IDk5LjA4NTEgOTYuODA2NSA5OC45MjE1IDk2LjUyNjcgOTguNjk4N0M5Ni4yNDcgOTguNDc1OSA5Ni4wMDc2IDk4LjE4OTEgOTUuODA4NSA5Ny44MzgyQzk1LjYxNDEgOTcuNDgyNyA5NS40NjI0IDk3LjA1ODMgOTUuMzUzNCA5Ni41NjUzQzk1LjI0OTEgOTYuMDcyMiA5NS4xOTY5IDk1LjUwMSA5NS4xOTY5IDk0Ljg1MTRWOTMuMTU4OUM5NS4xOTY5IDkyLjM0MzUgOTUuMjc3NSA5MS42NTYxIDk1LjQzODcgOTEuMDk2NkM5NS41OTk5IDkwLjUzMjUgOTUuODI5OCA5MC4wNzUgOTYuMTI4NSA4OS43MjQxQzk2LjQyNzIgODkuMzY4NiA5Ni43ODI4IDg5LjExMDIgOTcuMTk1MiA4OC45NDlDOTcuNjEyNCA4OC43ODc4IDk4LjA3NyA4OC43MDcyIDk4LjU4OSA4OC43MDcyQzk5LjAwMTUgODguNzA3MiA5OS4zODA4IDg4Ljc1OTQgOTkuNzI2OSA4OC44NjM3QzEwMC4wNzggODguOTYzMiAxMDAuMzkxIDg5LjEyMiAxMDAuNjY2IDg5LjM0MDFDMTAwLjk0NSA4OS41NTgyIDEwMS4xODIgODkuODQyNyAxMDEuMzc3IDkwLjE5MzVDMTAxLjU3NiA5MC41Mzk2IDEwMS43MjggOTAuOTU5MiAxMDEuODMyIDkxLjQ1MjJDMTAxLjkzNiA5MS45NDA1IDEwMS45ODggOTIuNTA5NCAxMDEuOTg4IDkzLjE1ODlaTTEwMC4yNzQgOTUuMDkzMlY5Mi45MDI5QzEwMC4yNzQgOTIuNDkwNSAxMDAuMjUxIDkyLjEyNzggMTAwLjIwMyA5MS44MTQ5QzEwMC4xNTYgOTEuNDk3MiAxMDAuMDg1IDkxLjIyOTQgOTkuOTkgOTEuMDExM0M5OS44OTk5IDkwLjc4ODUgOTkuNzg2MSA5MC42MDgzIDk5LjY0ODYgOTAuNDcwOEM5OS41MTEyIDkwLjMyODYgOTkuMzU0NyA5MC4yMjY3IDk5LjE3OTMgOTAuMTY1MUM5OS4wMDM5IDkwLjA5ODcgOTguODA3MSA5MC4wNjU1IDk4LjU4OSA5MC4wNjU1Qzk4LjMyMzYgOTAuMDY1NSA5OC4wODY1IDkwLjExNzYgOTcuODc3OSA5MC4yMjE5Qzk3LjY2OTMgOTAuMzIxNSA5Ny40OTM5IDkwLjQ4MjcgOTcuMzUxNyA5MC43MDU1Qzk3LjIwOTQgOTAuOTI4MyA5Ny4xMDA0IDkxLjIyMjMgOTcuMDI0NSA5MS41ODczQzk2Ljk1MzQgOTEuOTQ3NiA5Ni45MTc5IDkyLjM4NjIgOTYuOTE3OSA5Mi45MDI5Vjk1LjA5MzJDOTYuOTE3OSA5NS41MTA0IDk2Ljk0MTYgOTUuODc3OSA5Ni45ODkgOTYuMTk1NUM5Ny4wMzY0IDk2LjUxMzEgOTcuMTA3NSA5Ni43ODU3IDk3LjIwMjMgOTcuMDEzM0M5Ny4yOTcxIDk3LjIzNjEgOTcuNDEwOSA5Ny40MjEgOTcuNTQzNyA5Ny41NjhDOTcuNjgxMiA5Ny43MTAyIDk3LjgzNzYgOTcuODE0NSA5OC4wMTMgOTcuODgwOUM5OC4xOTMyIDk3Ljk0NzMgOTguMzg5OSA5Ny45ODA1IDk4LjYwMzMgOTcuOTgwNUM5OC44NzM1IDk3Ljk4MDUgOTkuMTEyOSA5Ny45MjgzIDk5LjMyMTUgOTcuODI0Qzk5LjUzMDEgOTcuNzE5NyA5OS43MDU1IDk3LjU1MzggOTkuODQ3OCA5Ny4zMjYyQzk5Ljk5IDk3LjA5MzkgMTAwLjA5NyA5Ni43OTI5IDEwMC4xNjggOTYuNDIzMUMxMDAuMjM5IDk2LjA1MzMgMTAwLjI3NCA5NS42MSAxMDAuMjc0IDk1LjA5MzJaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjxwYXRoIGQ9Ik0xMDcuMjY1IDk0LjMxOTJWOTMuOTc3QzEwNy4yNjUgOTMuNzMxMSAxMDcuMzE4IDkzLjUwNzMgMTA3LjQyNSA5My4zMDU5QzEwNy41MzEgOTMuMTA0NCAxMDcuNjg3IDkyLjk0MjkgMTA3Ljg5MSA5Mi44MjE0QzEwOC4wOTYgOTIuNjk5OSAxMDguMzQyIDkyLjYzOTIgMTA4LjYyOSA5Mi42MzkyQzEwOC45MjYgOTIuNjM5MiAxMDkuMTc0IDkyLjY5OTkgMTA5LjM3NiA5Mi44MjE0QzEwOS41OCA5Mi45NDI5IDEwOS43MzYgOTMuMTA0NCAxMDkuODQzIDkzLjMwNTlDMTA5Ljk0OSA5My41MDczIDExMC4wMDMgOTMuNzMxMSAxMTAuMDAzIDkzLjk3N1Y5NC4zMTkyQzExMC4wMDMgOTQuNTU5MiAxMDkuOTQ5IDk0Ljc4IDEwOS44NDMgOTQuOTgxNUMxMDkuNzM5IDk1LjE4MyAxMDkuNTg1IDk1LjM0NDUgMTA5LjM4IDk1LjQ2NTlDMTA5LjE3OSA5NS41ODc0IDEwOC45MzIgOTUuNjQ4MiAxMDguNjM4IDk1LjY0ODJDMTA4LjM0OCA5NS42NDgyIDEwOC4wOTkgOTUuNTg3NCAxMDcuODkxIDk1LjQ2NTlDMTA3LjY4NyA5NS4zNDQ1IDEwNy41MzEgOTUuMTgzIDEwNy40MjUgOTQuOTgxNUMxMDcuMzE4IDk0Ljc4IDEwNy4yNjUgOTQuNTU5MiAxMDcuMjY1IDk0LjMxOTJaTTEwOC4wMDcgOTMuOTc3Vjk0LjMxOTJDMTA4LjAwNyA5NC40Mzc4IDEwOC4wMjkgOTQuNTUwMyAxMDguMDc0IDk0LjY1N0MxMDguMTIxIDk0Ljc2MzcgMTA4LjE5MiA5NC44NDk2IDEwOC4yODcgOTQuOTE0OEMxMDguMzgyIDk0Ljk4IDEwOC40OTkgOTUuMDEyNiAxMDguNjM4IDk1LjAxMjZDMTA4Ljc4IDk1LjAxMjYgMTA4Ljg5NiA5NC45OCAxMDguOTg1IDk0LjkxNDhDMTA5LjA3NyA5NC44NDk2IDEwOS4xNDUgOTQuNzYzNyAxMDkuMTg5IDk0LjY1N0MxMDkuMjM0IDk0LjU1MDMgMTA5LjI1NiA5NC40Mzc4IDEwOS4yNTYgOTQuMzE5MlY5My45NzdDMTA5LjI1NiA5My44NTU1IDEwOS4yMzIgOTMuNzQxNCAxMDkuMTg1IDkzLjYzNDhDMTA5LjE0IDkzLjUyNTEgMTA5LjA3MiA5My40Mzc3IDEwOC45OCA5My4zNzI1QzEwOC44ODkgOTMuMzA3MyAxMDguNzcxIDkzLjI3NDcgMTA4LjYyOSA5My4yNzQ3QzEwOC40OTMgOTMuMjc0NyAxMDguMzc3IDkzLjMwNzMgMTA4LjI4MyA5My4zNzI1QzEwOC4xOTEgOTMuNDM3NyAxMDguMTIxIDkzLjUyNTEgMTA4LjA3NCA5My42MzQ4QzEwOC4wMjkgOTMuNzQxNCAxMDguMDA3IDkzLjg1NTUgMTA4LjAwNyA5My45NzdaTTExMC4zODUgOTcuOTYzOFY5Ny42MTcxQzExMC4zODUgOTcuMzc0MiAxMTAuNDM4IDk3LjE1MTkgMTEwLjU0NSA5Ni45NTA0QzExMC42NTUgOTYuNzQ5IDExMC44MTIgOTYuNTg3NSAxMTEuMDE2IDk2LjQ2NkMxMTEuMjIgOTYuMzQ0NSAxMTEuNDY2IDk2LjI4MzcgMTExLjc1NCA5Ni4yODM3QzExMi4wNSA5Ni4yODM3IDExMi4yOTkgOTYuMzQ0NSAxMTIuNTAxIDk2LjQ2NkMxMTIuNzA1IDk2LjU4NzUgMTEyLjg1OSA5Ni43NDkgMTEyLjk2MyA5Ni45NTA0QzExMy4wNjkgOTcuMTUxOSAxMTMuMTIzIDk3LjM3NDIgMTEzLjEyMyA5Ny42MTcxVjk3Ljk2MzhDMTEzLjEyMyA5OC4yMDY4IDExMy4wNjkgOTguNDI5IDExMi45NjMgOTguNjMwNUMxMTIuODU5IDk4LjgzMiAxMTIuNzA2IDk4Ljk5MzUgMTEyLjUwNSA5OS4xMTVDMTEyLjMwMyA5OS4yMzY1IDExMi4wNTggOTkuMjk3MiAxMTEuNzY3IDk5LjI5NzJDMTExLjQ3NCA5OS4yOTcyIDExMS4yMjMgOTkuMjM2NSAxMTEuMDE2IDk5LjExNUMxMTAuODEyIDk4Ljk5MzUgMTEwLjY1NSA5OC44MzIgMTEwLjU0NSA5OC42MzA1QzExMC40MzggOTguNDI5IDExMC4zODUgOTguMjA2OCAxMTAuMzg1IDk3Ljk2MzhaTTExMS4xMzIgOTcuNjE3MVY5Ny45NjM4QzExMS4xMzIgOTguMDgyMyAxMTEuMTU1IDk4LjE5NDkgMTExLjIwMyA5OC4zMDE2QzExMS4yNTMgOTguNDA4MyAxMTEuMzI2IDk4LjQ5NTcgMTExLjQyIDk4LjU2MzhDMTExLjUxNSA5OC42MjkgMTExLjYyOSA5OC42NjE2IDExMS43NjMgOTguNjYxNkMxMTEuOTE0IDk4LjY2MTYgMTEyLjAzNSA5OC42MjkgMTEyLjEyNyA5OC41NjM4QzExMi4yMTkgOTguNDk1NyAxMTIuMjg0IDk4LjQwOTggMTEyLjMyMyA5OC4zMDZDMTEyLjM2NCA5OC4xOTk0IDExMi4zODUgOTguMDg1MyAxMTIuMzg1IDk3Ljk2MzhWOTcuNjE3MUMxMTIuMzg1IDk3LjQ5NTYgMTEyLjM2MSA5Ny4zODE2IDExMi4zMTQgOTcuMjc0OUMxMTIuMjY5IDk3LjE2ODIgMTEyLjIgOTcuMDgyMyAxMTIuMTA1IDk3LjAxNzFDMTEyLjAxMyA5Ni45NTE5IDExMS44OTYgOTYuOTE5MyAxMTEuNzU0IDk2LjkxOTNDMTExLjYxNSA5Ni45MTkzIDExMS40OTkgOTYuOTUxOSAxMTEuNDA3IDk3LjAxNzFDMTExLjMxNSA5Ny4wODIzIDExMS4yNDYgOTcuMTY4MiAxMTEuMTk4IDk3LjI3NDlDMTExLjE1NCA5Ny4zODE2IDExMS4xMzIgOTcuNDk1NiAxMTEuMTMyIDk3LjYxNzFaTTExMi4wMjEgOTMuNjU3TDEwOC44NiA5OC43MTVMMTA4LjMxNCA5OC4zOTk0TDExMS40NzQgOTMuMzQxNEwxMTIuMDIxIDkzLjY1N1oiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPC9nPgo8cmVjdCB4PSIwLjUiIHk9IjAuNSIgd2lkdGg9IjE5OSIgaGVpZ2h0PSIxNTkiIHJ4PSIzLjUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIi8+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2JfMzQ2MV80NzQ1NiIgeD0iNzcuNDY5MSIgeT0iNzguMzE0MSIgd2lkdGg9IjQ1LjA2MTgiIGhlaWdodD0iMjkuOTU4OCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjYyNDM0Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ3NDU2Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzQ3NDU2IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", - "description": "Widget indicates the level of liquid in Vertical Capsule tank.", - "descriptor": { - "type": "latest", - "sizeX": 7.5, - "sizeY": 3, - "resources": [], - "templateHtml": "\n", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", - "settingsSchema": "{}", - "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-liquid-level-card-widget-settings", - "hasBasicMode": true, - "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" - }, - "externalId": null, - "tags": null -} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/vertical_cylinder.json b/application/src/main/data/json/system/widget_types/vertical_cylinder.json new file mode 100644 index 0000000000..8e254df8d2 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/vertical_cylinder.json @@ -0,0 +1,24 @@ +{ + "fqn": "vertical_cylinder_tank", + "name": "Vertical cylinder", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Vertical cylinder tank.", + "descriptor": { + "type": "latest", + "sizeX": 4, + "sizeY": 4, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 deleted file mode 100644 index 899420cda2..0000000000 --- a/application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "fqn": "vertical_cylinder_tank", - "name": "Vertical Cylinder tank", - "deprecated": false, - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8bWFzayBpZD0ibWFzazBfMzQ2MV80NzA3NyIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iNTgiIHk9IjYyIiB3aWR0aD0iODQiIGhlaWdodD0iNjYiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTU4LjE4MTYgNjIuNjAyOFYxMTkuMTIxQzU4LjE4MTYgMTIzLjYwOCA3Ni42NDcyIDEyNy42ODIgMTAwLjAwMSAxMjcuNjgyQzEzMC45NTggMTI3LjY4MiAxNDEuODIgMTIxLjk3OSAxNDEuODIgMTE5LjEyMVY2Mi42MDI4QzEzNi42NjkgNjYuOTM2NiAxMTkuODk2IDcwLjExMjcgMTAwLjAwMSA3MC4xMTI3QzgwLjEwNDggNzAuMTEyNyA2My4zMzIzIDY2LjkzNjYgNTguMTgxNiA2Mi42MDI4WiIgZmlsbD0iIzdBOEJGRiIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTU4LjE4MTYgNjIuNjAyOFYxMTkuMTIxQzU4LjE4MTYgMTIzLjYwOCA3Ni42NDcyIDEyNy42ODIgMTAwLjAwMSAxMjcuNjgyQzEzMC45NTggMTI3LjY4MiAxNDEuODIgMTIxLjk3OSAxNDEuODIgMTE5LjEyMVY2Mi42MDI4QzEzNi42NjkgNjYuOTM2NiAxMTkuODk2IDcwLjExMjcgMTAwLjAwMSA3MC4xMTI3QzgwLjEwNDggNzAuMTEyNyA2My4zMzIzIDY2LjkzNjYgNTguMTgxNiA2Mi42MDI4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIi8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF8zNDYxXzQ3MDc3KSI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8zNDYxXzQ3MDc3KSI+CjxyZWN0IHg9IjU4LjE4MTYiIHk9IjkwLjc1MDciIHdpZHRoPSI4My42Mzc5IiBoZWlnaHQ9IjY2LjI1ODYiIGZpbGw9IiM3QThCRkYiLz4KPGVsbGlwc2UgY3g9IjEwMC4wMDEiIGN5PSI5MC43NTA3IiByeD0iNDEuODE5IiByeT0iOC42ODk2NiIgZmlsbD0iIzdBOEJGRiIvPgo8ZWxsaXBzZSBjeD0iMTAwLjAwMSIgY3k9IjkwLjc1MDciIHJ4PSI0MS44MTkiIHJ5PSI4LjY4OTY2IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjEiLz4KPC9nPgo8L2c+CjxtYXNrIGlkPSJwYXRoLTctaW5zaWRlLTFfMzQ2MV80NzA3NyIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0Mi45MDUgMTIwLjIyNVY1OS45NDAySDE0My45OTJWMTIwLjIyNUMxNDMuOTkyIDEyMS4wNzQgMTQzLjYwNiAxMjEuODU4IDE0Mi45NjggMTIyLjU2QzE0Mi4zMzEgMTIzLjI2IDE0MS40MTkgMTIzLjkwOCAxNDAuMjg5IDEyNC41MDlDMTM4LjAyOSAxMjUuNzEyIDEzNC43OTQgMTI2Ljc3OCAxMzAuODQyIDEyNy42NjdDMTIyLjkzIDEyOS40NDcgMTEyLjAyNiAxMzAuNTQ0IDEwMCAxMzAuNTQ0Qzg3Ljk3NDUgMTMwLjU0NCA3Ny4wNzA1IDEyOS40NDcgNjkuMTU4NCAxMjcuNjY3QzY1LjIwNjcgMTI2Ljc3OCA2MS45NzE2IDEyNS43MTIgNTkuNzExMiAxMjQuNTA5QzU4LjU4MTUgMTIzLjkwOCA1Ny42NjkgMTIzLjI2IDU3LjAzMjggMTIyLjU2QzU2LjM5MzkgMTIxLjg1OCA1Ni4wMDg4IDEyMS4wNzQgNTYuMDA4OCAxMjAuMjI1VjU5Ljk0MDJINTcuMDk1VjEyMC4yMjVDNTcuMDk1IDEyMC43MjUgNTcuMzE3OCAxMjEuMjU5IDU3LjgzNjQgMTIxLjgyOUM1OC4zNTc4IDEyMi40MDMgNTkuMTUyNSAxMjIuOTgyIDYwLjIyMTMgMTIzLjU1QzYyLjM1ODEgMTI0LjY4NyA2NS40ODU5IDEyNS43MjcgNjkuMzk2OCAxMjYuNjA3Qzc3LjIwOTkgMTI4LjM2NSA4OC4wMzAxIDEyOS40NTcgMTAwIDEyOS40NTdDMTExLjk3IDEyOS40NTcgMTIyLjc5IDEyOC4zNjUgMTMwLjYwNCAxMjYuNjA3QzEzNC41MTQgMTI1LjcyNyAxMzcuNjQyIDEyNC42ODcgMTM5Ljc3OSAxMjMuNTVDMTQwLjg0OCAxMjIuOTgyIDE0MS42NDMgMTIyLjQwMyAxNDIuMTY0IDEyMS44MjlDMTQyLjY4MyAxMjEuMjU5IDE0Mi45MDUgMTIwLjcyNSAxNDIuOTA1IDEyMC4yMjVaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNDIuOTA1IDEyMC4yMjVWNTkuOTQwMkgxNDMuOTkyVjEyMC4yMjVDMTQzLjk5MiAxMjEuMDc0IDE0My42MDYgMTIxLjg1OCAxNDIuOTY4IDEyMi41NkMxNDIuMzMxIDEyMy4yNiAxNDEuNDE5IDEyMy45MDggMTQwLjI4OSAxMjQuNTA5QzEzOC4wMjkgMTI1LjcxMiAxMzQuNzk0IDEyNi43NzggMTMwLjg0MiAxMjcuNjY3QzEyMi45MyAxMjkuNDQ3IDExMi4wMjYgMTMwLjU0NCAxMDAgMTMwLjU0NEM4Ny45NzQ1IDEzMC41NDQgNzcuMDcwNSAxMjkuNDQ3IDY5LjE1ODQgMTI3LjY2N0M2NS4yMDY3IDEyNi43NzggNjEuOTcxNiAxMjUuNzEyIDU5LjcxMTIgMTI0LjUwOUM1OC41ODE1IDEyMy45MDggNTcuNjY5IDEyMy4yNiA1Ny4wMzI4IDEyMi41NkM1Ni4zOTM5IDEyMS44NTggNTYuMDA4OCAxMjEuMDc0IDU2LjAwODggMTIwLjIyNVY1OS45NDAySDU3LjA5NVYxMjAuMjI1QzU3LjA5NSAxMjAuNzI1IDU3LjMxNzggMTIxLjI1OSA1Ny44MzY0IDEyMS44MjlDNTguMzU3OCAxMjIuNDAzIDU5LjE1MjUgMTIyLjk4MiA2MC4yMjEzIDEyMy41NUM2Mi4zNTgxIDEyNC42ODcgNjUuNDg1OSAxMjUuNzI3IDY5LjM5NjggMTI2LjYwN0M3Ny4yMDk5IDEyOC4zNjUgODguMDMwMSAxMjkuNDU3IDEwMCAxMjkuNDU3QzExMS45NyAxMjkuNDU3IDEyMi43OSAxMjguMzY1IDEzMC42MDQgMTI2LjYwN0MxMzQuNTE0IDEyNS43MjcgMTM3LjY0MiAxMjQuNjg3IDEzOS43NzkgMTIzLjU1QzE0MC44NDggMTIyLjk4MiAxNDEuNjQzIDEyMi40MDMgMTQyLjE2NCAxMjEuODI5QzE0Mi42ODMgMTIxLjI1OSAxNDIuOTA1IDEyMC43MjUgMTQyLjkwNSAxMjAuMjI1WiIgZmlsbD0iIzYyMTZGRiIgZmlsbC1vcGFjaXR5PSIwLjAyIi8+CjxwYXRoIGQ9Ik0xNDIuOTA1IDU5Ljk0MDJWNTguODU0SDE0MS44MTlWNTkuOTQwMkgxNDIuOTA1Wk0xNDMuOTkyIDU5Ljk0MDJIMTQ1LjA3OFY1OC44NTRIMTQzLjk5MlY1OS45NDAyWk0xNDIuOTY4IDEyMi41NkwxNDIuMTY0IDEyMS44MjlMMTQyLjk2OCAxMjIuNTZaTTE0MC4yODkgMTI0LjUwOUwxMzkuNzc5IDEyMy41NUgxMzkuNzc5TDE0MC4yODkgMTI0LjUwOVpNMTMwLjg0MiAxMjcuNjY3TDEzMS4wOCAxMjguNzI3TDEzMC44NDIgMTI3LjY2N1pNNjkuMTU4NCAxMjcuNjY3TDY4LjkxOTkgMTI4LjcyN0g2OC45MTk5TDY5LjE1ODQgMTI3LjY2N1pNNTkuNzExMiAxMjQuNTA5TDYwLjIyMTMgMTIzLjU1SDYwLjIyMTNMNTkuNzExMiAxMjQuNTA5Wk01Ny4wMzI4IDEyMi41Nkw1Ny44MzY0IDEyMS44MjlINTcuODM2NEw1Ny4wMzI4IDEyMi41NlpNNTYuMDA4OCA1OS45NDAyVjU4Ljg1NEg1NC45MjI2VjU5Ljk0MDJINTYuMDA4OFpNNTcuMDk1IDU5Ljk0MDJINTguMTgxMlY1OC44NTRINTcuMDk1VjU5Ljk0MDJaTTU3LjgzNjQgMTIxLjgyOUw1OC42NCAxMjEuMDk5TDU4LjY0IDEyMS4wOTlMNTcuODM2NCAxMjEuODI5Wk02MC4yMjEzIDEyMy41NUw1OS43MTEyIDEyNC41MDlINTkuNzExMkw2MC4yMjEzIDEyMy41NVpNNjkuMzk2OCAxMjYuNjA3TDY5LjE1ODQgMTI3LjY2N0g2OS4xNTg0TDY5LjM5NjggMTI2LjYwN1pNMTMwLjYwNCAxMjYuNjA3TDEzMC44NDIgMTI3LjY2N0wxMzAuNjA0IDEyNi42MDdaTTEzOS43NzkgMTIzLjU1TDEzOS4yNjkgMTIyLjU5MUwxMzkuNzc5IDEyMy41NVpNMTQyLjE2NCAxMjEuODI5TDE0Mi45NjggMTIyLjU2TDE0Mi45NjggMTIyLjU2TDE0Mi4xNjQgMTIxLjgyOVpNMTQxLjgxOSA1OS45NDAyVjEyMC4yMjVIMTQzLjk5MlY1OS45NDAySDE0MS44MTlaTTE0My45OTIgNTguODU0SDE0Mi45MDVWNjEuMDI2NEgxNDMuOTkyVjU4Ljg1NFpNMTQ1LjA3OCAxMjAuMjI1VjU5Ljk0MDJIMTQyLjkwNVYxMjAuMjI1SDE0NS4wNzhaTTE0My43NzEgMTIzLjI5MUMxNDQuNTMgMTIyLjQ1NyAxNDUuMDc4IDEyMS40MjQgMTQ1LjA3OCAxMjAuMjI1SDE0Mi45MDVDMTQyLjkwNSAxMjAuNzI0IDE0Mi42ODMgMTIxLjI1OSAxNDIuMTY0IDEyMS44MjlMMTQzLjc3MSAxMjMuMjkxWk0xNDAuNzk5IDEyNS40NjhDMTQxLjk5IDEyNC44MzUgMTQzLjAyIDEyNC4xMTcgMTQzLjc3MSAxMjMuMjkxTDE0Mi4xNjQgMTIxLjgyOUMxNDEuNjQzIDEyMi40MDMgMTQwLjg0OCAxMjIuOTgyIDEzOS43NzkgMTIzLjU1TDE0MC43OTkgMTI1LjQ2OFpNMTMxLjA4IDEyOC43MjdDMTM1LjA3MyAxMjcuODI5IDEzOC40MTUgMTI2LjczNyAxNDAuNzk5IDEyNS40NjhMMTM5Ljc3OSAxMjMuNTVDMTM3LjY0MiAxMjQuNjg3IDEzNC41MTQgMTI1LjcyNyAxMzAuNjA0IDEyNi42MDdMMTMxLjA4IDEyOC43MjdaTTEwMCAxMzEuNjNDMTEyLjA4MSAxMzEuNjMgMTIzLjA2OSAxMzAuNTI5IDEzMS4wOCAxMjguNzI3TDEzMC42MDQgMTI2LjYwN0MxMjIuNzkgMTI4LjM2NSAxMTEuOTcgMTI5LjQ1NyAxMDAgMTI5LjQ1N1YxMzEuNjNaTTY4LjkxOTkgMTI4LjcyN0M3Ni45MzEyIDEzMC41MjkgODcuOTE4OSAxMzEuNjMgMTAwIDEzMS42M1YxMjkuNDU3Qzg4LjAzMDEgMTI5LjQ1NyA3Ny4yMDk5IDEyOC4zNjUgNjkuMzk2OCAxMjYuNjA3TDY4LjkxOTkgMTI4LjcyN1pNNTkuMjAxMSAxMjUuNDY4QzYxLjU4NTEgMTI2LjczNyA2NC45Mjc1IDEyNy44MjkgNjguOTE5OSAxMjguNzI3TDY5LjM5NjggMTI2LjYwN0M2NS40ODU5IDEyNS43MjcgNjIuMzU4MiAxMjQuNjg3IDYwLjIyMTMgMTIzLjU1TDU5LjIwMTEgMTI1LjQ2OFpNNTYuMjI5MiAxMjMuMjkxQzU2Ljk4MDEgMTI0LjExNyA1OC4wMTA0IDEyNC44MzUgNTkuMjAxMSAxMjUuNDY4TDYwLjIyMTMgMTIzLjU1QzU5LjE1MjUgMTIyLjk4MiA1OC4zNTc4IDEyMi40MDMgNTcuODM2NCAxMjEuODI5TDU2LjIyOTIgMTIzLjI5MVpNNTQuOTIyNiAxMjAuMjI1QzU0LjkyMjYgMTIxLjQyNCA1NS40NzAzIDEyMi40NTcgNTYuMjI5MiAxMjMuMjkxTDU3LjgzNjQgMTIxLjgyOUM1Ny4zMTc0IDEyMS4yNTkgNTcuMDk1IDEyMC43MjQgNTcuMDk1IDEyMC4yMjVINTQuOTIyNlpNNTcuMDk1IDEyMC4yMjVWNTkuOTQwMkg1NC45MjI2VjEyMC4yMjVINTcuMDk1Wk01Ni4wMDg4IDYxLjAyNjRINTcuMDk1VjU4Ljg1NEg1Ni4wMDg4VjYxLjAyNjRaTTU2LjAwODggNTkuOTQwMlYxMjAuMjI1SDU4LjE4MTJWNTkuOTQwMkg1Ni4wMDg4Wk01OC42NCAxMjEuMDk5QzU4LjI0MjQgMTIwLjY2MSA1OC4xODEyIDEyMC4zNzYgNTguMTgxMiAxMjAuMjI1SDU2LjAwODhDNTYuMDA4OCAxMjEuMDc0IDU2LjM5MzIgMTIxLjg1NyA1Ny4wMzI4IDEyMi41Nkw1OC42NCAxMjEuMDk5Wk02MC43MzE1IDEyMi41OTFDNTkuNzIzNCAxMjIuMDU1IDU5LjA0NjYgMTIxLjU0NiA1OC42NCAxMjEuMDk5TDU3LjAzMjggMTIyLjU2QzU3LjY2OSAxMjMuMjYgNTguNTgxNSAxMjMuOTA4IDU5LjcxMTIgMTI0LjUwOUw2MC43MzE1IDEyMi41OTFaTTY5LjYzNTMgMTI1LjU0OEM2NS43NjUxIDEyNC42NzcgNjIuNzQ0NyAxMjMuNjYyIDYwLjczMTUgMTIyLjU5MUw1OS43MTEyIDEyNC41MDlDNjEuOTcxNiAxMjUuNzEyIDY1LjIwNjcgMTI2Ljc3OCA2OS4xNTg0IDEyNy42NjdMNjkuNjM1MyAxMjUuNTQ4Wk0xMDAgMTI4LjM3MUM4OC4wODU2IDEyOC4zNzEgNzcuMzQ5MiAxMjcuMjgzIDY5LjYzNTMgMTI1LjU0OEw2OS4xNTg0IDEyNy42NjdDNzcuMDcwNSAxMjkuNDQ3IDg3Ljk3NDUgMTMwLjU0NCAxMDAgMTMwLjU0NFYxMjguMzcxWk0xMzAuMzY1IDEyNS41NDhDMTIyLjY1MSAxMjcuMjgzIDExMS45MTUgMTI4LjM3MSAxMDAgMTI4LjM3MVYxMzAuNTQ0QzExMi4wMjYgMTMwLjU0NCAxMjIuOTMgMTI5LjQ0NyAxMzAuODQyIDEyNy42NjdMMTMwLjM2NSAxMjUuNTQ4Wk0xMzkuMjY5IDEyMi41OTFDMTM3LjI1NiAxMjMuNjYyIDEzNC4yMzUgMTI0LjY3NyAxMzAuMzY1IDEyNS41NDhMMTMwLjg0MiAxMjcuNjY3QzEzNC43OTQgMTI2Ljc3OCAxMzguMDI5IDEyNS43MTIgMTQwLjI4OSAxMjQuNTA5TDEzOS4yNjkgMTIyLjU5MVpNMTQxLjM2IDEyMS4wOTlDMTQwLjk1NCAxMjEuNTQ2IDE0MC4yNzcgMTIyLjA1NSAxMzkuMjY5IDEyMi41OTFMMTQwLjI4OSAxMjQuNTA5QzE0MS40MTkgMTIzLjkwOCAxNDIuMzMxIDEyMy4yNiAxNDIuOTY4IDEyMi41NkwxNDEuMzYgMTIxLjA5OVpNMTQxLjgxOSAxMjAuMjI1QzE0MS44MTkgMTIwLjM3NiAxNDEuNzU4IDEyMC42NjEgMTQxLjM2IDEyMS4wOTlMMTQyLjk2OCAxMjIuNTZDMTQzLjYwNyAxMjEuODU3IDE0My45OTIgMTIxLjA3NCAxNDMuOTkyIDEyMC4yMjVIMTQxLjgxOVoiIGZpbGw9IiMyNDI3NzAiIG1hc2s9InVybCgjcGF0aC03LWluc2lkZS0xXzM0NjFfNDcwNzcpIi8+CjxwYXRoIG9wYWNpdHk9IjAuMSIgZD0iTTE0My40NDggNTkuOTQwMkMxNDMuNDQ4IDU0Ljc4MDcgMTIzLjA4MiA1MC4xNjQzIDEwMCA1MC4xNjQzQzc2LjAwNDIgNTAuMTY0MyA1Ni41NTE4IDU1LjA1MjIgNTYuNTUxOCA1OS45NDAyIiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8cGF0aCBkPSJNMTAwIDcwLjgwMjNDNzAuNjcyNCA3MC44MDIzIDU2LjU1MTggNjUuNjEzNCA1Ni41NTE4IDYwLjAyNzVDNTYuNTUxOCA1NC40NDE3IDg2LjE1MyA0Ny43Mjg0IDg5LjY0MDUgNDYuOTA1OCIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPHBhdGggZD0iTTEwMCA3MC44MDIzQzEyOS4zMjggNzAuODAyMyAxNDMuNDQ4IDY1LjYxMzQgMTQzLjQ0OCA2MC4wMjc1QzE0My40NDggNTQuNDQxNyAxMTMuODQ3IDQ3LjcyODQgMTEwLjM1OSA0Ni45MDU4IiBzdHJva2U9IiMyNDI3NzAiIHN0cm9rZS13aWR0aD0iMS4wODYyMSIvPgo8bWFzayBpZD0icGF0aC0xMi1pbnNpZGUtMl8zNDYxXzQ3MDc3IiBmaWxsPSJ3aGl0ZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTAuMjIzOSA0NC40MjI5VjQ2LjQ5NDlDOTAuMjk5NyA0Ni41NTMgOTAuNDQ0NCA0Ni42MzIxIDkwLjY4MTcgNDYuNzIwN0M5MS4xNTM2IDQ2Ljg5NjkgOTEuODY3OCA0Ny4wNjU2IDkyLjc4NzkgNDcuMjEwOUM5NC42MTk1IDQ3LjUwMDEgOTcuMTY5NiA0Ny42ODE1IDk5Ljk5OTggNDcuNjgxNUMxMDIuODMgNDcuNjgxNSAxMDUuMzggNDcuNTAwMSAxMDcuMjEyIDQ3LjIxMDlDMTA4LjEzMiA0Ny4wNjU2IDEwOC44NDYgNDYuODk2OSAxMDkuMzE4IDQ2LjcyMDdDMTA5LjU1NSA0Ni42MzIxIDEwOS43IDQ2LjU1MyAxMDkuNzc2IDQ2LjQ5NDlWNDQuNDIyOUgxMTAuODYyVjQ2LjU5NTNDMTEwLjg2MiA0Ni45NTc3IDExMC42MyA0Ny4yMDc4IDExMC40NDEgNDcuMzUzNkMxMTAuMjQxIDQ3LjUwNzYgMTA5Ljk4MSA0Ny42MzI2IDEwOS42OTggNDcuNzM4M0MxMDkuMTI1IDQ3Ljk1MTkgMTA4LjMyOCA0OC4xMzQzIDEwNy4zODEgNDguMjgzOEMxMDUuNDc4IDQ4LjU4NDMgMTAyLjg2OSA0OC43Njc3IDk5Ljk5OTggNDguNzY3N0M5Ny4xMzEgNDguNzY3NyA5NC41MjE2IDQ4LjU4NDMgOTIuNjE4NSA0OC4yODM4QzkxLjY3MTIgNDguMTM0MyA5MC44NzQxIDQ3Ljk1MTkgOTAuMzAxOCA0Ny43MzgzQzkwLjAxODYgNDcuNjMyNiA4OS43NTgyIDQ3LjUwNzYgODkuNTU4NyA0Ny4zNTM2Qzg5LjM2OTYgNDcuMjA3OCA4OS4xMzc3IDQ2Ljk1NzcgODkuMTM3NyA0Ni41OTUzVjQ0LjQyMjlIOTAuMjIzOVoiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkwLjIyMzkgNDQuNDIyOVY0Ni40OTQ5QzkwLjI5OTcgNDYuNTUzIDkwLjQ0NDQgNDYuNjMyMSA5MC42ODE3IDQ2LjcyMDdDOTEuMTUzNiA0Ni44OTY5IDkxLjg2NzggNDcuMDY1NiA5Mi43ODc5IDQ3LjIxMDlDOTQuNjE5NSA0Ny41MDAxIDk3LjE2OTYgNDcuNjgxNSA5OS45OTk4IDQ3LjY4MTVDMTAyLjgzIDQ3LjY4MTUgMTA1LjM4IDQ3LjUwMDEgMTA3LjIxMiA0Ny4yMTA5QzEwOC4xMzIgNDcuMDY1NiAxMDguODQ2IDQ2Ljg5NjkgMTA5LjMxOCA0Ni43MjA3QzEwOS41NTUgNDYuNjMyMSAxMDkuNyA0Ni41NTMgMTA5Ljc3NiA0Ni40OTQ5VjQ0LjQyMjlIMTEwLjg2MlY0Ni41OTUzQzExMC44NjIgNDYuOTU3NyAxMTAuNjMgNDcuMjA3OCAxMTAuNDQxIDQ3LjM1MzZDMTEwLjI0MSA0Ny41MDc2IDEwOS45ODEgNDcuNjMyNiAxMDkuNjk4IDQ3LjczODNDMTA5LjEyNSA0Ny45NTE5IDEwOC4zMjggNDguMTM0MyAxMDcuMzgxIDQ4LjI4MzhDMTA1LjQ3OCA0OC41ODQzIDEwMi44NjkgNDguNzY3NyA5OS45OTk4IDQ4Ljc2NzdDOTcuMTMxIDQ4Ljc2NzcgOTQuNTIxNiA0OC41ODQzIDkyLjYxODUgNDguMjgzOEM5MS42NzEyIDQ4LjEzNDMgOTAuODc0MSA0Ny45NTE5IDkwLjMwMTggNDcuNzM4M0M5MC4wMTg2IDQ3LjYzMjYgODkuNzU4MiA0Ny41MDc2IDg5LjU1ODcgNDcuMzUzNkM4OS4zNjk2IDQ3LjIwNzggODkuMTM3NyA0Ni45NTc3IDg5LjEzNzcgNDYuNTk1M1Y0NC40MjI5SDkwLjIyMzlaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTAuMjIzOSA0Ni40OTQ5SDg5LjEzNzdWNDcuMDMxNEw4OS41NjM3IDQ3LjM1NzVMOTAuMjIzOSA0Ni40OTQ5Wk05MC4yMjM5IDQ0LjQyMjlIOTEuMzEwMVY0My4zMzY2SDkwLjIyMzlWNDQuNDIyOVpNOTAuNjgxNyA0Ni43MjA3TDkxLjA2MTUgNDUuNzAzTDkwLjY4MTcgNDYuNzIwN1pNOTIuNzg3OSA0Ny4yMTA5TDkyLjk1NzMgNDYuMTM4SDkyLjk1NzNMOTIuNzg3OSA0Ny4yMTA5Wk0xMDcuMjEyIDQ3LjIxMDlMMTA3LjA0MiA0Ni4xMzhMMTA3LjIxMiA0Ny4yMTA5Wk0xMDkuMzE4IDQ2LjcyMDdMMTA4LjkzOCA0NS43MDNWNDUuNzAzTDEwOS4zMTggNDYuNzIwN1pNMTA5Ljc3NiA0Ni40OTQ5TDExMC40MzYgNDcuMzU3NUwxMTAuODYyIDQ3LjAzMTRWNDYuNDk0OUgxMDkuNzc2Wk0xMDkuNzc2IDQ0LjQyMjlWNDMuMzM2NkgxMDguNjg5VjQ0LjQyMjlIMTA5Ljc3NlpNMTEwLjg2MiA0NC40MjI5SDExMS45NDhWNDMuMzM2NkgxMTAuODYyVjQ0LjQyMjlaTTExMC40NDEgNDcuMzUzNkwxMTEuMTA0IDQ4LjIxMzZMMTExLjEwNCA0OC4yMTM2TDExMC40NDEgNDcuMzUzNlpNMTA5LjY5OCA0Ny43MzgzTDExMC4wNzggNDguNzU1OUwxMTAuMDc4IDQ4Ljc1NTlMMTA5LjY5OCA0Ny43MzgzWk0xMDcuMzgxIDQ4LjI4MzhMMTA3LjIxMiA0Ny4yMTA5TDEwNy4zODEgNDguMjgzOFpNOTIuNjE4NSA0OC4yODM4TDkyLjc4NzkgNDcuMjEwOUg5Mi43ODc5TDkyLjYxODUgNDguMjgzOFpNOTAuMzAxOCA0Ny43MzgzTDg5LjkyMTkgNDguNzU1OUw4OS45MjE5IDQ4Ljc1NTlMOTAuMzAxOCA0Ny43MzgzWk04OS41NTg3IDQ3LjM1MzZMODguODk1MSA0OC4yMTM2TDg5LjU1ODcgNDcuMzUzNlpNODkuMTM3NyA0NC40MjI5VjQzLjMzNjZIODguMDUxNVY0NC40MjI5SDg5LjEzNzdaTTkxLjMxMDEgNDYuNDk0OVY0NC40MjI5SDg5LjEzNzdWNDYuNDk0OUg5MS4zMTAxWk05MS4wNjE1IDQ1LjcwM0M5MC45NzMzIDQ1LjY3MDEgOTAuOTE1NyA0NS42NDM5IDkwLjg4MjcgNDUuNjI3MkM5MC44NDU5IDQ1LjYwODYgOTAuODUyOCA0NS42MDg0IDkwLjg4NDEgNDUuNjMyNEw4OS41NjM3IDQ3LjM1NzVDODkuNzYyMyA0Ny41MDk1IDkwLjAyMDYgNDcuNjMzMyA5MC4zMDE4IDQ3LjczODNMOTEuMDYxNSA0NS43MDNaTTkyLjk1NzMgNDYuMTM4QzkyLjA2NDMgNDUuOTk3IDkxLjQzMzEgNDUuODQxOCA5MS4wNjE1IDQ1LjcwM0w5MC4zMDE4IDQ3LjczODNDOTAuODc0MiA0Ny45NTIgOTEuNjcxMyA0OC4xMzQzIDkyLjYxODUgNDguMjgzOEw5Mi45NTczIDQ2LjEzOFpNOTkuOTk5OCA0Ni41OTUzQzk3LjIwODIgNDYuNTk1MyA5NC43MTc0IDQ2LjQxNTkgOTIuOTU3MyA0Ni4xMzhMOTIuNjE4NSA0OC4yODM4Qzk0LjUyMTYgNDguNTg0MyA5Ny4xMzEgNDguNzY3NyA5OS45OTk4IDQ4Ljc2NzdWNDYuNTk1M1pNMTA3LjA0MiA0Ni4xMzhDMTA1LjI4MiA0Ni40MTU5IDEwMi43OTEgNDYuNTk1MyA5OS45OTk4IDQ2LjU5NTNWNDguNzY3N0MxMDIuODY5IDQ4Ljc2NzcgMTA1LjQ3OCA0OC41ODQzIDEwNy4zODEgNDguMjgzOEwxMDcuMDQyIDQ2LjEzOFpNMTA4LjkzOCA0NS43MDNDMTA4LjU2NiA0NS44NDE4IDEwNy45MzUgNDUuOTk3IDEwNy4wNDIgNDYuMTM4TDEwNy4zODEgNDguMjgzOEMxMDguMzI4IDQ4LjEzNDMgMTA5LjEyNSA0Ny45NTIgMTA5LjY5OCA0Ny43MzgzTDEwOC45MzggNDUuNzAzWk0xMDkuMTE1IDQ1LjYzMjRDMTA5LjE0NyA0NS42MDg0IDEwOS4xNTQgNDUuNjA4NSAxMDkuMTE3IDQ1LjYyNzJDMTA5LjA4NCA0NS42NDM5IDEwOS4wMjYgNDUuNjcwMSAxMDguOTM4IDQ1LjcwM0wxMDkuNjk4IDQ3LjczODNDMTA5Ljk3OSA0Ny42MzMzIDExMC4yMzcgNDcuNTA5NSAxMTAuNDM2IDQ3LjM1NzVMMTA5LjExNSA0NS42MzI0Wk0xMTAuODYyIDQ2LjQ5NDlWNDQuNDIyOUgxMDguNjg5VjQ2LjQ5NDlIMTEwLjg2MlpNMTA5Ljc3NiA0NS41MDkxSDExMC44NjJWNDMuMzM2NkgxMDkuNzc2VjQ1LjUwOTFaTTEwOS43NzYgNDQuNDIyOVY0Ni41OTUzSDExMS45NDhWNDQuNDIyOUgxMDkuNzc2Wk0xMTEuMTA0IDQ4LjIxMzZDMTExLjM5MiA0Ny45OTE4IDExMS45NDggNDcuNDYxMiAxMTEuOTQ4IDQ2LjU5NTNIMTA5Ljc3NkMxMDkuNzc2IDQ2LjU2NzkgMTA5Ljc4IDQ2LjUzOTMgMTA5Ljc4OSA0Ni41MTMyQzEwOS43OTcgNDYuNDg4MiAxMDkuODA2IDQ2LjQ3MjIgMTA5LjgxIDQ2LjQ2NTNDMTA5LjgxNSA0Ni40NTkgMTA5LjgxNSA0Ni40NTk4IDEwOS44MDggNDYuNDY2N0MxMDkuODAyIDQ2LjQ3MzUgMTA5Ljc5MSA0Ni40ODI4IDEwOS43NzcgNDYuNDkzNkwxMTEuMTA0IDQ4LjIxMzZaTTExMC4wNzggNDguNzU1OUMxMTAuNDA1IDQ4LjYzMzYgMTEwLjc4MSA0OC40NjMzIDExMS4xMDQgNDguMjEzNkwxMDkuNzc3IDQ2LjQ5MzZDMTA5LjcwMiA0Ni41NTE5IDEwOS41NTcgNDYuNjMxNSAxMDkuMzE4IDQ2LjcyMDdMMTEwLjA3OCA0OC43NTU5Wk0xMDcuNTUgNDkuMzU2N0MxMDguNTI1IDQ5LjIwMjkgMTA5LjQwNSA0OS4wMDcgMTEwLjA3OCA0OC43NTU5TDEwOS4zMTggNDYuNzIwN0MxMDguODQ2IDQ2Ljg5NjkgMTA4LjEzMiA0Ny4wNjU2IDEwNy4yMTIgNDcuMjEwOUwxMDcuNTUgNDkuMzU2N1pNOTkuOTk5OCA0OS44NTM5QzEwMi45MDcgNDkuODUzOSAxMDUuNTc2IDQ5LjY2ODUgMTA3LjU1IDQ5LjM1NjdMMTA3LjIxMiA0Ny4yMTA5QzEwNS4zOCA0Ny41MDAxIDEwMi44MyA0Ny42ODE1IDk5Ljk5OTggNDcuNjgxNVY0OS44NTM5Wk05Mi40NDkgNDkuMzU2N0M5NC40MjM2IDQ5LjY2ODUgOTcuMDkyNCA0OS44NTM5IDk5Ljk5OTggNDkuODUzOVY0Ny42ODE1Qzk3LjE2OTYgNDcuNjgxNSA5NC42MTk1IDQ3LjUwMDEgOTIuNzg3OSA0Ny4yMTA5TDkyLjQ0OSA0OS4zNTY3Wk04OS45MjE5IDQ4Ljc1NTlDOTAuNTk0NiA0OS4wMDcgOTEuNDc0NSA0OS4yMDI5IDkyLjQ0OSA0OS4zNTY3TDkyLjc4NzkgNDcuMjEwOUM5MS44Njc4IDQ3LjA2NTYgOTEuMTUzNyA0Ni44OTY5IDkwLjY4MTcgNDYuNzIwN0w4OS45MjE5IDQ4Ljc1NTlaTTg4Ljg5NTEgNDguMjEzNkM4OS4yMTg3IDQ4LjQ2MzMgODkuNTk0NCA0OC42MzM2IDg5LjkyMTkgNDguNzU1OUw5MC42ODE3IDQ2LjcyMDdDOTAuNDQyOSA0Ni42MzE1IDkwLjI5NzcgNDYuNTUxOSA5MC4yMjIyIDQ2LjQ5MzZMODguODk1MSA0OC4yMTM2Wk04OC4wNTE1IDQ2LjU5NTNDODguMDUxNSA0Ny40NjEyIDg4LjYwNzcgNDcuOTkxOCA4OC44OTUxIDQ4LjIxMzZMOTAuMjIyMiA0Ni40OTM2QzkwLjIwODIgNDYuNDgyOCA5MC4xOTc5IDQ2LjQ3MzUgOTAuMTkxMyA0Ni40NjY3QzkwLjE4NDYgNDYuNDU5OCA5MC4xODUgNDYuNDU5IDkwLjE4OTEgNDYuNDY1M0M5MC4xOTM1IDQ2LjQ3MjIgOTAuMjAyOCA0Ni40ODgyIDkwLjIxMDggNDYuNTEzMkM5MC4yMTkyIDQ2LjUzOTMgOTAuMjIzOSA0Ni41Njc5IDkwLjIyMzkgNDYuNTk1M0g4OC4wNTE1Wk04OC4wNTE1IDQ0LjQyMjlWNDYuNTk1M0g5MC4yMjM5VjQ0LjQyMjlIODguMDUxNVpNOTAuMjIzOSA0My4zMzY2SDg5LjEzNzdWNDUuNTA5MUg5MC4yMjM5VjQzLjMzNjZaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMTItaW5zaWRlLTJfMzQ2MV80NzA3NykiLz4KPHBhdGggZD0iTTExMC4zMjMgNDQuMzk2MUMxMTAuMzIzIDQ0LjM5NjEgMTEwLjMyMiA0NC4zOTcgMTEwLjMyMiA0NC4zOTg5QzExMC4zMjIgNDQuMzk3IDExMC4zMjMgNDQuMzk2MSAxMTAuMzIzIDQ0LjM5NjFaTTExMC4yNjIgNDQuMzczNUMxMTAuMjgzIDQ0LjM5NDIgMTEwLjI5NyA0NC40MTA3IDExMC4zMDYgNDQuNDIyOUMxMTAuMjk3IDQ0LjQzNTEgMTEwLjI4MyA0NC40NTE2IDExMC4yNjIgNDQuNDcyM0MxMTAuMTc3IDQ0LjU1NSAxMTAuMDIzIDQ0LjY2MDcgMTA5Ljc3NiA0NC43Nzc1QzEwOS4yODUgNDUuMDA5OSAxMDguNTM5IDQ1LjIzMzUgMTA3LjU3NCA0NS40MjY1QzEwNS42NTMgNDUuODEwNyAxMDIuOTc1IDQ2LjA1MjIgOTkuOTk5OCA0Ni4wNTIyQzk3LjAyNDkgNDYuMDUyMiA5NC4zNDY3IDQ1LjgxMDcgOTIuNDI1NiA0NS40MjY1QzkxLjQ2MDYgNDUuMjMzNSA5MC43MTQ5IDQ1LjAwOTkgOTAuMjIzNSA0NC43Nzc1Qzg5Ljk3NjQgNDQuNjYwNyA4OS44MjI1IDQ0LjU1NSA4OS43MzggNDQuNDcyM0M4OS43MTY4IDQ0LjQ1MTYgODkuNzAyNiA0NC40MzUxIDg5LjY5MzQgNDQuNDIyOUM4OS43MDI2IDQ0LjQxMDcgODkuNzE2OCA0NC4zOTQyIDg5LjczOCA0NC4zNzM1Qzg5LjgyMjUgNDQuMjkwOCA4OS45NzY0IDQ0LjE4NTEgOTAuMjIzNSA0NC4wNjgzQzkwLjcxNDkgNDMuODM1OSA5MS40NjA2IDQzLjYxMjMgOTIuNDI1NiA0My40MTkzQzk0LjM0NjcgNDMuMDM1MSA5Ny4wMjQ5IDQyLjc5MzYgOTkuOTk5OCA0Mi43OTM2QzEwMi45NzUgNDIuNzkzNiAxMDUuNjUzIDQzLjAzNTEgMTA3LjU3NCA0My40MTkzQzEwOC41MzkgNDMuNjEyMyAxMDkuMjg1IDQzLjgzNTkgMTA5Ljc3NiA0NC4wNjgzQzExMC4wMjMgNDQuMTg1MSAxMTAuMTc3IDQ0LjI5MDggMTEwLjI2MiA0NC4zNzM1Wk04OS42NzY4IDQ0LjM5NjFDODkuNjc2OSA0NC4zOTYxIDg5LjY3NzQgNDQuMzk3IDg5LjY3NzkgNDQuMzk4OUM4OS42NzcgNDQuMzk3IDg5LjY3NjggNDQuMzk2MSA4OS42NzY4IDQ0LjM5NjFaTTg5LjY3NjggNDQuNDQ5N0M4OS42NzY4IDQ0LjQ0OTcgODkuNjc3IDQ0LjQ0ODggODkuNjc3OSA0NC40NDY5Qzg5LjY3NzQgNDQuNDQ4OCA4OS42NzY5IDQ0LjQ0OTcgODkuNjc2OCA0NC40NDk3Wk0xMTAuMzIyIDQ0LjQ0NjlDMTEwLjMyMiA0NC40NDg4IDExMC4zMjMgNDQuNDQ5NyAxMTAuMzIzIDQ0LjQ0OTdDMTEwLjMyMyA0NC40NDk3IDExMC4zMjIgNDQuNDQ4OCAxMTAuMzIyIDQ0LjQ0NjlaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8zNDYxXzQ3MDc3KSI+CjxyZWN0IHg9IjgwLjcxNzgiIHk9Ijg0LjY0MDQiIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik05NC4wOTQ3IDk4LjU5MDRWOTkuOTU1OEg4Ni42Mjc3TDg2LjU3MDggOTguOTI0N0w5MS4wMzY4IDkxLjkyNzFIOTIuNDA5M0w5MC45MjMgOTQuNDczTDg4LjM1NTggOTguNTkwNEg5NC4wOTQ3Wk05Mi44MDA0IDkxLjkyNzFWMTAyLjI4MUg5MS4wODY1VjkxLjkyNzFIOTIuODAwNFpNMTAxLjk4OCA5Ni4yMzY2Vjk3LjkyOTFDMTAxLjk4OCA5OC43Mzk4IDEwMS45MDggOTkuNDMyIDEwMS43NDYgMTAwLjAwNkMxMDEuNTkgMTAwLjU3NSAxMDEuMzYyIDEwMS4wMzcgMTAxLjA2NCAxMDEuMzkyQzEwMC43NjUgMTAxLjc0OCAxMDAuNDA3IDEwMi4wMDkgOTkuOTkgMTAyLjE3NUM5OS41Nzc1IDEwMi4zNDEgOTkuMTE1MyAxMDIuNDIzIDk4LjYwMzMgMTAyLjQyM0M5OC4xOTU1IDEwMi40MjMgOTcuODE2MyAxMDIuMzcxIDk3LjQ2NTQgMTAyLjI2N0M5Ny4xMTk0IDEwMi4xNjMgOTYuODA2NSAxMDEuOTk5IDk2LjUyNjcgMTAxLjc3NkM5Ni4yNDcgMTAxLjU1NCA5Ni4wMDc2IDEwMS4yNjcgOTUuODA4NSAxMDAuOTE2Qzk1LjYxNDEgMTAwLjU2IDk1LjQ2MjQgMTAwLjEzNiA5NS4zNTM0IDk5LjY0MjlDOTUuMjQ5MSA5OS4xNDk5IDk1LjE5NjkgOTguNTc4NiA5NS4xOTY5IDk3LjkyOTFWOTYuMjM2NkM5NS4xOTY5IDk1LjQyMTEgOTUuMjc3NSA5NC43MzM3IDk1LjQzODcgOTQuMTc0M0M5NS41OTk5IDkzLjYxMDEgOTUuODI5OCA5My4xNTI2IDk2LjEyODUgOTIuODAxOEM5Ni40MjcyIDkyLjQ0NjIgOTYuNzgyOCA5Mi4xODc4IDk3LjE5NTIgOTIuMDI2NkM5Ny42MTI0IDkxLjg2NTUgOTguMDc3IDkxLjc4NDkgOTguNTg5IDkxLjc4NDlDOTkuMDAxNSA5MS43ODQ5IDk5LjM4MDggOTEuODM3IDk5LjcyNjkgOTEuOTQxM0MxMDAuMDc4IDkyLjA0MDkgMTAwLjM5MSA5Mi4xOTk3IDEwMC42NjYgOTIuNDE3OEMxMDAuOTQ1IDkyLjYzNTkgMTAxLjE4MiA5Mi45MjAzIDEwMS4zNzcgOTMuMjcxMUMxMDEuNTc2IDkzLjYxNzIgMTAxLjcyOCA5NC4wMzY4IDEwMS44MzIgOTQuNTI5OEMxMDEuOTM2IDk1LjAxODIgMTAxLjk4OCA5NS41ODcxIDEwMS45ODggOTYuMjM2NlpNMTAwLjI3NCA5OC4xNzA5Vjk1Ljk4MDZDMTAwLjI3NCA5NS41NjgxIDEwMC4yNTEgOTUuMjA1NCAxMDAuMjAzIDk0Ljg5MjVDMTAwLjE1NiA5NC41NzQ5IDEwMC4wODUgOTQuMzA3IDk5Ljk5IDk0LjA4ODlDOTkuODk5OSA5My44NjYxIDk5Ljc4NjEgOTMuNjg2IDk5LjY0ODYgOTMuNTQ4NUM5OS41MTEyIDkzLjQwNjMgOTkuMzU0NyA5My4zMDQzIDk5LjE3OTMgOTMuMjQyN0M5OS4wMDM5IDkzLjE3NjMgOTguODA3MSA5My4xNDMxIDk4LjU4OSA5My4xNDMxQzk4LjMyMzYgOTMuMTQzMSA5OC4wODY1IDkzLjE5NTMgOTcuODc3OSA5My4yOTk2Qzk3LjY2OTMgOTMuMzk5MSA5Ny40OTM5IDkzLjU2MDMgOTcuMzUxNyA5My43ODMyQzk3LjIwOTQgOTQuMDA2IDk3LjEwMDQgOTQuMjk5OSA5Ny4wMjQ1IDk0LjY2NUM5Ni45NTM0IDk1LjAyNTMgOTYuOTE3OSA5NS40NjM4IDk2LjkxNzkgOTUuOTgwNlY5OC4xNzA5Qzk2LjkxNzkgOTguNTg4MSA5Ni45NDE2IDk4Ljk1NTUgOTYuOTg5IDk5LjI3MzFDOTcuMDM2NCA5OS41OTA4IDk3LjEwNzUgOTkuODYzNCA5Ny4yMDIzIDEwMC4wOTFDOTcuMjk3MSAxMDAuMzE0IDk3LjQxMDkgMTAwLjQ5OSA5Ny41NDM3IDEwMC42NDZDOTcuNjgxMiAxMDAuNzg4IDk3LjgzNzYgMTAwLjg5MiA5OC4wMTMgMTAwLjk1OUM5OC4xOTMyIDEwMS4wMjUgOTguMzg5OSAxMDEuMDU4IDk4LjYwMzMgMTAxLjA1OEM5OC44NzM1IDEwMS4wNTggOTkuMTEyOSAxMDEuMDA2IDk5LjMyMTUgMTAwLjkwMkM5OS41MzAxIDEwMC43OTcgOTkuNzA1NSAxMDAuNjMxIDk5Ljg0NzggMTAwLjQwNEM5OS45OSAxMDAuMTcyIDEwMC4wOTcgOTkuODcwNSAxMDAuMTY4IDk5LjUwMDdDMTAwLjIzOSA5OS4xMzA5IDEwMC4yNzQgOTguNjg3NiAxMDAuMjc0IDk4LjE3MDlaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjg3Ii8+CjxwYXRoIGQ9Ik0xMDcuMjY1IDk3LjM5NjlWOTcuMDU0NkMxMDcuMjY1IDk2LjgwODcgMTA3LjMxOCA5Ni41ODUgMTA3LjQyNSA5Ni4zODM1QzEwNy41MzEgOTYuMTgyIDEwNy42ODcgOTYuMDIwNSAxMDcuODkxIDk1Ljg5OUMxMDguMDk2IDk1Ljc3NzUgMTA4LjM0MiA5NS43MTY4IDEwOC42MjkgOTUuNzE2OEMxMDguOTI2IDk1LjcxNjggMTA5LjE3NCA5NS43Nzc1IDEwOS4zNzYgOTUuODk5QzEwOS41OCA5Ni4wMjA1IDEwOS43MzYgOTYuMTgyIDEwOS44NDMgOTYuMzgzNUMxMDkuOTQ5IDk2LjU4NSAxMTAuMDAzIDk2LjgwODcgMTEwLjAwMyA5Ny4wNTQ2Vjk3LjM5NjlDMTEwLjAwMyA5Ny42MzY5IDEwOS45NDkgOTcuODU3NiAxMDkuODQzIDk4LjA1OTFDMTA5LjczOSA5OC4yNjA2IDEwOS41ODUgOTguNDIyMSAxMDkuMzggOTguNTQzNkMxMDkuMTc5IDk4LjY2NTEgMTA4LjkzMiA5OC43MjU4IDEwOC42MzggOTguNzI1OEMxMDguMzQ4IDk4LjcyNTggMTA4LjA5OSA5OC42NjUxIDEwNy44OTEgOTguNTQzNkMxMDcuNjg3IDk4LjQyMjEgMTA3LjUzMSA5OC4yNjA2IDEwNy40MjUgOTguMDU5MUMxMDcuMzE4IDk3Ljg1NzYgMTA3LjI2NSA5Ny42MzY5IDEwNy4yNjUgOTcuMzk2OVpNMTA4LjAwNyA5Ny4wNTQ2Vjk3LjM5NjlDMTA4LjAwNyA5Ny41MTU0IDEwOC4wMjkgOTcuNjI4IDEwOC4wNzQgOTcuNzM0N0MxMDguMTIxIDk3Ljg0MTMgMTA4LjE5MiA5Ny45MjczIDEwOC4yODcgOTcuOTkyNEMxMDguMzgyIDk4LjA1NzYgMTA4LjQ5OSA5OC4wOTAyIDEwOC42MzggOTguMDkwMkMxMDguNzggOTguMDkwMiAxMDguODk2IDk4LjA1NzYgMTA4Ljk4NSA5Ny45OTI0QzEwOS4wNzcgOTcuOTI3MyAxMDkuMTQ1IDk3Ljg0MTMgMTA5LjE4OSA5Ny43MzQ3QzEwOS4yMzQgOTcuNjI4IDEwOS4yNTYgOTcuNTE1NCAxMDkuMjU2IDk3LjM5NjlWOTcuMDU0NkMxMDkuMjU2IDk2LjkzMzEgMTA5LjIzMiA5Ni44MTkxIDEwOS4xODUgOTYuNzEyNEMxMDkuMTQgOTYuNjAyOCAxMDkuMDcyIDk2LjUxNTQgMTA4Ljk4IDk2LjQ1MDJDMTA4Ljg4OSA5Ni4zODUgMTA4Ljc3MSA5Ni4zNTI0IDEwOC42MjkgOTYuMzUyNEMxMDguNDkzIDk2LjM1MjQgMTA4LjM3NyA5Ni4zODUgMTA4LjI4MyA5Ni40NTAyQzEwOC4xOTEgOTYuNTE1NCAxMDguMTIxIDk2LjYwMjggMTA4LjA3NCA5Ni43MTI0QzEwOC4wMjkgOTYuODE5MSAxMDguMDA3IDk2LjkzMzEgMTA4LjAwNyA5Ny4wNTQ2Wk0xMTAuMzg1IDEwMS4wNDFWMTAwLjY5NUMxMTAuMzg1IDEwMC40NTIgMTEwLjQzOCAxMDAuMjMgMTEwLjU0NSAxMDAuMDI4QzExMC42NTUgOTkuODI2NiAxMTAuODEyIDk5LjY2NTEgMTExLjAxNiA5OS41NDM2QzExMS4yMiA5OS40MjIxIDExMS40NjYgOTkuMzYxNCAxMTEuNzU0IDk5LjM2MTRDMTEyLjA1IDk5LjM2MTQgMTEyLjI5OSA5OS40MjIxIDExMi41MDEgOTkuNTQzNkMxMTIuNzA1IDk5LjY2NTEgMTEyLjg1OSA5OS44MjY2IDExMi45NjMgMTAwLjAyOEMxMTMuMDY5IDEwMC4yMyAxMTMuMTIzIDEwMC40NTIgMTEzLjEyMyAxMDAuNjk1VjEwMS4wNDFDMTEzLjEyMyAxMDEuMjg0IDExMy4wNjkgMTAxLjUwNyAxMTIuOTYzIDEwMS43MDhDMTEyLjg1OSAxMDEuOTEgMTEyLjcwNiAxMDIuMDcxIDExMi41MDUgMTAyLjE5M0MxMTIuMzAzIDEwMi4zMTQgMTEyLjA1OCAxMDIuMzc1IDExMS43NjcgMTAyLjM3NUMxMTEuNDc0IDEwMi4zNzUgMTExLjIyMyAxMDIuMzE0IDExMS4wMTYgMTAyLjE5M0MxMTAuODEyIDEwMi4wNzEgMTEwLjY1NSAxMDEuOTEgMTEwLjU0NSAxMDEuNzA4QzExMC40MzggMTAxLjUwNyAxMTAuMzg1IDEwMS4yODQgMTEwLjM4NSAxMDEuMDQxWk0xMTEuMTMyIDEwMC42OTVWMTAxLjA0MUMxMTEuMTMyIDEwMS4xNiAxMTEuMTU1IDEwMS4yNzMgMTExLjIwMyAxMDEuMzc5QzExMS4yNTMgMTAxLjQ4NiAxMTEuMzI2IDEwMS41NzMgMTExLjQyIDEwMS42NDFDMTExLjUxNSAxMDEuNzA3IDExMS42MjkgMTAxLjczOSAxMTEuNzYzIDEwMS43MzlDMTExLjkxNCAxMDEuNzM5IDExMi4wMzUgMTAxLjcwNyAxMTIuMTI3IDEwMS42NDFDMTEyLjIxOSAxMDEuNTczIDExMi4yODQgMTAxLjQ4NyAxMTIuMzIzIDEwMS4zODRDMTEyLjM2NCAxMDEuMjc3IDExMi4zODUgMTAxLjE2MyAxMTIuMzg1IDEwMS4wNDFWMTAwLjY5NUMxMTIuMzg1IDEwMC41NzMgMTEyLjM2MSAxMDAuNDU5IDExMi4zMTQgMTAwLjM1M0MxMTIuMjY5IDEwMC4yNDYgMTEyLjIgMTAwLjE2IDExMi4xMDUgMTAwLjA5NUMxMTIuMDEzIDEwMC4wMyAxMTEuODk2IDk5Ljk5NyAxMTEuNzU0IDk5Ljk5N0MxMTEuNjE1IDk5Ljk5NyAxMTEuNDk5IDEwMC4wMyAxMTEuNDA3IDEwMC4wOTVDMTExLjMxNSAxMDAuMTYgMTExLjI0NiAxMDAuMjQ2IDExMS4xOTggMTAwLjM1M0MxMTEuMTU0IDEwMC40NTkgMTExLjEzMiAxMDAuNTczIDExMS4xMzIgMTAwLjY5NVpNMTEyLjAyMSA5Ni43MzQ2TDEwOC44NiAxMDEuNzkzTDEwOC4zMTQgMTAxLjQ3N0wxMTEuNDc0IDk2LjQxOTFMMTEyLjAyMSA5Ni43MzQ2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8L2c+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iMTk5IiBoZWlnaHQ9IjE1OSIgcng9IjMuNSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLW9wYWNpdHk9IjAuMTIiLz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfYl8zNDYxXzQ3MDc3IiB4PSI3Ny40NjkxIiB5PSI4MS4zOTE3IiB3aWR0aD0iNDUuMDYxOCIgaGVpZ2h0PSIyOS45NTg4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjEuNjI0MzQiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfNDcwNzciLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzM0NjFfNDcwNzciIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMzQ2MV80NzA3NyI+CjxyZWN0IHdpZHRoPSI4My42Mzc5IiBoZWlnaHQ9Ijc0Ljk0ODMiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1OC4xODE2IDUyLjczMzQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==", - "description": "Widget indicates the level of liquid in Vertical Cylinder tank.", - "descriptor": { - "type": "latest", - "sizeX": 7.5, - "sizeY": 3, - "resources": [], - "templateHtml": "\n", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", - "settingsSchema": "{}", - "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-liquid-level-card-widget-settings", - "hasBasicMode": true, - "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" - }, - "externalId": null, - "tags": null -} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/vertical_oval.json b/application/src/main/data/json/system/widget_types/vertical_oval.json new file mode 100644 index 0000000000..98834e2006 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/vertical_oval.json @@ -0,0 +1,24 @@ +{ + "fqn": "vertical_oval_tank", + "name": "Vertical oval", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Widget indicates the level of liquid in Vertical oval tank.", + "descriptor": { + "type": "latest", + "sizeX": 4, + "sizeY": 4, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-liquid-level-card-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-liquid-level-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file 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 deleted file mode 100644 index 3ed2f719c9..0000000000 --- a/application/src/main/data/json/system/widget_types/vertical_oval_tank.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "fqn": "vertical_oval_tank", - "name": "Vertical Oval tank", - "deprecated": false, - "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE2MCIgdmlld0JveD0iMCAwIDIwMCAxNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMDAiIGhlaWdodD0iMTYwIiByeD0iNCIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjIyODUgMjEuMjg5MVYyMi41NTIySDEzLjU4ODRWMjEuMjg5MUgxOC4yMjg1Wk0xNC4wMzI3IDEzLjMxMDFWMjIuNTUyMkgxMi40Mzk1VjEzLjMxMDFIMTQuMDMyN1pNMjEuMTk1MyAxNS42ODQxVjIyLjU1MjJIMTkuNjU5MlYxNS42ODQxSDIxLjE5NTNaTTE5LjU1NzYgMTMuODgxM0MxOS41NTc2IDEzLjY0ODYgMTkuNjMzOCAxMy40NTYxIDE5Ljc4NjEgMTMuMzAzN0MxOS45NDI3IDEzLjE0NzEgMjAuMTU4NSAxMy4wNjg4IDIwLjQzMzYgMTMuMDY4OEMyMC43MDQ0IDEzLjA2ODggMjAuOTE4MSAxMy4xNDcxIDIxLjA3NDcgMTMuMzAzN0MyMS4yMzEzIDEzLjQ1NjEgMjEuMzA5NiAxMy42NDg2IDIxLjMwOTYgMTMuODgxM0MyMS4zMDk2IDE0LjEwOTkgMjEuMjMxMyAxNC4zMDAzIDIxLjA3NDcgMTQuNDUyNkMyMC45MTgxIDE0LjYwNSAyMC43MDQ0IDE0LjY4MTIgMjAuNDMzNiAxNC42ODEyQzIwLjE1ODUgMTQuNjgxMiAxOS45NDI3IDE0LjYwNSAxOS43ODYxIDE0LjQ1MjZDMTkuNjMzOCAxNC4zMDAzIDE5LjU1NzYgMTQuMTA5OSAxOS41NTc2IDEzLjg4MTNaTTI3LjMwNDIgMjUuMTkyOVYxNy4wNDg4TDI3LjQ4MTkgMTUuNjg0MUgyOC44NDY3VjI1LjE5MjlIMjcuMzA0MlpNMjIuODQxOCAxOS4xODhWMTkuMDU0N0MyMi44NDE4IDE4LjUzNDIgMjIuOTAxIDE4LjA2MDIgMjMuMDE5NSAxNy42MzI4QzIzLjEzOCAxNy4yMDEyIDIzLjMxMzYgMTYuODMwOSAyMy41NDY0IDE2LjUyMkMyMy43NzkxIDE2LjIxMzEgMjQuMDYyNyAxNS45NzYxIDI0LjM5NyAxNS44MTFDMjQuNzMxMyAxNS42NDE4IDI1LjExNjQgMTUuNTU3MSAyNS41NTIyIDE1LjU1NzFDMjUuOTc1NCAxNS41NTcxIDI2LjM0MzYgMTUuNjM3NSAyNi42NTY3IDE1Ljc5ODNDMjYuOTc0MSAxNS45NTkxIDI3LjI0MDcgMTYuMTg5OCAyNy40NTY1IDE2LjQ5MDJDMjcuNjc2NiAxNi43ODY1IDI3Ljg1MjIgMTcuMTM5OCAyNy45ODM0IDE3LjU1MDNDMjguMTE0NiAxNy45NjA4IDI4LjIwOTggMTguNDE3OCAyOC4yNjkgMTguOTIxNFYxOS4zNDY3QzI4LjIxNCAxOS44Mzc2IDI4LjEyMDkgMjAuMjg2MSAyNy45ODk3IDIwLjY5MjRDMjcuODU4NiAyMS4wOTg2IDI3LjY4MjkgMjEuNDQ5OSAyNy40NjI5IDIxLjc0NjFDMjcuMjQyOCAyMi4wNDIzIDI2Ljk3NDEgMjIuMjcyOSAyNi42NTY3IDIyLjQzOEMyNi4zMzk0IDIyLjU5ODggMjUuOTY3IDIyLjY3OTIgMjUuNTM5NiAyMi42NzkyQzI1LjExMjEgMjIuNjc5MiAyNC43MzEzIDIyLjU5MjQgMjQuMzk3IDIyLjQxODlDMjQuMDYyNyAyMi4yNDU0IDIzLjc3OTEgMjIuMDAyMSAyMy41NDY0IDIxLjY4OUMyMy4zMTc5IDIxLjM3MTYgMjMuMTQyMyAyMS4wMDEzIDIzLjAxOTUgMjAuNTc4MUMyMi45MDEgMjAuMTUwNyAyMi44NDE4IDE5LjY4NzMgMjIuODQxOCAxOS4xODhaTTI0LjM3MTYgMTkuMDU0N1YxOS4xODhDMjQuMzcxNiAxOS41MDExIDI0LjM5OTEgMTkuNzk1MiAyNC40NTQxIDIwLjA3MDNDMjQuNTEzMyAyMC4zNDExIDI0LjYwNjQgMjAuNTgyNCAyNC43MzM0IDIwLjc5MzlDMjQuODYwNCAyMS4wMDEzIDI1LjAyMTIgMjEuMTY0MiAyNS4yMTU4IDIxLjI4MjdDMjUuNDEwNSAyMS40MDEyIDI1LjY0NTMgMjEuNDYwNCAyNS45MjA0IDIxLjQ2MDRDMjYuMjgwMSAyMS40NjA0IDI2LjU3NDIgMjEuMzgyMiAyNi44MDI3IDIxLjIyNTZDMjcuMDM1NSAyMS4wNjkgMjcuMjEzMiAyMC44NTk1IDI3LjMzNTkgMjAuNTk3MkMyNy40NjI5IDIwLjMzMDYgMjcuNTUxOCAyMC4wMzY1IDI3LjYwMjUgMTkuNzE0OFYxOC41NjU5QzI3LjU3MjkgMTguMzE2MiAyNy41MiAxOC4wODM1IDI3LjQ0MzggMTcuODY3N0MyNy4zNjc3IDE3LjY0NzYgMjcuMjYxOSAxNy40NTcyIDI3LjEyNjUgMTcuMjk2NEMyNi45OTUzIDE3LjEzMTMgMjYuODMwMiAxNy4wMDQ0IDI2LjYzMTMgMTYuOTE1NUMyNi40MzY3IDE2LjgyMjQgMjYuMjAzOSAxNi43NzU5IDI1LjkzMzEgMTYuNzc1OUMyNS42NTggMTYuNzc1OSAyNS40MjExIDE2LjgzNTEgMjUuMjIyMiAxNi45NTM2QzI1LjAyMzMgMTcuMDcyMSAyNC44NjA0IDE3LjIzNzEgMjQuNzMzNCAxNy40NDg3QzI0LjYxMDcgMTcuNjU2MSAyNC41MTk3IDE3Ljg5NzMgMjQuNDYwNCAxOC4xNzI0QzI0LjQwMTIgMTguNDQ3NCAyNC4zNzE2IDE4Ljc0MTUgMjQuMzcxNiAxOS4wNTQ3Wk0zNC44NjY3IDIwLjkzMzZWMTUuNjg0MUgzNi40MDI4VjIyLjU1MjJIMzQuOTU1NkwzNC44NjY3IDIwLjkzMzZaTTM1LjA4MjUgMTkuNTA1NEwzNS41OTY3IDE5LjQ5MjdDMzUuNTk2NyAxOS45NTM5IDM1LjU0NTkgMjAuMzc5MiAzNS40NDQzIDIwLjc2ODZDMzUuMzQyOCAyMS4xNTM2IDM1LjE4NjIgMjEuNDkwMSAzNC45NzQ2IDIxLjc3NzhDMzQuNzYzIDIyLjA2MTQgMzQuNDkyMiAyMi4yODM1IDM0LjE2MjEgMjIuNDQ0M0MzMy44MzIgMjIuNjAwOSAzMy40MzY0IDIyLjY3OTIgMzIuOTc1MSAyMi42NzkyQzMyLjY0MDggMjIuNjc5MiAzMi4zMzQgMjIuNjMwNSAzMi4wNTQ3IDIyLjUzMzJDMzEuNzc1NCAyMi40MzU5IDMxLjUzNDIgMjIuMjg1NiAzMS4zMzExIDIyLjA4MjVDMzEuMTMyMiAyMS44Nzk0IDMwLjk3NzcgMjEuNjE0OSAzMC44Njc3IDIxLjI4OTFDMzAuNzU3NiAyMC45NjMyIDMwLjcwMjYgMjAuNTczOSAzMC43MDI2IDIwLjEyMTFWMTUuNjg0MUgzMi4yMzI0VjIwLjEzMzhDMzIuMjMyNCAyMC4zODM1IDMyLjI2MiAyMC41OTI5IDMyLjMyMTMgMjAuNzYyMkMzMi4zODA1IDIwLjkyNzIgMzIuNDYwOSAyMS4wNjA1IDMyLjU2MjUgMjEuMTYyMUMzMi42NjQxIDIxLjI2MzcgMzIuNzgyNiAyMS4zMzU2IDMyLjkxOCAyMS4zNzc5QzMzLjA1MzQgMjEuNDIwMiAzMy4xOTczIDIxLjQ0MTQgMzMuMzQ5NiAyMS40NDE0QzMzLjc4NTUgMjEuNDQxNCAzNC4xMjgzIDIxLjM1NjggMzQuMzc3OSAyMS4xODc1QzM0LjYzMTggMjEuMDE0IDM0LjgxMTcgMjAuNzgxMiAzNC45MTc1IDIwLjQ4OTNDMzUuMDI3NSAyMC4xOTczIDM1LjA4MjUgMTkuODY5MyAzNS4wODI1IDE5LjUwNTRaTTM5Ljg1ODQgMTUuNjg0MVYyMi41NTIySDM4LjMyMjNWMTUuNjg0MUgzOS44NTg0Wk0zOC4yMjA3IDEzLjg4MTNDMzguMjIwNyAxMy42NDg2IDM4LjI5NjkgMTMuNDU2MSAzOC40NDkyIDEzLjMwMzdDMzguNjA1OCAxMy4xNDcxIDM4LjgyMTYgMTMuMDY4OCAzOS4wOTY3IDEzLjA2ODhDMzkuMzY3NSAxMy4wNjg4IDM5LjU4MTIgMTMuMTQ3MSAzOS43Mzc4IDEzLjMwMzdDMzkuODk0NCAxMy40NTYxIDM5Ljk3MjcgMTMuNjQ4NiAzOS45NzI3IDEzLjg4MTNDMzkuOTcyNyAxNC4xMDk5IDM5Ljg5NDQgMTQuMzAwMyAzOS43Mzc4IDE0LjQ1MjZDMzkuNTgxMiAxNC42MDUgMzkuMzY3NSAxNC42ODEyIDM5LjA5NjcgMTQuNjgxMkMzOC44MjE2IDE0LjY4MTIgMzguNjA1OCAxNC42MDUgMzguNDQ5MiAxNC40NTI2QzM4LjI5NjkgMTQuMzAwMyAzOC4yMjA3IDE0LjEwOTkgMzguMjIwNyAxMy44ODEzWk00NS45NzM2IDIxLjEzMDRWMTIuODAyMkg0Ny41MDk4VjIyLjU1MjJINDYuMTE5Nkw0NS45NzM2IDIxLjEzMDRaTTQxLjUwNDkgMTkuMTk0M1YxOS4wNjFDNDEuNTA0OSAxOC41NDA1IDQxLjU2NjIgMTguMDY2NiA0MS42ODkgMTcuNjM5MkM0MS44MTE3IDE3LjIwNzUgNDEuOTg5NCAxNi44MzcyIDQyLjIyMjIgMTYuNTI4M0M0Mi40NTQ5IDE2LjIxNTIgNDIuNzM4NCAxNS45NzYxIDQzLjA3MjggMTUuODExQzQzLjQwNzEgMTUuNjQxOCA0My43ODM3IDE1LjU1NzEgNDQuMjAyNiAxNS41NTcxQzQ0LjYxNzQgMTUuNTU3MSA0NC45ODEzIDE1LjYzNzUgNDUuMjk0NCAxNS43OTgzQzQ1LjYwNzYgMTUuOTU5MSA0NS44NzQyIDE2LjE4OTggNDYuMDk0MiAxNi40OTAyQzQ2LjMxNDMgMTYuNzg2NSA0Ni40ODk5IDE3LjE0MTkgNDYuNjIxMSAxNy41NTY2QzQ2Ljc1MjMgMTcuOTY3MSA0Ni44NDU0IDE4LjQyNDIgNDYuOTAwNCAxOC45Mjc3VjE5LjM1M0M0Ni44NDU0IDE5Ljg0MzkgNDYuNzUyMyAyMC4yOTI1IDQ2LjYyMTEgMjAuNjk4N0M0Ni40ODk5IDIxLjEwNSA0Ni4zMTQzIDIxLjQ1NjIgNDYuMDk0MiAyMS43NTI0QzQ1Ljg3NDIgMjIuMDQ4NyA0NS42MDU1IDIyLjI3NzIgNDUuMjg4MSAyMi40MzhDNDQuOTc0OSAyMi41OTg4IDQ0LjYwODkgMjIuNjc5MiA0NC4xODk5IDIyLjY3OTJDNDMuNzc1MiAyMi42NzkyIDQzLjQwMDcgMjIuNTkyNCA0My4wNjY0IDIyLjQxODlDNDIuNzM2MyAyMi4yNDU0IDQyLjQ1NDkgMjIuMDAyMSA0Mi4yMjIyIDIxLjY4OUM0MS45ODk0IDIxLjM3NTggNDEuODExNyAyMS4wMDc2IDQxLjY4OSAyMC41ODQ1QzQxLjU2NjIgMjAuMTU3MSA0MS41MDQ5IDE5LjY5MzcgNDEuNTA0OSAxOS4xOTQzWk00My4wMzQ3IDE5LjA2MVYxOS4xOTQzQzQzLjAzNDcgMTkuNTA3NSA0My4wNjIyIDE5Ljc5OTUgNDMuMTE3MiAyMC4wNzAzQzQzLjE3NjQgMjAuMzQxMSA0My4yNjc0IDIwLjU4MDIgNDMuMzkwMSAyMC43ODc2QzQzLjUxMjkgMjAuOTkwNyA0My42NzE1IDIxLjE1MTUgNDMuODY2MiAyMS4yN0M0NC4wNjUxIDIxLjM4NDMgNDQuMzAyMSAyMS40NDE0IDQ0LjU3NzEgMjEuNDQxNEM0NC45MjQyIDIxLjQ0MTQgNDUuMjA5OCAyMS4zNjUyIDQ1LjQzNDEgMjEuMjEyOUM0NS42NTg0IDIxLjA2MDUgNDUuODM0IDIwLjg1NTMgNDUuOTYwOSAyMC41OTcyQzQ2LjA5MjEgMjAuMzM0OCA0Ni4xODEgMjAuMDQyOCA0Ni4yMjc1IDE5LjcyMTJWMTguNTcyM0M0Ni4yMDIxIDE4LjMyMjYgNDYuMTQ5MyAxOC4wODk4IDQ2LjA2ODggMTcuODc0QzQ1Ljk5MjcgMTcuNjU4MiA0NS44ODkgMTcuNDY5OSA0NS43NTc4IDE3LjMwOTFDNDUuNjI2NiAxNy4xNDQgNDUuNDYzNyAxNy4wMTcxIDQ1LjI2OSAxNi45MjgyQzQ1LjA3ODYgMTYuODM1MSA0NC44NTIyIDE2Ljc4ODYgNDQuNTg5OCAxNi43ODg2QzQ0LjMxMDUgMTYuNzg4NiA0NC4wNzM2IDE2Ljg0NzggNDMuODc4OSAxNi45NjYzQzQzLjY4NDIgMTcuMDg0OCA0My41MjM0IDE3LjI0NzcgNDMuMzk2NSAxNy40NTUxQzQzLjI3MzggMTcuNjYyNCA0My4xODI4IDE3LjkwMzYgNDMuMTIzNSAxOC4xNzg3QzQzLjA2NDMgMTguNDUzOCA0My4wMzQ3IDE4Ljc0NzkgNDMuMDM0NyAxOS4wNjFaTTU0LjQ4NDQgMTIuODAyMlYyMi41NTIySDUyLjk0ODJWMTIuODAyMkg1NC40ODQ0Wk01OS40MzggMjIuNjc5MkM1OC45MzAyIDIyLjY3OTIgNTguNDcxIDIyLjU5NjcgNTguMDYwNSAyMi40MzE2QzU3LjY1NDMgMjIuMjYyNCA1Ny4zMDczIDIyLjAyNzUgNTcuMDE5NSAyMS43MjcxQzU2LjczNiAyMS40MjY2IDU2LjUxODEgMjEuMDczMiA1Ni4zNjU3IDIwLjY2N0M1Ni4yMTM0IDIwLjI2MDcgNTYuMTM3MiAxOS44MjI4IDU2LjEzNzIgMTkuMzUzVjE5LjA5OTFDNTYuMTM3MiAxOC41NjE3IDU2LjIxNTUgMTguMDc1IDU2LjM3MjEgMTcuNjM5MkM1Ni41Mjg2IDE3LjIwMzMgNTYuNzQ2NiAxNi44MzA5IDU3LjAyNTkgMTYuNTIyQzU3LjMwNTIgMTYuMjA4OCA1Ny42MzUzIDE1Ljk2OTcgNTguMDE2MSAxNS44MDQ3QzU4LjM5NyAxNS42Mzk2IDU4LjgwOTYgMTUuNTU3MSA1OS4yNTM5IDE1LjU1NzFDNTkuNzQ0OCAxNS41NTcxIDYwLjE3NDMgMTUuNjM5NiA2MC41NDI1IDE1LjgwNDdDNjAuOTEwNiAxNS45Njk3IDYxLjIxNTMgMTYuMjAyNSA2MS40NTY1IDE2LjUwMjlDNjEuNzAyIDE2Ljc5OTIgNjEuODg0IDE3LjE1MjUgNjIuMDAyNCAxNy41NjNDNjIuMTI1MiAxNy45NzM1IDYyLjE4NjUgMTguNDI2MyA2Mi4xODY1IDE4LjkyMTRWMTkuNTc1Mkg1Ni44Nzk5VjE4LjQ3NzFINjAuNjc1OFYxOC4zNTY0QzYwLjY2NzMgMTguMDgxNCA2MC42MTIzIDE3LjgyMzIgNjAuNTEwNyAxNy41ODJDNjAuNDEzNCAxNy4zNDA4IDYwLjI2MzIgMTcuMTQ2MiA2MC4wNjAxIDE2Ljk5OEM1OS44NTY5IDE2Ljg0OTkgNTkuNTg2MSAxNi43NzU5IDU5LjI0NzYgMTYuNzc1OUM1OC45OTM3IDE2Ljc3NTkgNTguNzY3MyAxNi44MzA5IDU4LjU2ODQgMTYuOTQwOUM1OC4zNzM3IDE3LjA0NjcgNTguMjEwOCAxNy4yMDEyIDU4LjA3OTYgMTcuNDA0M0M1Ny45NDg0IDE3LjYwNzQgNTcuODQ2OCAxNy44NTI5IDU3Ljc3NDkgMTguMTQwNkM1Ny43MDcyIDE4LjQyNDIgNTcuNjczMyAxOC43NDM3IDU3LjY3MzMgMTkuMDk5MVYxOS4zNTNDNTcuNjczMyAxOS42NTM1IDU3LjcxMzUgMTkuOTMyOCA1Ny43OTM5IDIwLjE5MDlDNTcuODc4NiAyMC40NDQ4IDU4LjAwMTMgMjAuNjY3IDU4LjE2MjEgMjAuODU3NEM1OC4zMjI5IDIxLjA0NzkgNTguNTE3NiAyMS4xOTgxIDU4Ljc0NjEgMjEuMzA4MUM1OC45NzQ2IDIxLjQxMzkgNTkuMjM0OSAyMS40NjY4IDU5LjUyNjkgMjEuNDY2OEM1OS44OTUgMjEuNDY2OCA2MC4yMjMgMjEuMzkyNyA2MC41MTA3IDIxLjI0NDZDNjAuNzk4NSAyMS4wOTY1IDYxLjA0ODIgMjAuODg3IDYxLjI1OTggMjAuNjE2Mkw2Mi4wNjU5IDIxLjM5N0M2MS45MTc4IDIxLjYxMjggNjEuNzI1MyAyMS44MjAxIDYxLjQ4ODMgMjIuMDE5QzYxLjI1MTMgMjIuMjEzNyA2MC45NjE0IDIyLjM3MjQgNjAuNjE4NyAyMi40OTUxQzYwLjI4MDEgMjIuNjE3OCA1OS44ODY2IDIyLjY3OTIgNTkuNDM4IDIyLjY3OTJaTTY1Ljc3NTQgMjEuMzM5OEw2Ny40NTc1IDE1LjY4NDFINjkuMDQ0NEw2Ni42NTc3IDIyLjU1MjJINjUuNjY3NUw2NS43NzU0IDIxLjMzOThaTTY0LjQ4NjggMTUuNjg0MUw2Ni4yMDA3IDIxLjM2NTJMNjYuMjgzMiAyMi41NTIySDY1LjI5M0w2Mi44OTM2IDE1LjY4NDFINjQuNDg2OFpNNzMuMTc5MiAyMi42NzkyQzcyLjY3MTQgMjIuNjc5MiA3Mi4yMTIyIDIyLjU5NjcgNzEuODAxOCAyMi40MzE2QzcxLjM5NTUgMjIuMjYyNCA3MS4wNDg1IDIyLjAyNzUgNzAuNzYwNyAyMS43MjcxQzcwLjQ3NzIgMjEuNDI2NiA3MC4yNTkzIDIxLjA3MzIgNzAuMTA2OSAyMC42NjdDNjkuOTU0NiAyMC4yNjA3IDY5Ljg3ODQgMTkuODIyOCA2OS44Nzg0IDE5LjM1M1YxOS4wOTkxQzY5Ljg3ODQgMTguNTYxNyA2OS45NTY3IDE4LjA3NSA3MC4xMTMzIDE3LjYzOTJDNzAuMjY5OSAxNy4yMDMzIDcwLjQ4NzggMTYuODMwOSA3MC43NjcxIDE2LjUyMkM3MS4wNDY0IDE2LjIwODggNzEuMzc2NSAxNS45Njk3IDcxLjc1NzMgMTUuODA0N0M3Mi4xMzgyIDE1LjYzOTYgNzIuNTUwOCAxNS41NTcxIDcyLjk5NTEgMTUuNTU3MUM3My40ODYgMTUuNTU3MSA3My45MTU1IDE1LjYzOTYgNzQuMjgzNyAxNS44MDQ3Qzc0LjY1MTkgMTUuOTY5NyA3NC45NTY1IDE2LjIwMjUgNzUuMTk3OCAxNi41MDI5Qzc1LjQ0MzIgMTYuNzk5MiA3NS42MjUyIDE3LjE1MjUgNzUuNzQzNyAxNy41NjNDNzUuODY2NCAxNy45NzM1IDc1LjkyNzcgMTguNDI2MyA3NS45Mjc3IDE4LjkyMTRWMTkuNTc1Mkg3MC42MjExVjE4LjQ3NzFINzQuNDE3VjE4LjM1NjRDNzQuNDA4NSAxOC4wODE0IDc0LjM1MzUgMTcuODIzMiA3NC4yNTIgMTcuNTgyQzc0LjE1NDYgMTcuMzQwOCA3NC4wMDQ0IDE3LjE0NjIgNzMuODAxMyAxNi45OThDNzMuNTk4MSAxNi44NDk5IDczLjMyNzMgMTYuNzc1OSA3Mi45ODg4IDE2Ljc3NTlDNzIuNzM0OSAxNi43NzU5IDcyLjUwODUgMTYuODMwOSA3Mi4zMDk2IDE2Ljk0MDlDNzIuMTE0OSAxNy4wNDY3IDcxLjk1MiAxNy4yMDEyIDcxLjgyMDggMTcuNDA0M0M3MS42ODk2IDE3LjYwNzQgNzEuNTg4MSAxNy44NTI5IDcxLjUxNjEgMTguMTQwNkM3MS40NDg0IDE4LjQyNDIgNzEuNDE0NiAxOC43NDM3IDcxLjQxNDYgMTkuMDk5MVYxOS4zNTNDNzEuNDE0NiAxOS42NTM1IDcxLjQ1NDggMTkuOTMyOCA3MS41MzUyIDIwLjE5MDlDNzEuNjE5OCAyMC40NDQ4IDcxLjc0MjUgMjAuNjY3IDcxLjkwMzMgMjAuODU3NEM3Mi4wNjQxIDIxLjA0NzkgNzIuMjU4OCAyMS4xOTgxIDcyLjQ4NzMgMjEuMzA4MUM3Mi43MTU4IDIxLjQxMzkgNzIuOTc2MSAyMS40NjY4IDczLjI2ODEgMjEuNDY2OEM3My42MzYyIDIxLjQ2NjggNzMuOTY0MiAyMS4zOTI3IDc0LjI1MiAyMS4yNDQ2Qzc0LjUzOTcgMjEuMDk2NSA3NC43ODk0IDIwLjg4NyA3NS4wMDEgMjAuNjE2Mkw3NS44MDcxIDIxLjM5N0M3NS42NTkgMjEuNjEyOCA3NS40NjY1IDIxLjgyMDEgNzUuMjI5NSAyMi4wMTlDNzQuOTkyNSAyMi4yMTM3IDc0LjcwMjYgMjIuMzcyNCA3NC4zNTk5IDIyLjQ5NTFDNzQuMDIxMyAyMi42MTc4IDczLjYyNzggMjIuNjc5MiA3My4xNzkyIDIyLjY3OTJaTTc5LjAwODggMTIuODAyMlYyMi41NTIySDc3LjQ3MjdWMTIuODAyMkg3OS4wMDg4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC44NyIvPgo8cmVjdCBvcGFjaXR5PSIwLjEiIHg9IjExMi40OTEiIHk9IjU3LjMxMDkiIHdpZHRoPSI0My40NDgzIiBoZWlnaHQ9IjY3Ljg4NzkiIHJ4PSIyMS43MjQxIiBmaWxsPSIjNjIxNkZGIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxtYXNrIGlkPSJtYXNrMF8zNDYxXzg4NzA4IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI0NiIgeT0iNTgiIHdpZHRoPSIxMDkiIGhlaWdodD0iNjYiPgo8bWFzayBpZD0icGF0aC01LWluc2lkZS0xXzM0NjFfODg3MDgiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02NS43ODUxIDU4Ljk0NzRDNTQuOTM4MSA1OS4yMzUyIDQ2LjIzMzQgNjguMTE4NiA0Ni4yMzM0IDc5LjAzNVYxMDMuNDc1QzQ2LjIzMzQgMTE0LjM5MSA1NC45MzgxIDEyMy4yNzQgNjUuNzg1MSAxMjMuNTYyVjEyMy41N0w2Ni4zMjgyIDEyMy41NjlMMTM0LjIxNiAxMjMuNTdDMTQ1LjMxNCAxMjMuNTcgMTU0LjMxMSAxMTQuNTczIDE1NC4zMTEgMTAzLjQ3NVY3OS4wMzVDMTU0LjMxMSA2Ny45MzcgMTQ1LjMxNCA1OC45NDAyIDEzNC4yMTYgNTguOTQwMkw2Ni4zNDU5IDU4Ljk0MDJDNjYuMzQgNTguOTQwMiA2Ni4zMzQxIDU4Ljk0MDIgNjYuMzI4MiA1OC45NDAyQzY2LjMyMjMgNTguOTQwMiA2Ni4zMTY0IDU4Ljk0MDIgNjYuMzEwNiA1OC45NDAyTDY1Ljc4NTEgNTguOTQwMlY1OC45NDc0WiIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjUuNzg1MSA1OC45NDc0QzU0LjkzODEgNTkuMjM1MiA0Ni4yMzM0IDY4LjExODYgNDYuMjMzNCA3OS4wMzVWMTAzLjQ3NUM0Ni4yMzM0IDExNC4zOTEgNTQuOTM4MSAxMjMuMjc0IDY1Ljc4NTEgMTIzLjU2MlYxMjMuNTdMNjYuMzI4MiAxMjMuNTY5TDEzNC4yMTYgMTIzLjU3QzE0NS4zMTQgMTIzLjU3IDE1NC4zMTEgMTE0LjU3MyAxNTQuMzExIDEwMy40NzVWNzkuMDM1QzE1NC4zMTEgNjcuOTM3IDE0NS4zMTQgNTguOTQwMiAxMzQuMjE2IDU4Ljk0MDJMNjYuMzQ1OSA1OC45NDAyQzY2LjM0IDU4Ljk0MDIgNjYuMzM0MSA1OC45NDAyIDY2LjMyODIgNTguOTQwMkM2Ni4zMjIzIDU4Ljk0MDIgNjYuMzE2NCA1OC45NDAyIDY2LjMxMDYgNTguOTQwMkw2NS43ODUxIDU4Ljk0MDJWNTguOTQ3NFoiIGZpbGw9IiM3Rjg0RkIiLz4KPHBhdGggZD0iTTY1Ljc4NTEgNTguOTQ3NEw2NS44MTM5IDYwLjAzMzJMNjYuODcxMyA2MC4wMDUyVjU4Ljk0NzRINjUuNzg1MVpNNjUuNzg1MSAxMjMuNTYySDY2Ljg3MTNWMTIyLjUwNUw2NS44MTM5IDEyMi40NzZMNjUuNzg1MSAxMjMuNTYyWk02NS43ODUxIDEyMy41N0g2NC42OTg5VjEyNC42NTZMNjUuNzg1MSAxMjQuNjU2TDY1Ljc4NTEgMTIzLjU3Wk02Ni4zMjgyIDEyMy41NjlWMTIyLjQ4M0g2Ni4zMjgyTDY2LjMyODIgMTIzLjU2OVpNMTM0LjIxNiAxMjMuNTdWMTI0LjY1NlYxMjMuNTdaTTE1NC4zMTEgNzkuMDM1SDE1NS4zOTdIMTU0LjMxMVpNMTM0LjIxNiA1OC45NDAyVjU3Ljg1NFY1OC45NDAyWk02Ni4zNDU5IDU4Ljk0MDJMNjYuMzQ1IDYwLjAyNjRINjYuMzQ1OVY1OC45NDAyWk02Ni4zMTA2IDU4Ljk0MDJWNjAuMDI2NEw2Ni4zMTE1IDYwLjAyNjRMNjYuMzEwNiA1OC45NDAyWk02NS43ODUxIDU4Ljk0MDJWNTcuODU0SDY0LjY5ODlWNTguOTQwMkg2NS43ODUxWk00Ny4zMTk2IDc5LjAzNUM0Ny4zMTk2IDY4LjcwODggNTUuNTUzOCA2MC4zMDU0IDY1LjgxMzkgNjAuMDMzMkw2NS43NTYzIDU3Ljg2MTZDNTQuMzIyNCA1OC4xNjQ5IDQ1LjE0NzIgNjcuNTI4MyA0NS4xNDcyIDc5LjAzNUg0Ny4zMTk2Wk00Ny4zMTk2IDEwMy40NzVWNzkuMDM1SDQ1LjE0NzJWMTAzLjQ3NUg0Ny4zMTk2Wk02NS44MTM5IDEyMi40NzZDNTUuNTUzOCAxMjIuMjA0IDQ3LjMxOTYgMTEzLjgwMSA0Ny4zMTk2IDEwMy40NzVINDUuMTQ3MkM0NS4xNDcyIDExNC45ODEgNTQuMzIyNCAxMjQuMzQ1IDY1Ljc1NjMgMTI0LjY0OEw2NS44MTM5IDEyMi40NzZaTTY0LjY5ODkgMTIzLjU2MlYxMjMuNTdINjYuODcxM1YxMjMuNTYySDY0LjY5ODlaTTY1Ljc4NTEgMTI0LjY1Nkw2Ni4zMjgyIDEyNC42NTZMNjYuMzI4MiAxMjIuNDgzTDY1Ljc4NTEgMTIyLjQ4M0w2NS43ODUxIDEyNC42NTZaTTY2LjMyODIgMTI0LjY1NkwxMzQuMjE2IDEyNC42NTZWMTIyLjQ4M0w2Ni4zMjgyIDEyMi40ODNWMTI0LjY1NlpNMTM0LjIxNiAxMjQuNjU2QzE0NS45MTQgMTI0LjY1NiAxNTUuMzk3IDExNS4xNzMgMTU1LjM5NyAxMDMuNDc1SDE1My4yMjVDMTUzLjIyNSAxMTMuOTczIDE0NC43MTQgMTIyLjQ4MyAxMzQuMjE2IDEyMi40ODNWMTI0LjY1NlpNMTU1LjM5NyAxMDMuNDc1Vjc5LjAzNUgxNTMuMjI1VjEwMy40NzVIMTU1LjM5N1pNMTU1LjM5NyA3OS4wMzVDMTU1LjM5NyA2Ny4zMzcxIDE0NS45MTQgNTcuODU0IDEzNC4yMTYgNTcuODU0VjYwLjAyNjRDMTQ0LjcxNCA2MC4wMjY0IDE1My4yMjUgNjguNTM2OCAxNTMuMjI1IDc5LjAzNUgxNTUuMzk3Wk0xMzQuMjE2IDU3Ljg1NEw2Ni4zNDU5IDU3Ljg1NFY2MC4wMjY0TDEzNC4yMTYgNjAuMDI2NFY1Ny44NTRaTTY2LjMyODIgNjAuMDI2NEM2Ni4zMzM4IDYwLjAyNjQgNjYuMzM5NCA2MC4wMjY0IDY2LjM0NSA2MC4wMjY0TDY2LjM0NjggNTcuODU0QzY2LjM0MDYgNTcuODU0IDY2LjMzNDQgNTcuODU0IDY2LjMyODIgNTcuODU0VjYwLjAyNjRaTTY2LjMxMTUgNjAuMDI2NEM2Ni4zMTcxIDYwLjAyNjQgNjYuMzIyNiA2MC4wMjY0IDY2LjMyODIgNjAuMDI2NFY1Ny44NTRDNjYuMzIyIDU3Ljg1NCA2Ni4zMTU4IDU3Ljg1NCA2Ni4zMDk2IDU3Ljg1NEw2Ni4zMTE1IDYwLjAyNjRaTTY2LjMxMDYgNTcuODU0SDY1Ljc4NTFWNjAuMDI2NEg2Ni4zMTA2VjU3Ljg1NFpNNjQuNjk4OSA1OC45NDAyVjU4Ljk0NzRINjYuODcxM1Y1OC45NDAySDY0LjY5ODlaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtNS1pbnNpZGUtMV8zNDYxXzg4NzA4KSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMzQ2MV84ODcwOCkiPgo8cmVjdCB4PSI0Ni4yMzM0IiB5PSI5NS4zMjgxIiB3aWR0aD0iMTA4LjA3OCIgaGVpZ2h0PSI2NC42MjkzIiBmaWxsPSIjN0E4QkZGIi8+CjxyZWN0IHg9IjQ2LjIzMzQiIHk9Ijk1LjMyODEiIHdpZHRoPSIxMDguMDc4IiBoZWlnaHQ9IjAuNTQzMTAzIiBmaWxsPSIjN0E4QkZGIi8+CjxyZWN0IHg9IjQ2LjIzMzQiIHk9Ijk1LjMyODEiIHdpZHRoPSIxMDguMDc4IiBoZWlnaHQ9IjAuNTQzMTAzIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjEiLz4KPC9nPgo8bWFzayBpZD0icGF0aC05LWluc2lkZS0yXzM0NjFfODg3MDgiIGZpbGw9IndoaXRlIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02NS43ODQ3IDU2Ljc3NDNDNTMuNzM3OCA1Ny4wNjI3IDQ0LjA2MDUgNjYuOTE4NyA0NC4wNjA1IDc5LjAzNUw0NC4wNjA1IDEwMy40NzVDNDQuMDYwNSAxMTUuNTkxIDUzLjczNzggMTI1LjQ0NyA2NS43ODQ3IDEyNS43MzVMNjUuNzg0NyAxMjUuNzQyTDY2LjMxMSAxMjUuNzQyQzY2LjMxNjYgMTI1Ljc0MiA2Ni4zMjIyIDEyNS43NDIgNjYuMzI3OCAxMjUuNzQyQzY2LjMzMzQgMTI1Ljc0MiA2Ni4zMzkgMTI1Ljc0MiA2Ni4zNDQ1IDEyNS43NDJMMTM0LjIxNiAxMjUuNzQyQzE0Ni41MTQgMTI1Ljc0MiAxNTYuNDgzIDExNS43NzMgMTU2LjQ4MyAxMDMuNDc1TDE1Ni40ODMgNzkuMDM1QzE1Ni40ODMgNjYuNzM3MiAxNDYuNTE0IDU2Ljc2NzggMTM0LjIxNiA1Ni43Njc4TDY2LjMyNzggNTYuNzY3OEw2NS43ODQ3IDU2Ljc2NzhMNjUuNzg0NyA1Ni43NzQzWiIvPgo8L21hc2s+CjxwYXRoIGQ9Ik02NS43ODQ3IDU2Ljc3NDNMNjUuODEwNyA1Ny44NjAyTDY2Ljg3MDkgNTcuODM0OEw2Ni44NzA5IDU2Ljc3NDNMNjUuNzg0NyA1Ni43NzQzWk02NS43ODQ3IDEyNS43MzVMNjYuODcwOSAxMjUuNzM1TDY2Ljg3MDkgMTI0LjY3NUw2NS44MTA3IDEyNC42NUw2NS43ODQ3IDEyNS43MzVaTTY1Ljc4NDcgMTI1Ljc0Mkw2NC42OTg1IDEyNS43NDJMNjQuNjk4NSAxMjYuODI4TDY1Ljc4NDcgMTI2LjgyOEw2NS43ODQ3IDEyNS43NDJaTTY2LjMxMSAxMjUuNzQyTDY2LjMxMTggMTI0LjY1Nkw2Ni4zMTEgMTI0LjY1Nkw2Ni4zMTEgMTI1Ljc0MlpNNjYuMzQ0NSAxMjUuNzQyTDY2LjM0NDUgMTI0LjY1Nkw2Ni4zNDM3IDEyNC42NTZMNjYuMzQ0NSAxMjUuNzQyWk0xMzQuMjE2IDEyNS43NDJMMTM0LjIxNiAxMjQuNjU2TDEzNC4yMTYgMTI1Ljc0MlpNMTM0LjIxNiA1Ni43Njc4TDEzNC4yMTYgNTUuNjgxNkwxMzQuMjE2IDU2Ljc2NzhaTTY2LjMyNzggNTYuNzY3OEw2Ni4zMjc4IDU3Ljg1NEw2Ni4zMjc4IDU3Ljg1NEw2Ni4zMjc4IDU2Ljc2NzhaTTY1Ljc4NDcgNTYuNzY3OEw2NS43ODQ3IDU1LjY4MTZMNjQuNjk4NSA1NS42ODE2TDY0LjY5ODUgNTYuNzY3OEw2NS43ODQ3IDU2Ljc2NzhaTTQ1LjE0NjggNzkuMDM1QzQ1LjE0NjggNjcuNTA5OSA1NC4zNTE5IDU4LjEzNDUgNjUuODEwNyA1Ny44NjAyTDY1Ljc1ODcgNTUuNjg4NEM1My4xMjM2IDU1Ljk5MDggNDIuOTc0MyA2Ni4zMjc1IDQyLjk3NDMgNzkuMDM1TDQ1LjE0NjggNzkuMDM1Wk00NS4xNDY4IDEwMy40NzVMNDUuMTQ2OCA3OS4wMzVMNDIuOTc0MyA3OS4wMzVMNDIuOTc0MyAxMDMuNDc1TDQ1LjE0NjggMTAzLjQ3NVpNNjUuODEwNyAxMjQuNjVDNTQuMzUxOSAxMjQuMzc1IDQ1LjE0NjggMTE1IDQ1LjE0NjggMTAzLjQ3NUw0Mi45NzQzIDEwMy40NzVDNDIuOTc0MyAxMTYuMTgyIDUzLjEyMzYgMTI2LjUxOSA2NS43NTg3IDEyNi44MjFMNjUuODEwNyAxMjQuNjVaTTY0LjY5ODUgMTI1LjczNUw2NC42OTg1IDEyNS43NDJMNjYuODcwOSAxMjUuNzQyTDY2Ljg3MDkgMTI1LjczNUw2NC42OTg1IDEyNS43MzVaTTY1Ljc4NDcgMTI2LjgyOEw2Ni4zMTEgMTI2LjgyOEw2Ni4zMTEgMTI0LjY1Nkw2NS43ODQ3IDEyNC42NTZMNjUuNzg0NyAxMjYuODI4Wk02Ni4zMjc4IDEyNC42NTZDNjYuMzIyNSAxMjQuNjU2IDY2LjMxNzIgMTI0LjY1NiA2Ni4zMTE4IDEyNC42NTZMNjYuMzEwMiAxMjYuODI4QzY2LjMxNjEgMTI2LjgyOCA2Ni4zMjE5IDEyNi44MjggNjYuMzI3OCAxMjYuODI4TDY2LjMyNzggMTI0LjY1NlpNNjYuMzQzNyAxMjQuNjU2QzY2LjMzODQgMTI0LjY1NiA2Ni4zMzMxIDEyNC42NTYgNjYuMzI3OCAxMjQuNjU2TDY2LjMyNzggMTI2LjgyOEM2Ni4zMzM2IDEyNi44MjggNjYuMzM5NSAxMjYuODI4IDY2LjM0NTMgMTI2LjgyOEw2Ni4zNDM3IDEyNC42NTZaTTY2LjM0NDUgMTI2LjgyOEwxMzQuMjE2IDEyNi44MjhMMTM0LjIxNiAxMjQuNjU2TDY2LjM0NDUgMTI0LjY1Nkw2Ni4zNDQ1IDEyNi44MjhaTTEzNC4yMTYgMTI2LjgyOEMxNDcuMTEzIDEyNi44MjggMTU3LjU2OSAxMTYuMzcyIDE1Ny41NjkgMTAzLjQ3NUwxNTUuMzk3IDEwMy40NzVDMTU1LjM5NyAxMTUuMTczIDE0NS45MTQgMTI0LjY1NiAxMzQuMjE2IDEyNC42NTZMMTM0LjIxNiAxMjYuODI4Wk0xNTcuNTY5IDEwMy40NzVMMTU3LjU2OSA3OS4wMzVMMTU1LjM5NyA3OS4wMzVMMTU1LjM5NyAxMDMuNDc1TDE1Ny41NjkgMTAzLjQ3NVpNMTU3LjU2OSA3OS4wMzVDMTU3LjU2OSA2Ni4xMzczIDE0Ny4xMTMgNTUuNjgxNiAxMzQuMjE2IDU1LjY4MTZMMTM0LjIxNiA1Ny44NTRDMTQ1LjkxNCA1Ny44NTQgMTU1LjM5NyA2Ny4zMzcxIDE1NS4zOTcgNzkuMDM1TDE1Ny41NjkgNzkuMDM1Wk0xMzQuMjE2IDU1LjY4MTZMNjYuMzI3OCA1NS42ODE2TDY2LjMyNzggNTcuODU0TDEzNC4yMTYgNTcuODU0TDEzNC4yMTYgNTUuNjgxNlpNNjYuMzI3OCA1NS42ODE2TDY1Ljc4NDcgNTUuNjgxNkw2NS43ODQ3IDU3Ljg1NEw2Ni4zMjc4IDU3Ljg1NEw2Ni4zMjc4IDU1LjY4MTZaTTY0LjY5ODUgNTYuNzY3OEw2NC42OTg1IDU2Ljc3NDNMNjYuODcwOSA1Ni43NzQzTDY2Ljg3MDkgNTYuNzY3OEw2NC42OTg1IDU2Ljc2NzhaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtOS1pbnNpZGUtMl8zNDYxXzg4NzA4KSIvPgo8cmVjdCB4PSI0NC42MDM3IiB5PSI1Ny4zMTA5IiB3aWR0aD0iNDMuNDQ4MyIgaGVpZ2h0PSI2Ny44ODc5IiByeD0iMjEuNzI0MSIgc3Ryb2tlPSIjMjQyNzcwIiBzdHJva2Utd2lkdGg9IjEuMDg2MjEiLz4KPG1hc2sgaWQ9InBhdGgtMTItaW5zaWRlLTNfMzQ2MV84ODcwOCIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExMy41NzggNDcuNTM1Mkg5Ny44MjgxVjU3LjMxMUM5Ny44MjgxIDU4LjIxMDkgMTAxLjM1NCA1OC45NDAzIDEwNS43MDMgNTguOTQwM0MxMTAuMDUyIDU4Ljk0MDMgMTEzLjU3OCA1OC4yMTA5IDExMy41NzggNTcuMzExVjQ3LjUzNTJaIi8+CjwvbWFzaz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMTMuNTc4IDQ3LjUzNTJIOTcuODI4MVY1Ny4zMTFDOTcuODI4MSA1OC4yMTA5IDEwMS4zNTQgNTguOTQwMyAxMDUuNzAzIDU4Ljk0MDNDMTEwLjA1MiA1OC45NDAzIDExMy41NzggNTguMjEwOSAxMTMuNTc4IDU3LjMxMVY0Ny41MzUyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTk3LjgyODEgNDcuNTM1MlY0Ni40NDg5SDk2Ljc0MTlWNDcuNTM1Mkg5Ny44MjgxWk0xMTMuNTc4IDQ3LjUzNTJIMTE0LjY2NFY0Ni40NDg5SDExMy41NzhWNDcuNTM1MlpNOTcuODI4MSA0OC42MjE0SDExMy41NzhWNDYuNDQ4OUg5Ny44MjgxVjQ4LjYyMTRaTTk4LjkxNDMgNTcuMzExVjQ3LjUzNTJIOTYuNzQxOVY1Ny4zMTFIOTguOTE0M1pNMTA1LjcwMyA1Ny44NTQxQzEwMy41NzkgNTcuODU0MSAxMDEuNjg4IDU3LjY3NTMgMTAwLjM1NSA1Ny4zOTk0Qzk5LjY3OTIgNTcuMjU5NyA5OS4yMDQxIDU3LjEwNjQgOTguOTI0MyA1Ni45Njk1Qzk4Ljc4MjEgNTYuOSA5OC43NDY0IDU2Ljg2MTQgOTguNzYwNCA1Ni44NzU2Qzk4Ljc3NzcgNTYuODkzMSA5OC45MTQzIDU3LjA0MiA5OC45MTQzIDU3LjMxMUg5Ni43NDE5Qzk2Ljc0MTkgNTcuODA0OSA5Ni45ODg3IDU4LjE3MzYgOTcuMjE1OCA1OC40MDMyQzk3LjQzOTcgNTguNjI5NSA5Ny43MTM0IDU4Ljc5NTYgOTcuOTY5NyA1OC45MjA5Qzk4LjQ4NjggNTkuMTczOSA5OS4xNjUgNTkuMzcxNyA5OS45MTQ2IDU5LjUyNjhDMTAxLjQzMiA1OS44NDA3IDEwMy40NzggNjAuMDI2NSAxMDUuNzAzIDYwLjAyNjVWNTcuODU0MVpNMTEyLjQ5MiA1Ny4zMTFDMTEyLjQ5MiA1Ny4wNDIgMTEyLjYyOSA1Ni44OTMxIDExMi42NDYgNTYuODc1NkMxMTIuNjYgNTYuODYxNCAxMTIuNjI0IDU2LjkgMTEyLjQ4MiA1Ni45Njk1QzExMi4yMDIgNTcuMTA2NCAxMTEuNzI3IDU3LjI1OTcgMTExLjA1MiA1Ny4zOTk0QzEwOS43MTggNTcuNjc1MyAxMDcuODI3IDU3Ljg1NDEgMTA1LjcwMyA1Ny44NTQxVjYwLjAyNjVDMTA3LjkyOSA2MC4wMjY1IDEwOS45NzUgNTkuODQwNyAxMTEuNDkyIDU5LjUyNjhDMTEyLjI0MSA1OS4zNzE3IDExMi45MTkgNTkuMTczOSAxMTMuNDM3IDU4LjkyMDlDMTEzLjY5MyA1OC43OTU2IDExMy45NjcgNTguNjI5NSAxMTQuMTkgNTguNDAzMkMxMTQuNDE4IDU4LjE3MzYgMTE0LjY2NCA1Ny44MDQ5IDExNC42NjQgNTcuMzExSDExMi40OTJaTTExMi40OTIgNDcuNTM1MlY1Ny4zMTFIMTE0LjY2NFY0Ny41MzUySDExMi40OTJaIiBmaWxsPSIjMjQyNzcwIiBtYXNrPSJ1cmwoI3BhdGgtMTItaW5zaWRlLTNfMzQ2MV84ODcwOCkiLz4KPHBhdGggZD0iTTExMy4yMzQgNDcuOTM3OUMxMTMuMzQ4IDQ3Ljk5MDMgMTEzLjQzMiA0OC4wMzggMTEzLjQ5MiA0OC4wNzgzQzExMy40MzIgNDguMTE4NiAxMTMuMzQ4IDQ4LjE2NjMgMTEzLjIzNCA0OC4yMTg2QzExMi44NjUgNDguMzg3NCAxMTIuMjk3IDQ4LjU1MzEgMTExLjU1MyA0OC42OTcyQzExMC4wNzIgNDguOTgzNyAxMDguMDA0IDQ5LjE2NDUgMTA1LjcwMyA0OS4xNjQ1QzEwMy40MDIgNDkuMTY0NSAxMDEuMzM0IDQ4Ljk4MzcgOTkuODU0IDQ4LjY5NzJDOTkuMTA5NCA0OC41NTMxIDk4LjU0MTUgNDguMzg3NCA5OC4xNzI3IDQ4LjIxODZDOTguMDU4MiA0OC4xNjYzIDk3Ljk3NDEgNDguMTE4NiA5Ny45MTQ0IDQ4LjA3ODNDOTcuOTc0MSA0OC4wMzggOTguMDU4MiA0Ny45OTAzIDk4LjE3MjcgNDcuOTM3OUM5OC41NDE1IDQ3Ljc2OTIgOTkuMTA5NCA0Ny42MDM1IDk5Ljg1NCA0Ny40NTk0QzEwMS4zMzQgNDcuMTcyOSAxMDMuNDAyIDQ2Ljk5MjEgMTA1LjcwMyA0Ni45OTIxQzEwOC4wMDQgNDYuOTkyMSAxMTAuMDcyIDQ3LjE3MjkgMTExLjU1MyA0Ny40NTk0QzExMi4yOTcgNDcuNjAzNSAxMTIuODY1IDQ3Ljc2OTIgMTEzLjIzNCA0Ny45Mzc5WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxwYXRoIGQ9Ik0xMTMuMjM0IDQ2LjMwODVDMTEzLjM0OCA0Ni4zNjA5IDExMy40MzIgNDYuNDA4NiAxMTMuNDkyIDQ2LjQ0ODlDMTEzLjQzMiA0Ni40ODkyIDExMy4zNDggNDYuNTM2OSAxMTMuMjM0IDQ2LjU4OTJDMTEyLjg2NSA0Ni43NTggMTEyLjI5NyA0Ni45MjM3IDExMS41NTMgNDcuMDY3OEMxMTAuMDcyIDQ3LjM1NDMgMTA4LjAwNCA0Ny41MzUxIDEwNS43MDMgNDcuNTM1MUMxMDMuNDAyIDQ3LjUzNTEgMTAxLjMzNCA0Ny4zNTQzIDk5Ljg1NCA0Ny4wNjc4Qzk5LjEwOTQgNDYuOTIzNyA5OC41NDE1IDQ2Ljc1OCA5OC4xNzI3IDQ2LjU4OTJDOTguMDU4MiA0Ni41MzY5IDk3Ljk3NDEgNDYuNDg5MiA5Ny45MTQ0IDQ2LjQ0ODlDOTcuOTc0MSA0Ni40MDg2IDk4LjA1ODIgNDYuMzYwOSA5OC4xNzI3IDQ2LjMwODVDOTguNTQxNSA0Ni4xMzk4IDk5LjEwOTQgNDUuOTc0MSA5OS44NTQgNDUuODNDMTAxLjMzNCA0NS41NDM1IDEwMy40MDIgNDUuMzYyNyAxMDUuNzAzIDQ1LjM2MjdDMTA4LjAwNCA0NS4zNjI3IDExMC4wNzIgNDUuNTQzNSAxMTEuNTUzIDQ1LjgzQzExMi4yOTcgNDUuOTc0MSAxMTIuODY1IDQ2LjEzOTggMTEzLjIzNCA0Ni4zMDg1WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzI0Mjc3MCIgc3Ryb2tlLXdpZHRoPSIxLjA4NjIxIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2JfMzQ2MV84ODcwOCkiPgo8cmVjdCB4PSIxMDIuNDQyIiB5PSI4MC4xMDYiIHdpZHRoPSIzOC41NjQxIiBoZWlnaHQ9IjIzLjQ2MTUiIHJ4PSIyLjE2NTc5IiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjc2Ii8+CjxwYXRoIGQ9Ik0xMTUuODE5IDk0LjA1NlY5NS40MjE0SDEwOC4zNTJMMTA4LjI5NSA5NC4zOTAzTDExMi43NjEgODcuMzkyN0gxMTQuMTM0TDExMi42NDggODkuOTM4NUwxMTAuMDggOTQuMDU2SDExNS44MTlaTTExNC41MjUgODcuMzkyN1Y5Ny43NDY4SDExMi44MTFWODcuMzkyN0gxMTQuNTI1Wk0xMjMuNzEzIDkxLjcwMjJWOTMuMzk0N0MxMjMuNzEzIDk0LjIwNTQgMTIzLjYzMiA5NC44OTc1IDEyMy40NzEgOTUuNDcxMkMxMjMuMzE1IDk2LjA0MDEgMTIzLjA4NyA5Ni41MDIzIDEyMi43ODggOTYuODU3OUMxMjIuNDkgOTcuMjEzNSAxMjIuMTMyIDk3LjQ3NDIgMTIxLjcxNSA5Ny42NDAyQzEyMS4zMDIgOTcuODA2MSAxMjAuODQgOTcuODg5MSAxMjAuMzI4IDk3Ljg4OTFDMTE5LjkyIDk3Ljg4OTEgMTE5LjU0MSA5Ny44MzY5IDExOS4xOSA5Ny43MzI2QzExOC44NDQgOTcuNjI4MyAxMTguNTMxIDk3LjQ2NDcgMTE4LjI1MSA5Ny4yNDE5QzExNy45NzIgOTcuMDE5MSAxMTcuNzMyIDk2LjczMjMgMTE3LjUzMyA5Ni4zODE0QzExNy4zMzkgOTYuMDI1OSAxMTcuMTg3IDk1LjYwMTYgMTE3LjA3OCA5NS4xMDg1QzExNi45NzQgOTQuNjE1NCAxMTYuOTIyIDk0LjA0NDIgMTE2LjkyMiA5My4zOTQ3VjkxLjcwMjJDMTE2LjkyMiA5MC44ODY3IDExNy4wMDIgOTAuMTk5MyAxMTcuMTYzIDg5LjYzOTlDMTE3LjMyNSA4OS4wNzU3IDExNy41NTQgODguNjE4MiAxMTcuODUzIDg4LjI2NzRDMTE4LjE1MiA4Ny45MTE4IDExOC41MDcgODcuNjUzNCAxMTguOTIgODcuNDkyMkMxMTkuMzM3IDg3LjMzMSAxMTkuODAyIDg3LjI1MDQgMTIwLjMxNCA4Ny4yNTA0QzEyMC43MjYgODcuMjUwNCAxMjEuMTA1IDg3LjMwMjYgMTIxLjQ1MSA4Ny40MDY5QzEyMS44MDIgODcuNTA2NCAxMjIuMTE1IDg3LjY2NTMgMTIyLjM5IDg3Ljg4MzNDMTIyLjY3IDg4LjEwMTQgMTIyLjkwNyA4OC4zODU5IDEyMy4xMDEgODguNzM2N0MxMjMuMyA4OS4wODI4IDEyMy40NTIgODkuNTAyNCAxMjMuNTU2IDg5Ljk5NTRDMTIzLjY2MSA5MC40ODM3IDEyMy43MTMgOTEuMDUyNiAxMjMuNzEzIDkxLjcwMjJaTTEyMS45OTkgOTMuNjM2NFY5MS40NDYxQzEyMS45OTkgOTEuMDMzNyAxMjEuOTc1IDkwLjY3MSAxMjEuOTI4IDkwLjM1ODFDMTIxLjg4MSA5MC4wNDA1IDEyMS44MDkgODkuNzcyNiAxMjEuNzE1IDg5LjU1NDVDMTIxLjYyNSA4OS4zMzE3IDEyMS41MTEgODkuMTUxNSAxMjEuMzczIDg5LjAxNDFDMTIxLjIzNiA4OC44NzE4IDEyMS4wNzkgODguNzY5OSAxMjAuOTA0IDg4LjcwODNDMTIwLjcyOCA4OC42NDE5IDEyMC41MzIgODguNjA4NyAxMjAuMzE0IDg4LjYwODdDMTIwLjA0OCA4OC42MDg3IDExOS44MTEgODguNjYwOSAxMTkuNjAzIDg4Ljc2NTJDMTE5LjM5NCA4OC44NjQ3IDExOS4yMTggODkuMDI1OSAxMTkuMDc2IDg5LjI0ODdDMTE4LjkzNCA4OS40NzE2IDExOC44MjUgODkuNzY1NSAxMTguNzQ5IDkwLjEzMDVDMTE4LjY3OCA5MC40OTA5IDExOC42NDIgOTAuOTI5NCAxMTguNjQyIDkxLjQ0NjFWOTMuNjM2NEMxMTguNjQyIDk0LjA1MzcgMTE4LjY2NiA5NC40MjExIDExOC43MTQgOTQuNzM4N0MxMTguNzYxIDk1LjA1NjQgMTE4LjgzMiA5NS4zMjkgMTE4LjkyNyA5NS41NTY1QzExOS4wMjIgOTUuNzc5MyAxMTkuMTM2IDk1Ljk2NDIgMTE5LjI2OCA5Ni4xMTEyQzExOS40MDYgOTYuMjUzNCAxMTkuNTYyIDk2LjM1NzcgMTE5LjczOCA5Ni40MjQxQzExOS45MTggOTYuNDkwNSAxMjAuMTE1IDk2LjUyMzcgMTIwLjMyOCA5Ni41MjM3QzEyMC41OTggOTYuNTIzNyAxMjAuODM4IDk2LjQ3MTUgMTIxLjA0NiA5Ni4zNjcyQzEyMS4yNTUgOTYuMjYyOSAxMjEuNDMgOTYuMDk3IDEyMS41NzIgOTUuODY5NEMxMjEuNzE1IDk1LjYzNzEgMTIxLjgyMSA5NS4zMzYxIDEyMS44OTIgOTQuOTY2M0MxMjEuOTYzIDk0LjU5NjUgMTIxLjk5OSA5NC4xNTMyIDEyMS45OTkgOTMuNjM2NFoiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPHBhdGggZD0iTTEyOC45ODkgOTIuODYyNFY5Mi41MjAyQzEyOC45ODkgOTIuMjc0MyAxMjkuMDQzIDkyLjA1MDYgMTI5LjE0OSA5MS44NDkxQzEyOS4yNTYgOTEuNjQ3NiAxMjkuNDEyIDkxLjQ4NjEgMTI5LjYxNiA5MS4zNjQ2QzEyOS44MjEgOTEuMjQzMSAxMzAuMDY2IDkxLjE4MjQgMTMwLjM1NCA5MS4xODI0QzEzMC42NSA5MS4xODI0IDEzMC44OTkgOTEuMjQzMSAxMzEuMTAxIDkxLjM2NDZDMTMxLjMwNSA5MS40ODYxIDEzMS40NjEgOTEuNjQ3NiAxMzEuNTY3IDkxLjg0OTFDMTMxLjY3NCA5Mi4wNTA2IDEzMS43MjcgOTIuMjc0MyAxMzEuNzI3IDkyLjUyMDJWOTIuODYyNEMxMzEuNzI3IDkzLjEwMjUgMTMxLjY3NCA5My4zMjMyIDEzMS41NjcgOTMuNTI0N0MxMzEuNDY0IDkzLjcyNjIgMTMxLjMwOSA5My44ODc3IDEzMS4xMDUgOTQuMDA5MkMxMzAuOTA0IDk0LjEzMDYgMTMwLjY1NiA5NC4xOTE0IDEzMC4zNjMgOTQuMTkxNEMxMzAuMDcyIDk0LjE5MTQgMTI5LjgyMyA5NC4xMzA2IDEyOS42MTYgOTQuMDA5MkMxMjkuNDEyIDkzLjg4NzcgMTI5LjI1NiA5My43MjYyIDEyOS4xNDkgOTMuNTI0N0MxMjkuMDQzIDkzLjMyMzIgMTI4Ljk4OSA5My4xMDI1IDEyOC45ODkgOTIuODYyNFpNMTI5LjczMiA5Mi41MjAyVjkyLjg2MjRDMTI5LjczMiA5Mi45ODEgMTI5Ljc1NCA5My4wOTM2IDEyOS43OTggOTMuMjAwMkMxMjkuODQ2IDkzLjMwNjkgMTI5LjkxNyA5My4zOTI4IDEzMC4wMTIgOTMuNDU4QzEzMC4xMDYgOTMuNTIzMiAxMzAuMjI0IDkzLjU1NTggMTMwLjM2MyA5My41NTU4QzEzMC41MDUgOTMuNTU1OCAxMzAuNjIxIDkzLjUyMzIgMTMwLjcwOSA5My40NThDMTMwLjgwMSA5My4zOTI4IDEzMC44NjkgOTMuMzA2OSAxMzAuOTE0IDkzLjIwMDJDMTMwLjk1OCA5My4wOTM2IDEzMC45ODEgOTIuOTgxIDEzMC45ODEgOTIuODYyNFY5Mi41MjAyQzEzMC45ODEgOTIuMzk4NyAxMzAuOTU3IDkyLjI4NDYgMTMwLjkwOSA5Mi4xNzhDMTMwLjg2NSA5Mi4wNjgzIDEzMC43OTcgOTEuOTgwOSAxMzAuNzA1IDkxLjkxNTdDMTMwLjYxMyA5MS44NTA2IDEzMC40OTYgOTEuODE4IDEzMC4zNTQgOTEuODE4QzEzMC4yMTggOTEuODE4IDEzMC4xMDIgOTEuODUwNiAxMzAuMDA3IDkxLjkxNTdDMTI5LjkxNSA5MS45ODA5IDEyOS44NDYgOTIuMDY4MyAxMjkuNzk4IDkyLjE3OEMxMjkuNzU0IDkyLjI4NDYgMTI5LjczMiA5Mi4zOTg3IDEyOS43MzIgOTIuNTIwMlpNMTMyLjExIDk2LjUwN1Y5Ni4xNjAzQzEzMi4xMSA5NS45MTc0IDEzMi4xNjMgOTUuNjk1MSAxMzIuMjcgOTUuNDkzN0MxMzIuMzc5IDk1LjI5MjIgMTMyLjUzNiA5NS4xMzA3IDEzMi43NDEgOTUuMDA5MkMxMzIuOTQ1IDk0Ljg4NzcgMTMzLjE5MSA5NC44MjcgMTMzLjQ3OCA5NC44MjdDMTMzLjc3NSA5NC44MjcgMTM0LjAyNCA5NC44ODc3IDEzNC4yMjUgOTUuMDA5MkMxMzQuNDMgOTUuMTMwNyAxMzQuNTg0IDk1LjI5MjIgMTM0LjY4NyA5NS40OTM3QzEzNC43OTQgOTUuNjk1MSAxMzQuODQ3IDk1LjkxNzQgMTM0Ljg0NyA5Ni4xNjAzVjk2LjUwN0MxMzQuODQ3IDk2Ljc1IDEzNC43OTQgOTYuOTcyMiAxMzQuNjg3IDk3LjE3MzdDMTM0LjU4NCA5Ny4zNzUyIDEzNC40MzEgOTcuNTM2NyAxMzQuMjMgOTcuNjU4MkMxMzQuMDI4IDk3Ljc3OTcgMTMzLjc4MiA5Ny44NDA0IDEzMy40OTIgOTcuODQwNEMxMzMuMTk4IDk3Ljg0MDQgMTMyLjk0OCA5Ny43Nzk3IDEzMi43NDEgOTcuNjU4MkMxMzIuNTM2IDk3LjUzNjcgMTMyLjM3OSA5Ny4zNzUyIDEzMi4yNyA5Ny4xNzM3QzEzMi4xNjMgOTYuOTcyMiAxMzIuMTEgOTYuNzUgMTMyLjExIDk2LjUwN1pNMTMyLjg1NiA5Ni4xNjAzVjk2LjUwN0MxMzIuODU2IDk2LjYyNTUgMTMyLjg4IDk2LjczODEgMTMyLjkyNyA5Ni44NDQ4QzEzMi45NzggOTYuOTUxNSAxMzMuMDUgOTcuMDM4OSAxMzMuMTQ1IDk3LjEwN0MxMzMuMjQgOTcuMTcyMiAxMzMuMzU0IDk3LjIwNDggMTMzLjQ4NyA5Ny4yMDQ4QzEzMy42MzggOTcuMjA0OCAxMzMuNzYgOTcuMTcyMiAxMzMuODUyIDk3LjEwN0MxMzMuOTQ0IDk3LjAzODkgMTM0LjAwOSA5Ni45NTMgMTM0LjA0NyA5Ni44NDkzQzEzNC4wODkgOTYuNzQyNiAxMzQuMTEgOTYuNjI4NSAxMzQuMTEgOTYuNTA3Vjk2LjE2MDNDMTM0LjExIDk2LjAzODkgMTM0LjA4NiA5NS45MjQ4IDEzNC4wMzggOTUuODE4MUMxMzMuOTk0IDk1LjcxMTQgMTMzLjkyNCA5NS42MjU1IDEzMy44MyA5NS41NjAzQzEzMy43MzggOTUuNDk1MSAxMzMuNjIxIDk1LjQ2MjUgMTMzLjQ3OCA5NS40NjI1QzEzMy4zMzkgOTUuNDYyNSAxMzMuMjI0IDk1LjQ5NTEgMTMzLjEzMiA5NS41NjAzQzEzMy4wNCA5NS42MjU1IDEzMi45NyA5NS43MTE0IDEzMi45MjMgOTUuODE4MUMxMzIuODc4IDk1LjkyNDggMTMyLjg1NiA5Ni4wMzg5IDEzMi44NTYgOTYuMTYwM1pNMTMzLjc0NSA5Mi4yMDAyTDEzMC41ODUgOTcuMjU4MkwxMzAuMDM4IDk2Ljk0MjZMMTMzLjE5OCA5MS44ODQ2TDEzMy43NDUgOTIuMjAwMloiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuODciLz4KPC9nPgo8cmVjdCB4PSIwLjUiIHk9IjAuNSIgd2lkdGg9IjE5OSIgaGVpZ2h0PSIxNTkiIHJ4PSIzLjUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjEyIi8+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2JfMzQ2MV84ODcwOCIgeD0iOTkuMTkzNyIgeT0iNzYuODU3MyIgd2lkdGg9IjQ1LjA2MTgiIGhlaWdodD0iMjkuOTU4OCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjYyNDM0Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzg4NzA4Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8zNDYxXzg4NzA4IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", - "description": "Widget indicates the level of liquid in Vertical Oval tank.", - "descriptor": { - "type": "latest", - "sizeX": 7.5, - "sizeY": 3, - "resources": [], - "templateHtml": "\n", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", - "settingsSchema": "{}", - "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-liquid-level-card-widget-settings", - "hasBasicMode": true, - "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"function\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"function\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" - }, - "externalId": null, - "tags": null -} \ No newline at end of file diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java index 737de7b4db..527e20fc6d 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java @@ -535,7 +535,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { this.deleteSystemWidgetBundle("status_indicators"); this.deleteSystemWidgetBundle("outdoor_environment"); this.deleteSystemWidgetBundle("indoor_environment"); - this.deleteSystemWidgetBundle("liquid_level_widgets"); + this.deleteSystemWidgetBundle("liquid_level_tanks"); installScripts.loadSystemWidgets(); } diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html index ff1f5af8d5..c5bc78bd9a 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html @@ -76,7 +76,7 @@
+ *ngIf="levelCardWidgetConfigForm.get('tankSelectionType').value === shapeSelectOptions.attribute">
widgets.liquid-level-card.shape-attribute-name
+ *ngIf="levelCardWidgetConfigForm.get('tankSelectionType').value === shapeSelectOptions.attribute">
widgets.liquid-level-card.shape-by-attribute
- - - @@ -182,7 +182,7 @@ warning -
+ *ngIf="levelCardWidgetConfigForm.get('layout').value !== this.levelCardLayouts.simple">
widgets.liquid-level-card.value
@@ -235,13 +235,6 @@
-
- - {{ 'widgets.liquid-level-card.background-overlay' | translate }} - - - -
- - + +
widgets.liquid-level-card.tooltip-background
- - + +
widgets.liquid-level-card.background-blur
diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts index 44166a9ba6..760e93374b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts @@ -215,8 +215,6 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon liquidColor: [settings.liquidColor, []], valueFont: [settings.valueFont, []], valueColor: [settings.valueColor, []], - showBackgroundOverlay: [settings.showBackgroundOverlay, []], - backgroundOverlayColor: [settings.backgroundOverlayColor, []], showTooltip: [settings.showTooltip, []], showTooltipLevel: [settings.showTooltipLevel, []], @@ -278,8 +276,6 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon this.widgetConfig.config.settings.liquidColor = config.liquidColor; this.widgetConfig.config.settings.valueFont = config.valueFont; this.widgetConfig.config.settings.valueColor = config.valueColor; - this.widgetConfig.config.settings.showBackgroundOverlay = config.showBackgroundOverlay; - this.widgetConfig.config.settings.backgroundOverlayColor = config.backgroundOverlayColor; this.widgetConfig.config.settings.showTooltip = config.showTooltip; this.widgetConfig.config.settings.showTooltipLevel = config.showTooltipLevel; @@ -304,7 +300,7 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon protected validatorTriggers(): string[] { return [ - 'showBackgroundOverlay', 'showTooltip', 'showTooltipLevel', + 'showTooltip', 'showTooltipLevel', 'tankSelectionType', 'datasourceUnits', 'showTitleIcon', 'volumeSource', 'showTooltipDate', 'units', @@ -405,16 +401,6 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon emitEventFields.push('titleIcon', 'iconColor', 'iconSize', 'iconSizeUnit'); } - if (trigger === 'showBackgroundOverlay') { - const showBackgroundOverlay: boolean = this.levelCardWidgetConfigForm.get('showBackgroundOverlay').value; - if (showBackgroundOverlay) { - this.levelCardWidgetConfigForm.get('backgroundOverlayColor').enable({emitEvent: false}); - } else { - this.levelCardWidgetConfigForm.get('backgroundOverlayColor').disable({emitEvent: false}); - } - emitEventFields.push('backgroundOverlayColor'); - } - if (trigger === 'showTooltip') { if (showTooltip) { showTooltipLevel.enable({emitEvent: false}); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts index 432a8b15ea..876e2eeb59 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts @@ -56,41 +56,27 @@ export class LiquidLevelWidgetComponent implements OnInit { @Input() ctx: WidgetContext; - svgParams: SvgInfo; + private svgParams: SvgInfo; - svg: JQuery; + private svg: JQuery; + private tooltip: ITooltipsterInstance; + private overlayContainer: JQuery; + private shape: Shapes; - tooltip: ITooltipsterInstance; + private settings: LevelCardWidgetSettings; - overlayContainer: JQuery; + private tankColor: ColorProcessor; + private volumeColor: ColorProcessor; + private valueColor: ColorProcessor; + private liquidColor: ColorProcessor; + private backgroundOverlayColor: ColorProcessor; + private tooltipLevelColor: ColorProcessor; - shape: Shapes; + private tooltipDateFormat: DateFormatProcessor; - settings: LevelCardWidgetSettings; - - tankColor: ColorProcessor; - - volumeColor: ColorProcessor; - - valueColor: ColorProcessor; - - liquidColor: ColorProcessor; - - backgroundOverlayColor: ColorProcessor; - - tooltipLevelColor: ColorProcessor; - - tooltipDateFormat: DateFormatProcessor; - - tooltipDateColor: ColorProcessor; - - tooltipBackgroundColor: ColorProcessor; - - volume: number; - - tooltipContent: string; - - widgetUnits: string; + private volume: number; + private tooltipContent: string; + private widgetUnits: string; constructor(private elementRef: ElementRef) { } @@ -136,8 +122,6 @@ export class LiquidLevelWidgetComponent implements OnInit { this.liquidColor = ColorProcessor.fromSettings(this.settings.liquidColor); this.backgroundOverlayColor = ColorProcessor.fromSettings(this.settings.backgroundOverlayColor); this.tooltipLevelColor = ColorProcessor.fromSettings(this.settings.tooltipLevelColor); - this.tooltipDateColor = ColorProcessor.fromSettings(this.settings.tooltipDateColor); - this.tooltipBackgroundColor = ColorProcessor.fromSettings(this.settings.tooltipBackgroundColor); this.tooltipDateFormat = DateFormatProcessor.fromSettings(this.ctx.$injector, this.settings.tooltipDateFormat); } @@ -189,11 +173,11 @@ export class LiquidLevelWidgetComponent implements OnInit { } private updateData(ignoreAnimation?: boolean) { - const data = this.ctx.data[0]?.data[0]?.map(value => Number(value)); - if (isDefinedAndNotNull(data) && data.length && typeof Number(data[1]) === 'number') { - const percentage = this.convertInputData(Number(data[1])); + const data = this.ctx.data[0]?.data[0]; + if (data && isDefinedAndNotNull(data[1])) { + const percentage = isNumber(data[1]) ? this.convertInputData(data[1]) : 0; this.updateSvg(percentage, ignoreAnimation); - this.updateValueElement(this.convertOutputData(percentage), percentage); + this.updateValueElement(data[1], percentage); if (this.settings.showTooltip) { this.updateTooltip(data); @@ -229,7 +213,7 @@ export class LiquidLevelWidgetComponent implements OnInit { }, functionReady: (instance, helper) => { const tooltipsterBoxStyles: JQuery.PlainObject = { - backgroundColor: this.getTooltipBackground(), + backgroundColor: this.settings.tooltipBackgroundColor, backdropFilter: `blur(${this.settings.tooltipBackgroundBlur}px)`, width: '100%', height: '100%' @@ -341,7 +325,7 @@ export class LiquidLevelWidgetComponent implements OnInit { return limits.min + (percentage / 100) * (limits.max - limits.min); } - private updateTooltip(value: number[]): void { + private updateTooltip(value: [number, any]): void { this.tooltipContent = this.getTooltipContent(value); if (this.tooltip) { @@ -392,15 +376,17 @@ export class LiquidLevelWidgetComponent implements OnInit { }); } - private updateValueElement(data: number, percentage: number): void { + private updateValueElement(data: any, percentage: number): void { let content: string; let container: JQuery; const jQueryContainerElement = $(this.elementRef.nativeElement); + let value = 'N/A'; - const value = convertLiters(data, this.widgetUnits as CapacityUnits, ConversionType.from) - .toFixed(this.settings.decimals || 0); + if (isNumber(data)) { + value = convertLiters(this.convertOutputData(percentage), this.widgetUnits as CapacityUnits, ConversionType.from) + .toFixed(this.settings.decimals || 0); + } this.valueColor.update(value); - const valueTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.valueFont), color: this.valueColor.color}); this.backgroundOverlayColor.update(percentage); @@ -431,29 +417,30 @@ export class LiquidLevelWidgetComponent implements OnInit { } } - private getTooltipContent(value?: number[]): string { - const contentValue = value || [0, 0]; + private getTooltipContent(value?: [number, any]): string { + const contentValue = value || [0, '']; + let tooltipValue: string | number = 'N/A'; - if (contentValue[1]) { - contentValue[1] = this.convertTooltipData(contentValue[1]); + if (isNumber(contentValue[1])) { + tooltipValue = this.convertTooltipData(contentValue[1]); } - this.tooltipLevelColor.update(contentValue[1]); - this.tooltipDateColor.update(contentValue[0]); + this.tooltipLevelColor.update(tooltipValue); this.tooltipDateFormat.update(contentValue[0]); - this.tooltipBackgroundColor.update(contentValue); const levelTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.tooltipLevelFont), color: this.tooltipLevelColor.color}); const dateTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.tooltipDateFont), - color: this.tooltipDateColor.color, overflow: 'hidden', 'text-overflow': 'ellipsis', 'white-space': 'nowrap'}); + color: this.settings.tooltipDateColor, overflow: 'hidden', 'text-overflow': 'ellipsis', 'white-space': 'nowrap'}); let content = `
`; if (this.settings.showTooltipLevel) { - const levelValue = contentValue[1]?.toFixed(this.settings.tooltipLevelDecimals) + this.settings.tooltipUnits; + const levelValue = typeof tooltipValue == 'number' + ? `${tooltipValue.toFixed(this.settings.tooltipLevelDecimals)}${this.settings.tooltipUnits}` + : 'N/A'; content += this.createTooltipContent( this.ctx.translate.instant('widgets.liquid-level-card.level'), levelValue, @@ -485,10 +472,6 @@ export class LiquidLevelWidgetComponent implements OnInit {
`; } - private getTooltipBackground(): string { - return this.tooltipBackgroundColor.color; - } - private convertInputData(value: number): number { if (this.settings.datasourceUnits !== CapacityUnits.percent) { return (convertLiters(value, this.settings.datasourceUnits, ConversionType.to) / diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index 5f198946a3..8c459426fa 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -72,8 +72,8 @@ export interface LevelCardWidgetSettings extends WidgetConfig { showTooltipDate: boolean; tooltipDateFormat: DateFormatSettings; tooltipDateFont: Font; - tooltipDateColor: ColorSettings; - tooltipBackgroundColor: ColorSettings; + tooltipDateColor: string; + tooltipBackgroundColor: string; tooltipBackgroundBlur: number; } @@ -296,8 +296,8 @@ export const levelCardDefaultSettings = (): LevelCardWidgetSettings => ({ weight: '500', lineHeight: '100%' }, - tooltipDateColor: constantColor('rgba(0, 0, 0, 0.76)'), - tooltipBackgroundColor: constantColor('rgba(255, 255, 255, 0.76)'), + tooltipDateColor: 'rgba(0, 0, 0, 0.76)', + tooltipBackgroundColor: 'rgba(255, 255, 255, 0.76)', tooltipBackgroundBlur: 3 }); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html index cb02492efb..a03fea0dc0 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html @@ -31,7 +31,7 @@
+ *ngIf="levelCardWidgetSettingsForm.get('tankSelectionType').value === shapeSelectOptions.attribute">
widgets.liquid-level-card.shape-attribute-name
+ *ngIf="levelCardWidgetSettingsForm.get('tankSelectionType').value === shapeSelectOptions.attribute">
widgets.liquid-level-card.shape-by-attribute
- - - @@ -139,7 +139,7 @@ warning -
+ *ngIf="levelCardWidgetSettingsForm.get('layout').value !== this.levelCardLayouts.simple">
widgets.liquid-level-card.value
- - + +
widgets.liquid-level-card.tooltip-background
- - + +
widgets.liquid-level-card.background-blur
From 5c1583ff6e1359bc486548b2d128c769ae9c6a5a Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Fri, 27 Oct 2023 13:58:19 +0300 Subject: [PATCH 38/56] UI: liquid level widget fixed min limit value and incorrect artifact shape on all the tank shapes --- .../widget/lib/indicator/liquid-level-widget.models.ts | 10 +++++----- .../liquid-level/shapes/horizontal-2_1-elliptical.svg | 4 ++-- .../widget/liquid-level/shapes/horizontal-capsule.svg | 4 ++-- .../widget/liquid-level/shapes/horizontal-cylinder.svg | 4 ++-- .../liquid-level/shapes/horizontal-dish-ends.svg | 4 ++-- .../widget/liquid-level/shapes/horizontal-ellipse.svg | 4 ++-- .../widget/liquid-level/shapes/horizontal-oval.svg | 4 ++-- .../assets/widget/liquid-level/shapes/rectangle.svg | 4 ++-- .../widget/liquid-level/shapes/vertical-capsule.svg | 4 ++-- .../widget/liquid-level/shapes/vertical-cylinder.svg | 3 +-- .../widget/liquid-level/shapes/vertical-oval.svg | 4 ++-- 11 files changed, 24 insertions(+), 25 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index 8c459426fa..efbff1f24d 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -131,7 +131,7 @@ export const svgMapping = new Map( Shapes.vOval, { svg: 'assets/widget/liquid-level/shapes/vertical-oval.svg', - limits: { min: 170, max: 51 } + limits: { min: 171, max: 51 } } ], [ @@ -145,14 +145,14 @@ export const svgMapping = new Map( Shapes.vCapsule, { svg: 'assets/widget/liquid-level/shapes/vertical-capsule.svg', - limits: { min: 195, max: 25 } + limits: { min: 197, max: 25 } } ], [ Shapes.rectangle, { svg: 'assets/widget/liquid-level/shapes/rectangle.svg', - limits: { min: 168, max: 52 } + limits: { min: 169, max: 52 } } ], [ @@ -173,7 +173,7 @@ export const svgMapping = new Map( Shapes.hDishEnds, { svg: 'assets/widget/liquid-level/shapes/horizontal-dish-ends.svg', - limits: { min: 172, max: 50 } + limits: { min: 173, max: 50 } } ], [ @@ -194,7 +194,7 @@ export const svgMapping = new Map( Shapes.hElliptical_2_1, { svg: 'assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg', - limits: { min: 172, max: 50 } + limits: { min: 173, max: 50 } } ] ] diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg index 467235b380..d6196e5f71 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-2_1-elliptical.svg @@ -16,8 +16,8 @@ - - + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg index 0570aec4a5..20319f34e7 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-capsule.svg @@ -15,8 +15,8 @@ - - + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg index e942157c20..e05fb41e99 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-cylinder.svg @@ -22,8 +22,8 @@ - - + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg index 8f58633174..af0195c782 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-dish-ends.svg @@ -16,8 +16,8 @@ - - + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg index 736052b37a..5d0c0b2307 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-ellipse.svg @@ -23,8 +23,8 @@ - - + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg index 654b7629d9..86af838fb2 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/horizontal-oval.svg @@ -23,8 +23,8 @@ - - + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/rectangle.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/rectangle.svg index 8be992be46..800093c1d4 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/rectangle.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/rectangle.svg @@ -15,8 +15,8 @@ - - + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg index ccc48d0a16..dde2f5b903 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-capsule.svg @@ -15,8 +15,8 @@ - - + + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-cylinder.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-cylinder.svg index a62467e02a..7c15c4af9f 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-cylinder.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-cylinder.svg @@ -22,8 +22,7 @@ - - + diff --git a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg index 5193ab4a26..89dd578803 100644 --- a/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg +++ b/ui-ngx/src/assets/widget/liquid-level/shapes/vertical-oval.svg @@ -22,8 +22,8 @@ - - + + From 20fe062468b7a61f90fb889725e62f7d20626bb8 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Fri, 27 Oct 2023 17:31:09 +0300 Subject: [PATCH 39/56] UI: Fixed liquid level widgets settings form validation --- .../horizontal_2_1_elliptical.json | 4 +- .../widget_types/horizontal_capsule.json | 2 +- .../widget_types/horizontal_cylinder.json | 2 +- .../widget_types/horizontal_dish_ends.json | 2 +- .../widget_types/horizontal_ellipse.json | 2 +- .../system/widget_types/horizontal_oval.json | 2 +- .../json/system/widget_types/rectangle.json | 2 +- .../system/widget_types/vertical_capsule.json | 2 +- .../widget_types/vertical_cylinder.json | 2 +- .../system/widget_types/vertical_oval.json | 2 +- ...uid-level-card-basic-config.component.html | 115 ++++--- ...iquid-level-card-basic-config.component.ts | 290 ++++-------------- .../liquid-level-widget.component.ts | 15 +- .../indicator/liquid-level-widget.models.ts | 190 +++++++++++- ...-level-card-widget-settings.component.html | 119 +++---- ...id-level-card-widget-settings.component.ts | 233 ++------------ 16 files changed, 405 insertions(+), 579 deletions(-) diff --git a/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json index be83bb2a3e..93185e5e08 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json +++ b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json @@ -2,7 +2,7 @@ "fqn": "horizontal_2_1_elliptical", "name": "Horizontal 2:1 elliptical", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Horizontal 2:1 elliptical tank.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/horizontal_capsule.json b/application/src/main/data/json/system/widget_types/horizontal_capsule.json index 9bd6ffe5d1..a35a6b1803 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_capsule.json +++ b/application/src/main/data/json/system/widget_types/horizontal_capsule.json @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/horizontal_cylinder.json b/application/src/main/data/json/system/widget_types/horizontal_cylinder.json index 285a4c11ef..c85fb8f839 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_cylinder.json +++ b/application/src/main/data/json/system/widget_types/horizontal_cylinder.json @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json b/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json index c791a1adac..ed4a350197 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json +++ b/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/horizontal_ellipse.json b/application/src/main/data/json/system/widget_types/horizontal_ellipse.json index 474a2d20a4..e815474e34 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_ellipse.json +++ b/application/src/main/data/json/system/widget_types/horizontal_ellipse.json @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/horizontal_oval.json b/application/src/main/data/json/system/widget_types/horizontal_oval.json index f248fc26d2..7bc50cda14 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_oval.json +++ b/application/src/main/data/json/system/widget_types/horizontal_oval.json @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/rectangle.json b/application/src/main/data/json/system/widget_types/rectangle.json index 4cd788a408..b632ebd6a7 100644 --- a/application/src/main/data/json/system/widget_types/rectangle.json +++ b/application/src/main/data/json/system/widget_types/rectangle.json @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"advanced\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/vertical_capsule.json b/application/src/main/data/json/system/widget_types/vertical_capsule.json index 108228be37..6a27401b9d 100644 --- a/application/src/main/data/json/system/widget_types/vertical_capsule.json +++ b/application/src/main/data/json/system/widget_types/vertical_capsule.json @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/vertical_cylinder.json b/application/src/main/data/json/system/widget_types/vertical_cylinder.json index 8e254df8d2..ef9f9fdd1a 100644 --- a/application/src/main/data/json/system/widget_types/vertical_cylinder.json +++ b/application/src/main/data/json/system/widget_types/vertical_cylinder.json @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(255, 255, 255, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/vertical_oval.json b/application/src/main/data/json/system/widget_types/vertical_oval.json index 98834e2006..f272a92416 100644 --- a/application/src/main/data/json/system/widget_types/vertical_oval.json +++ b/application/src/main/data/json/system/widget_types/vertical_oval.json @@ -17,7 +17,7 @@ "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"Static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.18)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"units\":\"%\",\"widgetUnitsSource\":\"Static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"#000000C2\",\"tooltipBackgroundColor\":\"#FFFFFFC2\",\"tooltipBackgroundBlur\":3},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" }, "externalId": null, "tags": null diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html index c5bc78bd9a..9b6274586b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html @@ -67,16 +67,13 @@
widgets.liquid-level-card.shape
- - {{ 'widgets.liquid-level-card.static' | translate }} - - - {{ 'widgets.liquid-level-card.attribute' | translate }} + + {{ DataSourceTypeTranslations.get(type) | translate }}
- {{ shapesTranslationMap.get(shape) | translate }} + [image]="createShape(shapesImageMap.get(shape), LevelCardLayout.simple)"> + {{ ShapesTranslationMap.get(shape) | translate }} -
-
widgets.liquid-level-card.shape-attribute-name
- - -
-
-
widgets.liquid-level-card.shape-by-attribute
-
+ +
+
widgets.liquid-level-card.shape-attribute-name
+ +
-
+
+
widgets.liquid-level-card.shape-by-attribute
+
+
+
+
- {{ levelCardLayoutTranslationMap.get(layout) | translate }} + {{ LevelCardLayoutTranslationMap.get(layout) | translate }}
@@ -134,29 +131,30 @@
-
+
widgets.liquid-level-card.widget-units
- - {{ option }} + + {{ DataSourceTypeTranslations.get(type) | translate }} - - - + + + +
@@ -164,12 +162,12 @@
- - {{ option }} + + {{ DataSourceTypeTranslations.get(type) | translate }} - @@ -182,13 +180,14 @@ warning - - + + + +
+ *ngIf="levelCardWidgetConfigForm.get('layout').value !== LevelCardLayout.simple">
widgets.liquid-level-card.value
@@ -225,14 +224,14 @@
-
+
widgets.liquid-level-card.total-volume
- - + +
@@ -303,8 +302,8 @@
widget-config.card-appearance
{{ 'widgets.background.background' | translate }}
- - + +
widget-config.show-card-buttons
diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts index 760e93374b..de11ad1067 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts @@ -15,7 +15,7 @@ /// import { ChangeDetectorRef, Component, Injector, ViewChild } from '@angular/core'; -import { AbstractControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { FormBuilder, FormGroup, 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'; @@ -48,11 +48,13 @@ import { LevelCardLayout, levelCardLayoutTranslations, LevelCardWidgetSettings, - LevelSelectOptions, + LiquidWidgetDataSourceType, + LiquidWidgetDataSourceTypeTranslations, loadSvgShapesMapping, optionsFilter, Shapes, - shapesTranslations + ShapesTranslations, + updatedFormSettingsValidators } from '@home/components/widget/lib/indicator/liquid-level-widget.models'; import { UnitsType } from '@shared/models/unit.models'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; @@ -73,7 +75,7 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon @ViewChild('shapesImageCardsSelect', { static: false }) shapesImageCardsSelect: ImageCardsSelectComponent; - public get datasource(): Datasource { + private get datasource(): Datasource { if (this.widgetConfig.config.datasources && this.widgetConfig.config.datasources) { return this.widgetConfig.config.datasources[0]; } else { @@ -93,12 +95,6 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon return !(datasourceUnits === CapacityUnits.percent && units === CapacityUnits.percent); } - public get widgetUnitsInput(): boolean { - const layout: LevelCardLayout = this.levelCardWidgetConfigForm.get('layout').value; - - return layout === LevelCardLayout.absolute; - } - public get displayTimewindowConfig(): boolean { const datasources = this.levelCardWidgetConfigForm.get('datasources').value; return datasourcesHasAggregation(datasources); @@ -109,22 +105,21 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon return datasourcesHasOnlyComparisonAggregation(datasources); } - levelCardLayouts = LevelCardLayout; - - shapes: Shapes[] = []; + LevelCardLayout = LevelCardLayout; + LevelCardLayouts = Object.values(LevelCardLayout) as LevelCardLayout[]; + LevelCardLayoutTranslationMap = levelCardLayoutTranslations; - levelOptions = LevelSelectOptions; + DataSourceType = LiquidWidgetDataSourceType; + DataSourceTypes = Object.values(LiquidWidgetDataSourceType) as LiquidWidgetDataSourceType[]; + DataSourceTypeTranslations = LiquidWidgetDataSourceTypeTranslations; - shapeSelectOptions = LevelSelectOptions; - - levelCardLayoutTranslationMap = levelCardLayoutTranslations; - - shapesTranslationMap = shapesTranslations; + shapes = Object.values(Shapes) as Shapes[]; shapesImageMap: Map = new Map(); + ShapesTranslationMap = ShapesTranslations; unitsType = UnitsType; - levelCardWidgetConfigForm: UntypedFormGroup; + levelCardWidgetConfigForm: FormGroup; valuePreviewFn = this._valuePreviewFn.bind(this); @@ -134,35 +129,30 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon datePreviewFn = this._datePreviewFn.bind(this); - keySearchText: string; - - latestKeySearchTextResult: Array; - - datasources: Array; - - functionTypeKeys: Array = []; + private keySearchText: string; + private latestKeySearchTextResult: Array; - lastKeysId: string; + private functionTypeKeys: Array = []; - lastFetchedKeys: Array; + private lastKeysId: string; + private lastFetchedKeys: Array; constructor(protected store: Store, protected widgetConfigComponent: WidgetConfigComponent, private cd: ChangeDetectorRef, private $injector: Injector, - private fb: UntypedFormBuilder, + private fb: FormBuilder, private resourcesService: ResourcesService, private sanitizer: DomSanitizer, private utils: UtilsService) { super(store, widgetConfigComponent); } - protected configForm(): UntypedFormGroup { + protected configForm(): FormGroup { return this.levelCardWidgetConfigForm; } protected setupConfig(widgetConfig: WidgetConfigComponentData) { - this.shapes = Object.values(Shapes); this.createSvgShapesMapping(); for (const type of this.utils.getPredefinedFunctionsList()) { @@ -179,29 +169,30 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon } protected onConfigSet(configData: WidgetConfigComponentData) { - const settings: LevelCardWidgetSettings = {...configData.config, ...levelCardDefaultSettings(), ...(configData.config.settings || {})}; + const settings: LevelCardWidgetSettings = {...levelCardDefaultSettings, ...(configData.config.settings || {})}; const iconSize = resolveCssSize(configData.config.iconSize); this.levelCardWidgetConfigForm = this.fb.group({ timewindowConfig: [getTimewindowConfig(configData.config), []], datasources: [configData.config.datasources, []], + layout: [settings.layout, []], tankSelectionType: [settings.tankSelectionType, []], selectedShape: [settings.selectedShape, [Validators.required]], shapeAttributeName: [settings.shapeAttributeName, [Validators.required]], tankColor: [settings.tankColor, []], datasourceUnits: [settings.datasourceUnits, [Validators.required]], - layout: [settings.layout, []], showTitle: [configData.config.showTitle, []], - title: [settings.title, []], - titleFont: [settings.titleFont, []], - titleColor: [settings.titleColor, []], + title: [configData.config.title, []], + titleFont: [configData.config.titleFont, []], + titleColor: [configData.config.titleColor, []], showTitleIcon: [configData.config.showTitleIcon, []], iconSize: [iconSize[0], [Validators.min(0)]], iconSizeUnit: [iconSize[1], []], - titleIcon: [settings.titleIcon, []], - iconColor: [settings.iconColor, []], + titleIcon: [configData.config.titleIcon, []], + iconColor: [configData.config.iconColor, []], + volumeSource: [settings.volumeSource, []], volumeConstant: [settings.volumeConstant, [Validators.required]], volumeAttributeName: [settings.volumeAttributeName, [Validators.required]], @@ -211,7 +202,7 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon units: [settings.units, [Validators.required]], widgetUnitsSource: [settings.widgetUnitsSource, [Validators.required]], widgetUnitsAttributeName: [settings.widgetUnitsAttributeName, [Validators.required]], - decimals: [settings.decimals, []], + decimals: [configData.config.decimals, []], liquidColor: [settings.liquidColor, []], valueFont: [settings.valueFont, []], valueColor: [settings.valueColor, []], @@ -229,7 +220,7 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon tooltipBackgroundColor: [settings.tooltipBackgroundColor, []], tooltipBackgroundBlur: [settings.tooltipBackgroundBlur, []], - backgroundColor: [settings.backgroundColor, []], + background: [settings.background], cardButtons: [this.getCardButtons(configData.config), []], borderRadius: [configData.config.borderRadius, []], @@ -246,23 +237,28 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon setTimewindowConfig(this.widgetConfig.config, config.timewindowConfig); this.widgetConfig.config.datasources = config.datasources; - this.widgetConfig.config.settings = this.widgetConfig.config.settings || {}; - - this.widgetConfig.config.settings.tankSelectionType = config.tankSelectionType; - this.widgetConfig.config.settings.selectedShape = config.selectedShape; - this.widgetConfig.config.settings.shapeAttributeName = config.shapeAttributeName; - this.widgetConfig.config.settings.tankColor = config.tankColor; - this.widgetConfig.config.settings.datasourceUnits = config.datasourceUnits; - - this.widgetConfig.config.settings.layout = config.layout; 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.showTitleIcon; this.widgetConfig.config.iconSize = cssSizeToStrSize(config.iconSize, config.iconSizeUnit); this.widgetConfig.config.titleIcon = config.titleIcon; this.widgetConfig.config.iconColor = config.iconColor; + + this.widgetConfig.config.decimals = config.decimals; + + this.widgetConfig.config.settings = this.widgetConfig.config.settings || {}; + + this.widgetConfig.config.settings.layout = config.layout; + + this.widgetConfig.config.settings.tankSelectionType = config.tankSelectionType; + this.widgetConfig.config.settings.selectedShape = config.selectedShape; + this.widgetConfig.config.settings.shapeAttributeName = config.shapeAttributeName; + this.widgetConfig.config.settings.tankColor = config.tankColor; + this.widgetConfig.config.settings.datasourceUnits = config.datasourceUnits; + this.widgetConfig.config.settings.volumeSource = config.volumeSource; this.widgetConfig.config.settings.volumeConstant = config.volumeConstant; this.widgetConfig.config.settings.volumeAttributeName = config.volumeAttributeName; @@ -272,7 +268,6 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon this.widgetConfig.config.settings.units = config.units; this.widgetConfig.config.settings.widgetUnitsSource = config.widgetUnitsSource; this.widgetConfig.config.settings.widgetUnitsAttributeName = config.widgetUnitsAttributeName; - this.widgetConfig.config.decimals = config.decimals; this.widgetConfig.config.settings.liquidColor = config.liquidColor; this.widgetConfig.config.settings.valueFont = config.valueFont; this.widgetConfig.config.settings.valueColor = config.valueColor; @@ -290,7 +285,7 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon this.widgetConfig.config.settings.tooltipBackgroundColor = config.tooltipBackgroundColor; this.widgetConfig.config.settings.tooltipBackgroundBlur = config.tooltipBackgroundBlur; - this.widgetConfig.config.backgroundColor = config.backgroundColor; + this.widgetConfig.config.settings.background = config.background; this.setCardButtons(config.cardButtons, this.widgetConfig.config); this.widgetConfig.config.borderRadius = config.borderRadius; @@ -310,84 +305,16 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon } protected updateValidators(emitEvent: boolean, trigger?: string) { - const emitEventFields = []; + updatedFormSettingsValidators(this.levelCardWidgetConfigForm); - const datasourceUnits: string = this.levelCardWidgetConfigForm.get('datasourceUnits').value; - const layout: LevelCardLayout = this.levelCardWidgetConfigForm.get('layout').value; - const showTitleIcon: AbstractControl = this.levelCardWidgetConfigForm.get('showTitleIcon'); + const showTitleIcon: boolean = this.levelCardWidgetConfigForm.get('showTitleIcon').value; const showTitle: boolean = this.levelCardWidgetConfigForm.get('showTitle').value; - const volumeSource: AbstractControl = this.levelCardWidgetConfigForm.get('volumeSource'); - const units: AbstractControl = this.levelCardWidgetConfigForm.get('units'); - const tooltipUnits: AbstractControl = this.levelCardWidgetConfigForm.get('tooltipUnits'); - const widgetUnitsSource: AbstractControl = this.levelCardWidgetConfigForm.get('widgetUnitsSource'); - const showTooltipLevel: AbstractControl = this.levelCardWidgetConfigForm.get('showTooltipLevel'); - const showTooltipDate: AbstractControl = this.levelCardWidgetConfigForm.get('showTooltipDate'); - const showTooltip: boolean = this.levelCardWidgetConfigForm.get('showTooltip').value; - - if (trigger === 'tankSelectionType') { - const tankSelectionType: LevelSelectOptions = this.levelCardWidgetConfigForm.get('tankSelectionType').value; - if (tankSelectionType === LevelSelectOptions.static) { - this.levelCardWidgetConfigForm.get('selectedShape').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('shapeAttributeName').disable({emitEvent: false}); - } else { - this.levelCardWidgetConfigForm.get('selectedShape').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('shapeAttributeName').enable({emitEvent: false}); - } - emitEventFields.push('selectedShape', 'shapeAttributeName'); - } - - if (trigger === 'datasourceUnits' || trigger === 'layout' || trigger === 'units') { - if ( - datasourceUnits === CapacityUnits.percent && - layout !== LevelCardLayout.absolute && - (!units?.value || units?.value === CapacityUnits.percent) - ) { - volumeSource.disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeConstant').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeAttributeName').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeUnits').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeFont').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeColor').disable({emitEvent: false}); - } else { - volumeSource.enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeConstant').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeAttributeName').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeUnits').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeFont').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeColor').enable({emitEvent: false}); - } - emitEventFields.push('volumeSource', 'volumeConstant', 'volumeAttributeName', 'volumeFont', 'volumeColor', 'volumeUnits'); - } else if (trigger === 'volumeSource') { - if((datasourceUnits !== CapacityUnits.percent) || - (layout === LevelCardLayout.absolute && units?.value !== CapacityUnits.percent)) { - if (volumeSource.value === LevelSelectOptions.static) { - this.levelCardWidgetConfigForm.get('volumeConstant').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeAttributeName').disable({emitEvent: false}); - } else { - this.levelCardWidgetConfigForm.get('volumeConstant').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('volumeAttributeName').enable({emitEvent: false}); - } - emitEventFields.push('volumeConstant', 'volumeAttributeName'); - } - } - - if (trigger === 'showTitle' || !trigger) { - if (showTitle) { - this.levelCardWidgetConfigForm.get('title').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('titleFont').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('titleColor').enable({emitEvent: false}); - showTitleIcon.enable({emitEvent: false}); - } else { - this.levelCardWidgetConfigForm.get('title').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('titleFont').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('titleColor').disable({emitEvent: false}); - showTitleIcon.disable({emitEvent: false}); - } - emitEventFields.push('title', 'titleFont', 'titleColor', 'showTitleIcon'); - } - - if (trigger === 'showTitleIcon' || !trigger) { - if (showTitleIcon?.value && !showTitleIcon.disabled && showTitle) { + if (showTitle) { + this.levelCardWidgetConfigForm.get('title').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('titleFont').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('titleColor').enable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('showTitleIcon').enable({emitEvent: false}); + if (showTitleIcon) { this.levelCardWidgetConfigForm.get('titleIcon').enable({emitEvent: false}); this.levelCardWidgetConfigForm.get('iconColor').enable({emitEvent: false}); this.levelCardWidgetConfigForm.get('iconSize').enable({emitEvent: false}); @@ -398,104 +325,15 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon this.levelCardWidgetConfigForm.get('iconSize').disable({emitEvent: false}); this.levelCardWidgetConfigForm.get('iconSizeUnit').disable({emitEvent: false}); } - emitEventFields.push('titleIcon', 'iconColor', 'iconSize', 'iconSizeUnit'); - } - - if (trigger === 'showTooltip') { - if (showTooltip) { - showTooltipLevel.enable({emitEvent: false}); - showTooltipDate.enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipBackgroundColor').enable(); - this.levelCardWidgetConfigForm.get('tooltipBackgroundBlur').enable(); - } else { - showTooltipLevel.disable({emitEvent: false}); - showTooltipDate.disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipBackgroundColor').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipBackgroundBlur').disable({emitEvent: false}); - } - emitEventFields.push('showTooltipLevel', 'showTooltipDate', 'tooltipBackgroundColor', 'tooltipBackgroundBlur'); - } - - if (trigger === 'showTooltipLevel') { - if (showTooltipLevel?.value && !showTooltipLevel.disabled) { - tooltipUnits.enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipLevelDecimals').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipLevelFont').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipLevelColor').enable({emitEvent: false}); - } else { - tooltipUnits.disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipLevelDecimals').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipLevelFont').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipLevelColor').disable({emitEvent: false}); - } - emitEventFields.push('tooltipUnits', 'tooltipLevelDecimals', 'tooltipLevelFont', 'tooltipLevelColor'); - } - - if (trigger === 'showTooltipDate') { - if (showTooltipDate?.value && !showTooltipDate.disabled) { - this.levelCardWidgetConfigForm.get('tooltipDateFormat').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipDateFont').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipDateColor').enable({emitEvent: false}); - } else { - this.levelCardWidgetConfigForm.get('tooltipDateFormat').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipDateFont').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('tooltipDateColor').disable({emitEvent: false}); - } - emitEventFields.push('tooltipDateFormat', 'tooltipDateFont', 'tooltipDateColor'); - } - - if (trigger === 'layout' || trigger === 'datasourceUnits') { - if (layout === LevelCardLayout.simple) { - units.disable({emitEvent: false}); - tooltipUnits.disable({emitEvent: false}); - widgetUnitsSource.setValue(LevelSelectOptions.static, {emitEvent: false}); - widgetUnitsSource.disable({emitEvent: false}); - - this.levelCardWidgetConfigForm.get('decimals').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('valueFont').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('valueColor').disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); - } else if (layout === LevelCardLayout.percentage) { - if (units.value !== CapacityUnits.percent) { - units.setValue(CapacityUnits.percent, {emitEvent: false}); - } - widgetUnitsSource.setValue(LevelSelectOptions.static, {emitEvent: false}); - units.disable({emitEvent: false}); - widgetUnitsSource.disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); - - if (tooltipUnits.value !== CapacityUnits.percent) { - tooltipUnits.setValue(CapacityUnits.percent, {emitEvent: false}); - } - tooltipUnits.disable({emitEvent: false}); - } else { - units.enable({emitEvent: false}); - tooltipUnits.enable({emitEvent: false}); - widgetUnitsSource.enable({emitEvent: false}); - - this.levelCardWidgetConfigForm.get('decimals').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('valueFont').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('valueColor').enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('widgetUnitsAttributeName').enable({emitEvent: false}); - } - emitEventFields.push('units', 'tooltipUnits', 'decimals', 'valueFont', 'valueColor', 'widgetUnitsSource', 'widgetUnitsAttributeName'); - } else if (trigger === 'widgetUnitsSource') { - if (layout !== LevelCardLayout.percentage) { - if (widgetUnitsSource.value === LevelSelectOptions.static) { - units.enable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); - } else { - units.disable({emitEvent: false}); - this.levelCardWidgetConfigForm.get('widgetUnitsAttributeName').enable({emitEvent: false}); - } - emitEventFields.push('units', 'widgetUnitsAttributeName'); - } - } - - for (const controlKey in this.levelCardWidgetConfigForm.controls) { - if (emitEventFields.includes(controlKey)) { - this.levelCardWidgetConfigForm.controls[controlKey].updateValueAndValidity({emitEvent}); - } + } else { + this.levelCardWidgetConfigForm.get('title').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('titleFont').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('titleColor').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('showTitleIcon').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('titleIcon').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconColor').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconSize').disable({emitEvent: false}); + this.levelCardWidgetConfigForm.get('iconSizeUnit').disable({emitEvent: false}); } } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts index 876e2eeb59..c97bca3f9d 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts @@ -27,7 +27,7 @@ import { levelCardDefaultSettings, LevelCardLayout, LevelCardWidgetSettings, - LevelSelectOptions, + LiquidWidgetDataSourceType, Shapes, SvgInfo, SvgLimits, @@ -66,7 +66,6 @@ export class LiquidLevelWidgetComponent implements OnInit { private settings: LevelCardWidgetSettings; private tankColor: ColorProcessor; - private volumeColor: ColorProcessor; private valueColor: ColorProcessor; private liquidColor: ColorProcessor; private backgroundOverlayColor: ColorProcessor; @@ -83,7 +82,7 @@ export class LiquidLevelWidgetComponent implements OnInit { ngOnInit(): void { this.ctx.$scope.liquidLevelWidget = this; - this.settings = {...levelCardDefaultSettings(), ...this.ctx.widgetConfig, ...this.ctx.settings}; + this.settings = {...levelCardDefaultSettings, ...this.ctx.settings}; this.declareStyles(); this.getData().subscribe(data => { @@ -117,7 +116,6 @@ export class LiquidLevelWidgetComponent implements OnInit { private declareStyles(): void { this.tankColor = ColorProcessor.fromSettings(this.settings.tankColor); - this.volumeColor = ColorProcessor.fromSettings(this.settings.volumeColor); this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); this.liquidColor = ColorProcessor.fromSettings(this.settings.liquidColor); this.backgroundOverlayColor = ColorProcessor.fromSettings(this.settings.backgroundOverlayColor); @@ -264,7 +262,7 @@ export class LiquidLevelWidgetComponent implements OnInit { } private getShape(entityId: EntityId): Observable { - if (this.settings.tankSelectionType === LevelSelectOptions.attribute && entityId.id !== NULL_UUID) { + if (this.settings.tankSelectionType === LiquidWidgetDataSourceType.attribute && entityId.id !== NULL_UUID) { return this.ctx.attributeService.getEntityAttributes(entityId, null, [this.settings.shapeAttributeName]).pipe( map(attributes => @@ -296,10 +294,10 @@ export class LiquidLevelWidgetComponent implements OnInit { private prepareAttributeNames(): string[] { const names = []; - if (this.settings.volumeSource !== LevelSelectOptions.static) { + if (this.settings.volumeSource !== LiquidWidgetDataSourceType.static) { names.push(this.settings.volumeAttributeName); } - if (this.settings.widgetUnitsSource !== LevelSelectOptions.static) { + if (this.settings.widgetUnitsSource !== LiquidWidgetDataSourceType.static) { names.push(this.settings.widgetUnitsAttributeName); } return names; @@ -398,10 +396,9 @@ export class LiquidLevelWidgetComponent implements OnInit { const volumeInLiters: number = convertLiters(this.volume, this.settings.volumeUnits as CapacityUnits, ConversionType.to); const volume = convertLiters(volumeInLiters, this.widgetUnits as CapacityUnits, ConversionType.from) .toFixed(this.settings.decimals || 0); - this.volumeColor.update(volume); const volumeTextStyle = cssTextFromInlineStyle({...inlineTextStyle(this.settings.volumeFont), - color: this.volumeColor.color}); + color: this.settings.volumeColor}); container = jQueryContainerElement.find('.absolute-value-container'); content = createAbsoluteLayout({inputValue: value, volume}, diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index efbff1f24d..b722852fd6 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -15,6 +15,8 @@ /// import { + BackgroundSettings, + BackgroundType, ColorSettings, constantColor, cssTextFromInlineStyle, @@ -32,6 +34,7 @@ import { EntityService } from '@core/http/entity.service'; import { IAliasController } from '@core/api/widget-api.models'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; import { ResourcesService } from '@core/services/resources.service'; +import { FormGroup } from '@angular/forms'; export interface SvgInfo { svg: string; @@ -44,21 +47,21 @@ export interface SvgLimits { } export interface LevelCardWidgetSettings extends WidgetConfig { - tankSelectionType: LevelSelectOptions; + tankSelectionType: LiquidWidgetDataSourceType; selectedShape: Shapes; shapeAttributeName: string; tankColor: ColorSettings; datasourceUnits: CapacityUnits; layout: LevelCardLayout; - volumeSource: LevelSelectOptions; + volumeSource: LiquidWidgetDataSourceType; volumeConstant: number; volumeAttributeName: string; volumeUnits: CapacityUnits; volumeFont: Font; - volumeColor: ColorSettings; + volumeColor: string; liquidColor: ColorSettings; valueFont: Font; - widgetUnitsSource: LevelSelectOptions; + widgetUnitsSource: LiquidWidgetDataSourceType; widgetUnitsAttributeName: string; valueColor: ColorSettings; showBackgroundOverlay: boolean; @@ -75,6 +78,7 @@ export interface LevelCardWidgetSettings extends WidgetConfig { tooltipDateColor: string; tooltipBackgroundColor: string; tooltipBackgroundBlur: number; + background: BackgroundSettings; } export enum Shapes { @@ -115,9 +119,9 @@ export enum LevelCardLayout { absolute = 'absolute' } -export enum LevelSelectOptions { - attribute = 'Attribute', - static = 'Static' +export enum LiquidWidgetDataSourceType { + static = 'static', + attribute = 'attribute' } export enum ConversionType { @@ -208,7 +212,14 @@ export const levelCardLayoutTranslations = new Map( ] ); -export const shapesTranslations = new Map( +export const LiquidWidgetDataSourceTypeTranslations = new Map( + [ + [LiquidWidgetDataSourceType.static, 'widgets.liquid-level-card.static'], + [LiquidWidgetDataSourceType.attribute, 'widgets.liquid-level-card.attribute'] + ] +); + +export const ShapesTranslations = new Map( [ [Shapes.vOval, 'widgets.liquid-level-card.v-oval'], [Shapes.vCylinder, 'widgets.liquid-level-card.v-cylinder'], @@ -223,8 +234,8 @@ export const shapesTranslations = new Map( ] ); -export const levelCardDefaultSettings = (): LevelCardWidgetSettings => ({ - tankSelectionType: LevelSelectOptions.static, +export const levelCardDefaultSettings: LevelCardWidgetSettings = { + tankSelectionType: LiquidWidgetDataSourceType.static, selectedShape: Shapes.vCylinder, shapeAttributeName: 'tankShape', tankColor: constantColor('#242770'), @@ -244,7 +255,7 @@ export const levelCardDefaultSettings = (): LevelCardWidgetSettings => ({ showTitleIcon: false, titleIcon: 'water_drop', iconColor: '#5469FF', - volumeSource: LevelSelectOptions.static, + volumeSource: LiquidWidgetDataSourceType.static, volumeConstant: 500, volumeUnits: CapacityUnits.liters, volumeAttributeName: 'volume', @@ -256,9 +267,9 @@ export const levelCardDefaultSettings = (): LevelCardWidgetSettings => ({ weight: '500', lineHeight: '100%' }, - volumeColor: constantColor('rgba(0, 0, 0, 0.18)'), + volumeColor: 'rgba(0, 0, 0, 0.18)', units: CapacityUnits.percent as string, - widgetUnitsSource: LevelSelectOptions.static, + widgetUnitsSource: LiquidWidgetDataSourceType.static, widgetUnitsAttributeName: 'units', decimals: 0, liquidColor: constantColor('#7A8BFF'), @@ -298,8 +309,17 @@ export const levelCardDefaultSettings = (): LevelCardWidgetSettings => ({ }, tooltipDateColor: 'rgba(0, 0, 0, 0.76)', tooltipBackgroundColor: 'rgba(255, 255, 255, 0.76)', - tooltipBackgroundBlur: 3 -}); + tooltipBackgroundBlur: 3, + background: { + type: BackgroundType.color, + color: '#fff', + overlay: { + enabled: false, + color: 'rgba(255,255,255,0.72)', + blur: 3 + } + } +}; export const convertLiters = (value: number, units: CapacityUnits, conversionType: ConversionType): number => { let factor: number; @@ -470,3 +490,143 @@ export const loadSvgShapesMapping = (resourcesService: ResourcesService): Observ }) ); }; + +export const updatedFormSettingsValidators = (formGroup: FormGroup) => { + const datasourceUnits: string = formGroup.get('datasourceUnits').value; + const layout: LevelCardLayout = formGroup.get('layout').value; + const volumeSource: LiquidWidgetDataSourceType = formGroup.get('volumeSource').value; + const widgetUnitsSource: LiquidWidgetDataSourceType = formGroup.get('widgetUnitsSource').value; + const showTooltipLevel: boolean = formGroup.get('showTooltipLevel').value; + const showTooltipDate: boolean = formGroup.get('showTooltipDate').value; + const showTooltip: boolean = formGroup.get('showTooltip').value; + const tankSelectionType: LiquidWidgetDataSourceType = formGroup.get('tankSelectionType').value; + + if (tankSelectionType === LiquidWidgetDataSourceType.static) { + formGroup.get('selectedShape').enable({emitEvent: false}); + formGroup.get('shapeAttributeName').disable({emitEvent: false}); + } else { + formGroup.get('selectedShape').disable({emitEvent: false}); + formGroup.get('shapeAttributeName').enable({emitEvent: false}); + } + + switch (layout) { + case LevelCardLayout.simple: + case LevelCardLayout.percentage: + formGroup.get('widgetUnitsSource').disable({emitEvent: false}); + formGroup.get('units').disable({emitEvent: false}); + formGroup.get('widgetUnitsAttributeName').disable({emitEvent: false}); + + if (datasourceUnits !== CapacityUnits.percent) { + formGroup.get('volumeSource').enable({emitEvent: false}); + formGroup.get('volumeUnits').enable({emitEvent: false}); + if (volumeSource === LiquidWidgetDataSourceType.static) { + formGroup.get('volumeConstant').enable({emitEvent: false}); + formGroup.get('volumeAttributeName').disable({emitEvent: false}); + } else { + formGroup.get('volumeConstant').disable({emitEvent: false}); + formGroup.get('volumeAttributeName').enable({emitEvent: false}); + } + } else { + formGroup.get('volumeSource').disable({emitEvent: false}); + formGroup.get('volumeConstant').disable({emitEvent: false}); + formGroup.get('volumeAttributeName').disable({emitEvent: false}); + formGroup.get('volumeUnits').disable({emitEvent: false}); + } + + if (layout === LevelCardLayout.simple) { + if (formGroup.get('decimals')) { + formGroup.get('decimals').disable({emitEvent: false}); + } + formGroup.get('valueFont').disable({emitEvent: false}); + formGroup.get('valueColor').disable({emitEvent: false}); + } else { + if (formGroup.get('decimals')) { + formGroup.get('decimals').enable({emitEvent: false}); + } + formGroup.get('valueFont').enable({emitEvent: false}); + formGroup.get('valueColor').enable({emitEvent: false}); + } + + formGroup.get('volumeFont').disable({emitEvent: false}); + formGroup.get('volumeColor').disable({emitEvent: false}); + + break; + case LevelCardLayout.absolute: + formGroup.get('widgetUnitsSource').enable({emitEvent: false}); + if (widgetUnitsSource === LiquidWidgetDataSourceType.static) { + formGroup.get('units').enable({emitEvent: false}); + formGroup.get('widgetUnitsAttributeName').disable({emitEvent: false}); + } else { + formGroup.get('units').disable({emitEvent: false}); + formGroup.get('widgetUnitsAttributeName').enable({emitEvent: false}); + } + + formGroup.get('volumeSource').enable({emitEvent: false}); + formGroup.get('volumeUnits').enable({emitEvent: false}); + if (volumeSource === LiquidWidgetDataSourceType.static) { + formGroup.get('volumeConstant').enable({emitEvent: false}); + formGroup.get('volumeAttributeName').disable({emitEvent: false}); + } else { + formGroup.get('volumeConstant').disable({emitEvent: false}); + formGroup.get('volumeAttributeName').enable({emitEvent: false}); + } + + if (formGroup.get('decimals')) { + formGroup.get('decimals').enable({emitEvent: false}); + } + formGroup.get('valueFont').enable({emitEvent: false}); + formGroup.get('valueColor').enable({emitEvent: false}); + + formGroup.get('volumeFont').enable({emitEvent: false}); + formGroup.get('volumeColor').enable({emitEvent: false}); + + break; + } + + if (showTooltip) { + formGroup.get('showTooltipLevel').enable({emitEvent: false}); + formGroup.get('showTooltipDate').enable({emitEvent: false}); + formGroup.get('tooltipBackgroundColor').enable({emitEvent: false}); + formGroup.get('tooltipBackgroundBlur').enable({emitEvent: false}); + + if (showTooltipLevel) { + formGroup.get('tooltipLevelDecimals').enable({emitEvent: false}); + formGroup.get('tooltipLevelFont').enable({emitEvent: false}); + formGroup.get('tooltipLevelColor').enable({emitEvent: false}); + if (layout === LevelCardLayout.simple) { + formGroup.get('tooltipUnits').disable({emitEvent: false}); + } else { + formGroup.get('tooltipUnits').enable({emitEvent: false}); + } + } else { + formGroup.get('tooltipUnits').disable({emitEvent: false}); + formGroup.get('tooltipLevelDecimals').disable({emitEvent: false}); + formGroup.get('tooltipLevelFont').disable({emitEvent: false}); + formGroup.get('tooltipLevelColor').disable({emitEvent: false}); + } + + if (showTooltipDate) { + formGroup.get('tooltipDateFormat').enable({emitEvent: false}); + formGroup.get('tooltipDateFont').enable({emitEvent: false}); + formGroup.get('tooltipDateColor').enable({emitEvent: false}); + } else { + formGroup.get('tooltipDateFormat').disable({emitEvent: false}); + formGroup.get('tooltipDateFont').disable({emitEvent: false}); + formGroup.get('tooltipDateColor').disable({emitEvent: false}); + } + } else { + formGroup.get('showTooltipLevel').disable({emitEvent: false}); + formGroup.get('showTooltipDate').disable({emitEvent: false}); + formGroup.get('tooltipBackgroundColor').disable({emitEvent: false}); + formGroup.get('tooltipBackgroundBlur').disable({emitEvent: false}); + + formGroup.get('tooltipUnits').disable({emitEvent: false}); + formGroup.get('tooltipLevelDecimals').disable({emitEvent: false}); + formGroup.get('tooltipLevelFont').disable({emitEvent: false}); + formGroup.get('tooltipLevelColor').disable({emitEvent: false}); + + formGroup.get('tooltipDateFormat').disable({emitEvent: false}); + formGroup.get('tooltipDateFont').disable({emitEvent: false}); + formGroup.get('tooltipDateColor').disable({emitEvent: false}); + } +}; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html index a03fea0dc0..cdf96f7f89 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html @@ -22,16 +22,13 @@
widgets.liquid-level-card.shape
- - {{ 'widgets.liquid-level-card.static' | translate }} - - - {{ 'widgets.liquid-level-card.attribute' | translate }} + + {{ DataSourceTypeTranslations.get(type) | translate }}
- {{ shapesTranslationMap.get(shape) | translate }} + [image]="createShape(shapesImageMap.get(shape), LevelCardLayout.simple)"> + {{ ShapesTranslationMap.get(shape) | translate }} -
-
widgets.liquid-level-card.shape-attribute-name
- - -
-
-
widgets.liquid-level-card.shape-by-attribute
-
+ +
+
widgets.liquid-level-card.shape-attribute-name
+ +
-
+
+
widgets.liquid-level-card.shape-by-attribute
+
+
+
+
@@ -74,10 +71,10 @@ [colsLtMd]="3" label="{{ 'widgets.liquid-level-card.layout' | translate }}" formControlName="layout"> - {{ levelCardLayoutTranslationMap.get(layout) | translate }} + {{ LevelCardLayoutTranslationMap.get(layout) | translate }}
@@ -91,42 +88,43 @@ formControlName="datasourceUnits">
-
+
widgets.liquid-level-card.widget-units
- - {{ option }} + + {{ DataSourceTypeTranslations.get(type) | translate }} - - - + + + +
-
+
widgets.liquid-level-card.total-volume
- - {{ option }} + + {{ DataSourceTypeTranslations.get(type) | translate }} - @@ -139,13 +137,14 @@ warning - - + + + +
+
+
{{ 'widgets.background.background' | translate }}
+ + +
+ *ngIf="levelCardWidgetSettingsForm.get('layout').value !== LevelCardLayout.simple">
widgets.liquid-level-card.value
-
+
widgets.liquid-level-card.total-volume
- - + +
-
+
{{ 'widgets.liquid-level-card.background-overlay' | translate }} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.ts index 23088aac81..ab7acb2c7b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.ts @@ -22,7 +22,7 @@ import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models'; -import { AbstractControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { formatValue, isDefined } from '@core/utils'; @@ -36,11 +36,13 @@ import { levelCardDefaultSettings, LevelCardLayout, levelCardLayoutTranslations, - LevelSelectOptions, + LiquidWidgetDataSourceType, + LiquidWidgetDataSourceTypeTranslations, loadSvgShapesMapping, optionsFilter, Shapes, - shapesTranslations + ShapesTranslations, + updatedFormSettingsValidators } from '@home/components/widget/lib/indicator/liquid-level-widget.models'; import { UnitsType } from '@shared/models/unit.models'; import { ImageCardsSelectComponent } from '@home/components/widget/lib/settings/common/image-cards-select.component'; @@ -75,13 +77,7 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon return !(datasourceUnits === CapacityUnits.percent && widgetUnits === CapacityUnits.percent); } - public get widgetUnitsInput(): boolean { - const layout: LevelCardLayout = this.levelCardWidgetSettingsForm.get('layout').value; - - return layout === LevelCardLayout.absolute; - } - - public get datasource(): Datasource { + private get datasource(): Datasource { if (this.widgetConfig.config.datasources && this.widgetConfig.config.datasources) { return this.widgetConfig.config.datasources[0]; } else { @@ -89,22 +85,21 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon } } - shapeSelectOptions = LevelSelectOptions; - - shapes: Shapes[] = []; - - shapesTranslationMap = shapesTranslations; - - unitsType = UnitsType; + LevelCardLayout = LevelCardLayout; + LevelCardLayouts = Object.values(LevelCardLayout) as LevelCardLayout[]; + LevelCardLayoutTranslationMap = levelCardLayoutTranslations; - levelCardLayouts = LevelCardLayout; + DataSourceType = LiquidWidgetDataSourceType; + DataSourceTypes = Object.values(LiquidWidgetDataSourceType) as LiquidWidgetDataSourceType[]; + DataSourceTypeTranslations = LiquidWidgetDataSourceTypeTranslations; - levelCardLayoutTranslationMap = levelCardLayoutTranslations; + shapes = Object.values(Shapes) as Shapes[]; shapesImageMap: Map = new Map(); + ShapesTranslationMap = ShapesTranslations; - volumeOptions = LevelSelectOptions; + unitsType = UnitsType; - levelCardWidgetSettingsForm: UntypedFormGroup; + levelCardWidgetSettingsForm: FormGroup; valuePreviewFn = this._valuePreviewFn.bind(this); @@ -114,21 +109,17 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon datePreviewFn = this._datePreviewFn.bind(this); - keySearchText: string; - - latestKeySearchTextResult: Array; - - datasources: Array; + private keySearchText: string; + private latestKeySearchTextResult: Array; - functionTypeKeys: Array = []; + private functionTypeKeys: Array = []; - lastKeysId: string; - - lastFetchedKeys: Array; + private lastKeysId: string; + private lastFetchedKeys: Array; constructor(protected store: Store, private $injector: Injector, - private fb: UntypedFormBuilder, + private fb: FormBuilder, private resourcesService: ResourcesService, private sanitizer: DomSanitizer, private cd: ChangeDetectorRef, @@ -137,12 +128,11 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon super(store); } - protected settingsForm(): UntypedFormGroup { + protected settingsForm(): FormGroup { return this.levelCardWidgetSettingsForm; } protected onWidgetConfigSet(widgetConfig: WidgetConfigComponentData) { - this.shapes = Object.values(Shapes); this.createSvgShapesMapping(); for (const type of this.utils.getPredefinedFunctionsList()) { @@ -154,7 +144,7 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon } protected defaultSettings(): WidgetSettings { - return levelCardDefaultSettings(); + return levelCardDefaultSettings; } protected onSettingsSet(settings: WidgetSettings) { @@ -182,6 +172,7 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon backgroundOverlayColor: [settings.backgroundOverlayColor, []], liquidColor: [settings.liquidColor, []], + background: [settings.background], showTooltip: [settings.showTooltip, []], showTooltipLevel: [settings.showTooltipLevel, []], @@ -214,176 +205,12 @@ export class LiquidLevelCardWidgetSettingsComponent extends WidgetSettingsCompon } protected updateValidators(emitEvent: boolean, trigger?: string) { - const emitEventFields = []; - - const datasourceUnits: string = this.levelCardWidgetSettingsForm.get('datasourceUnits').value; - const layout: LevelCardLayout = this.levelCardWidgetSettingsForm.get('layout').value; - const volumeSource: AbstractControl = this.levelCardWidgetSettingsForm.get('volumeSource'); - const widgetUnits: AbstractControl = this.levelCardWidgetSettingsForm.get('units'); - const tooltipUnits: AbstractControl = this.levelCardWidgetSettingsForm.get('tooltipUnits'); - const widgetUnitsSource: AbstractControl = this.levelCardWidgetSettingsForm.get('widgetUnitsSource'); - const showTooltipLevel: AbstractControl = this.levelCardWidgetSettingsForm.get('showTooltipLevel'); - const showTooltipDate: AbstractControl = this.levelCardWidgetSettingsForm.get('showTooltipDate'); - const showTooltip: boolean = this.levelCardWidgetSettingsForm.get('showTooltip').value; - - if (trigger === 'tankSelectionType') { - const tankSelectionType: LevelSelectOptions = this.levelCardWidgetSettingsForm.get('tankSelectionType').value; - if (tankSelectionType === LevelSelectOptions.static) { - this.levelCardWidgetSettingsForm.get('selectedShape').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('shapeAttributeName').disable({emitEvent: false}); - } else { - this.levelCardWidgetSettingsForm.get('selectedShape').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('shapeAttributeName').enable({emitEvent: false}); - } - emitEventFields.push('selectedShape', 'shapeAttributeName'); - } - - if (trigger === 'datasourceUnits' || trigger === 'layout' || trigger === 'units') { - if ( - datasourceUnits === CapacityUnits.percent && - layout !== LevelCardLayout.absolute && - (!widgetUnits?.value || widgetUnits?.value === CapacityUnits.percent) - ) { - volumeSource.disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeConstant').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeAttributeName').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeUnits').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeFont').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeColor').disable({emitEvent: false}); - } else { - volumeSource.enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeConstant').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeAttributeName').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeUnits').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeFont').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeColor').enable({emitEvent: false}); - } - - if (layout === LevelCardLayout.simple && datasourceUnits === CapacityUnits.percent) { - this.levelCardWidgetSettingsForm.get('valueFont').disable(); - this.levelCardWidgetSettingsForm.get('valueColor').disable(); - } else { - this.levelCardWidgetSettingsForm.get('valueFont').enable(); - this.levelCardWidgetSettingsForm.get('valueColor').enable(); - } - emitEventFields.push('volumeSource', 'volumeConstant', 'volumeAttributeName', 'volumeFont', 'volumeColor', 'volumeUnits'); - } else if (trigger === 'volumeSource') { - if((datasourceUnits !== CapacityUnits.percent) || - (layout === LevelCardLayout.absolute && widgetUnits?.value !== CapacityUnits.percent)) { - if (volumeSource.value === LevelSelectOptions.static) { - this.levelCardWidgetSettingsForm.get('volumeConstant').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeAttributeName').disable({emitEvent: false}); - } else { - this.levelCardWidgetSettingsForm.get('volumeConstant').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('volumeAttributeName').enable({emitEvent: false}); - } - emitEventFields.push('volumeConstant', 'volumeAttributeName'); - } - } - - if (trigger === 'showBackgroundOverlay') { - const showBackgroundOverlay: boolean = this.levelCardWidgetSettingsForm.get('showBackgroundOverlay').value; - if (showBackgroundOverlay) { - this.levelCardWidgetSettingsForm.get('backgroundOverlayColor').enable({emitEvent: false}); - } else { - this.levelCardWidgetSettingsForm.get('backgroundOverlayColor').disable({emitEvent: false}); - } - emitEventFields.push('backgroundOverlayColor'); - } - - if (trigger === 'showTooltip') { - if (showTooltip) { - showTooltipLevel.enable({emitEvent: false}); - showTooltipDate.enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipBackgroundColor').enable(); - this.levelCardWidgetSettingsForm.get('tooltipBackgroundBlur').enable(); - } else { - showTooltipLevel.disable({emitEvent: false}); - showTooltipDate.disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipBackgroundColor').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipBackgroundBlur').disable({emitEvent: false}); - } - emitEventFields.push('showTooltipLevel', 'showTooltipDate', 'tooltipBackgroundColor', 'tooltipBackgroundBlur'); - } - - if (trigger === 'showTooltipLevel') { - if (showTooltipLevel?.value && !showTooltipLevel.disabled) { - this.levelCardWidgetSettingsForm.get('tooltipUnits').enable(); - this.levelCardWidgetSettingsForm.get('tooltipLevelDecimals').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipLevelFont').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipLevelColor').enable({emitEvent: false}); - } else { - this.levelCardWidgetSettingsForm.get('tooltipUnits').disable(); - this.levelCardWidgetSettingsForm.get('tooltipLevelDecimals').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipLevelFont').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipLevelColor').disable({emitEvent: false}); - } - emitEventFields.push('tooltipUnits', 'tooltipLevelDecimals', 'tooltipLevelFont', 'tooltipLevelColor'); - } - - if (trigger === 'showTooltipDate') { - if (showTooltipDate?.value && !showTooltipDate.disabled) { - this.levelCardWidgetSettingsForm.get('tooltipDateFormat').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipDateFont').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipDateColor').enable({emitEvent: false}); - } else { - this.levelCardWidgetSettingsForm.get('tooltipDateFormat').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipDateFont').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('tooltipDateColor').disable({emitEvent: false}); - } - emitEventFields.push('tooltipDateFormat', 'tooltipDateFont', 'tooltipDateColor'); - } - - if (trigger === 'layout' || trigger === 'datasourceUnits') { - if (layout === LevelCardLayout.simple) { - widgetUnits.disable({emitEvent: false}); - tooltipUnits.disable({emitEvent: false}); - widgetUnitsSource.setValue(LevelSelectOptions.static, {emitEvent: false}); - widgetUnitsSource.disable({emitEvent: false}); - - this.levelCardWidgetSettingsForm.get('valueFont').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('valueColor').disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); - } else if (layout === LevelCardLayout.percentage) { - if (widgetUnits.value !== CapacityUnits.percent) { - widgetUnits.setValue(CapacityUnits.percent, {emitEvent: false}); - widgetUnitsSource.setValue(LevelSelectOptions.static, {emitEvent: false}); - } - widgetUnits.disable({emitEvent: false}); - widgetUnitsSource.disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); - - if (tooltipUnits.value !== CapacityUnits.percent) { - tooltipUnits.setValue(CapacityUnits.percent, {emitEvent: false}); - } - tooltipUnits.disable({emitEvent: false}); - } else { - widgetUnits.enable({emitEvent: false}); - tooltipUnits.enable({emitEvent: false}); - widgetUnitsSource.enable({emitEvent: false}); - - this.levelCardWidgetSettingsForm.get('valueFont').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('valueColor').enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('widgetUnitsAttributeName').enable({emitEvent: false}); - } - emitEventFields.push('units', 'tooltipUnits', 'valueFont', 'valueColor', 'widgetUnitsSource', 'widgetUnitsAttributeName'); - } else if (trigger === 'widgetUnitsSource') { - if (layout !== LevelCardLayout.percentage) { - if (widgetUnitsSource.value === LevelSelectOptions.static) { - widgetUnits.enable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('widgetUnitsAttributeName').disable({emitEvent: false}); - } else { - widgetUnits.disable({emitEvent: false}); - this.levelCardWidgetSettingsForm.get('widgetUnitsAttributeName').enable({emitEvent: false}); - } - emitEventFields.push('units', 'widgetUnitsAttributeName'); - } - } + updatedFormSettingsValidators(this.levelCardWidgetSettingsForm); - for (const controlKey in this.levelCardWidgetSettingsForm.controls) { - if (emitEventFields.includes(controlKey)) { - this.levelCardWidgetSettingsForm.controls[controlKey].updateValueAndValidity({emitEvent}); - } + if (this.levelCardWidgetSettingsForm.get('showBackgroundOverlay').value) { + this.levelCardWidgetSettingsForm.get('backgroundOverlayColor').enable({emitEvent: false}); + } else { + this.levelCardWidgetSettingsForm.get('backgroundOverlayColor').disable({emitEvent: false}); } } From 54857c9ec749c7ba0737b05275238fee95afb9e0 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Fri, 27 Oct 2023 19:09:28 +0300 Subject: [PATCH 40/56] UI: Add liquid level widgets support overlay background --- .../horizontal_2_1_elliptical.json | 6 +- .../widget_types/horizontal_capsule.json | 6 +- .../widget_types/horizontal_cylinder.json | 6 +- .../widget_types/horizontal_dish_ends.json | 6 +- .../widget_types/horizontal_ellipse.json | 6 +- .../system/widget_types/horizontal_oval.json | 6 +- .../json/system/widget_types/rectangle.json | 6 +- .../system/widget_types/vertical_capsule.json | 6 +- .../widget_types/vertical_cylinder.json | 6 +- .../system/widget_types/vertical_oval.json | 6 +- .../liquid-level-widget.component.html | 22 +++++++ .../liquid-level-widget.component.scss | 46 +++++++++++++++ .../liquid-level-widget.component.ts | 58 +++++++++++++++---- 13 files changed, 144 insertions(+), 42 deletions(-) create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.scss diff --git a/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json index 93185e5e08..000f11cc63 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json +++ b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json @@ -9,15 +9,15 @@ "sizeX": 4, "sizeY": 4, "resources": [], - "templateHtml": "\n", + "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal 2:1 Elliptical\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/horizontal_capsule.json b/application/src/main/data/json/system/widget_types/horizontal_capsule.json index a35a6b1803..e23affdeeb 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_capsule.json +++ b/application/src/main/data/json/system/widget_types/horizontal_capsule.json @@ -9,15 +9,15 @@ "sizeX": 4, "sizeY": 4, "resources": [], - "templateHtml": "\n", + "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/horizontal_cylinder.json b/application/src/main/data/json/system/widget_types/horizontal_cylinder.json index c85fb8f839..f15819926b 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_cylinder.json +++ b/application/src/main/data/json/system/widget_types/horizontal_cylinder.json @@ -9,15 +9,15 @@ "sizeX": 4, "sizeY": 4, "resources": [], - "templateHtml": "\n", + "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json b/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json index ed4a350197..b5e3c57c74 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json +++ b/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json @@ -9,15 +9,15 @@ "sizeX": 4, "sizeY": 4, "resources": [], - "templateHtml": "\n", + "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/horizontal_ellipse.json b/application/src/main/data/json/system/widget_types/horizontal_ellipse.json index e815474e34..d1bf42b194 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_ellipse.json +++ b/application/src/main/data/json/system/widget_types/horizontal_ellipse.json @@ -9,15 +9,15 @@ "sizeX": 4, "sizeY": 4, "resources": [], - "templateHtml": "\n", + "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/horizontal_oval.json b/application/src/main/data/json/system/widget_types/horizontal_oval.json index 7bc50cda14..e838cc7437 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_oval.json +++ b/application/src/main/data/json/system/widget_types/horizontal_oval.json @@ -9,15 +9,15 @@ "sizeX": 4, "sizeY": 4, "resources": [], - "templateHtml": "\n", + "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/rectangle.json b/application/src/main/data/json/system/widget_types/rectangle.json index b632ebd6a7..e04041ab1c 100644 --- a/application/src/main/data/json/system/widget_types/rectangle.json +++ b/application/src/main/data/json/system/widget_types/rectangle.json @@ -9,15 +9,15 @@ "sizeX": 4, "sizeY": 4, "resources": [], - "templateHtml": "\n", + "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Rectangle\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/vertical_capsule.json b/application/src/main/data/json/system/widget_types/vertical_capsule.json index 6a27401b9d..64d0f99497 100644 --- a/application/src/main/data/json/system/widget_types/vertical_capsule.json +++ b/application/src/main/data/json/system/widget_types/vertical_capsule.json @@ -9,15 +9,15 @@ "sizeX": 4, "sizeY": 4, "resources": [], - "templateHtml": "\n", + "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Vertical Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/vertical_cylinder.json b/application/src/main/data/json/system/widget_types/vertical_cylinder.json index ef9f9fdd1a..6fbda5a7ed 100644 --- a/application/src/main/data/json/system/widget_types/vertical_cylinder.json +++ b/application/src/main/data/json/system/widget_types/vertical_cylinder.json @@ -9,15 +9,15 @@ "sizeX": 4, "sizeY": 4, "resources": [], - "templateHtml": "\n", + "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(255, 255, 255, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Vertical Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(255, 255, 255, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}" }, "externalId": null, "tags": null diff --git a/application/src/main/data/json/system/widget_types/vertical_oval.json b/application/src/main/data/json/system/widget_types/vertical_oval.json index f272a92416..381035aeec 100644 --- a/application/src/main/data/json/system/widget_types/vertical_oval.json +++ b/application/src/main/data/json/system/widget_types/vertical_oval.json @@ -9,15 +9,15 @@ "sizeX": 4, "sizeY": 4, "resources": [], - "templateHtml": "\n", + "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px'\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-liquid-level-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-liquid-level-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":true,\"borderRadius\":null,\"actions\":{},\"iconSize\":\"24px\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Vertical Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}" }, "externalId": null, "tags": null diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.html new file mode 100644 index 0000000000..98ceff33e1 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.html @@ -0,0 +1,22 @@ + +
+
+ +
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.scss new file mode 100644 index 0000000000..a33cf99587 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.scss @@ -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. + */ +.tb-liquid-level-panel { + width: 100%; + height: 100%; + position: relative; + display: flex; + flex-direction: column; + gap: 16px; + padding: 20px 24px 24px 24px; + &.tb-liquid-level-pointer { + cursor: pointer; + } + > div:not(.tb-liquid-level-overlay) { + z-index: 1; + } + .tb-liquid-level-overlay { + position: absolute; + top: 12px; + left: 12px; + bottom: 12px; + right: 12px; + } + div.tb-widget-title { + padding: 0; + } + .tb-liquid-level-content { + min-height: 0; + flex: 1; + display: flex; + justify-content: center; + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts index c97bca3f9d..edd471bcb8 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts @@ -14,7 +14,16 @@ /// limitations under the License. /// -import { Component, ElementRef, Input, OnInit } from '@angular/core'; +import { + ChangeDetectorRef, + Component, + ElementRef, + Input, + OnInit, + TemplateRef, + ViewChild, + ViewEncapsulation +} from '@angular/core'; import { WidgetContext } from '@home/models/widget-component.models'; import { isDefined, isDefinedAndNotNull, isNumber, isString } from '@core/utils'; import { @@ -37,25 +46,40 @@ import { Observable, of } from 'rxjs'; import { map, switchMap } from 'rxjs/operators'; import { EntityId } from '@shared/models/id/entity-id'; import { + backgroundStyle, ColorProcessor, + ComponentStyle, cssTextFromInlineStyle, DateFormatProcessor, - inlineTextStyle + inlineTextStyle, + overlayStyle } from '@shared/models/widget-settings.models'; import { ResourcesService } from '@core/services/resources.service'; import { NULL_UUID } from '@shared/models/id/has-uuid'; - import ITooltipsterInstance = JQueryTooltipster.ITooltipsterInstance; @Component({ selector: 'tb-liquid-level-widget', - template: '' + templateUrl: './liquid-level-widget.component.html', + styleUrls: ['./liquid-level-widget.component.scss'], + encapsulation: ViewEncapsulation.None }) export class LiquidLevelWidgetComponent implements OnInit { + @ViewChild('liquidLevelContent', {static: true}) + liquidLevelContent: ElementRef; + @Input() ctx: WidgetContext; + @Input() + widgetTitlePanel: TemplateRef; + + backgroundStyle: ComponentStyle = {}; + overlayStyle: ComponentStyle = {}; + + hasCardClickAction = false; + private svgParams: SvgInfo; private svg: JQuery; @@ -77,7 +101,7 @@ export class LiquidLevelWidgetComponent implements OnInit { private tooltipContent: string; private widgetUnits: string; - constructor(private elementRef: ElementRef) { + constructor(private cd: ChangeDetectorRef) { } ngOnInit(): void { @@ -85,14 +109,18 @@ export class LiquidLevelWidgetComponent implements OnInit { this.settings = {...levelCardDefaultSettings, ...this.ctx.settings}; this.declareStyles(); + this.backgroundStyle = backgroundStyle(this.settings.background); + this.overlayStyle = overlayStyle(this.settings.background.overlay); + + this.hasCardClickAction = this.ctx.actionsApi.getActionDescriptors('cardClick').length > 0; + this.getData().subscribe(data => { if (data) { const { svg, volume, units } = data; - if (svg && isString(svg) && this.elementRef.nativeElement) { - const jQueryContainerElement = $(this.elementRef.nativeElement); + if (svg && isString(svg) && this.liquidLevelContent.nativeElement) { + const jQueryContainerElement = $(this.liquidLevelContent.nativeElement); jQueryContainerElement.html(svg); this.svg = jQueryContainerElement.find('svg'); - this.svg.on('click', this.cardClick.bind(this)); this.createSVG(); this.createValueElement(); @@ -151,6 +179,12 @@ export class LiquidLevelWidgetComponent implements OnInit { ); } + public onInit() { + const borderRadius = this.ctx.$widgetElement.css('borderRadius'); + this.overlayStyle = {...this.overlayStyle, ...{borderRadius}}; + this.cd.detectChanges(); + } + public update(ignoreAnimation?: boolean) { if (this.svg) { this.updateData(ignoreAnimation); @@ -229,7 +263,7 @@ export class LiquidLevelWidgetComponent implements OnInit { } private createValueElement(): void { - const jQueryContainerElement = $(this.elementRef.nativeElement); + const jQueryContainerElement = $(this.liquidLevelContent.nativeElement); const containerOverlay = jQueryContainerElement.find('.container-overlay'); const percentageOverlay = jQueryContainerElement.find('.percentage-overlay'); const absoluteOverlay = jQueryContainerElement.find('.absolute-overlay'); @@ -333,7 +367,7 @@ export class LiquidLevelWidgetComponent implements OnInit { private updateLevel(newY: number, percentage: number, ignoreAnimation = false): void { this.liquidColor.update(percentage); - const jQueryContainerElement = $(this.elementRef.nativeElement); + const jQueryContainerElement = $(this.liquidLevelContent.nativeElement); const fill = jQueryContainerElement.find('.tb-liquid-fill'); const surfaces = jQueryContainerElement.find('.tb-liquid-surface'); const surfacePositionAttr = this.shape !== Shapes.vCylinder ? 'y' : 'cy'; @@ -360,7 +394,7 @@ export class LiquidLevelWidgetComponent implements OnInit { } private updateShapeColor(value: number): void { - const jQueryContainerElement = $(this.elementRef.nativeElement); + const jQueryContainerElement = $(this.liquidLevelContent.nativeElement); const shapeStrokes = jQueryContainerElement.find('.tb-shape-stroke'); const shapeFill = jQueryContainerElement.find('.tb-shape-fill'); this.tankColor.update(value); @@ -377,7 +411,7 @@ export class LiquidLevelWidgetComponent implements OnInit { private updateValueElement(data: any, percentage: number): void { let content: string; let container: JQuery; - const jQueryContainerElement = $(this.elementRef.nativeElement); + const jQueryContainerElement = $(this.liquidLevelContent.nativeElement); let value = 'N/A'; if (isNumber(data)) { From 86f8965eabb4735eb7176aaaefcef5089d76a6c7 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 30 Oct 2023 12:21:30 +0200 Subject: [PATCH 41/56] fixed thingsboard.yml --- application/src/main/resources/thingsboard.yml | 4 ++-- .../thingsboard/server/cluster/TbClusterService.java | 3 +++ .../queue/settings/TbQueueRemoteJsInvokeSettings.java | 11 +++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index f04cc4bc38..4f51cc7aed 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1270,8 +1270,8 @@ swagger: # Queue configuration parameters queue: - type: "${TB_QUEUE_TYPE:kafka}" # 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:myPrefix}" # 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) + 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: # For debug level 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 e81aaed39d..4b199e5654 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 @@ -33,6 +33,7 @@ import org.thingsboard.server.common.msg.edge.FromEdgeSyncResponse; import org.thingsboard.server.common.msg.edge.ToEdgeSyncRequest; import org.thingsboard.server.common.msg.queue.TopicPartitionInfo; import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponse; +import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; @@ -50,6 +51,8 @@ public interface TbClusterService extends TbQueueClusterService { void pushMsgToCore(ToDeviceActorNotificationMsg msg, TbQueueCallback callback); + void broadcastToCore(TransportProtos.ToCoreNotificationMsg msg); + void pushMsgToVersionControl(TenantId tenantId, ToVersionControlServiceMsg msg, TbQueueCallback callback); void pushNotificationToCore(String targetServiceId, FromDeviceRpcResponse response, TbQueueCallback callback); diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/settings/TbQueueRemoteJsInvokeSettings.java b/common/queue/src/main/java/org/thingsboard/server/queue/settings/TbQueueRemoteJsInvokeSettings.java index 25f3244079..15ff55972d 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/settings/TbQueueRemoteJsInvokeSettings.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/settings/TbQueueRemoteJsInvokeSettings.java @@ -24,6 +24,9 @@ import org.springframework.stereotype.Component; @Data @Component public class TbQueueRemoteJsInvokeSettings { + + @Value("${queue.prefix:}") + private String prefix; @Value("${queue.js.request_topic}") private String requestTopic; @@ -38,4 +41,12 @@ public class TbQueueRemoteJsInvokeSettings { @Value("${queue.js.max_requests_timeout}") private long maxRequestsTimeout; + + public String getRequestTopic(){ + return prefix.isBlank() ? requestTopic : prefix + "." + requestTopic; + } + + public String getResponseTopic(){ + return prefix.isBlank() ? responseTopic : prefix + "." + responseTopic; + } } From 59dcb88502b16187e3f611567ce41fd2b254484d Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 30 Oct 2023 12:23:02 +0200 Subject: [PATCH 42/56] fixed thingsboard.yml --- 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 4f51cc7aed..cf81e28f39 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -806,7 +806,7 @@ tbel: # JS parameters js: # local (Nashorn Engine, deprecated) OR remote JS-Executors (NodeJS) - evaluator: "${JS_EVALUATOR:remote}" + evaluator: "${JS_EVALUATOR:local}" # Limit the number of arguments that are passed to the function to execute the script max_total_args_size: "${JS_MAX_TOTAL_ARGS_SIZE:100000}" # Maximum allowed symbols in a result after processing a script From 1bf3f6066e4d8366e3cb0a9d5feffa0a06355751 Mon Sep 17 00:00:00 2001 From: Dmytro Skarzhynets Date: Mon, 30 Oct 2023 12:27:16 +0200 Subject: [PATCH 43/56] Add base implementation of new tags search --- .../sql/widget/WidgetTypeInfoRepository.java | 81 ++++++++++++++++--- .../sql/widget/WidgetsBundleRepository.java | 40 ++++++++- 2 files changed, 108 insertions(+), 13 deletions(-) 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 f3f3bf5139..f9114a9e40 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 @@ -33,14 +33,29 @@ public interface WidgetTypeInfoRepository extends JpaRepository findSystemWidgetTypes(@Param("systemTenantId") UUID systemTenantId, @Param("searchText") String searchText, @@ -57,13 +72,29 @@ public interface WidgetTypeInfoRepository extends JpaRepository findAllTenantWidgetTypesByTenantId(@Param("tenantId") UUID tenantId, @Param("nullTenantId") UUID nullTenantId, @@ -81,13 +112,29 @@ public interface WidgetTypeInfoRepository extends JpaRepository findTenantWidgetTypesByTenantId(@Param("tenantId") UUID tenantId, @Param("searchText") String searchText, @@ -111,7 +158,15 @@ public interface WidgetTypeInfoRepository extends JpaRepository findWidgetTypesInfosByWidgetsBundleId(@Param("widgetsBundleId") UUID widgetsBundleId, @Param("searchText") String searchText, 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 53bda50ba4..893bebb2ed 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 @@ -46,7 +46,15 @@ public interface WidgetsBundleRepository extends JpaRepository findSystemWidgetsBundlesFullSearch(@Param("systemTenantId") UUID systemTenantId, @Param("textSearch") String textSearch, @@ -81,7 +97,15 @@ public interface WidgetsBundleRepository extends JpaRepository findAllTenantWidgetsBundlesByTenantIdFullSearch(@Param("tenantId") UUID tenantId, @Param("nullTenantId") UUID nullTenantId, From 4832b9c1223d3b22fbe2ddfa67ef655694c15041 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Mon, 30 Oct 2023 12:58:10 +0200 Subject: [PATCH 44/56] UI: Outdoor Environment: PM10 widgets. --- .../widget_bundles/outdoor_environment.json | 10 +++++- .../widget_types/horizontal_pm10_card.json | 30 +++++++++++++++++ .../horizontal_pm10_card_with_background.json | 30 +++++++++++++++++ .../json/system/widget_types/pm10_card.json | 30 +++++++++++++++++ .../pm10_card_with_background.json | 30 +++++++++++++++++ .../system/widget_types/pm10_chart_card.json | 33 +++++++++++++++++++ .../pm10_chart_card_with_background.json | 33 +++++++++++++++++++ .../widget_types/simple_pm10_chart_card.json | 33 +++++++++++++++++++ ...imple_pm10_chart_card_with_background.json | 33 +++++++++++++++++++ 9 files changed, 261 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_pm10_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_pm10_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/pm10_card.json create mode 100644 application/src/main/data/json/system/widget_types/pm10_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/pm10_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/pm10_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_pm10_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_pm10_chart_card_with_background.json 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 cdba1b55af..ea545ac988 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 @@ -173,6 +173,14 @@ "pm2_5_chart_card", "pm2_5_chart_card_with_background", "simple_pm2_5_chart_card", - "simple_pm2_5_chart_card_with_background" + "simple_pm2_5_chart_card_with_background", + "pm10_card", + "pm10_card_with_background", + "horizontal_pm10_card", + "horizontal_pm10_card_with_background", + "pm10_chart_card", + "pm10_chart_card_with_background", + "simple_pm10_chart_card", + "simple_pm10_chart_card_with_background" ] } \ No newline at end of file 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 new file mode 100644 index 0000000000..5f7242e7fb --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_pm10_card.json @@ -0,0 +1,30 @@ +{ + "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=", + "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'pm10', label: 'PM10', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "settingsSchema": "", + "dataKeySettingsSchema": "", + "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\":\"#80C32C\"},{\"from\":20,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var 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\":\"#80C32C\"},{\"from\":20,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"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\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"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": [ + "environment", + "particulate", + "matter", + "air", + "pm10" + ] +} \ No newline at end of file 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 new file mode 100644 index 0000000000..13315c949b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_pm10_card_with_background.json @@ -0,0 +1,30 @@ +{ + "fqn": "horizontal_pm10_card_with_background", + "name": "Horizontal PM10 card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'pm10', label: 'PM10', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "settingsSchema": "", + "dataKeySettingsSchema": "", + "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}}" + }, + "externalId": null, + "tags": [ + "environment", + "particulate", + "matter", + "air", + "pm10" + ] +} \ No newline at end of file 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 new file mode 100644 index 0000000000..943c8f5ae1 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/pm10_card.json @@ -0,0 +1,30 @@ +{ + "fqn": "pm10_card", + "name": "PM10 card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'pm10', label: 'PM10', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "settingsSchema": "", + "dataKeySettingsSchema": "", + "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\":\"#80C32C\"},{\"from\":20,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var 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\":\"#80C32C\"},{\"from\":20,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"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\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"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": [ + "environment", + "matter", + "air", + "particulate", + "pm10" + ] +} \ No newline at end of file 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 new file mode 100644 index 0000000000..ac01cc445f --- /dev/null +++ b/application/src/main/data/json/system/widget_types/pm10_card_with_background.json @@ -0,0 +1,30 @@ +{ + "fqn": "pm10_card_with_background", + "name": "PM10 card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'pm10', label: 'PM10', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "settingsSchema": "", + "dataKeySettingsSchema": "", + "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}}" + }, + "externalId": null, + "tags": [ + "environment", + "matter", + "air", + "particulate", + "pm10" + ] +} \ No newline at end of file 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 new file mode 100644 index 0000000000..173e1be850 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/pm10_chart_card.json @@ -0,0 +1,33 @@ +{ + "fqn": "pm10_chart_card", + "name": "PM10 chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a fine and coarse particulate matter (PM10) data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\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.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pm10', label: 'PM10', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'µg/m³', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'pm10', 'µg/m³', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "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\":\"#80C32C\"},{\"from\":20,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var 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\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"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": [ + "environment", + "particulate", + "matter", + "air", + "pm10" + ] +} \ No newline at end of file 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 new file mode 100644 index 0000000000..731e6220b7 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/pm10_chart_card_with_background.json @@ -0,0 +1,33 @@ +{ + "fqn": "pm10_chart_card_with_background", + "name": "PM10 chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a fine and coarse particulate matter (PM10) data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\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.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pm10', label: 'PM10', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'µg/m³', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'pm10', 'µg/m³', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "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}" + }, + "externalId": null, + "tags": [ + "environment", + "particulate", + "matter", + "air", + "pm10" + ] +} \ No newline at end of file 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 new file mode 100644 index 0000000000..496e6dd53e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_pm10_chart_card.json @@ -0,0 +1,33 @@ +{ + "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=", + "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", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\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.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pm10', label: 'PM10', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'pm10', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "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\":\"#80C32C\"},{\"from\":20,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var 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\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"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": [ + "environment", + "particulate", + "matter", + "air", + "pm10" + ] +} \ No newline at end of file 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 new file mode 100644 index 0000000000..fdf7ff5d0b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_pm10_chart_card_with_background.json @@ -0,0 +1,33 @@ +{ + "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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", + "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", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\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.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pm10', label: 'PM10', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'pm10', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "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}}" + }, + "externalId": null, + "tags": [ + "environment", + "particulate", + "matter", + "air", + "pm10" + ] +} \ No newline at end of file From 9f7d642c0cbe94ef3f1ab89f687b897d689c88f6 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Mon, 30 Oct 2023 13:44:16 +0200 Subject: [PATCH 45/56] UI: Air quality widgets bundle --- .../system/widget_bundles/air_quality.json | 70 +++++++++++++++++++ .../DefaultSystemDataLoaderService.java | 1 + 2 files changed, 71 insertions(+) create mode 100644 application/src/main/data/json/system/widget_bundles/air_quality.json 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 new file mode 100644 index 0000000000..128bf9d9cd --- /dev/null +++ b/application/src/main/data/json/system/widget_bundles/air_quality.json @@ -0,0 +1,70 @@ +{ + "widgetsBundle": { + "alias": "air_quality", + "title": "Air quality", + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMkAAAChCAMAAABav2sAAAABa1BMVEUAAAAAAAD19fXf39/w8PD9/f3AwMDw8PDy8vL39/f////39/f19fX5+fnj4+OsrKw/pxrHx8fx8fGAwyzn5+fa2tp0dHSQkJDu7u5YWFjz8/Ph4eHQ6a+CgoJmZmbV1dXOzs7v9+W6urrf8Mqf04zU1NSg0mDdNVH/pgD1xc2/4ZX64uaenp7CwsLwqLSQy0aIxznYGDj3+/L/3p+v2Xv/9N/Y7L3ri5vn9Ni33qniUmn/+u/n9ONKSkr/vED/sSDumqjaJkTm5ub/6b/H5aP/2JDc3Nznb4L/qxDz+vH/78/fQ12YzlP98fP/46+43Yj/0oBYszi8vLyw2XuHyHD309rJycnP6cbH5aKTzn62trar2ZrA4ZbpfY//zXCn1m51wFqQykZLrCj7+/vz+fHzt8HD47iZmZmf043/wk8vLy/b79Tb7tSpqamNjY233YjlYHZkZGTgQ13/tzDri5yWlpZVVVU9PT0hISE3rbRvAAAACnRSTlMAB+8gvvEqsK/FH1hXSwAACc9JREFUeNrsm/2L0zAYx0UF5atJSJe0WdOu3UrLGBsbe2Mw9ODmiRyih4KIiCL+IAoqIop/vk+rm5vOt3nTTvZhfZrLRpPPJU/S3suZM2fOnT97aWtcvnCOmvg7rZw7i61ylhr5O61cxJY5TyJ/pZXL2DJnSeSvtHIJW+YSifyFVvYme5MFe5NTMXGWyxubOBJE2xMQEXgbIuQA9zy+XRPh1jivuQIEdzGHyhubuB8aFKs8bFRDuFeiMHIB6XFnuyZVRA03wpVPveeuyz3Hi0JvcxPXu8IBVGWtUa05bhXwBNCoVbc7JoUCtVF1Gg6ZtMNQ1ISoiqrc1MSpRaK4sIhyG1GF8ABwR4hTNAlarTHGeVhQ49LzpFPljUZuIiLevuLUZLTxmBAcRLU4XtCVX7htKeTpjkk2fP2Ywt0MC3gtdJzQ5U4IOMIJQ+60wUPPEaVeu7KkCEmGcTDuY5nIi3ZpFc6uBfcpXMtwbdgNdnk/aWXZfVzLQ9C6OcZ38BmWYWwjE2swx19cysyvlZ7a2pVdS/rI6QCM0etQU2C5BYt9xvy0aF/GYFqBysWbv2HiG6asPFSxjmyMNNbaqjS2kWGRUorFysbsVEyG3e54bhJJvxOnEkrHqnPHdB748QN1R9+7A/gx63QUbKxlHKdR+usmzBob6UOWWl9raE09V1prX/mxthY61fqU95MOGPU+7igNQyY6jShKkollmpuYVCvEUXzHj++gU5o8WYOMVSr9VLMYLJamEyGWpIG8DmAWqTTQqbUytqkps8kqTOE76Ngv09q1HdZnvDaHxqe0gPaZb5TRyvd9s4smHauVPdQah5TcSh0qbem1gyZMKWWtUQqpyofD+vkIxTtospadnF0F/0XGA3uTvcneZG+yN9mb7E2W+Z9NZlebzasjAEcHzYOTHTYZNQ+OTm4cTDFovh08bx7hpzglNXnUnOXhFq42R5jeOPiBgfMUkC5CB5KX0KTghHRyCdKZ4js8TdNLTgNe5IWIPF5Gk+ns6MZboHkVKAbmO7B3oQIgHK8BLqMymgyazRvHPzfBy1flznhgOpod3BgtTHZ27fo8LEc/y5MCW0QDQJXP5HnzuDD5JHFAOlNMj0fT2fHx6PgWVvAVTKqMsqnSPzcJEgpJawwiuTbGWiYJvlAPks1NSOJgQHviiArPB4+aJ1QzGtw6mo1unRzNjrGKQWR1CmMMfmpyrTIEbvce924Drd7jboZ1ZAEW9G+2esnmJhgc0B4/A3Byo3njUV5x69bRyWA0GwzW/vLD/Fqe1Lu9IeqVAONKH3RKKpOiuv/p6Cf9oljp9+uYTOjrOoDgZv2P8mQ6z41REW+RzPH0TzP+7u3ukLpfp86OJ5UEuQ0otoBCr9ftUTEYIqjc7FVud3uVJDcZl+4OMujWySQoTILkGxN6r54XqecBvfmYPndz2O+1ukHZTOrUpR+Y1IuKFiZdFJ9pPQGyLM/40t3Vv+5lWaX7MJ9dNLXq35qMi+Ld4bJJKZ9PJkEQ9LKkX7lf9LT3cJ7xldvFMtCjE5l0k9KbEPnsQovS+WG+ImfU98KESr0gr+hWWkkXO2GS1PMQJCt7XmUYJEkf/UlA43WXJFFP6JgAk0lpTdZR5AnRuhvc7dU3uVth1le+AfFPTRZ7en2YDSfYxMRoe2g1ltjVn0j4VlulAOVjYyJ8gf3ze+E/EPFCQvC5Ckp3V//LIgKEbLuCl/BJi3N8hSMakq8V8RaTzA1F6UzcsP31DIpko+ZghYYQIvSwhPTccpkIAeFyLJCuBME9rHabE1jF+ecm7NIS7+nQr15SzLn+5tnn0rOisKi+tBaUaEyE/HTyOEXH8xzMoZoFIS/XfrIGx5vnvSeKifUFp/ZFt12ynXFBw3XdkH/1jW/X2lghCheWZdvjV/6qgwtXgIf4AW05n1tlNLGaDoYC4VY5fkRN5IQC30H9SxOlAMZ+9b8meAG+h//P82TBrt4LL9ib7E1O3cQsP1QY9qmo/B000VDWGg1jbGojkyoTWzywoFNkLdshk9RowkLFaapTHSsVGWgJ3SEza3bI5AsKqzC7W7PrYzv325o2EMBxfN3Urb+5nHcPLr0HOSFkhBAb8JEoEcweVER8IPQPUgZla0vZ9mCMwd7+7sJqlTBpNLl2Lh/wDCLGryYahcuKf3yPX6pK/ouSlyhZU4UYWUsNJXutQgysZZ/OiPHi1Zvm29K8rKUhBtZSqZTsoEQvDGoc1lGeWsPYeYkadZSq3jD1KVxDyQ4NnZfoAGWrHxg5L5GBEhwYOYKsSh6vKsllX0sYINUFbRcWZTZhIE4bO1svoRYIlggDHIswhu1lSxi3bUfqBQlOZZvYlFuSURfby5bYFAJUBVHXcuGytiss6nDK2tvWZEtAO3BcKNwSEIDoEIAJl2J72RLBf0FAEO5wh6g10SFVr6DbkRa2lC2BtB3BdBLnGMIShIAwIostoRBpSYpTDkFtQpiU2Fa2hHFIBu1LGx0pXSYcziQn2E22ZGjfl1jSVu8JlXAIdvF8PrvYjhvX8ymxKHbyfEp2VZXkUpXkUpXkUpXkUpXkUpXkUpXkkimJva9A3/O8SxTmaUpOW31gPr+6OkVhnqSkP9clrVsUy3zJZN5XJdethddHkcyXLE6hSuJPV6efFkD/7iJGAcyXqIRYl2hea4LF7WUfRTBfctrSvPgC6KuS62/e1xgFMF8yieO4dTm5aN1OruZQORd3lyiA+RJNb113rdb8G4CL64WH3RVdwmwhOcO6bElqEt8vQCu2ZHYGIJwBQRTgflx19h0bcQq0BdaZP1o5GyQ9RINugMj/6I8QJXpcE/jYxOJQbIo15ktuoqkqCVTJYITRFIMebnwAo6AXYdbTY+BHvRCrmGulV1IIi8k/y1hjvgT6uQOqxNfPGVM1dgH4P0b+z7A7HiVB0B2PkxkeuIJIAsDpwJLSRapjA7AY/nj6Ev++JMJoGnZDjMfqVkxHeCAYMLRAOVYRKYZcCoLU05dMH0oiX5f0dIm+01Ja0BZDFZRl2R1omW/Gv/KaW3i7qeT7GB8H+DjGaKBLRhgPwu4Zpr0gCWf+DZa4hc2yJZ82lMyb29hUEvq+H+oxOUv3Ez8Jw26S+GGQTJMBlmwHuUti7+/id1v4vPmbMVwZ/WgGqK1r9TaNig4e4/n8+vUjpCVY15EMj7JecnR8hEKcAOqhzs9zlISzdMQ2siXHcFGEDx2cH7knJ8dNpMwfQboFlaQPpErOj6D92yXHTffD+7LfEyP7SfP4BO/fI1X9c5dLVZJLVZJLVZJLVZJLVZJLVZJLVZLLnpXUUbYDQ/MZD1Gympn5jPs0k+ZFo4by1A8bZuYz7tGMs98glI0MfcFq1wAAAABJRU5ErkJggg==", + "description": "Contains widgets displaying air quality telemetry.", + "externalId": null, + "name": "Air quality" + }, + "widgetTypeFqns": [ + "air_quality_card", + "air_quality_card_with_background", + "horizontal_air_quality_card", + "horizontal_air_quality_card_with_background", + "air_quality_chart_card", + "air_quality_chart_card_with_background", + "simple_air_quality_chart_card", + "simple_air_quality_chart_card_with_background", + "humidity_card", + "humidity_card_with_background", + "horizontal_humidity_card", + "horizontal_humidity_card_with_background", + "humidity_chart_card", + "humidity_chart_card_with_background", + "simple_humidity_chart_card", + "simple_humidity_chart_card_with_background", + "humidity_progress_bar", + "humidity_progress_bar_with_background", + "co2_card", + "co2_card_with_background", + "horizontal_co2_card", + "horizontal_co2_card_with_background", + "co2_chart_card", + "co2_chart_card_with_background", + "simple_co2_chart_card", + "simple_co2_chart_card_with_background", + "pm2_5_card", + "pm2_5_card_with_background", + "horizontal_pm2_5_card", + "horizontal_pm2_5_card_with_background", + "pm2_5_chart_card", + "pm2_5_chart_card_with_background", + "simple_pm2_5_chart_card", + "simple_pm2_5_chart_card_with_background", + "pm10_card", + "pm10_card_with_background", + "horizontal_pm10_card", + "horizontal_pm10_card_with_background", + "pm10_chart_card", + "pm10_chart_card_with_background", + "simple_pm10_chart_card", + "simple_pm10_chart_card_with_background", + "radon_level_card", + "radon_level_card_with_background", + "horizontal_radon_level_card", + "horizontal_radon_level_card_with_background", + "radon_level_chart_card", + "radon_level_chart_card_with_background", + "simple_radon_level_chart_card", + "simple_radon_level_chart_card_with_background", + "volatile_organic_compounds_card", + "volatile_organic_compounds_card_with_background", + "horizontal_volatile_organic_compounds_card", + "horizontal_volatile_organic_compounds_card_with_background", + "volatile_organic_compounds_chart_card", + "volatile_organic_compounds_chart_card_with_background", + "simple_volatile_organic_compounds_chart_card", + "simple_volatile_organic_compounds_chart_card_with_background" + ] +} \ No newline at end of file diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java index 87e1b097e4..ee045976e7 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java @@ -535,6 +535,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { this.deleteSystemWidgetBundle("status_indicators"); this.deleteSystemWidgetBundle("outdoor_environment"); this.deleteSystemWidgetBundle("indoor_environment"); + this.deleteSystemWidgetBundle("air_quality"); installScripts.loadSystemWidgets(); } From 5ede741892fa8c76e447354847f6294f3afcb995 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Mon, 30 Oct 2023 13:44:17 +0200 Subject: [PATCH 46/56] Optimize DAO layer for Widget Bundles --- .../dao/sql/widget/JpaWidgetsBundleDao.java | 37 +++++++------------ .../sql/widget/WidgetsBundleRepository.java | 35 +++--------------- 2 files changed, 20 insertions(+), 52 deletions(-) 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 96ad4bd299..85d7c35618 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 @@ -30,6 +30,9 @@ import org.thingsboard.server.dao.sql.JpaAbstractDao; import org.thingsboard.server.dao.util.SqlDao; 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; @@ -92,40 +95,28 @@ public class JpaWidgetsBundleDao extends JpaAbstractDao findAllTenantWidgetsBundlesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink) { - if (fullSearch) { - return DaoUtil.toPageData( - widgetsBundleRepository - .findAllTenantWidgetsBundlesByTenantIdFullSearch( - tenantId, - NULL_UUID, - pageLink.getTextSearch(), - DaoUtil.toPageable(pageLink))); - } else { - return DaoUtil.toPageData( - widgetsBundleRepository - .findAllTenantWidgetsBundlesByTenantId( - tenantId, - NULL_UUID, - pageLink.getTextSearch(), - DaoUtil.toPageable(pageLink))); - } + return findTenantWidgetsBundlesByTenantIds(Arrays.asList(tenantId, NULL_UUID), fullSearch, pageLink); } @Override public PageData findTenantWidgetsBundlesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink) { + return findTenantWidgetsBundlesByTenantIds(Collections.singletonList(tenantId), fullSearch, pageLink); + } + + private PageData findTenantWidgetsBundlesByTenantIds(List tenantIds, boolean fullSearch, PageLink pageLink) { if (fullSearch) { return DaoUtil.toPageData( widgetsBundleRepository - .findTenantWidgetsBundlesByTenantIdFullSearch( - tenantId, - Objects.toString(pageLink.getTextSearch(), ""), + .findAllTenantWidgetsBundlesByTenantIdFullSearch( + tenantIds, + pageLink.getTextSearch(), DaoUtil.toPageable(pageLink))); } else { return DaoUtil.toPageData( widgetsBundleRepository - .findTenantWidgetsBundlesByTenantId( - tenantId, - Objects.toString(pageLink.getTextSearch(), ""), + .findAllTenantWidgetsBundlesByTenantId( + tenantIds, + pageLink.getTextSearch(), DaoUtil.toPageable(pageLink))); } } 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 13aadf6119..61a447c3ae 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 @@ -23,6 +23,7 @@ import org.springframework.data.repository.query.Param; import org.thingsboard.server.dao.ExportableEntityRepository; import org.thingsboard.server.dao.model.sql.WidgetsBundleEntity; +import java.util.List; import java.util.UUID; /** @@ -66,15 +67,14 @@ public interface WidgetsBundleRepository extends JpaRepository findAllTenantWidgetsBundlesByTenantId(@Param("tenantId") UUID tenantId, - @Param("nullTenantId") UUID nullTenantId, + Page findAllTenantWidgetsBundlesByTenantId(@Param("tenantIds") List tenantIds, @Param("textSearch") String textSearch, Pageable pageable); @Query(nativeQuery = true, - value = "SELECT * FROM widgets_bundle wb WHERE wb.tenant_id IN (:tenantId, :nullTenantId) " + + value = "SELECT * FROM widgets_bundle wb WHERE wb.tenant_id IN (:tenantIds) " + "AND (wb.title ILIKE CONCAT('%', :textSearch, '%') " + "OR wb.description ILIKE CONCAT('%', :textSearch, '%') " + "OR wb.id in (SELECT wbw.widgets_bundle_id FROM widgets_bundle_widget wbw, widget_type wtd " + @@ -82,7 +82,7 @@ public interface WidgetsBundleRepository extends JpaRepository findAllTenantWidgetsBundlesByTenantIdFullSearch(@Param("tenantId") UUID tenantId, - @Param("nullTenantId") UUID nullTenantId, - @Param("textSearch") String textSearch, - Pageable pageable); - - @Query(nativeQuery = true, - value = "SELECT * FROM widgets_bundle wb WHERE wb.tenant_id IN (:tenantId) " + - "AND (wb.title ILIKE CONCAT('%', :textSearch, '%') " + - "OR wb.description ILIKE CONCAT('%', :textSearch, '%') " + - "OR wb.id in (SELECT wbw.widgets_bundle_id FROM widgets_bundle_widget wbw, widget_type wtd " + - "WHERE wtd.id = wbw.widget_type_id " + - "AND (wtd.name ILIKE CONCAT('%', :textSearch, '%') " + - "OR wtd.description ILIKE CONCAT('%', :textSearch, '%') " + - "OR lower(wtd.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:textSearch), ' '))))", - countQuery = "SELECT count(*) FROM widgets_bundle wb WHERE wb.tenant_id IN (:tenantId, :nullTenantId) " + - "AND (wb.title ILIKE CONCAT('%', :textSearch, '%') " + - "OR wb.description ILIKE CONCAT('%', :textSearch, '%') " + - "OR wb.id in (SELECT wbw.widgets_bundle_id FROM widgets_bundle_widget wbw, widget_type wtd " + - "WHERE wtd.id = wbw.widget_type_id " + - "AND (wtd.name ILIKE CONCAT('%', :textSearch, '%') " + - "OR wtd.description ILIKE CONCAT('%', :textSearch, '%') " + - "OR lower(wtd.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:textSearch), ' '))))" - ) - Page findTenantWidgetsBundlesByTenantIdFullSearch(@Param("tenantId") UUID tenantId, + Page findAllTenantWidgetsBundlesByTenantIdFullSearch(@Param("tenantIds") List tenantIds, @Param("textSearch") String textSearch, Pageable pageable); From 34bd57b7268fcce570af1f73f2e3cf31b90f86e3 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Mon, 30 Oct 2023 13:49:56 +0200 Subject: [PATCH 47/56] Fix method names --- .../server/dao/sql/widget/JpaWidgetsBundleDao.java | 4 ++-- .../server/dao/sql/widget/WidgetsBundleRepository.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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 85d7c35618..a5051a2747 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 @@ -107,14 +107,14 @@ public class JpaWidgetsBundleDao extends JpaAbstractDao findAllTenantWidgetsBundlesByTenantId(@Param("tenantIds") List tenantIds, + Page findAllTenantWidgetsBundlesByTenantIds(@Param("tenantIds") List tenantIds, @Param("textSearch") String textSearch, Pageable pageable); @@ -91,7 +91,7 @@ public interface WidgetsBundleRepository extends JpaRepository findAllTenantWidgetsBundlesByTenantIdFullSearch(@Param("tenantIds") List tenantIds, + Page findAllTenantWidgetsBundlesByTenantIdsFullSearch(@Param("tenantIds") List tenantIds, @Param("textSearch") String textSearch, Pageable pageable); From fc6325736982ebdc48e177d3fdaa6f7d3f22bacf Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Mon, 30 Oct 2023 14:00:53 +0200 Subject: [PATCH 48/56] Fix null check in text search --- .../dao/sql/widget/WidgetsBundleRepository.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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 94bc043e48..72bfe30222 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 @@ -41,19 +41,19 @@ public interface WidgetsBundleRepository extends JpaRepository Date: Mon, 30 Oct 2023 15:34:49 +0200 Subject: [PATCH 49/56] Fix copy-paste error --- .../sql/widget/WidgetsBundleRepository.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) 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 893bebb2ed..ac09ae1a2b 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 @@ -49,11 +49,11 @@ public interface WidgetsBundleRepository extends JpaRepository findSystemWidgetsBundlesFullSearch(@Param("systemTenantId") UUID systemTenantId, @@ -100,11 +100,11 @@ public interface WidgetsBundleRepository extends JpaRepository findAllTenantWidgetsBundlesByTenantIdFullSearch(@Param("tenantId") UUID tenantId, From 416d178f749354088e497d52a23a2c3eee3bea1a Mon Sep 17 00:00:00 2001 From: Dmytro Skarzhynets Date: Mon, 30 Oct 2023 15:35:06 +0200 Subject: [PATCH 50/56] Add tests for new tag searching logic --- .../dao/sql/widget/JpaWidgetTypeDaoTest.java | 173 ++++++++++++++++++ .../sql/widget/JpaWidgetsBundleDaoTest.java | 122 ++++++++++++ 2 files changed, 295 insertions(+) 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 7f4b2c6cfa..e6d46bb942 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 @@ -41,8 +41,10 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.Map; import java.util.UUID; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -51,6 +53,26 @@ import static org.junit.Assert.assertNotNull; */ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { + // given search text should find a widget with tags, when searching by tags + final Map SHOULD_FIND_SEARCH_TO_TAGS_MAP = Map.of( + "A", new String[]{"a", "b", "c"}, + "test A test", new String[]{"a", "b", "c"}, + "test x y test", new String[]{"x y", "b", "c"}, + "x y test", new String[]{"x y", "b", "c"}, + "x y", new String[]{"x y", "b", "c"}, + "test x y", new String[]{"x y", "b", "c"} + ); + + // given search text should not find a widget with tags, when searching by tags + final Map SHOULDNT_FIND_SEARCH_TO_TAGS_MAP = Map.of( + "testA test", new String[]{"a", "b", "c"}, + "testx y test", new String[]{"x y", "b", "c"}, + "testx ytest", new String[]{"x y", "b", "c"}, + "x ytest", new String[]{"x y", "b", "c"}, + "testx y", new String[]{"x y", "b", "c"}, + "x", new String[]{"x y", "b", "c"} + ); + final String BUNDLE_ALIAS = "BUNDLE_ALIAS"; final int WIDGET_TYPE_COUNT = 3; List widgetTypeList; @@ -96,6 +118,19 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { return widgetTypeDao.save(TenantId.SYS_TENANT_ID, widgetType); } + WidgetTypeDetails createAndSaveWidgetType(TenantId tenantId, int number, String[] tags) { + WidgetTypeDetails widgetType = new WidgetTypeDetails(); + widgetType.setTenantId(tenantId); + widgetType.setName("WIDGET_TYPE_" + number); + widgetType.setDescription("WIDGET_TYPE_DESCRIPTION" + number); + widgetType.setFqn("FQN_" + number); + var descriptor = JacksonUtil.newObjectNode(); + descriptor.put("type", number % 2 == 0 ? "latest" : "static"); + widgetType.setDescriptor(descriptor); + widgetType.setTags(tags); + return widgetTypeDao.save(TenantId.SYS_TENANT_ID, widgetType); + } + @After public void tearDown() { widgetsBundleDao.removeById(TenantId.SYS_TENANT_ID, widgetsBundle.getUuidId()); @@ -123,6 +158,40 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { assertEquals(new WidgetTypeInfo(widgetTypeList.get(2)), widgetTypes.getData().get(0)); } + @Test + public void testTagsSearchInFindBySystemWidgetTypes() { + for (var entry : SHOULD_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetTypeDetails savedWidgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, WIDGET_TYPE_COUNT + 1, tags); + + PageData widgetTypes = widgetTypeDao.findSystemWidgetTypes( + TenantId.SYS_TENANT_ID, true, DeprecatedFilter.ALL, null, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(1); + assertThat(widgetTypes.getData().get(0).getId()).isEqualTo(savedWidgetType.getId()); + + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, savedWidgetType.getUuidId()); + } + + for (var entry : SHOULDNT_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetTypeDetails savedWidgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, WIDGET_TYPE_COUNT + 1, tags); + + PageData widgetTypes = widgetTypeDao.findSystemWidgetTypes( + TenantId.SYS_TENANT_ID, true, DeprecatedFilter.ALL, null, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(0); + + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, savedWidgetType.getUuidId()); + } + } + @Test public void testFindTenantWidgetTypesByTenantId() { UUID tenantId = Uuids.timeBased(); @@ -138,6 +207,74 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { assertEquals(new WidgetTypeInfo(widgetTypeList.get(5)), widgetTypes.getData().get(2)); } + @Test + public void testTagsSearchInFindTenantWidgetTypesByTenantId() { + for (var entry : SHOULD_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetTypeDetails savedWidgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, WIDGET_TYPE_COUNT + 1, tags); + + PageData widgetTypes = widgetTypeDao.findTenantWidgetTypesByTenantId( + TenantId.SYS_TENANT_ID.getId(), true, DeprecatedFilter.ALL, null, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(1); + assertThat(widgetTypes.getData().get(0).getId()).isEqualTo(savedWidgetType.getId()); + + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, savedWidgetType.getUuidId()); + } + + for (var entry : SHOULDNT_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetTypeDetails savedWidgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, WIDGET_TYPE_COUNT + 1, tags); + + PageData widgetTypes = widgetTypeDao.findTenantWidgetTypesByTenantId( + TenantId.SYS_TENANT_ID.getId(), true, DeprecatedFilter.ALL, null, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(0); + + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, savedWidgetType.getUuidId()); + } + } + + @Test + public void testTagsSearchInFindAllTenantWidgetTypesByTenantId() { + for (var entry : SHOULD_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetTypeDetails savedWidgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, WIDGET_TYPE_COUNT + 1, tags); + + PageData widgetTypes = widgetTypeDao.findAllTenantWidgetTypesByTenantId( + TenantId.SYS_TENANT_ID.getId(), true, DeprecatedFilter.ALL, null, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(1); + assertThat(widgetTypes.getData().get(0).getId()).isEqualTo(savedWidgetType.getId()); + + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, savedWidgetType.getUuidId()); + } + + for (var entry : SHOULDNT_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetTypeDetails savedWidgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, WIDGET_TYPE_COUNT + 1, tags); + + PageData widgetTypes = widgetTypeDao.findAllTenantWidgetTypesByTenantId( + TenantId.SYS_TENANT_ID.getId(), true, DeprecatedFilter.ALL, null, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(0); + + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, savedWidgetType.getUuidId()); + } + } + @Test public void testFindByWidgetTypeInfosByBundleId() { PageData widgetTypes = widgetTypeDao.findWidgetTypesInfosByWidgetsBundleId(TenantId.SYS_TENANT_ID.getId(), widgetsBundle.getUuidId(),true, DeprecatedFilter.ALL, Collections.singletonList("latest"), @@ -152,6 +289,42 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { assertEquals(new WidgetTypeInfo(widgetTypeList.get(0)), widgetTypes.getData().get(0)); } + @Test + public void testTagsSearchInFindByWidgetTypeInfosByBundleId() { + for (var entry : SHOULD_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetTypeDetails savedWidgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, WIDGET_TYPE_COUNT + 1, tags); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(this.widgetsBundle.getId(), savedWidgetType.getId(), WIDGET_TYPE_COUNT + 1)); + + PageData widgetTypes = widgetTypeDao.findWidgetTypesInfosByWidgetsBundleId( + TenantId.SYS_TENANT_ID.getId(), widgetsBundle.getUuidId(), true, DeprecatedFilter.ALL, null, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(1); + assertThat(widgetTypes.getData().get(0).getId()).isEqualTo(savedWidgetType.getId()); + + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, savedWidgetType.getUuidId()); + } + + for (var entry : SHOULDNT_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetTypeDetails savedWidgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, WIDGET_TYPE_COUNT + 1, tags); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(this.widgetsBundle.getId(), savedWidgetType.getId(), WIDGET_TYPE_COUNT + 1)); + + PageData widgetTypes = widgetTypeDao.findWidgetTypesInfosByWidgetsBundleId( + TenantId.SYS_TENANT_ID.getId(), widgetsBundle.getUuidId(), true, DeprecatedFilter.ALL, null, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(0); + + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, savedWidgetType.getUuidId()); + } + } + @Test public void testFindByTenantIdAndFqn() { WidgetType result = widgetTypeList.get(0); diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java index 424bda88f7..6eae6f8219 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java @@ -36,9 +36,11 @@ import org.thingsboard.server.dao.widget.WidgetsBundleDao; import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import java.util.Map; import java.util.UUID; import java.util.stream.Collectors; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; /** @@ -46,6 +48,27 @@ import static org.junit.Assert.assertEquals; */ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { + + // given search text should find a widget with tags, when searching by tags + final Map SHOULD_FIND_SEARCH_TO_TAGS_MAP = Map.of( + "A", new String[]{"a", "b", "c"}, + "test A test", new String[]{"a", "b", "c"}, + "test x y test", new String[]{"x y", "b", "c"}, + "x y test", new String[]{"x y", "b", "c"}, + "x y", new String[]{"x y", "b", "c"}, + "test x y", new String[]{"x y", "b", "c"} + ); + + // given search text should not find a widget with tags, when searching by tags + final Map SHOULDNT_FIND_SEARCH_TO_TAGS_MAP = Map.of( + "testA test", new String[]{"a", "b", "c"}, + "testx y test", new String[]{"x y", "b", "c"}, + "testx ytest", new String[]{"x y", "b", "c"}, + "x ytest", new String[]{"x y", "b", "c"}, + "testx y", new String[]{"x y", "b", "c"}, + "x", new String[]{"x y", "b", "c"} + ); + List widgetsBundles; List widgetTypeList; @@ -140,6 +163,51 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { assertEquals(widgetsBundle3, widgetsBundles3.getData().get(1)); } + @Test + public void testTagsSearchInFindBySystemWidgetTypes() { + for (var entry : SHOULD_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetsBundle systemWidgetBundle = createSystemWidgetBundle("Test Widget Bundle Alias", "Test Widget Bundle Title"); + WidgetType widgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, 0, "Test Widget Type Name", "Test Widget Type Description", tags); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(systemWidgetBundle.getId(), widgetType.getId(), 0)); + + PageData widgetTypes = widgetsBundleDao.findSystemWidgetsBundles( + TenantId.SYS_TENANT_ID, true, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(1); + assertThat(widgetTypes.getData().get(0).getId()).isEqualTo(systemWidgetBundle.getId()); + + widgetTypeDao.removeWidgetTypeFromWidgetsBundle(systemWidgetBundle.getUuidId(), widgetType.getUuidId()); + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, widgetType.getUuidId()); + widgetsBundleDao.removeById(TenantId.SYS_TENANT_ID, systemWidgetBundle.getUuidId()); + } + + for (var entry : SHOULDNT_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetsBundle systemWidgetBundle = createSystemWidgetBundle("Test Widget Bundle Alias", "Test Widget Bundle Title"); + WidgetType widgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, 0, "Test Widget Type Name", "Test Widget Type Description", tags); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(systemWidgetBundle.getId(), widgetType.getId(), 0)); + + PageData widgetTypes = widgetsBundleDao.findSystemWidgetsBundles( + TenantId.SYS_TENANT_ID, true, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(0); + + widgetTypeDao.removeWidgetTypeFromWidgetsBundle(systemWidgetBundle.getUuidId(), widgetType.getUuidId()); + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, widgetType.getUuidId()); + widgetsBundleDao.removeById(TenantId.SYS_TENANT_ID, systemWidgetBundle.getUuidId()); + } + + widgetsBundles = new ArrayList<>(); + widgetTypeList = new ArrayList<>(); + } + @Test public void testFindWidgetsBundlesByTenantId() { UUID tenantId1 = Uuids.timeBased(); @@ -245,6 +313,51 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { assertEquals(widgetsBundle3, widgetsBundles5.getData().get(0)); } + @Test + public void testTagsSearchInFindAllWidgetsBundlesByTenantId() { + for (var entry : SHOULD_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetsBundle systemWidgetBundle = createSystemWidgetBundle("Test Widget Bundle Alias", "Test Widget Bundle Title"); + WidgetType widgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, 0, "Test Widget Type Name", "Test Widget Type Description", tags); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(systemWidgetBundle.getId(), widgetType.getId(), 0)); + + PageData widgetTypes = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId( + TenantId.SYS_TENANT_ID.getId(), true, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(1); + assertThat(widgetTypes.getData().get(0).getId()).isEqualTo(systemWidgetBundle.getId()); + + widgetTypeDao.removeWidgetTypeFromWidgetsBundle(systemWidgetBundle.getUuidId(), widgetType.getUuidId()); + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, widgetType.getUuidId()); + widgetsBundleDao.removeById(TenantId.SYS_TENANT_ID, systemWidgetBundle.getUuidId()); + } + + for (var entry : SHOULDNT_FIND_SEARCH_TO_TAGS_MAP.entrySet()) { + String searchText = entry.getKey(); + String[] tags = entry.getValue(); + + WidgetsBundle systemWidgetBundle = createSystemWidgetBundle("Test Widget Bundle Alias", "Test Widget Bundle Title"); + WidgetType widgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, 0, "Test Widget Type Name", "Test Widget Type Description", tags); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(systemWidgetBundle.getId(), widgetType.getId(), 0)); + + PageData widgetTypes = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId( + TenantId.SYS_TENANT_ID.getId(), true, new PageLink(10, 0, searchText) + ); + + assertThat(widgetTypes.getData()).hasSize(0); + + widgetTypeDao.removeWidgetTypeFromWidgetsBundle(systemWidgetBundle.getUuidId(), widgetType.getUuidId()); + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, widgetType.getUuidId()); + widgetsBundleDao.removeById(TenantId.SYS_TENANT_ID, systemWidgetBundle.getUuidId()); + } + + widgetsBundles = new ArrayList<>(); + widgetTypeList = new ArrayList<>(); + } + @Test public void testSearchTextNotFound() { UUID tenantId = Uuids.timeBased(); @@ -279,6 +392,15 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { } } + private WidgetsBundle createSystemWidgetBundle(String alias, String title) { + WidgetsBundle widgetsBundle = new WidgetsBundle(); + widgetsBundle.setAlias(alias); + widgetsBundle.setTitle(title); + widgetsBundle.setTenantId(TenantId.SYS_TENANT_ID); + widgetsBundle.setId(new WidgetsBundleId(Uuids.timeBased())); + return widgetsBundleDao.save(TenantId.SYS_TENANT_ID, widgetsBundle); + } + WidgetType createAndSaveWidgetType(TenantId tenantId, int number, String name, String description, String[] tags) { WidgetTypeDetails widgetType = new WidgetTypeDetails(); widgetType.setTenantId(tenantId); From 8300995d80c0a62dbb2163961e6e465f3effee46 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Mon, 30 Oct 2023 15:56:39 +0200 Subject: [PATCH 51/56] UI: Add liquid level error message and improvement load and validate resources --- ...uid-level-card-basic-config.component.html | 24 ++- ...iquid-level-card-basic-config.component.ts | 18 +-- .../liquid-level-widget.component.html | 7 + .../liquid-level-widget.component.scss | 26 ++++ .../liquid-level-widget.component.ts | 146 +++++++++++------- .../indicator/liquid-level-widget.models.ts | 19 +-- ...-level-card-widget-settings.component.html | 23 +-- ...id-level-card-widget-settings.component.ts | 17 +- .../assets/locale/locale.constant-en_US.json | 4 +- 9 files changed, 160 insertions(+), 124 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html index 9b6274586b..cfc0807718 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html @@ -45,7 +45,7 @@
-
+
{{ 'widgets.liquid-level-card.icon' | translate }} @@ -89,9 +89,8 @@
widgets.liquid-level-card.shape-attribute-name
@@ -124,9 +123,8 @@
widgets.liquid-level-card.datasource-units
-
@@ -144,14 +142,12 @@ @@ -170,7 +166,7 @@ + min="0.1" step="1" placeholder="{{ 'widget-config.set' | translate }}">
@@ -253,8 +247,8 @@ {{ 'widgets.liquid-level-card.level' | translate }}
- diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts index de11ad1067..4144d7db0b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.ts @@ -86,13 +86,11 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon public get volumeInput(): boolean { const datasourceUnits = this.levelCardWidgetConfigForm.get('datasourceUnits').value; const layout: LevelCardLayout = this.levelCardWidgetConfigForm.get('layout').value; - const units = this.levelCardWidgetConfigForm.get('units').value; if (layout === LevelCardLayout.absolute) { return true; } - - return !(datasourceUnits === CapacityUnits.percent && units === CapacityUnits.percent); + return datasourceUnits !== CapacityUnits.percent; } public get displayTimewindowConfig(): boolean { @@ -194,7 +192,7 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon iconColor: [configData.config.iconColor, []], volumeSource: [settings.volumeSource, []], - volumeConstant: [settings.volumeConstant, [Validators.required]], + volumeConstant: [settings.volumeConstant, [Validators.required, Validators.min(0.1)]], volumeAttributeName: [settings.volumeAttributeName, [Validators.required]], volumeUnits: [settings.volumeUnits, [Validators.required]], volumeFont: [settings.volumeFont, []], @@ -295,12 +293,8 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon protected validatorTriggers(): string[] { return [ - 'showTooltip', 'showTooltipLevel', - 'tankSelectionType', 'datasourceUnits', - 'showTitleIcon', 'volumeSource', - 'showTooltipDate', 'units', - 'layout', 'showTitle', - 'widgetUnitsSource' + 'showTooltip', 'showTooltipLevel', 'tankSelectionType', 'datasourceUnits', 'showTitleIcon', 'volumeSource', + 'showTooltipDate', 'layout', 'showTitle', 'widgetUnitsSource' ]; } @@ -399,10 +393,6 @@ export class LiquidLevelCardBasicConfigComponent extends BasicWidgetConfigCompon return createShapeLayout(svg, layout, this.sanitizer); } - public isRequired(formControlName: string): boolean { - return this.levelCardWidgetConfigForm.get(formControlName)?.hasValidator(Validators.required); - } - public fetchOptions(searchText: string): Observable> { if (this.keySearchText !== searchText || !this.lastFetchedKeys) { this.keySearchText = searchText; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.html index 98ceff33e1..4c14686b9c 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.html @@ -19,4 +19,11 @@
+
+
+
+ {{ error }} +
+
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.scss index a33cf99587..046d1a7d3e 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.scss +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.scss @@ -43,4 +43,30 @@ display: flex; justify-content: center; } + .tb-liquid-level-error { + position: absolute; + display: flex; + inset: 0; + width: 100%; + height: 100%; + align-items: center; + justify-content: center; + + &-container { + border-radius: 4px; + margin: 16px; + padding: 8px 12px; + background: #848484; + display: flex; + flex-direction: column; + gap: 8px; + + & > * { + font-weight: 500; + letter-spacing: .25px; + text-align: center; + color: #fff; + } + } + } } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts index edd471bcb8..9bb7053c3e 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.component.ts @@ -25,7 +25,7 @@ import { ViewEncapsulation } from '@angular/core'; import { WidgetContext } from '@home/models/widget-component.models'; -import { isDefined, isDefinedAndNotNull, isNumber, isString } from '@core/utils'; +import { isDefined, isDefinedAndNotNull, isEmptyStr, isNotEmptyStr, isNumeric, isUndefinedOrNull } from '@core/utils'; import { CapacityUnits, ConversionType, @@ -42,7 +42,7 @@ import { SvgLimits, svgMapping } from '@home/components/widget/lib/indicator/liquid-level-widget.models'; -import { Observable, of } from 'rxjs'; +import { forkJoin, Observable, of } from 'rxjs'; import { map, switchMap } from 'rxjs/operators'; import { EntityId } from '@shared/models/id/entity-id'; import { @@ -56,6 +56,7 @@ import { } from '@shared/models/widget-settings.models'; import { ResourcesService } from '@core/services/resources.service'; import { NULL_UUID } from '@shared/models/id/has-uuid'; +import { TranslateService } from '@ngx-translate/core'; import ITooltipsterInstance = JQueryTooltipster.ITooltipsterInstance; @Component({ @@ -80,6 +81,8 @@ export class LiquidLevelWidgetComponent implements OnInit { hasCardClickAction = false; + errorsMsg: string[] = []; + private svgParams: SvgInfo; private svg: JQuery; @@ -101,7 +104,11 @@ export class LiquidLevelWidgetComponent implements OnInit { private tooltipContent: string; private widgetUnits: string; - constructor(private cd: ChangeDetectorRef) { + private capacityUnits = Object.values(CapacityUnits); + + constructor(private cd: ChangeDetectorRef, + private resourcesService: ResourcesService, + private translate: TranslateService) { } ngOnInit(): void { @@ -117,14 +124,14 @@ export class LiquidLevelWidgetComponent implements OnInit { this.getData().subscribe(data => { if (data) { const { svg, volume, units } = data; - if (svg && isString(svg) && this.liquidLevelContent.nativeElement) { + if (svg && isNotEmptyStr(svg) && this.liquidLevelContent.nativeElement) { const jQueryContainerElement = $(this.liquidLevelContent.nativeElement); jQueryContainerElement.html(svg); this.svg = jQueryContainerElement.find('svg'); this.createSVG(); this.createValueElement(); - if (this.settings.showTooltip) { + if (this.settings.showTooltip && (this.settings.showTooltipLevel || this.settings.showTooltipDate)) { this.createTooltip(); } } @@ -163,17 +170,13 @@ export class LiquidLevelWidgetComponent implements OnInit { this.shape = shape; this.svgParams = svgMapping.get(shape); if (this.svgParams) { - return this.loadSVG(this.svgParams.svg).pipe( - switchMap( svg => - this.getSecondaryResources(entityId).pipe( - map(({ volume, units }) => - ({ svg, volume, units }) - ) - ) - ) + return forkJoin([ + this.resourcesService.loadJsonResource(this.svgParams.svg), + this.getTankersParams(entityId) + ]).pipe( + map(params => ({svg: params[0], ...params[1]})) ); } - return of(null); }) ); @@ -207,11 +210,11 @@ export class LiquidLevelWidgetComponent implements OnInit { private updateData(ignoreAnimation?: boolean) { const data = this.ctx.data[0]?.data[0]; if (data && isDefinedAndNotNull(data[1])) { - const percentage = isNumber(data[1]) ? this.convertInputData(data[1]) : 0; + const percentage = isNumeric(data[1]) ? this.convertInputData(data[1]) : 0; this.updateSvg(percentage, ignoreAnimation); this.updateValueElement(data[1], percentage); - if (this.settings.showTooltip) { + if (this.settings.showTooltip && (this.settings.showTooltipLevel || this.settings.showTooltipDate)) { this.updateTooltip(data); } } @@ -268,13 +271,13 @@ export class LiquidLevelWidgetComponent implements OnInit { const percentageOverlay = jQueryContainerElement.find('.percentage-overlay'); const absoluteOverlay = jQueryContainerElement.find('.absolute-overlay'); - if (this.settings.layout === LevelCardLayout.absolute) { + if (this.settings.layout === LevelCardLayout.absolute && !this.errorsMsg.length) { this.overlayContainer = absoluteOverlay; percentageOverlay.css('visibility', 'hidden'); if (!this.settings.showBackgroundOverlay) { absoluteOverlay.css('visibility', 'hidden'); } - } else if (this.settings.layout === LevelCardLayout.percentage) { + } else if (this.settings.layout === LevelCardLayout.percentage && !this.errorsMsg.length) { this.overlayContainer = percentageOverlay; absoluteOverlay.css('visibility', 'hidden'); if (!this.settings.showBackgroundOverlay) { @@ -290,51 +293,82 @@ export class LiquidLevelWidgetComponent implements OnInit { } } - private loadSVG(url: string): Observable { - const resourcesService = this.ctx.$injector.get(ResourcesService); - return resourcesService.loadJsonResource(url); - } - private getShape(entityId: EntityId): Observable { if (this.settings.tankSelectionType === LiquidWidgetDataSourceType.attribute && entityId.id !== NULL_UUID) { - return this.ctx.attributeService.getEntityAttributes(entityId, null, - [this.settings.shapeAttributeName]).pipe( - map(attributes => - extractValue(attributes, this.settings.shapeAttributeName, this.settings.selectedShape) - ) - ); + return this.ctx.attributeService.getEntityAttributes(entityId, null, [this.settings.shapeAttributeName]) + .pipe(map(attributes => { + const shape = extractValue(attributes, this.settings.shapeAttributeName); + if (!shape || !svgMapping.has(shape)) { + this.createdErrorMgs(this.settings.shapeAttributeName, isUndefinedOrNull(shape) || isEmptyStr(shape)); + return this.settings.selectedShape; + } + return shape; + } + )); } - return of(this.settings.selectedShape); } - private getSecondaryResources(entityId: EntityId): Observable<{ volume: number; units: string }> { - const attributeNames = this.prepareAttributeNames(); + private getTankersParams(entityId: EntityId): Observable<{ volume: number; units: string }> { + const isVolumeStatic = this.settings.layout !== LevelCardLayout.absolute + && this.settings.datasourceUnits === CapacityUnits.percent + || this.settings.volumeSource === LiquidWidgetDataSourceType.static; + const isUnitStatic = this.settings.layout !== LevelCardLayout.absolute || + this.settings.widgetUnitsSource === LiquidWidgetDataSourceType.static; + + const attributeKeys: string[] = []; - if (!attributeNames.length || entityId.id === NULL_UUID) { + if (!isVolumeStatic) { + attributeKeys.push(this.settings.volumeAttributeName); + } + + if (!isUnitStatic) { + attributeKeys.push(this.settings.widgetUnitsAttributeName); + } + + if (!attributeKeys.length || entityId.id === NULL_UUID) { return of({ volume: this.settings.volumeConstant, units: this.settings.units }); } - return this.ctx.attributeService.getEntityAttributes(entityId, null, attributeNames).pipe( - map(attributes => ({ - volume: extractValue(attributes, this.settings.volumeAttributeName, this.settings.volumeConstant), - units: extractValue(attributes, this.settings.widgetUnitsAttributeName, this.settings.units) - })) + return this.ctx.attributeService.getEntityAttributes(entityId, null, attributeKeys).pipe( + map(attributes => { + let volume = isVolumeStatic ? this.settings.volumeConstant : extractValue(attributes, this.settings.volumeAttributeName); + let units = isUnitStatic ? this.settings.units : extractValue(attributes, this.settings.widgetUnitsAttributeName); + + if (!isVolumeStatic && (!volume || !isNumeric(volume) || volume < 0.1)) { + this.createdErrorMgs(this.settings.volumeAttributeName, isUndefinedOrNull(volume) || isEmptyStr(volume)); + volume = this.settings.volumeConstant; + } + + if (!isUnitStatic) { + if (isNotEmptyStr(units)) { + const normalizeUnits = units.normalize().trim(); + units = this.capacityUnits.find(unit => unit.normalize() === normalizeUnits); + } + if (isUndefinedOrNull(units) || !isNotEmptyStr(units)) { + this.createdErrorMgs(this.settings.widgetUnitsAttributeName, isUndefinedOrNull(units) || isEmptyStr(units)); + units = this.settings.units; + } + } + + return { + volume, + units + }; + }) ); } - private prepareAttributeNames(): string[] { - const names = []; - if (this.settings.volumeSource !== LiquidWidgetDataSourceType.static) { - names.push(this.settings.volumeAttributeName); - } - if (this.settings.widgetUnitsSource !== LiquidWidgetDataSourceType.static) { - names.push(this.settings.widgetUnitsAttributeName); + private createdErrorMgs(attributeName: string, isEmpty = false) { + if (isEmpty) { + this.errorsMsg.push(this.translate.instant('widgets.liquid-level-card.attribute-key-not-set', {attributeName})); + } else { + this.errorsMsg.push(this.translate.instant('widgets.liquid-level-card.attribute-key-invalid', {attributeName})); } - return names; + this.cd.markForCheck(); } private updateSvg(percentage: number, ignoreAnimation?: boolean) { @@ -373,12 +407,14 @@ export class LiquidLevelWidgetComponent implements OnInit { const surfacePositionAttr = this.shape !== Shapes.vCylinder ? 'y' : 'cy'; const animationSpeed = 500; + const levelColor = this.errorsMsg.length ? 'transparent' : this.liquidColor.color; + if (ignoreAnimation) { fill.css({y : newY}); } else { fill.animate({y : newY}, animationSpeed); } - fill.attr('fill', this.liquidColor.color); + fill.attr('fill', levelColor); surfaces.each((index, element) => { const $element = $(element); @@ -388,7 +424,7 @@ export class LiquidLevelWidgetComponent implements OnInit { $element.animate({[surfacePositionAttr]: newY}, animationSpeed); } if ($element.hasClass('tb-liquid')) { - $element.attr('fill', this.liquidColor.color); + $element.attr('fill', levelColor); } }); } @@ -399,12 +435,14 @@ export class LiquidLevelWidgetComponent implements OnInit { const shapeFill = jQueryContainerElement.find('.tb-shape-fill'); this.tankColor.update(value); + const shapeColor = this.errorsMsg.length ? '#CACACA' : this.tankColor.color; + shapeStrokes.each((index, element) => { - $(element).attr('stroke', this.tankColor.color); + $(element).attr('stroke', shapeColor); }); shapeFill.each((index, element) => { - $(element).attr('fill', this.tankColor.color); + $(element).attr('fill', shapeColor); }); } @@ -414,7 +452,7 @@ export class LiquidLevelWidgetComponent implements OnInit { const jQueryContainerElement = $(this.liquidLevelContent.nativeElement); let value = 'N/A'; - if (isNumber(data)) { + if (isNumeric(data)) { value = convertLiters(this.convertOutputData(percentage), this.widgetUnits as CapacityUnits, ConversionType.from) .toFixed(this.settings.decimals || 0); } @@ -452,7 +490,7 @@ export class LiquidLevelWidgetComponent implements OnInit { const contentValue = value || [0, '']; let tooltipValue: string | number = 'N/A'; - if (isNumber(contentValue[1])) { + if (isNumeric(contentValue[1])) { tooltipValue = this.convertTooltipData(contentValue[1]); } @@ -470,7 +508,7 @@ export class LiquidLevelWidgetComponent implements OnInit { if (this.settings.showTooltipLevel) { const levelValue = typeof tooltipValue == 'number' - ? `${tooltipValue.toFixed(this.settings.tooltipLevelDecimals)}${this.settings.tooltipUnits}` + ? `${tooltipValue.toFixed(this.settings.tooltipLevelDecimals)} ${this.settings.tooltipUnits}` : 'N/A'; content += this.createTooltipContent( this.ctx.translate.instant('widgets.liquid-level-card.level'), @@ -493,7 +531,7 @@ export class LiquidLevelWidgetComponent implements OnInit { } private createTooltipContent(labelText: string, contentValue: string, textStyle: string): string { - return `
+ return `
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index b722852fd6..3eacd000b4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -25,7 +25,7 @@ import { lastUpdateAgoDateFormat } from '@shared/models/widget-settings.models'; import { DataKey, WidgetConfig } from '@shared/models/widget.models'; -import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; +import { AttributeData, DataKeyType } from '@shared/models/telemetry/telemetry.models'; import { forkJoin, Observable, of } from 'rxjs'; import { singleEntityFilterFromDeviceId } from '@shared/models/query/query.models'; import { EntityType } from '@shared/models/entity-type.models'; @@ -375,9 +375,8 @@ export const convertLiters = (value: number, units: CapacityUnits, conversionTyp return conversionType === ConversionType.to ? value / factor : value * factor; }; -export const extractValue = (attributes: any[], attributeName: string, defaultValue: any): any => { - const index = attributes.findIndex(attr => attr.key === attributeName); - return index !== -1 ? attributes[index].value : defaultValue; +export const extractValue = (attributes: Array, attributeName: string): T | undefined => { + return attributes.find(attr => attr.key === attributeName)?.value; }; export const valueContainerStyleDefaults = cssTextFromInlineStyle({ @@ -413,13 +412,13 @@ export const createAbsoluteLayout = (values?: {inputValue: number | string; volu
- +
`; }; export const createPercentLayout = (value: number | string = 50, valueTextStyle: string = valueTextStyleDefaults): string => `
- +
`; export const optionsFilter = (searchText: string): ((key: DataKey) => boolean) => @@ -534,15 +533,11 @@ export const updatedFormSettingsValidators = (formGroup: FormGroup) => { } if (layout === LevelCardLayout.simple) { - if (formGroup.get('decimals')) { - formGroup.get('decimals').disable({emitEvent: false}); - } + formGroup.get('decimals')?.disable({emitEvent: false}); formGroup.get('valueFont').disable({emitEvent: false}); formGroup.get('valueColor').disable({emitEvent: false}); } else { - if (formGroup.get('decimals')) { - formGroup.get('decimals').enable({emitEvent: false}); - } + formGroup.get('decimals')?.enable({emitEvent: false}); formGroup.get('valueFont').enable({emitEvent: false}); formGroup.get('valueColor').enable({emitEvent: false}); } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html index cdf96f7f89..79b5a9a037 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html @@ -44,9 +44,8 @@
widgets.liquid-level-card.shape-attribute-name
@@ -82,9 +81,8 @@
widgets.liquid-level-card.units
widgets.liquid-level-card.datasource-units
-
@@ -99,16 +97,14 @@ @@ -127,7 +123,7 @@ + min="0.1" step="1" placeholder="{{ 'widget-config.set' | translate }}">
@@ -219,8 +213,7 @@
+ required class="flex" formControlName="tooltipUnits"> Date: Mon, 30 Oct 2023 16:17:12 +0200 Subject: [PATCH 52/56] added global queue prefix support for js-executor --- msa/js-executor/config/custom-environment-variables.yml | 1 + msa/js-executor/config/default.yml | 1 + msa/js-executor/queue/awsSqsTemplate.ts | 3 ++- msa/js-executor/queue/kafkaTemplate.ts | 3 ++- msa/js-executor/queue/pubSubTemplate.ts | 3 ++- msa/js-executor/queue/rabbitmqTemplate.ts | 3 ++- msa/js-executor/queue/serviceBusTemplate.ts | 3 ++- 7 files changed, 12 insertions(+), 5 deletions(-) diff --git a/msa/js-executor/config/custom-environment-variables.yml b/msa/js-executor/config/custom-environment-variables.yml index 5ca66d71a1..c92ae78553 100644 --- a/msa/js-executor/config/custom-environment-variables.yml +++ b/msa/js-executor/config/custom-environment-variables.yml @@ -15,6 +15,7 @@ # queue_type: "TB_QUEUE_TYPE" #kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) +queue_prefix: "TB_QUEUE_PREFIX" request_topic: "REMOTE_JS_EVAL_REQUEST_TOPIC" http_port: "HTTP_PORT" # /livenessProbe diff --git a/msa/js-executor/config/default.yml b/msa/js-executor/config/default.yml index 43712f0f61..e6927c0bff 100644 --- a/msa/js-executor/config/default.yml +++ b/msa/js-executor/config/default.yml @@ -16,6 +16,7 @@ queue_type: "kafka" request_topic: "js_eval.requests" +queue_prefix: "" http_port: "8888" # /livenessProbe js: diff --git a/msa/js-executor/queue/awsSqsTemplate.ts b/msa/js-executor/queue/awsSqsTemplate.ts index c9951008c7..1486df802b 100644 --- a/msa/js-executor/queue/awsSqsTemplate.ts +++ b/msa/js-executor/queue/awsSqsTemplate.ts @@ -38,7 +38,8 @@ import uuid from 'uuid-random'; export class AwsSqsTemplate implements IQueue { private logger = _logger(`awsSqsTemplate`); - private requestTopic: string = config.get('request_topic'); + private queuePrefix: string = config.get('queue_prefix'); + private requestTopic: string = this.queuePrefix ? this.queuePrefix + "." + config.get('request_topic') : config.get('request_topic'); private accessKeyId: string = config.get('aws_sqs.access_key_id'); private secretAccessKey: string = config.get('aws_sqs.secret_access_key'); private region: string = config.get('aws_sqs.region'); diff --git a/msa/js-executor/queue/kafkaTemplate.ts b/msa/js-executor/queue/kafkaTemplate.ts index 5d1b6cc6c1..9759c095c9 100644 --- a/msa/js-executor/queue/kafkaTemplate.ts +++ b/msa/js-executor/queue/kafkaTemplate.ts @@ -61,7 +61,8 @@ export class KafkaTemplate implements IQueue { async init(): Promise { const kafkaBootstrapServers: string = config.get('kafka.bootstrap.servers'); - const requestTopic: string = config.get('request_topic'); + const queuePrefix: string = config.get('queue_prefix'); + const requestTopic: string = queuePrefix ? queuePrefix + "." + config.get('request_topic') : config.get('request_topic'); const useConfluent = config.get('kafka.use_confluent_cloud'); this.logger.info('Kafka Bootstrap Servers: %s', kafkaBootstrapServers); diff --git a/msa/js-executor/queue/pubSubTemplate.ts b/msa/js-executor/queue/pubSubTemplate.ts index 71c9b72d5f..a1b05ab7bf 100644 --- a/msa/js-executor/queue/pubSubTemplate.ts +++ b/msa/js-executor/queue/pubSubTemplate.ts @@ -26,7 +26,8 @@ export class PubSubTemplate implements IQueue { private logger = _logger(`pubSubTemplate`); private projectId: string = config.get('pubsub.project_id'); private credentials = JSON.parse(config.get('pubsub.service_account')); - private requestTopic: string = config.get('request_topic'); + private queuePrefix: string = config.get('queue_prefix'); + private requestTopic: string = this.queuePrefix ? this.queuePrefix + "." + config.get('request_topic') : config.get('request_topic'); private queueProperties: string = config.get('pubsub.queue_properties'); private pubSubClient: PubSub; diff --git a/msa/js-executor/queue/rabbitmqTemplate.ts b/msa/js-executor/queue/rabbitmqTemplate.ts index fca4b1e5bd..7bb078c047 100644 --- a/msa/js-executor/queue/rabbitmqTemplate.ts +++ b/msa/js-executor/queue/rabbitmqTemplate.ts @@ -24,7 +24,8 @@ import { Options, Replies } from 'amqplib/properties'; export class RabbitMqTemplate implements IQueue { private logger = _logger(`rabbitmqTemplate`); - private requestTopic: string = config.get('request_topic'); + private queuePrefix: string = config.get('queue_prefix'); + private requestTopic: string = this.queuePrefix ? this.queuePrefix + "." + config.get('request_topic') : config.get('request_topic'); private host = config.get('rabbitmq.host'); private port = config.get('rabbitmq.port'); private vhost = config.get('rabbitmq.virtual_host'); diff --git a/msa/js-executor/queue/serviceBusTemplate.ts b/msa/js-executor/queue/serviceBusTemplate.ts index 16950b7bce..70f0d68d3b 100644 --- a/msa/js-executor/queue/serviceBusTemplate.ts +++ b/msa/js-executor/queue/serviceBusTemplate.ts @@ -31,7 +31,8 @@ import { export class ServiceBusTemplate implements IQueue { private logger = _logger(`serviceBusTemplate`); - private requestTopic: string = config.get('request_topic'); + private queuePrefix: string = config.get('queue_prefix'); + private requestTopic: string = this.queuePrefix ? this.queuePrefix + "." + config.get('request_topic') : config.get('request_topic'); private namespaceName = config.get('service_bus.namespace_name'); private sasKeyName = config.get('service_bus.sas_key_name'); private sasKey = config.get('service_bus.sas_key'); From 3282e48a0fd5e72f3bc32be43f775b1062533d80 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Mon, 30 Oct 2023 16:44:53 +0200 Subject: [PATCH 53/56] UI: Rename widget and fixed widget layout --- .../data/json/system/widget_bundles/liquid_level_tanks.json | 2 +- ..._elliptical.json => horizontal_2_1_elliptical_tank.json} | 6 +++--- ...horizontal_capsule.json => horizontal_capsule_tank.json} | 2 +- ...rizontal_cylinder.json => horizontal_cylinder_tank.json} | 2 +- ...zontal_dish_ends.json => horizontal_dish_ends_tank.json} | 2 +- ...horizontal_ellipse.json => horizontal_ellipse_tank.json} | 2 +- .../{horizontal_oval.json => horizontal_oval_tank.json} | 2 +- .../widget_types/{rectangle.json => rectangle_tank.json} | 2 +- .../{vertical_capsule.json => vertical_capsule_tank.json} | 2 +- .../{vertical_cylinder.json => vertical_cylinder_tank.json} | 2 +- .../{vertical_oval.json => vertical_oval_tank.json} | 2 +- .../indicator/liquid-level-card-basic-config.component.html | 4 ++-- .../widget/lib/indicator/liquid-level-widget.models.ts | 6 +----- .../liquid-level-card-widget-settings.component.html | 2 +- 14 files changed, 17 insertions(+), 21 deletions(-) rename application/src/main/data/json/system/widget_types/{horizontal_2_1_elliptical.json => horizontal_2_1_elliptical_tank.json} (99%) rename application/src/main/data/json/system/widget_types/{horizontal_capsule.json => horizontal_capsule_tank.json} (99%) rename application/src/main/data/json/system/widget_types/{horizontal_cylinder.json => horizontal_cylinder_tank.json} (99%) rename application/src/main/data/json/system/widget_types/{horizontal_dish_ends.json => horizontal_dish_ends_tank.json} (99%) rename application/src/main/data/json/system/widget_types/{horizontal_ellipse.json => horizontal_ellipse_tank.json} (99%) rename application/src/main/data/json/system/widget_types/{horizontal_oval.json => horizontal_oval_tank.json} (99%) rename application/src/main/data/json/system/widget_types/{rectangle.json => rectangle_tank.json} (99%) rename application/src/main/data/json/system/widget_types/{vertical_capsule.json => vertical_capsule_tank.json} (99%) rename application/src/main/data/json/system/widget_types/{vertical_cylinder.json => vertical_cylinder_tank.json} (99%) rename application/src/main/data/json/system/widget_types/{vertical_oval.json => vertical_oval_tank.json} (99%) 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 bb44f9a192..ca188586af 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 @@ -16,7 +16,7 @@ "vertical_oval_tank", "horizontal_capsule_tank", "vertical_capsule_tank", - "horizontal_2_1_elliptical", + "horizontal_2_1_elliptical_tank", "horizontal_dish_ends" ] } diff --git a/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json similarity index 99% rename from application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json rename to application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json index 000f11cc63..ec27703f49 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical.json +++ b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json @@ -1,6 +1,6 @@ { - "fqn": "horizontal_2_1_elliptical", - "name": "Horizontal 2:1 elliptical", + "fqn": "horizontal_2_1_elliptical_tank", + "name": "Horizontal 2:1 elliptical tank", "deprecated": false, "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Horizontal 2:1 elliptical tank.", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} diff --git a/application/src/main/data/json/system/widget_types/horizontal_capsule.json b/application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json similarity index 99% rename from application/src/main/data/json/system/widget_types/horizontal_capsule.json rename to application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json index e23affdeeb..3efff49a81 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_capsule.json +++ b/application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json @@ -1,6 +1,6 @@ { "fqn": "horizontal_capsule_tank", - "name": "Horizontal capsule", + "name": "Horizontal capsule tank", "deprecated": false, "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Horizontal capsule tank.", diff --git a/application/src/main/data/json/system/widget_types/horizontal_cylinder.json b/application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json similarity index 99% rename from application/src/main/data/json/system/widget_types/horizontal_cylinder.json rename to application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json index f15819926b..1791d5b29c 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_cylinder.json +++ b/application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json @@ -1,6 +1,6 @@ { "fqn": "horizontal_cylinder_tank", - "name": "Horizontal cylinder", + "name": "Horizontal cylinder tank", "deprecated": false, "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Horizontal cylinder tank.", diff --git a/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json b/application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json similarity index 99% rename from application/src/main/data/json/system/widget_types/horizontal_dish_ends.json rename to application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json index b5e3c57c74..f1754037fd 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_dish_ends.json +++ b/application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json @@ -1,6 +1,6 @@ { "fqn": "horizontal_dish_ends", - "name": "Horizontal dish ends", + "name": "Horizontal dish ends tank", "deprecated": false, "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Horizontal dish ends tank.", diff --git a/application/src/main/data/json/system/widget_types/horizontal_ellipse.json b/application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json similarity index 99% rename from application/src/main/data/json/system/widget_types/horizontal_ellipse.json rename to application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json index d1bf42b194..01fdb879b0 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_ellipse.json +++ b/application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json @@ -1,6 +1,6 @@ { "fqn": "horizontal_ellipse_tank", - "name": "Horizontal ellipse", + "name": "Horizontal ellipse tank", "deprecated": false, "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Horizontal ellipse tank.", diff --git a/application/src/main/data/json/system/widget_types/horizontal_oval.json b/application/src/main/data/json/system/widget_types/horizontal_oval_tank.json similarity index 99% rename from application/src/main/data/json/system/widget_types/horizontal_oval.json rename to application/src/main/data/json/system/widget_types/horizontal_oval_tank.json index e838cc7437..d094cac0d4 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_oval.json +++ b/application/src/main/data/json/system/widget_types/horizontal_oval_tank.json @@ -1,6 +1,6 @@ { "fqn": "horizontal_oval_tank", - "name": "Horizontal oval", + "name": "Horizontal oval tank", "deprecated": false, "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Horizontal oval tank.", diff --git a/application/src/main/data/json/system/widget_types/rectangle.json b/application/src/main/data/json/system/widget_types/rectangle_tank.json similarity index 99% rename from application/src/main/data/json/system/widget_types/rectangle.json rename to application/src/main/data/json/system/widget_types/rectangle_tank.json index e04041ab1c..d96165cc89 100644 --- a/application/src/main/data/json/system/widget_types/rectangle.json +++ b/application/src/main/data/json/system/widget_types/rectangle_tank.json @@ -1,6 +1,6 @@ { "fqn": "rectangle_tank", - "name": "Rectangle", + "name": "Rectangle tank", "deprecated": false, "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Rectangle tank.", diff --git a/application/src/main/data/json/system/widget_types/vertical_capsule.json b/application/src/main/data/json/system/widget_types/vertical_capsule_tank.json similarity index 99% rename from application/src/main/data/json/system/widget_types/vertical_capsule.json rename to application/src/main/data/json/system/widget_types/vertical_capsule_tank.json index 64d0f99497..33c49ba0e7 100644 --- a/application/src/main/data/json/system/widget_types/vertical_capsule.json +++ b/application/src/main/data/json/system/widget_types/vertical_capsule_tank.json @@ -1,6 +1,6 @@ { "fqn": "vertical_capsule_tank", - "name": "Vertical capsule", + "name": "Vertical capsule tank", "deprecated": false, "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Vertical capsule tank.", diff --git a/application/src/main/data/json/system/widget_types/vertical_cylinder.json b/application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json similarity index 99% rename from application/src/main/data/json/system/widget_types/vertical_cylinder.json rename to application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json index 6fbda5a7ed..ba6666afbf 100644 --- a/application/src/main/data/json/system/widget_types/vertical_cylinder.json +++ b/application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json @@ -1,6 +1,6 @@ { "fqn": "vertical_cylinder_tank", - "name": "Vertical cylinder", + "name": "Vertical cylinder tank", "deprecated": false, "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Vertical cylinder tank.", diff --git a/application/src/main/data/json/system/widget_types/vertical_oval.json b/application/src/main/data/json/system/widget_types/vertical_oval_tank.json similarity index 99% rename from application/src/main/data/json/system/widget_types/vertical_oval.json rename to application/src/main/data/json/system/widget_types/vertical_oval_tank.json index 381035aeec..a58dc67dd2 100644 --- a/application/src/main/data/json/system/widget_types/vertical_oval.json +++ b/application/src/main/data/json/system/widget_types/vertical_oval_tank.json @@ -1,6 +1,6 @@ { "fqn": "vertical_oval_tank", - "name": "Vertical oval", + "name": "Vertical oval tank", "deprecated": false, "image": "data:image/png;base64,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", "description": "Widget indicates the level of liquid in Vertical oval tank.", diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html index cfc0807718..8fe70c10d3 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/liquid-level-card-basic-config.component.html @@ -30,7 +30,7 @@
widget-config.appearance
-
+
{{ 'widgets.liquid-level-card.title' | translate }} @@ -242,7 +242,7 @@ -
+
{{ 'widgets.liquid-level-card.level' | translate }} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts index 3eacd000b4..cf526d6c97 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/liquid-level-widget.models.ts @@ -588,11 +588,7 @@ export const updatedFormSettingsValidators = (formGroup: FormGroup) => { formGroup.get('tooltipLevelDecimals').enable({emitEvent: false}); formGroup.get('tooltipLevelFont').enable({emitEvent: false}); formGroup.get('tooltipLevelColor').enable({emitEvent: false}); - if (layout === LevelCardLayout.simple) { - formGroup.get('tooltipUnits').disable({emitEvent: false}); - } else { - formGroup.get('tooltipUnits').enable({emitEvent: false}); - } + formGroup.get('tooltipUnits').enable({emitEvent: false}); } else { formGroup.get('tooltipUnits').disable({emitEvent: false}); formGroup.get('tooltipLevelDecimals').disable({emitEvent: false}); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html index 79b5a9a037..59119c1fb8 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/liquid-level-card-widget-settings.component.html @@ -207,7 +207,7 @@ -
+
{{ 'widgets.liquid-level-card.level' | translate }} From 7fd894f257c7c3d5ea851aa9d5151dfc28228384 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Mon, 30 Oct 2023 17:48:36 +0200 Subject: [PATCH 54/56] UI: Rename widget type and write default system load --- .../data/json/system/widget_bundles/liquid_level_tanks.json | 2 +- .../json/system/widget_types/horizontal_dish_ends_tank.json | 4 ++-- .../service/install/DefaultSystemDataLoaderService.java | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) 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 ca188586af..c7be72810a 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 @@ -17,6 +17,6 @@ "horizontal_capsule_tank", "vertical_capsule_tank", "horizontal_2_1_elliptical_tank", - "horizontal_dish_ends" + "horizontal_dish_ends_tank" ] } 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 f1754037fd..35ebb08750 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 @@ -1,5 +1,5 @@ { - "fqn": "horizontal_dish_ends", + "fqn": "horizontal_dish_ends_tank", "name": "Horizontal dish ends tank", "deprecated": false, "image": "data:image/png;base64,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", @@ -21,4 +21,4 @@ }, "externalId": null, "tags": null -} \ No newline at end of file +} diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java index ee045976e7..9ad2ab6b3c 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java @@ -536,6 +536,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { this.deleteSystemWidgetBundle("outdoor_environment"); this.deleteSystemWidgetBundle("indoor_environment"); this.deleteSystemWidgetBundle("air_quality"); + this.deleteSystemWidgetBundle("liquid_level_tanks"); installScripts.loadSystemWidgets(); } From 449296a6040d6782454cb214345b9a035a6c0863 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 31 Oct 2023 10:30:55 +0200 Subject: [PATCH 55/56] Implement widgets bundles ordering. --- .../main/data/upgrade/3.6.0/schema_update.sql | 3 ++ .../WidgetsBundleMsgConstructor.java | 3 ++ .../common/data/widget/WidgetsBundle.java | 6 +++ common/edge-api/src/main/proto/edge.proto | 3 +- .../server/dao/model/ModelConstants.java | 1 + .../dao/model/sql/WidgetsBundleEntity.java | 5 ++ .../sql/widget/WidgetsBundleRepository.java | 3 +- .../main/resources/sql/schema-entities.sql | 1 + .../sql/widget/JpaWidgetsBundleDaoTest.java | 54 +++++++++++++------ .../widget/widgets-bundle.component.html | 4 ++ .../pages/widget/widgets-bundle.component.ts | 6 ++- .../app/shared/models/widgets-bundle.model.ts | 1 + .../assets/locale/locale.constant-en_US.json | 1 + 13 files changed, 70 insertions(+), 21 deletions(-) diff --git a/application/src/main/data/upgrade/3.6.0/schema_update.sql b/application/src/main/data/upgrade/3.6.0/schema_update.sql index 0361a5db65..b0a64268ef 100644 --- a/application/src/main/data/upgrade/3.6.0/schema_update.sql +++ b/application/src/main/data/upgrade/3.6.0/schema_update.sql @@ -17,6 +17,9 @@ ALTER TABLE widget_type ADD COLUMN IF NOT EXISTS tags text[]; +ALTER TABLE widgets_bundle + ADD COLUMN IF NOT EXISTS widgets_bundle_order int; + ALTER TABLE api_usage_state ADD COLUMN IF NOT EXISTS tbel_exec varchar(32); UPDATE api_usage_state SET tbel_exec = js_exec WHERE tbel_exec IS NULL; 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 bed83c8832..5b615ca9f8 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 @@ -45,6 +45,9 @@ public class WidgetsBundleMsgConstructor { 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); } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetsBundle.java b/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetsBundle.java index 3655eace53..9096207abe 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetsBundle.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetsBundle.java @@ -70,6 +70,11 @@ public class WidgetsBundle extends BaseData implements HasName, @ApiModelProperty(position = 7, value = "Description", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String description; + @Getter + @Setter + @ApiModelProperty(position = 8, value = "Order", accessMode = ApiModelProperty.AccessMode.READ_ONLY) + private Integer order; + @Getter @Setter private WidgetsBundleId externalId; @@ -89,6 +94,7 @@ public class WidgetsBundle extends BaseData implements HasName, this.title = widgetsBundle.getTitle(); this.image = widgetsBundle.getImage(); this.description = widgetsBundle.getDescription(); + this.order = widgetsBundle.getOrder(); this.externalId = widgetsBundle.getExternalId(); } diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index bc0170b24b..29a82446a5 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -361,7 +361,8 @@ message WidgetsBundleUpdateMsg { optional bytes image = 6; bool isSystem = 7; optional string description = 8; - optional string widgets = 9; + optional int32 order = 9; + optional string widgets = 10; } message WidgetTypeUpdateMsg { 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..10dc226e7a 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 @@ -302,6 +302,7 @@ public class ModelConstants { public static final String WIDGETS_BUNDLE_TITLE_PROPERTY = TITLE_PROPERTY; public static final String WIDGETS_BUNDLE_IMAGE_PROPERTY = "image"; public static final String WIDGETS_BUNDLE_DESCRIPTION = "description"; + public static final String WIDGETS_BUNDLE_ORDER = "widgets_bundle_order"; /** * Widget_type constants. diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetsBundleEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetsBundleEntity.java index fedfa1471d..baa1140803 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetsBundleEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetsBundleEntity.java @@ -50,6 +50,9 @@ public final class WidgetsBundleEntity extends BaseSqlEntity { @Column(name = ModelConstants.WIDGETS_BUNDLE_DESCRIPTION) private String description; + @Column(name = ModelConstants.WIDGETS_BUNDLE_ORDER) + private Integer order; + @Column(name = ModelConstants.EXTERNAL_ID_PROPERTY) private UUID externalId; @@ -69,6 +72,7 @@ public final class WidgetsBundleEntity extends BaseSqlEntity { this.title = widgetsBundle.getTitle(); this.image = widgetsBundle.getImage(); this.description = widgetsBundle.getDescription(); + this.order = widgetsBundle.getOrder(); if (widgetsBundle.getExternalId() != null) { this.externalId = widgetsBundle.getExternalId().getId(); } @@ -85,6 +89,7 @@ public final class WidgetsBundleEntity extends BaseSqlEntity { widgetsBundle.setTitle(title); widgetsBundle.setImage(image); widgetsBundle.setDescription(description); + widgetsBundle.setOrder(order); if (externalId != null) { widgetsBundle.setExternalId(new WidgetsBundleId(externalId)); } 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 08b0a00383..9db39aab8f 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 @@ -105,7 +105,8 @@ public interface WidgetsBundleRepository extends JpaRepository(); } + @Test + public void testOrderInFindAllWidgetsBundlesByTenantIdFullSearch() { + UUID tenantId1 = Uuids.timeBased(); + for (int i = 0; i < 10; i++) { + createWidgetsBundle(TenantId.fromUUID(tenantId1), "WB1_" + i, "WB1_" + (10-i), i % 2 == 1 ? null : (int)(Math.random() * 1000)); + createWidgetsBundle(TenantId.SYS_TENANT_ID, "WB_SYS_" + i, "WB_SYS_" + (10-i), i % 2 == 0 ? null : (int)(Math.random() * 1000)); + } + widgetsBundles = widgetsBundleDao.find(TenantId.SYS_TENANT_ID).stream().sorted((o1, o2) -> { + int result = 0; + if (o1.getOrder() != null && o2.getOrder() != null) { + result = o1.getOrder() - o2.getOrder(); + } else if (o1.getOrder() == null && o2.getOrder() != null) { + result = 1; + } else if (o1.getOrder() != null) { + result = -1; + } + if (result == 0) { + result = o1.getTitle().compareTo(o2.getTitle()); + } + return result; + }).collect(Collectors.toList());; + assertEquals(20, widgetsBundles.size()); + PageLink pageLink = new PageLink(100, 0, "", new SortOrder("title")); + PageData widgetsBundlesData = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, true, pageLink); + assertEquals(20, widgetsBundlesData.getData().size()); + assertEquals(widgetsBundles, widgetsBundlesData.getData()); + } + @Test public void testSearchTextNotFound() { UUID tenantId = Uuids.timeBased(); @@ -372,32 +397,27 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { private void createWidgetBundles(int count, UUID tenantId, String prefix) { for (int i = 0; i < count; i++) { - WidgetsBundle widgetsBundle = new WidgetsBundle(); - widgetsBundle.setAlias(prefix + i); - widgetsBundle.setTitle(prefix + i); - widgetsBundle.setId(new WidgetsBundleId(Uuids.timeBased())); - widgetsBundle.setTenantId(TenantId.fromUUID(tenantId)); - widgetsBundleDao.save(TenantId.SYS_TENANT_ID, widgetsBundle); + createWidgetsBundle(TenantId.fromUUID(tenantId), prefix + i, prefix + i, null); } } private void createSystemWidgetBundles(int count, String prefix) { for (int i = 0; i < count; i++) { - WidgetsBundle widgetsBundle = new WidgetsBundle(); - widgetsBundle.setAlias(prefix + i); - widgetsBundle.setTitle(prefix + i); - widgetsBundle.setTenantId(TenantId.SYS_TENANT_ID); - widgetsBundle.setId(new WidgetsBundleId(Uuids.timeBased())); - widgetsBundleDao.save(TenantId.SYS_TENANT_ID, widgetsBundle); + createWidgetsBundle(TenantId.SYS_TENANT_ID, prefix + i, prefix + i, null); } } private WidgetsBundle createSystemWidgetBundle(String alias, String title) { + return createWidgetsBundle(TenantId.SYS_TENANT_ID, alias, title, null); + } + + private WidgetsBundle createWidgetsBundle(TenantId tenantId, String alias, String title, Integer order) { WidgetsBundle widgetsBundle = new WidgetsBundle(); widgetsBundle.setAlias(alias); widgetsBundle.setTitle(title); - widgetsBundle.setTenantId(TenantId.SYS_TENANT_ID); + widgetsBundle.setTenantId(tenantId); widgetsBundle.setId(new WidgetsBundleId(Uuids.timeBased())); + widgetsBundle.setOrder(order); return widgetsBundleDao.save(TenantId.SYS_TENANT_ID, widgetsBundle); } 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 bfc61fb98c..fcebcc1e6c 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 @@ -58,6 +58,10 @@ {{descriptionInput.value?.length || 0}}/1024 + + widgets-bundle.order + +
diff --git a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle.component.ts b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle.component.ts index f7634e5c53..be34b38161 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle.component.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle.component.ts @@ -50,7 +50,8 @@ export class WidgetsBundleComponent extends EntityComponent { { title: [entity ? entity.title : '', [Validators.required, Validators.maxLength(255)]], image: [entity ? entity.image : ''], - description: [entity ? entity.description : '', Validators.maxLength(1024)] + description: [entity ? entity.description : '', Validators.maxLength(1024)], + order: [entity ? entity.order : null] } ); } @@ -59,7 +60,8 @@ export class WidgetsBundleComponent extends EntityComponent { this.entityForm.patchValue({ title: entity.title, image: entity.image, - description: entity.description + description: entity.description, + order: entity.order }); } } diff --git a/ui-ngx/src/app/shared/models/widgets-bundle.model.ts b/ui-ngx/src/app/shared/models/widgets-bundle.model.ts index c7eb999221..476c6ee029 100644 --- a/ui-ngx/src/app/shared/models/widgets-bundle.model.ts +++ b/ui-ngx/src/app/shared/models/widgets-bundle.model.ts @@ -24,4 +24,5 @@ export interface WidgetsBundle extends BaseData, ExportableEnti title: string; image: string; description: string; + order: number; } 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 fbd324666d..252e5e7296 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -4911,6 +4911,7 @@ "title-max-length": "Title should be less than 256", "description": "Description", "image-preview": "Image preview", + "order": "Order", "add-widgets-bundle-text": "Add new widgets bundle", "no-widgets-bundles-text": "No widgets bundles found", "empty": "Widgets bundle is empty", From c48add7f16846adbaee32a0b15b133ba0eac9e23 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Tue, 31 Oct 2023 12:50:11 +0200 Subject: [PATCH 56/56] Widget bundle order + new descriptions and tags --- .../json/system/widget_bundles/air_quality.json | 1 + .../system/widget_bundles/alarm_widgets.json | 1 + .../system/widget_bundles/analogue_gauges.json | 1 + .../data/json/system/widget_bundles/cards.json | 1 + .../data/json/system/widget_bundles/charts.json | 1 + .../system/widget_bundles/control_widgets.json | 1 + .../system/widget_bundles/count_widgets.json | 1 + .../data/json/system/widget_bundles/date.json | 1 + .../system/widget_bundles/digital_gauges.json | 1 + .../json/system/widget_bundles/edge_widgets.json | 1 + .../widget_bundles/entity_admin_widgets.json | 1 + .../system/widget_bundles/entity_widgets.json | 1 + .../system/widget_bundles/gateway_widgets.json | 1 + .../json/system/widget_bundles/gpio_widgets.json | 1 + .../system/widget_bundles/home_page_widgets.json | 1 + .../json/system/widget_bundles/html_widgets.json | 1 + .../widget_bundles/indoor_environment.json | 1 + .../system/widget_bundles/input_widgets.json | 1 + .../widget_bundles/liquid_level_tanks.json | 7 ++++--- .../data/json/system/widget_bundles/maps.json | 1 + .../widget_bundles/navigation_widgets.json | 1 + .../widget_bundles/outdoor_environment.json | 1 + .../system/widget_bundles/status_indicators.json | 1 + .../data/json/system/widget_bundles/tables.json | 1 + .../widget_types/air_quality_index_card.json | 7 +++++-- .../air_quality_index_card_with_background.json | 7 +++++-- .../air_quality_index_chart_card.json | 7 +++++-- ...quality_index_chart_card_with_background.json | 7 +++++-- .../json/system/widget_types/alarm_count.json | 3 +++ .../json/system/widget_types/alarms_table.json | 3 +++ .../data/json/system/widget_types/co2_card.json | 16 ++++++++++++++-- .../widget_types/co2_card_with_background.json | 2 +- .../system/widget_types/flooding_level_card.json | 2 +- .../flooding_level_card_with_background.json | 2 +- .../widget_types/ground_temperature_card.json | 2 +- .../ground_temperature_card_with_background.json | 2 +- .../horizontal_air_quality_index_card.json | 7 +++++-- ...l_air_quality_index_card_with_background.json | 7 +++++-- .../system/widget_types/horizontal_co2_card.json | 2 +- .../horizontal_co2_card_with_background.json | 2 +- .../horizontal_flooding_level_card.json | 2 +- ...ntal_flooding_level_card_with_background.json | 2 +- .../horizontal_ground_temperature_card.json | 2 +- ..._ground_temperature_card_with_background.json | 2 +- .../widget_types/horizontal_humidity_card.json | 2 +- ...horizontal_humidity_card_with_background.json | 2 +- .../horizontal_illuminance_card.json | 2 +- ...izontal_illuminance_card_with_background.json | 2 +- .../horizontal_leaf_wetness_card.json | 2 +- ...zontal_leaf_wetness_card_with_background.json | 2 +- .../horizontal_noise_level_card.json | 2 +- ...izontal_noise_level_card_with_background.json | 2 +- .../widget_types/horizontal_pm10_card.json | 2 +- .../horizontal_pm10_card_with_background.json | 2 +- .../widget_types/horizontal_pm2_5_card.json | 2 +- .../horizontal_pm2_5_card_with_background.json | 2 +- .../widget_types/horizontal_pressure_card.json | 2 +- ...horizontal_pressure_card_with_background.json | 2 +- .../horizontal_radon_level_card.json | 2 +- ...izontal_radon_level_card_with_background.json | 2 +- .../widget_types/horizontal_rainfall_card.json | 2 +- ...horizontal_rainfall_card_with_background.json | 2 +- .../widget_types/horizontal_snow_depth_card.json | 2 +- ...rizontal_snow_depth_card_with_background.json | 2 +- .../horizontal_soil_moisture_card.json | 2 +- ...ontal_soil_moisture_card_with_background.json | 2 +- .../horizontal_solar_radiation_card.json | 2 +- ...tal_solar_radiation_card_with_background.json | 2 +- .../horizontal_temperature_card.json | 2 +- ...izontal_temperature_card_with_background.json | 2 +- .../widget_types/horizontal_uv_index_card.json | 2 +- ...horizontal_uv_index_card_with_background.json | 2 +- .../widget_types/horizontal_value_card.json | 2 +- .../widget_types/horizontal_vibration_card.json | 2 +- ...orizontal_vibration_card_with_background.json | 2 +- .../widget_types/horizontal_visibility_card.json | 2 +- ...rizontal_visibility_card_with_background.json | 2 +- ...rizontal_volatile_organic_compounds_card.json | 2 +- ...e_organic_compounds_card_with_background.json | 2 +- .../widget_types/horizontal_wind_speed_card.json | 2 +- ...rizontal_wind_speed_card_with_background.json | 2 +- .../json/system/widget_types/humidity_card.json | 2 +- .../humidity_card_with_background.json | 2 +- .../system/widget_types/illuminance_card.json | 2 +- .../illuminance_card_with_background.json | 2 +- .../system/widget_types/indoor_co2_card.json | 2 +- .../indoor_co2_card_with_background.json | 2 +- .../widget_types/indoor_horizontal_co2_card.json | 2 +- ...door_horizontal_co2_card_with_background.json | 2 +- .../indoor_horizontal_humidity_card.json | 2 +- ...horizontal_humidity_card_with_background.json | 2 +- .../indoor_horizontal_illuminance_card.json | 2 +- ...izontal_illuminance_card_with_background.json | 2 +- .../indoor_horizontal_pm10_card.json | 2 +- ...oor_horizontal_pm10_card_with_background.json | 2 +- .../indoor_horizontal_pm2_5_card.json | 2 +- ...or_horizontal_pm2_5_card_with_background.json | 2 +- .../indoor_horizontal_temperature_card.json | 2 +- ...izontal_temperature_card_with_background.json | 2 +- .../widget_types/indoor_humidity_card.json | 2 +- .../indoor_humidity_card_with_background.json | 2 +- .../widget_types/indoor_illuminance_card.json | 2 +- .../indoor_illuminance_card_with_background.json | 2 +- .../system/widget_types/indoor_pm10_card.json | 2 +- .../indoor_pm10_card_with_background.json | 2 +- .../system/widget_types/indoor_pm2_5_card.json | 2 +- .../indoor_pm2_5_card_with_background.json | 2 +- .../widget_types/indoor_temperature_card.json | 2 +- .../indoor_temperature_card_with_background.json | 2 +- .../system/widget_types/leaf_wetness_card.json | 2 +- .../leaf_wetness_card_with_background.json | 2 +- .../system/widget_types/noise_level_card.json | 2 +- .../noise_level_card_with_background.json | 2 +- .../data/json/system/widget_types/pm10_card.json | 2 +- .../widget_types/pm10_card_with_background.json | 2 +- .../json/system/widget_types/pm2_5_card.json | 2 +- .../widget_types/pm2_5_card_with_background.json | 2 +- .../json/system/widget_types/pressure_card.json | 2 +- .../pressure_card_with_background.json | 2 +- .../system/widget_types/radon_level_card.json | 2 +- .../radon_level_card_with_background.json | 2 +- .../json/system/widget_types/rainfall_card.json | 2 +- .../rainfall_card_with_background.json | 2 +- .../simple_air_quality_index_chart_card.json | 5 ++++- ...quality_index_chart_card_with_background.json | 5 ++++- .../system/widget_types/snow_depth_card.json | 2 +- .../snow_depth_card_with_background.json | 2 +- .../system/widget_types/soil_moisture_card.json | 2 +- .../soil_moisture_card_with_background.json | 2 +- .../widget_types/solar_radiation_card.json | 2 +- .../solar_radiation_card_with_background.json | 2 +- .../system/widget_types/temperature_card.json | 2 +- .../temperature_card_with_background.json | 2 +- .../json/system/widget_types/uv_index_card.json | 2 +- .../uv_index_card_with_background.json | 2 +- .../widget_types/value_and_chart_card.json | 2 +- .../json/system/widget_types/value_card.json | 2 +- .../json/system/widget_types/vibration_card.json | 2 +- .../vibration_card_with_background.json | 2 +- .../system/widget_types/visibility_card.json | 2 +- .../visibility_card_with_background.json | 2 +- .../volatile_organic_compounds_card.json | 2 +- ...e_organic_compounds_card_with_background.json | 2 +- .../system/widget_types/wind_speed_card.json | 2 +- .../wind_speed_card_with_background.json | 2 +- 145 files changed, 195 insertions(+), 129 deletions(-) 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 128bf9d9cd..ff0d1aaefb 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 @@ -4,6 +4,7 @@ "title": "Air quality", "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMkAAAChCAMAAABav2sAAAABa1BMVEUAAAAAAAD19fXf39/w8PD9/f3AwMDw8PDy8vL39/f////39/f19fX5+fnj4+OsrKw/pxrHx8fx8fGAwyzn5+fa2tp0dHSQkJDu7u5YWFjz8/Ph4eHQ6a+CgoJmZmbV1dXOzs7v9+W6urrf8Mqf04zU1NSg0mDdNVH/pgD1xc2/4ZX64uaenp7CwsLwqLSQy0aIxznYGDj3+/L/3p+v2Xv/9N/Y7L3ri5vn9Ni33qniUmn/+u/n9ONKSkr/vED/sSDumqjaJkTm5ub/6b/H5aP/2JDc3Nznb4L/qxDz+vH/78/fQ12YzlP98fP/46+43Yj/0oBYszi8vLyw2XuHyHD309rJycnP6cbH5aKTzn62trar2ZrA4ZbpfY//zXCn1m51wFqQykZLrCj7+/vz+fHzt8HD47iZmZmf043/wk8vLy/b79Tb7tSpqamNjY233YjlYHZkZGTgQ13/tzDri5yWlpZVVVU9PT0hISE3rbRvAAAACnRSTlMAB+8gvvEqsK/FH1hXSwAACc9JREFUeNrsm/2L0zAYx0UF5atJSJe0WdOu3UrLGBsbe2Mw9ODmiRyih4KIiCL+IAoqIop/vk+rm5vOt3nTTvZhfZrLRpPPJU/S3suZM2fOnT97aWtcvnCOmvg7rZw7i61ylhr5O61cxJY5TyJ/pZXL2DJnSeSvtHIJW+YSifyFVvYme5MFe5NTMXGWyxubOBJE2xMQEXgbIuQA9zy+XRPh1jivuQIEdzGHyhubuB8aFKs8bFRDuFeiMHIB6XFnuyZVRA03wpVPveeuyz3Hi0JvcxPXu8IBVGWtUa05bhXwBNCoVbc7JoUCtVF1Gg6ZtMNQ1ISoiqrc1MSpRaK4sIhyG1GF8ABwR4hTNAlarTHGeVhQ49LzpFPljUZuIiLevuLUZLTxmBAcRLU4XtCVX7htKeTpjkk2fP2Ywt0MC3gtdJzQ5U4IOMIJQ+60wUPPEaVeu7KkCEmGcTDuY5nIi3ZpFc6uBfcpXMtwbdgNdnk/aWXZfVzLQ9C6OcZ38BmWYWwjE2swx19cysyvlZ7a2pVdS/rI6QCM0etQU2C5BYt9xvy0aF/GYFqBysWbv2HiG6asPFSxjmyMNNbaqjS2kWGRUorFysbsVEyG3e54bhJJvxOnEkrHqnPHdB748QN1R9+7A/gx63QUbKxlHKdR+usmzBob6UOWWl9raE09V1prX/mxthY61fqU95MOGPU+7igNQyY6jShKkollmpuYVCvEUXzHj++gU5o8WYOMVSr9VLMYLJamEyGWpIG8DmAWqTTQqbUytqkps8kqTOE76Ngv09q1HdZnvDaHxqe0gPaZb5TRyvd9s4smHauVPdQah5TcSh0qbem1gyZMKWWtUQqpyofD+vkIxTtospadnF0F/0XGA3uTvcneZG+yN9mb7E2W+Z9NZlebzasjAEcHzYOTHTYZNQ+OTm4cTDFovh08bx7hpzglNXnUnOXhFq42R5jeOPiBgfMUkC5CB5KX0KTghHRyCdKZ4js8TdNLTgNe5IWIPF5Gk+ns6MZboHkVKAbmO7B3oQIgHK8BLqMymgyazRvHPzfBy1flznhgOpod3BgtTHZ27fo8LEc/y5MCW0QDQJXP5HnzuDD5JHFAOlNMj0fT2fHx6PgWVvAVTKqMsqnSPzcJEgpJawwiuTbGWiYJvlAPks1NSOJgQHviiArPB4+aJ1QzGtw6mo1unRzNjrGKQWR1CmMMfmpyrTIEbvce924Drd7jboZ1ZAEW9G+2esnmJhgc0B4/A3Byo3njUV5x69bRyWA0GwzW/vLD/Fqe1Lu9IeqVAONKH3RKKpOiuv/p6Cf9oljp9+uYTOjrOoDgZv2P8mQ6z41REW+RzPH0TzP+7u3ukLpfp86OJ5UEuQ0otoBCr9ftUTEYIqjc7FVud3uVJDcZl+4OMujWySQoTILkGxN6r54XqecBvfmYPndz2O+1ukHZTOrUpR+Y1IuKFiZdFJ9pPQGyLM/40t3Vv+5lWaX7MJ9dNLXq35qMi+Ld4bJJKZ9PJkEQ9LKkX7lf9LT3cJ7xldvFMtCjE5l0k9KbEPnsQovS+WG+ImfU98KESr0gr+hWWkkXO2GS1PMQJCt7XmUYJEkf/UlA43WXJFFP6JgAk0lpTdZR5AnRuhvc7dU3uVth1le+AfFPTRZ7en2YDSfYxMRoe2g1ltjVn0j4VlulAOVjYyJ8gf3ze+E/EPFCQvC5Ckp3V//LIgKEbLuCl/BJi3N8hSMakq8V8RaTzA1F6UzcsP31DIpko+ZghYYQIvSwhPTccpkIAeFyLJCuBME9rHabE1jF+ecm7NIS7+nQr15SzLn+5tnn0rOisKi+tBaUaEyE/HTyOEXH8xzMoZoFIS/XfrIGx5vnvSeKifUFp/ZFt12ynXFBw3XdkH/1jW/X2lghCheWZdvjV/6qgwtXgIf4AW05n1tlNLGaDoYC4VY5fkRN5IQC30H9SxOlAMZ+9b8meAG+h//P82TBrt4LL9ib7E1O3cQsP1QY9qmo/B000VDWGg1jbGojkyoTWzywoFNkLdshk9RowkLFaapTHSsVGWgJ3SEza3bI5AsKqzC7W7PrYzv325o2EMBxfN3Urb+5nHcPLr0HOSFkhBAb8JEoEcweVER8IPQPUgZla0vZ9mCMwd7+7sJqlTBpNLl2Lh/wDCLGryYahcuKf3yPX6pK/ouSlyhZU4UYWUsNJXutQgysZZ/OiPHi1Zvm29K8rKUhBtZSqZTsoEQvDGoc1lGeWsPYeYkadZSq3jD1KVxDyQ4NnZfoAGWrHxg5L5GBEhwYOYKsSh6vKsllX0sYINUFbRcWZTZhIE4bO1svoRYIlggDHIswhu1lSxi3bUfqBQlOZZvYlFuSURfby5bYFAJUBVHXcuGytiss6nDK2tvWZEtAO3BcKNwSEIDoEIAJl2J72RLBf0FAEO5wh6g10SFVr6DbkRa2lC2BtB3BdBLnGMIShIAwIostoRBpSYpTDkFtQpiU2Fa2hHFIBu1LGx0pXSYcziQn2E22ZGjfl1jSVu8JlXAIdvF8PrvYjhvX8ymxKHbyfEp2VZXkUpXkUpXkUpXkUpXkUpXkUpXkkimJva9A3/O8SxTmaUpOW31gPr+6OkVhnqSkP9clrVsUy3zJZN5XJdethddHkcyXLE6hSuJPV6efFkD/7iJGAcyXqIRYl2hea4LF7WUfRTBfctrSvPgC6KuS62/e1xgFMF8yieO4dTm5aN1OruZQORd3lyiA+RJNb113rdb8G4CL64WH3RVdwmwhOcO6bElqEt8vQCu2ZHYGIJwBQRTgflx19h0bcQq0BdaZP1o5GyQ9RINugMj/6I8QJXpcE/jYxOJQbIo15ktuoqkqCVTJYITRFIMebnwAo6AXYdbTY+BHvRCrmGulV1IIi8k/y1hjvgT6uQOqxNfPGVM1dgH4P0b+z7A7HiVB0B2PkxkeuIJIAsDpwJLSRapjA7AY/nj6Ev++JMJoGnZDjMfqVkxHeCAYMLRAOVYRKYZcCoLU05dMH0oiX5f0dIm+01Ja0BZDFZRl2R1omW/Gv/KaW3i7qeT7GB8H+DjGaKBLRhgPwu4Zpr0gCWf+DZa4hc2yJZ82lMyb29hUEvq+H+oxOUv3Ez8Jw26S+GGQTJMBlmwHuUti7+/id1v4vPmbMVwZ/WgGqK1r9TaNig4e4/n8+vUjpCVY15EMj7JecnR8hEKcAOqhzs9zlISzdMQ2siXHcFGEDx2cH7knJ8dNpMwfQboFlaQPpErOj6D92yXHTffD+7LfEyP7SfP4BO/fI1X9c5dLVZJLVZJLVZJLVZJLVZJLVZJLVZLLnpXUUbYDQ/MZD1Gympn5jPs0k+ZFo4by1A8bZuYz7tGMs98glI0MfcFq1wAAAABJRU5ErkJggg==", "description": "Contains widgets displaying air quality telemetry.", + "order": 12600, "externalId": null, "name": "Air quality" }, 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 314b962089..576e8aae79 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 @@ -4,6 +4,7 @@ "title": "Alarm widgets", "image": "data:image/png;base64,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", "description": "Visualization of alarms for devices, assets, and other entities.", + "order": 3000, "externalId": null, "name": "Alarm widgets" }, 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 d7e5f4d9fc..f04547a919 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 @@ -4,6 +4,7 @@ "title": "Analogue gauges", "image": "data:image/png;base64,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", "description": "Display temperature, humidity, speed, pressure, direction, and other values on analog-style gauges.", + "order": 7000, "externalId": null, "name": "Analogue gauges" }, 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 c1420e6549..39996839f1 100644 --- a/application/src/main/data/json/system/widget_bundles/cards.json +++ b/application/src/main/data/json/system/widget_bundles/cards.json @@ -4,6 +4,7 @@ "title": "Cards", "image": "data:image/png;base64,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", "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, "name": "Cards" }, 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 4270cede84..5119d01671 100644 --- a/application/src/main/data/json/system/widget_bundles/charts.json +++ b/application/src/main/data/json/system/widget_bundles/charts.json @@ -4,6 +4,7 @@ "title": "Charts", "image": "data:image/png;base64,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", "description": "Display time series data using customizable line and bar charts. Use various pie charts to display the latest values.", + "order": 1000, "externalId": null, "name": "Charts" }, 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 59a6d6b39d..fb7c6e1ee2 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 @@ -4,6 +4,7 @@ "title": "Control widgets", "image": "data:image/png;base64,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", "description": "Various interactive widgets to control the behavior and state of the IoT devices.", + "order": 8000, "externalId": null, "name": "Control widgets" }, 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 1ee5567770..775947de01 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 @@ -4,6 +4,7 @@ "title": "Count widgets", "image": "data:image/png;base64,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", "description": "Cards to display the number of alarms or entities based on the selected filter.", + "order": 5000, "externalId": null, "name": "Count widgets" }, 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 be52525df1..d6bf61a989 100644 --- a/application/src/main/data/json/system/widget_bundles/date.json +++ b/application/src/main/data/json/system/widget_bundles/date.json @@ -4,6 +4,7 @@ "title": "Date", "image": "data:image/png;base64,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", "description": "Contains widgets to change the data range for other widgets on the dashboard.", + "order": 20000, "externalId": null, "name": "Date" }, 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 a423877265..39140fbc9c 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 @@ -4,6 +4,7 @@ "title": "Digital gauges", "image": "data:image/png;base64,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", "description": "Display temperature, humidity, speed, pressure, and other values on digital-style gauges.", + "order": 12500, "externalId": null, "name": "Digital gauges" }, 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 e22c4fabdb..158a856eb9 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 @@ -4,6 +4,7 @@ "title": "Edge widgets", "image": "data:image/png;base64,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", "description": "Widgets to manage ThingsBoard Edge instances and navigate through their entities.", + "order": 16000, "externalId": null, "name": "Edge widgets" }, 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 0d64bf85a6..fc4779c522 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 @@ -4,6 +4,7 @@ "title": "Entity admin widgets", "image": "data:image/png;base64,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", "description": "Templates of complex widgets that allow to list and create/update/delete devices and assets.", + "order": 13000, "externalId": null, "name": "Entity admin widgets" }, 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 97bb12aa7d..13194d18b3 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 @@ -4,6 +4,7 @@ "title": "Entity widgets", "image": "data:image/png;base64,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", "description": "Visualize entity properties and hierarchy using table and tree widgets.", + "order": 17000, "externalId": null, "name": "Entity widgets" }, 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 140d4845f9..bf48fd1c4f 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 @@ -4,6 +4,7 @@ "title": "Gateway widgets", "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC7lBMVEUwVX8wVn8wVoAxV4AyV4EzWYI1WYI1WoM4XYU7X4Y8YIc+YYg/YolDZYtGaI1HR0dIaY1IaY5Ja49LbJBQcZRScpVUVFRUc5ZVVVVWVlZWdZdXV1dXdphYWFhYdphZWVlaeJpcXFxceptdXV1eXl5fX19gYGBhfp5jY2NkZGRkgKBlZWVmZmZmgqFnZ2dng6JoaGhpaWlqampqhaNqhqRra2tsbGxtbW1ubm5vb29wcHBwiqdxcXFycnJyi6hzc3N0dHR0jqp1dXV2dnZ3d3d3kKt4eHh5eXl6enp7e3t7lK58fHx9fX1+fn5/f3+AgICBgYGCgoKCmbKDg4OEhISFhYWGhoaGnLWHh4eHnbWIiIiInraJiYmJn7eKioqKoLeLi4uMjIyMobiNjY2Ojo6Pj4+QkJCQpLuRkZGRpbuSkpKSpryTk5OUlJSVlZWVqL6Vqb6WlpaWqr+Xl5eXqr+YmJiZmZmZq8Campqbm5ubrcKcnJydnZ2dr8Oenp6er8OesMSfn5+goKChoaGioqKjo6OkpKSlpaWltcimpqanp6eoqKipqamqqqqrq6urususrKytra2tvMyurq6uvc2vr6+vvc6vvs6wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr6+yte/v7/AwMDAy9jBwcHCwsLCzdrDw8PDztrExMTFxcXFz9vGxsbG0dzHx8fIyMjI0t3JycnKysrLy8vMzMzM1eDNzc3N1uDOzs7Pz8/Q0NDR0dHR2ePS0tLT09PU1NTV1dXW1tbW3ebW3ubX19fY2NjZ2dnZ4Oja2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDw8PHw8vbx8fHy8vLz8/Pz8/T09PT19fX29vb39/f3+Pn4+Pj5+fn5+vz6+vr7+/v8/Pz9/f3+/v7///9UXY26AAAAAWJLR0T5TGRX8AAAC3dJREFUeNrtnXtYW2cdx2Onzrtu3q9TN6tzF0cnXaggsWAgUmiQFI+IeDAUsWtVROqqEbU35Cq11lFoYbR0gxVrEams2SStoaClLuW6pFySnIMmMTnHxHP7/ucfCbSda0lXYJw85/s88PDw8LzJh/O+b973c35vogJPxUA4qHhKguwjUbwqzCHJOGESFRXGEGWbMAqlogFJEgWB5zkZhucFQZQkgFbRkCSR50JBlmVkF5YNhjhelKQwiMiHONmOeIkL8aIEWkVLksCxQfnOWEGWEySJVtGSKIS8cp57vSFBDIPwQVrOIHSQj4BwLCVnEIrlFkDccgZxxyAII28Q5hVA9pB68njLFFCBClRfAluFiYLcHjiLCjuxiySs8BRtbgFQFMRsDrmDnjDkHRJXIQiQAGyzAWqokRHH+3Wiek7YSOeNSIRLDf865FyUCvsx9PBxjBlhJQd2SYf3rujz5ha+LQ7SZDavgxoZByr8ulkDABwkJoHHzM1FUAMXymGczJgHAdQrClLeA/SURwdiamqKgxoZnowB3WQ+TCkjGMrPEdZ3NOklNfDi9mCCY9PU2H35a5mVB6HzTp/Jdd9a1/LMxum4dSJ2XtgrYvslNbCR2RBA09FjmeVkxZgRW0YHdmHEsMKvGwRB3eIY8aBZh47UkrS5Hn3xpmA8aSjHYDKh51P8kNSjRjjSBz6Tq1/pl1OKimaw/3+EEACwC8tNRg7Tb8y8jiggCogCooAoICsK8s9lyr9XIErXUkAUEAVEAVFAlhwkWFZYz5J5BnJ4itD3oJfIrxbBGyWgPY+cQTFJHpAHSMNTqDoLqwlImhLSHPWdqOhAx8NWXNoiTelW2Jfcjtfq3zgAwGrCXAZwvCkMkmXPR00vADxiNr/m4j5Kr/VS2UYaVhNms4GT9fVJqXnSbLojkdl9dobMwP1NTY7XGiQ6r9XsQutRWE0Q4gWUv1DfGVJz+/PL9UdPVQAJq6JrRee1RrNKNk7DagJObczZivpOtNaoBTAbxcK8vDKsJcnaVUASldda8FfCy26QhkSszigviArI8oMoN0NXHUiM3Gfng3RAvhyBq5UPQshzSrYkgS7PfC2KJHC+huqqyv0yTGVVdYMvUh0ESeQDo8NDg7LM0PBoIFKvBUkSOSbg83o9sovX6wsw3HwFXczUNK72KtP/fPGNqhvnHX+QJMyDrO6639+87qZ5V3i7pVr9xXM/WnPzKCAKiAISyd0/+OobYgLkb5//2Q/v+Phdb757zfvX3P0eGYM8+eR713zr53//yF/e9vyjv3/2C/IFueOh57/yuV//9bPPfPvrv332mV/IFuT1//j0d3/150f/9NCX//X2x3/8yY/I94q8+/vfecuHfvK1j73pm2vu/Mbjb1WmXwVEAYkxkN/dnOMu2YD890t33ozjjxEQWbu5ayydKhZOuAISpeJi46yuoAJPUR6Zh6IEqBAjiSEQ5WD+qhrsfOxMvzF0MD/ssLmQLMNFLHb4/ojABdmA3yfD+ANskBMi59lFIcTIeXwwC8fAOUbe59nnCwaEoE/e99l9QUGiVbTIs3PTcgaZnmN5kVbRIhegHHIGcVABLgzid03KGWTS5Q+DhHzOCTmDTDh9oXmQ8flf2k45vwccs58mSJIdNWRbb/dRAnZUXLsIOk8Yx2ZagAo4SeJpBMuJfVI3QZKeHqJ4GtXkrtAtP8T4VZDZBZAzlePvfArlQ1U9gLB+jt0Q5cT8kkWA3+KDw2kR/S6LG+KwA5gYwolc7wTE4Qn4XBYKQDzHZIyWAGpsdEiZjtJu7Ouo6Qa4eJHOObcDfbdeMzk++8og+Ruo8qGqIw7KVgJU9UTV1gDRuIVKb9f4tRXbq3rVzQ9iR7Nh+OgTP91fmz6rQXGjseNkYnMcgMxqL0ZLAHUoCfCx64Ggt2aPeVhKamQwE9/9KgonbwRifFFfPlRFVHYNlgENJ6Nqq3gK9pYONHdo+Vmitx5pzNpK4540SbLbyqHhdOC0Jw9DIwFCh7ZutARQs6lA5Ch8zdam0+DaktpAVakvLx0InrhvqKoH8CUDhujmsx2jON/WitqzWt5J9NZDxyR4vayWEy/YyqARNfBkh0HYWuCxmRxI66EWUD2un8aZjppuwHkEotp8AbbiJQTh7h2q6gHQnL55d5RDREfWBDNLcvl5kGBd7pbL5ix9N/3gixo05KfbIlfEVEiYsKMgqw19acYi6SVtcaa/RkOSzm1bsxvo7O1a69KAXB+ei7o1DteUDAMAJwGiECkX5q52fYEDwAkApBAALFQX88LLm1g6EHlEAVnFIE55g1yzRImNtVbMrH65gNsuZx1kd8/vRxjKMTLY39fTLbv09PUPjjgohhNpFS3xzNz0+CWrxXz2OZnlrNlivTQ+Pcfw83v2GTmPkZn5PXusgEg8I3eLEulaHCN3i8JcnX7lDHJ1+lV00O1GnOGWoJVX1EEDuXnH4M8hyd62PKIVtQyGu9GSZ3QtIh9yC3Zf/5xM1/w8UgoA2MQAgP+a8Zjdo+WXdNF4dRl/olE0tVKbAZRd5LXOTA9O1VqMmNDfvK32Rhw6iJkBCS4zi9D5OUz4KTgZzkqDt5hLAVy5kMEI1nG0Fvh56yTcASCoxbbRZdqPnGgEm0KpzeZg2cEOHZfpwanaX55btK32RjQetBgbnpjJaE3is9pT/BragM3eze0pfqKhsBQYTW15H1N8JG1wX6arsCXF9sIYMENgr2X5QIRE6oGmpkDZ/mM6d6YHp2rLLtjJ7EVA4jPTxNxdleuaunHlYkJlqlkDPUXY1JXavmSMlAL7+rGJmTBlHxmswJgpqw0AEs7Cca+4bCB9OyNdC3v68u042nKsBkhY7IqIiX5ixOs9egIDF4u9Hl6Dp7N6bEVeD58IWylQ3w0dk+hpbx40IcHX0gYAo0bUnl6uKxK/hQhQHyXJrjJdfhZ7ObV4U0AgCgjTol3rTPmItqQ+sGlrsVSw1eDXIHQPD7LI4K/O2VwKUElb72EMW5L3Ox8eycpNrGsfAlgdymwrtWdnASAY5b14LvJ1VUSHMP/+DBIXcT8hCUFAAgDNRDK7UiDLmrn+pVjkKTpI0UGKDlJ0kKKDFB2k6CBFByk6SNFBig5a4YRuu+74BjqIJO07yQILSsiCi5gi9L3oJQpqxMV0EFnqie5hm673Jm3JJeF/66t/t8Eb6CAAarBxghr+OCRO81pHXRdMnTdv60QjBvNgtwj8lQGMnRfhP8cA4KwU7KP0FStcFg72S/4poH2WPUdDvDgJj8sy50k8T3sxctnh6FziPXuJ2Qo12HWcGv44KhNoa44OxK63FNYWOT94yGyoKqYy29MlSNnHtVTcLtsHDlzMbs2Q7t3taAfApbcl0sbDZFd7cnP89IOdhztPGw58asnlQ3ZTOx4hP2HBWvLDthkD0HGgLjm1YJGOfOJ+fcFU6MDuBCcBW0ob+5S+8gE37HGVGSc1oAzYZkexXRP+28E9cFObENS1tyAZOvZwZ64TycuggwA1+nZCjfYqIV5EmaWuK6TmFr0iwN6TYpKTwIirS992yOsRYc/1ejgNKANKbTDQEZBLOzHmSgGV294CDXTs4c6iSSQuvQ4iyTE1kDqjhrjB05ViKEZdF1rqogA5nZj7gJPAkJbYz+pKiiSgxJhDa0AZMJVu3AUN3JUApIKt+mBNQdrwAsjlJON9y71nF2/ls9MiHxgnhRaMUOh6rRSWQGFrdM08aHe4tTEhH/ymYntMgCg6SNFBig5aKR0UI6cVeHZuenzY2i87ifLcc2f7rcPj8+dHJCHoc18Ztw0PDV6QWQaHhm3jVyIneihJ5Bive9oxOTEuu0xMOqbdXoYTJUpFiaIQYnxzlMs5K7s4XdScjwkJokipOEqU/zlEkRJU4N1umqLcLqcs43JTFO12C/gf9yt5MBYZj1cAAAAASUVORK5CYII=", "description": "Widgets to manage ThingsBoard IoT Gateway instances.", + "order": 15000, "externalId": null, "name": "Gateway widgets" }, 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 a2f0b39def..78b9c1eea6 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 @@ -4,6 +4,7 @@ "title": "GPIO widgets", "image": "data:image/png;base64,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", "description": "Visualization and control of the state of the GPIO devices.", + "order": 22000, "externalId": null, "name": "GPIO widgets" }, 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 5248b73639..a30d6ee76f 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 @@ -4,6 +4,7 @@ "title": "Home page widgets", "image": "data:image/png;base64,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", "description": "Contains useful widgets to design the user's home page.", + "order": 18000, "externalId": null, "name": "Home page widgets" }, 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 e7f9a6d254..9293ed5fcb 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 @@ -4,6 +4,7 @@ "title": "HTML widgets", "image": "data:image/png;base64,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", "description": "Visualize HTML based on a configurable template or function and device attributes or time-series values.", + "order": 21000, "externalId": null, "name": "HTML widgets" }, 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 1464ab1135..f4fc3a0201 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 @@ -4,6 +4,7 @@ "title": "Indoor Environment", "image": "data:image/png;base64,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", "description": "Contains widgets displaying indoor environment telemetry.", + "order": 10000, "externalId": null, "name": "Indoor Environment" }, 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 5118c245c5..fe24d68960 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 @@ -4,6 +4,7 @@ "title": "Input widgets", "image": "data:image/png;base64,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", "description": "Various input forms to set the location, image, and other configuration parameters of the device, asset, or other entity.", + "order": 14000, "externalId": null, "name": "Input widgets" }, 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 c7be72810a..61f7e234ec 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 @@ -1,11 +1,12 @@ { "widgetsBundle": { "alias": "liquid_level_tanks", - "title": "Liquid level tanks", + "title": "Liquid level", "image": "data:image/png;base64,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", - "description": "By visually representing the liquid's volume, these widgets help in monitoring, optimizing storage, and ensuring efficient operations. Suitable for a variety of storage setups, they are essential for industries requiring precise liquid management.", + "description": "Visualize the level of liquid inside the tank. Supports various tank shapes.", + "order": 12000, "externalId": null, - "name": "Liquid level tanks" + "name": "Liquid level" }, "widgetTypeFqns": [ "vertical_cylinder_tank", 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 aa92068c3a..86754f0bd4 100644 --- a/application/src/main/data/json/system/widget_bundles/maps.json +++ b/application/src/main/data/json/system/widget_bundles/maps.json @@ -4,6 +4,7 @@ "title": "Maps", "image": "data:image/png;base64,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", "description": "Visualize the latest location or trip of the devices or other entities on the indoor or outdoor maps.", + "order": 6000, "externalId": null, "name": "Maps" }, 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 9df7d221d9..305cded236 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 @@ -4,6 +4,7 @@ "title": "Navigation widgets", "image": "data:image/png;base64,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", "description": "Contains widgets that enable navigation to other dashboards and menu items. Useful to define the home page or dashboard.", + "order": 19000, "externalId": null, "name": "Navigation widgets" }, 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 ea545ac988..4deca7880f 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 @@ -4,6 +4,7 @@ "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==", "description": "Contains widgets displaying outdoor environment telemetry.", + "order": 11000, "externalId": null, "name": "Outdoor Environment" }, 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 429d3fe016..3c8192493b 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 @@ -4,6 +4,7 @@ "title": "Status indicators", "image": "data:image/png;base64,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", "description": "Contains widgets displaying battery level and signal strength.", + "order": 9000, "externalId": null, "name": "Status indicators" }, 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 ce46218178..206971f1d5 100644 --- a/application/src/main/data/json/system/widget_bundles/tables.json +++ b/application/src/main/data/json/system/widget_bundles/tables.json @@ -4,6 +4,7 @@ "title": "Tables", "image": "data:image/png;base64,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", "description": "Contains tables to display alarms, entities, and their telemetry.", + "order": 4000, "externalId": null, "name": "Tables" }, 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 5041a13350..77e17197b8 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 @@ -3,7 +3,7 @@ "name": "Air quality index card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest air quality index telemetry data in a box layout.", + "description": "Displays the latest air quality index telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, @@ -24,6 +24,9 @@ "weather", "environment", "air", - "aqi" + "aqi", + "pollution", + "emission", + "smog" ] } \ No newline at end of file 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 4f473d11c8..35d1cafd7b 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 @@ -3,7 +3,7 @@ "name": "Air quality index card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest air quality index telemetry data in a box layout with background.", + "description": "Displays the latest air quality index telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, @@ -24,6 +24,9 @@ "weather", "environment", "air", - "aqi" + "aqi", + "pollution", + "emission", + "smog" ] } \ No newline at end of file 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 a49ae839a0..a63c85c6cd 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 @@ -3,7 +3,7 @@ "name": "Air quality index chart card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a air quality index data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "description": "Displays air quality index data as a combination of the latest and aggregated values. Optionally displays the corresponding historical values as a simplified chart.", "descriptor": { "type": "timeseries", "sizeX": 4.5, @@ -27,6 +27,9 @@ "weather", "environment", "air", - "aqi" + "aqi", + "pollution", + "emission", + "smog" ] } \ No newline at end of file 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 804132c639..3e1e0277d5 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 @@ -3,7 +3,7 @@ "name": "Air quality index chart card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a air quality index data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "description": "Displays air quality index data as a combination of the latest and aggregated values with background. Optionally displays the corresponding historical values as a simplified chart.", "descriptor": { "type": "timeseries", "sizeX": 4.5, @@ -27,6 +27,9 @@ "weather", "environment", "air", - "aqi" + "aqi", + "pollution", + "emission", + "smog" ] } \ No newline at end of file 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 d1a41be9e6..bce10fd653 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 @@ -19,5 +19,8 @@ "basicModeDirective": "tb-alarm-count-basic-config", "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"count\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = Number((prevValue + Math.random() * 4 - 2).toFixed(0));\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"],\"assignedToCurrentUser\":false,\"assigneeId\":null}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"showLabel\":true,\"label\":\"Total\",\"labelFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.54)\",\"colorFunction\":\"var 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\":20,\"iconSizeUnit\":\"px\",\"icon\":\"warning\",\"iconColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 1)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIconBackground\":true,\"iconBackgroundSize\":36,\"iconBackgroundSizeUnit\":\"px\",\"iconBackgroundColor\":{\"type\":\"range\",\"color\":\"rgba(0, 105, 92, 1)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"rgba(0, 105, 92, 1)\"},{\"from\":1,\"to\":null,\"color\":\"rgba(209, 39, 48, 1)\"}],\"colorFunction\":\"var 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\":20,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"24px\"},\"valueColor\":{\"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';\"},\"showChevron\":false,\"chevronSize\":24,\"chevronSizeUnit\":\"px\",\"chevronColor\":\"rgba(0, 0, 0, 0.38)\",\"layout\":\"column\"},\"title\":\"Alarm count\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":null,\"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\"},\"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},\"titleColor\":\"rgba(0, 0, 0, 0.54)\"}" }, + "tags": [ + "alert" + ], "externalId": null } \ No newline at end of file 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 964f478179..23b551def7 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 @@ -20,5 +20,8 @@ "basicModeDirective": "tb-alarms-table-basic-config", "defaultConfig": "{\"timewindow\":{\"realtime\":{\"interval\":1000,\"timewindowMs\":86400000},\"aggregation\":{\"type\":\"NONE\",\"limit\":200}},\"showTitle\":true,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"4px\",\"settings\":{\"enableSelection\":true,\"enableSearch\":true,\"displayDetails\":true,\"allowAcknowledgment\":true,\"allowClear\":true,\"allowAssign\":true,\"displayActivity\":true,\"displayPagination\":true,\"defaultPageSize\":10,\"defaultSortOrder\":\"-createdTime\",\"enableSelectColumnDisplay\":true,\"enableStickyAction\":false,\"enableFilter\":true,\"entitiesTitle\":null,\"alarmsTitle\":\"Alarms\"},\"title\":\"Alarms table\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400,\"padding\":\"5px 10px 5px 10px\"},\"useDashboardTimewindow\":false,\"showLegend\":false,\"alarmSource\":{\"type\":\"function\",\"dataKeys\":[{\"name\":\"createdTime\",\"type\":\"alarm\",\"label\":\"Created time\",\"color\":\"#2196f3\",\"settings\":{\"useCellStyleFunction\":false,\"cellStyleFunction\":\"\",\"useCellContentFunction\":false,\"cellContentFunction\":\"\"},\"_hash\":0.021092237451093787},{\"name\":\"originator\",\"type\":\"alarm\",\"label\":\"Originator\",\"color\":\"#4caf50\",\"settings\":{\"useCellStyleFunction\":false,\"cellStyleFunction\":\"\",\"useCellContentFunction\":false,\"cellContentFunction\":\"\"},\"_hash\":0.2780007688856758},{\"name\":\"type\",\"type\":\"alarm\",\"label\":\"Type\",\"color\":\"#f44336\",\"settings\":{\"useCellStyleFunction\":false,\"cellStyleFunction\":\"\",\"useCellContentFunction\":false,\"cellContentFunction\":\"\"},\"_hash\":0.7323586880398418},{\"name\":\"severity\",\"type\":\"alarm\",\"label\":\"Severity\",\"color\":\"#ffc107\",\"settings\":{\"useCellStyleFunction\":false,\"useCellContentFunction\":false},\"_hash\":0.09927019860088193},{\"name\":\"status\",\"type\":\"alarm\",\"label\":\"Status\",\"color\":\"#607d8b\",\"settings\":{\"useCellStyleFunction\":false,\"cellStyleFunction\":\"\",\"useCellContentFunction\":false,\"cellContentFunction\":\"\"},\"_hash\":0.6588418951443418},{\"name\":\"assignee\",\"type\":\"alarm\",\"label\":\"Assignee\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.5008441077416634}],\"entityAliasId\":null,\"name\":\"alarms\"},\"alarmSearchStatus\":\"ANY\",\"alarmsPollingInterval\":5,\"showTitleIcon\":false,\"titleIcon\":\"warning\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"displayTimewindow\":true,\"actions\":{},\"alarmStatusList\":[],\"alarmSeverityList\":[],\"alarmTypeList\":[],\"searchPropagatedAlarms\":false,\"configMode\":\"basic\",\"alarmFilterConfig\":null}" }, + "tags": [ + "alert" + ], "externalId": null } \ No newline at end of file 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 908bb82c03..799df94da7 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 @@ -3,7 +3,7 @@ "name": "CO2 card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest CO2 level telemetry data in a box layout.", + "description": "Displays a latest CO2 level telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, @@ -23,6 +23,18 @@ "tags": [ "weather", "environment", - "co2" + "co2", + "carbon dioxide", + "carbon emission", + "carbon footprint", + "carbon output", + "carbon pollution", + "carbon capture", + "carbon offset", + "carbon reduction", + "carbon neutral", + "climate gas", + "fossil fuel emission", + "carbon cycle" ] } \ No newline at end of file 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 f897d0d7a0..8c2e72e3ed 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 @@ -3,7 +3,7 @@ "name": "CO2 card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest CO2 level telemetry data in a box layout with background.", + "description": "Displays a latest CO2 level telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 6a96ac6457..237e92a35d 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 @@ -3,7 +3,7 @@ "name": "Flooding level card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest flooding level telemetry data in a box layout.", + "description": "Displays a latest flooding level telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 351a40fe8b..e7ee79ffb1 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 @@ -3,7 +3,7 @@ "name": "Flooding level card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest flooding level telemetry data in a box layout with background.", + "description": "Displays a latest flooding level telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 202e88bcca..b8220858f8 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 @@ -3,7 +3,7 @@ "name": "Ground temperature card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest ground temperature telemetry data in a box layout.", + "description": "Displays a latest ground temperature telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 402501f7e8..4d27f7b273 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 @@ -3,7 +3,7 @@ "name": "Ground temperature card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest ground temperature telemetry data in a box layout with background.", + "description": "Displays a latest ground temperature telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 c8b5d12e1a..500a96045e 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest air quality index telemetry data in a horizontal layout.", + "description": "Displays a latest air quality index telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, @@ -24,6 +24,9 @@ "weather", "environment", "air", - "aqi" + "aqi", + "pollution", + "emission", + "smog" ] } \ No newline at end of file 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 88ac73bc03..63d164b983 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 @@ -3,7 +3,7 @@ "name": "Horizontal air quality index card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest air quality index telemetry data in a horizontal layout with background.", + "description": "Displays a latest air quality index telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, @@ -24,6 +24,9 @@ "weather", "environment", "air", - "aqi" + "aqi", + "pollution", + "emission", + "smog" ] } \ No newline at end of file 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 85b8ef899f..462a720e95 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 @@ -3,7 +3,7 @@ "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==", - "description": "Displays a latest CO2 level telemetry data in a horizontal layout.", + "description": "Displays a latest CO2 level telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 be668528e9..fe3f56d39d 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 @@ -3,7 +3,7 @@ "name": "Horizontal CO2 card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest CO2 level telemetry data in a horizontal layout with background.", + "description": "Displays a latest CO2 level telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 a37a2032b4..1676f3e539 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest flooding level telemetry data in a horizontal layout.", + "description": "Displays a latest flooding level telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 0dbe99ca95..8b8a1a78b2 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 @@ -3,7 +3,7 @@ "name": "Horizontal flooding level card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest flooding level telemetry data in a horizontal layout with background.", + "description": "Displays a latest flooding level telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 288150a435..91561ca560 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest ground temperature telemetry data in a horizontal layout.", + "description": "Displays a latest ground temperature telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 540398dad5..1e3c5a048a 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 @@ -3,7 +3,7 @@ "name": "Horizontal ground temperature card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest ground temperature telemetry data in a horizontal layout with background.", + "description": "Displays a latest ground temperature telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 2b58b32288..ad654c941e 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 @@ -3,7 +3,7 @@ "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==", - "description": "Displays a latest humidity telemetry data in a horizontal layout.", + "description": "Displays a latest humidity telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 8dc416249c..05fde200a0 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 @@ -3,7 +3,7 @@ "name": "Horizontal humidity card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest humidity telemetry data in a horizontal layout with background.", + "description": "Displays a latest humidity telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 d07223f469..f084ba0564 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest illuminance telemetry data in a horizontal layout.", + "description": "Displays a latest illuminance telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 1e70bae331..8416561ed0 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 @@ -3,7 +3,7 @@ "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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", - "description": "Displays a latest illuminance telemetry data in a horizontal layout with background.", + "description": "Displays a latest illuminance telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 82c85c3c94..92d81e0bee 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest leaf wetness telemetry data in a horizontal layout.", + "description": "Displays a latest leaf wetness telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 57acfcf515..8a4b13f7a1 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 @@ -3,7 +3,7 @@ "name": "Horizontal leaf wetness card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest leaf wetness telemetry data in a horizontal layout with background.", + "description": "Displays a latest leaf wetness telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 a32b3ff059..433a5d0468 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest noise level telemetry data in a horizontal layout.", + "description": "Displays a latest noise level telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 02ddfe3a58..7dd7e09862 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 @@ -3,7 +3,7 @@ "name": "Horizontal noise level card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest noise level telemetry data in a horizontal layout with background.", + "description": "Displays a latest noise level telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 5f7242e7fb..e6dff37da1 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry data in a horizontal layout.", + "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 13315c949b..c3014fbd1c 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 @@ -3,7 +3,7 @@ "name": "Horizontal PM10 card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry data in a horizontal layout with background.", + "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 b138a18c34..3329be470e 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest fine particulate matter (PM2.5) telemetry data in a horizontal layout.", + "description": "Displays a latest fine particulate matter (PM2.5) telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 7eafc28272..4ef8d4b24f 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 @@ -3,7 +3,7 @@ "name": "Horizontal PM2.5 card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest fine particulate matter (PM2.5) telemetry data in a horizontal layout with background.", + "description": "Displays a latest fine particulate matter (PM2.5) telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 fbc79c2255..5e78644a15 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 @@ -3,7 +3,7 @@ "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==", - "description": "Displays a latest pressure telemetry data in a horizontal layout.", + "description": "Displays a latest pressure telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 d0beafbf6d..3b832d5f8b 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 @@ -3,7 +3,7 @@ "name": "Horizontal pressure card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest pressure telemetry data in a horizontal layout with background.", + "description": "Displays a latest pressure telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 0897a44fca..7909bef1b9 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest radon level telemetry data in a horizontal layout.", + "description": "Displays a latest radon level telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 7f37e96933..dee206f746 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 @@ -3,7 +3,7 @@ "name": "Horizontal radon level card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest radon level telemetry data in a horizontal layout with background.", + "description": "Displays a latest radon level telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 4eefae88c8..a623986273 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest rainfall telemetry data in a horizontal layout.", + "description": "Displays a latest rainfall telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 62bad4bbb0..cb3f7a1818 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 @@ -3,7 +3,7 @@ "name": "Horizontal rainfall card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest rainfall telemetry data in a horizontal layout with background.", + "description": "Displays a latest rainfall telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 690a99c3f0..4c3ce67d7c 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest snow depth telemetry data in a horizontal layout.", + "description": "Displays a latest snow depth telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 76fcd31a5e..ec4780c0d8 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 @@ -3,7 +3,7 @@ "name": "Horizontal snow depth card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest snow depth telemetry data in a horizontal layout with background.", + "description": "Displays a latest snow depth telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 1fb4e01f9e..1d15257d1d 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest soil moisture telemetry data in a horizontal layout.", + "description": "Displays a latest soil moisture telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 3a40804efe..ff5f887e17 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 @@ -3,7 +3,7 @@ "name": "Horizontal soil moisture card with background", "deprecated": false, "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAADAFBMVEUAAABtjUdjVVCEbGVpak1GQT2ftn+ZuzmTi25PT0t1cltqXVJoWFSLoWKUqG1VS0ng29rf2tnk39zY1tTW1NPX1NTd2dja1tXi3dvj3tvb19YiSsHc2Nfg3dnh4NjZ19Tm4N3j49rn4t9FQD7m4d7m6tva2dTl5trl4dx5ZV7k4djk6Nfp4+Di3trt88/m5Njh5NdrWVVmVlJxXlpNRUJdTk1ZTUrc2tZuXFdAPDnt9Mx2YV1SSEY5NjTn5t/m7tne4tXe3Nje3tfd4NPg68+AaWN9Z2GFbWbd3NRJQ0Dj7NPk5tPb29Pr8drs8tXT0tJzYlpiVFDr5eLo7d3p6Nzs7Nvk4NqHcGjq7+Ln5NyOdW2LcWpVSknq6ODs8eTj4dvh4dOCbWXl49zo7NdtYFZnXlHh4Nq0sK3p59nn59bk7NGilI2Bk83u8ubn79SZf3VPSkJkg0DKx8KTd258bF1WZUdgfT7p8NDW0s6Ue3HAw9Pp7NJjhk9abkmOoWhvgFpsj0SfhnlhZE1bWkyFh3uGkGKJmV5ie0zj7dasqaSJf1p3cFZRXUJpgcotU8KCiF1veU5UUkSMkoByalyBdlpxalJdVE1adke10xG/vLfA0Juan46Xq4J5hFFqaE5sgkiBkVl+llJ1isyuwJRpaGR8nV6RqliKuDRRbsc6XMS6trOalpSjjYGBfnyRpnVncVOVvTWDrzTHydSyuNPQzcc5W8OTiIN6dV9ykVqGnlZ6jFR2jUyXuUqkxTShoorMzdaNnM60soyno4uZnmyfs2uYrmWHpmR6gWKflFmgq9JFZcXQ2ra4uamguI2opXWJm3R5b22Rl2FdW1h2lUxUbEGApzPDx6inpp6hn5qqrpK6nY6mq4eBjW11c22hu1uSiVqWo8/c4sm0uKK6wZ+zx3GowG+0qFmqn1k6XcSdm5fJwIq60TixzTTi5siNfHuGeXeBd3OXinCIf2fJ313A3CkjJCBed8myw0yKnEbe5cHEybTT3qiiq0TA0nY6XMXR5Wi5qQ/VAAAAEHRSTlMAICAgICAgICD+RN+/37+/EutUvwAAFWhJREFUeNrswYEAAAAAgKD9qRepAgAAAAAAAACY/flnbRsI4zheua0t3PaFdLRMg6F9Ee7eUdorKJqEU2JiQz34SiIpGOsfxhmdVbLIlhgtIoMzx0sUD8mYIZAlv+eOgJNAxkz3AcuP5efgvpIkSZIkSZIkSW/pA6nQp4Kn8l5VVUURL+HjhgptbOJ7YqpxKqYXXr6rVWtVwmeiCGpVUF6hYmkTrssz6p+MIDAeBYN/qzzPVz5zHCcwuq679evHb+G/23W7OwHsAAbGWAj4Ogr82wM4Pj23zL9PmaZFTC7s98Mwi8uLi7IYjdI4vrs7JGmKOU7TBTedJjhneZ6Hc/YzyXQ2LooJKYrxbNZZLL7U0WGArtMD2n+oY73OV/sO6IamaT+/bQkuX3UgIM6AMd+fg+9vbzMRcumHWZYtl8sso4glUIkIscw+MDYvy3IyGd2fpHDIoYNMhSSxbcs7J56HI55lQx88/LaTszFSyFiEdDr1d58bdP92u6nrzfb3rwhBx9U6pxD802o1Ww2q0TSjQXt7A85xELLvD6NerxdFu7vD4TWV3ByfzKMoinGteRaKkCwMqYTnPLBZ5yFNxnEcx/fv/gmbudwen83dU1taUYtCU8uDXKc2W1G6GV6ZwVpkC40O7bTLILSCqBGFWaBpF3SoYWV0SBRit90QRVFREfX5/n7P0yp6/6Nuz+bzer6/59iw4cSJEzu6nz071NTU+wyfJcTly5cPn6k7gM6e5mGnibEVLV9eXV29h3NQdfWd6uoNq+/fPL4PMUdNXV1NzRDF+PEAxAXi4rCTEwmCgbx48eLK5i0NDTMXjQduIpAIW6FAYDcLlMDuzXDUUF1dXbVfpJHU3b59m3SYE2aDo3yOJIAgtgq33H32rAmOprrauprL3d2XKXxg+/btZzHa06tXr96wp/rOcii4BFVLLed/nVjdc/+mXG1tLfZCgd3EHgYyMuImIkDgQC8f7Q4EAnET8V5mnFRmZiAOe//o0Wa0ewtBagly/PiNGze6HnLIlxuAoO3b99O6w1E+e24/h7DTacuWrh/M8b2rtramprv7eTcsNXWYKeqBAp3ALgOycycg69ZxCVdw2lqS8LAYILldo8jIyEQB79LFvM5Lb1iXOhf/L7xPDQwMdJ4/3zkw0I9TbnBw8O7dwTc/P1I/mtgG/Z2d2OD8AEUrgMJPvNT/vam3t/frk7v9/f34bBPCd/TjA/SJvaxd1Ppwu+TCf/MNz9/vQdthUczP93q9GfnXRVGMGIoc8YmlVKJbEy1G/E6MphyO+JyyVavKy3NycpKS4g3IZrNZUhagOdNHTkAjp8/Jy7PZDMU6MV3UsVJTUyezUlOTbJbcuQuXoAW+AnwYfyKLxWYw6ERWGnI6nVarPjJyGIqKikR6XiQaxmKvWa1OZ8kp1NPzQbFyXn5WlrfE4WCSCPFPiIQggobldifCIUEMgDBKyj+QXEgMBWzHZIjsMNgkx9wFBcXF+KzFQhAbbS8zwpAoBAglO+g1OCSdFltuamggCyDz87Pm6XTx8fgmHHkxnks8bne0HAgqZFfZ7YCsWFFePiUnJ8Fg8HGJLwWUMGRabi6NRPe7dEiYIzyQhQt8xVByCQbiMxQ7xLBEDQntNxRy3CHjEL02XKt1xtxqoBRLMZL8Y/GUzkFryOFORB6PXaXRwCAzYmNjzWazx0aQKeVTpiYk2BA5Cgw+IyRz5oyEBBBILEwShqDfDgaZm1KclgZJEiRsYRXTYaSIMlSS6CUDMajIcFwyXK/Vat8vmtkwcyYgmAggiYnx8Q5aTA6SeAiiAgVxCDGMRk9pESAryqcCYrHleXwFWCEFdrNxRMpfI+F7JznS5Xkk2bhjIRaWqFY709N1SaBgQzCGsiKIQ7+rY4azOAVZZQp/NYr/Csi7UeNxD1EsXTY/i0EgYadFNM4EO4oliUp2YCJw/AmxWPLyUjwEcagAGfEHBJIiSwJmAgUlnyEJlrmA0AnicwxVY31n401mTXOqEUGwuGk2kGi1vyVgUHqK+6IQRwFCd2zFMgzEuwYQhJEgQNzkkCHoX0jlxo0bGQQjcTgcGlWs8U8ImjQpISEpKTU9PTs72+UiCDloIAvZCZKGgWitTpfLiQ1A0qIYovBrC0liYmQKHC58CyTD4ZAhiE3n/ehZs2aNVcwHJKMjDCGJyo7gkCWIScyAlMqQSRxi1zAI3sJJwiHTZUjqZPbvrQTBwmIORCcIjr/WqmdJhxrHNiZGTRBJogaEU8iBSIL4mMKn/C0wxo5VzJuf5c3s0OFcD0MuXtOSQZZUdbT4GeVeScnrslW9659Ublz/jU0kpDfjolBVpbKbPXnySMIQ+t+RkZDwgbB5wFGQFoO0w/kVlu8TX/A0ElEeiVrNNkOu7MLCQlBgJjY5wt0ai8bJEEgQIDgiFYLw6oImLFF2lJiiNX6NqrGxuaVs1dNP/ZXXP+21uE7mpbw2mv32qr4Od5Vdn3fy7dsJvV8lSBENxAUGbl5WlwsQDAQOuoOkaVm0P8NwW2BFEYQmIq8tSFoft8UA42y7WHG1ENEqdc24WBH8GzIODkDm5YchGvqKCgEdJYkMafH7o5Uhpb+lubklsexpn7IypNx70tT3wJNsDD1QNiYrG5X2UIky+XzP2p29tLYmWSxsIGAQxJqNgeRKA/GJWr7UCSI54GFLi58jGgZpPSIIRzCWGfhJh5YPpbW9/ZrQ9jdknDSRjMwOkUncdOeAg7oW9VtS1Zzc0qiMbn4gQULKJ8r1ex/cs5lOJhtNHY1VoWa/0g3I9befzjfsYhdgOJLSMRAOcQHCbyF0gjj17E4HjHSDY/PQ0jzYQDTYDTiOCkceB3EhOyhcawvWC0dyCtHkim0zXO31kcH2tr8gYxW4ZnmzOtjTBF1/NEFB6mC0LAmpVMklJk1HiwRR3jPtDQHiM+mTjSUlpkZATO4+QJ58GhzsBaSIbiO6dKeV77HVma6z5eZKZ4jOqce+80sOIo7EAAJxyNB6oQIvoM+v2hLLsgUhh0kqXk3OPlIfdbCdIeh+gqVFkAxvVlb+MVGEgiCqo4JcmyxpMSlDqgd9Jra0PKXXlU8+9Yb2+pXKFnOyOdSn9Deb/Ml9yYCsWr9z7V2aiIU9PKmddNHBk12azmCR7oW5tiRacfIQYrQUW1Qi/juPllarcHRoayvJNO74xLIZBCHKRaG1tf1gUAjKRwKXX0oRl+nNnw8IK1pzVRDqL24Ttn3GaYIh83uhKooWGF2AR4zIKy2qrJxKd3ZDlR0XZHMkHl6q6G2V3VO66qv8AIwbjIgrKFKr0zAQCyZCA5lWlFM4mSRw4C2KXXWjHXhAoGKZJOKxcOQa9iFIl37tjBmYT1kOZcWr7cH2eoxjOA83xPGjxigyM7IAiZAhGEhsbP22YAS2b+OSWKRiINzAZy/IKyoqL2cQO94wUmb+FGC3lxaN5NffOQtSzCoHHqcpUSw2wJE7bdrChdOmVU6FxMqWE26ACBQ4CuxGY8oIhG8jSAXO9IrPwjYtvvcqrfSyMi4pDAazL7YHI+GQIOPHjBkz8RcXZvObNBzGcf4EmCKUbowhCioT0eky95bN1zndImHEJhomTSxbGmJ6scF/wB7onSvxMOptsDNcMTssHgYeTNhO22GLJw8ejN/n+ZUQ/SZb+kLb36fPez2PnlCv5XVFEaJ3vpY5ddVck/wHUhQgE/kEV3s8W5BgT+FSwiCZZCwhSe4UM0EGWXxBWiuVtskmV0PTHNsCZCwfiy5AQ5KKXMHZHbkNkLJeO5H7WyTyruVdu9/Q9TJRwC3P78xCnsdPqLIzBe7bkCGbOKCKN+iSiArPJMni1iqDxPMApAPi4byzIEDgW6/eZKLgZ+Xy4FhcXCytMYggebq8xP0uOAASHAEHpODFRJkEvoSzulzDTRAkLdueTpGuA6RSKdtwvAZzjJ7PzsIkiJFHbwWID9plDp/+q22TRTipD+JPoCip1KoIEYDECCQDASVKm9xwAeQFQJIgiZESaNXB8alUAohKINuYyyjbB8FB8k6ORIlEKVCLzSRtenyQQDodIjmRG6Aghfvybs0OBPZqBDIKkDvpdNpz7Rq+O5yzkSk2sf6OT5cv+SrYcNO6nzgElIR73lpdBchzM0cWgrMJJS9dwn8B4vpWFAKhogiOZ9slVb2iqiVI3cIMmspNeumZDBLD7wpo8BDxDNKQ6/5g8KvcidhyQ5ps2XIrdz2Xux4O++t6qLIXCOxUAkxyfieNZssDu8zOnsO6zBHSkSlqFCd1uY63xYHYg5+bXq/pbVbh8OHNzaOj1QeGI12ImEZUwvLNUzMTMYxMBkHy8ePN+2cCxNVCVnDAIdUrkAoOdWNjI1tMSAOQoOhT36EAwIqub9X1HfnPSKSNFekncgUewQN5Z2801LbLZbsPEGrjb999PTflQQpOp3+KTIik3tqTB+oTGHWkPZ/PcbSqpmk9r9cas6pW96hnOU5VcyzTsSKZTNX0WZaR8VWtVPcYX1SO1wjEdTuX4+FDAokrIAEHgSgJiTI0Jy2J3JenXSIhEH9NRuJq4bheh7/r/jESt5KhQGuHzonEdXBvauXyjOfuS3wTPQCYaDRHdwckbbqCw+k0FHK0U1PTDA0gS1bV2P+9b2iO1msajqZJyaRjNg3DSI5q3eb+2eH3m8dnG1kRNfA2AvnEIJjGFCUev3HDBWHXggSIRNmaNyMR9mX/rh97+Xw+12pdxAAMgZsWhYahXEZN5ab5YO7yzMw8QO7em/uMY4IFPVofJcSulPkaUuCL5nS1U8eyTLKI1qtaPbNnaRZAuk3NwXOdpgSLRJvW6Xh3//DwGBbJKrFIjOP/isoGgZDqCoVCPL5VzKJkKgWAEAkikTiC4BAkkthhxMl8foJm4WWMMINRa9hp8jwytzIzP++5h6/tK5/X1y+CBBhMDTE8iewyLqqweCXTz6vGJhWCcRQ0NwWABfmXFjNZ3f99E9GuFhM4SCjCIMSxTTmb1hUvZrNvFhYwyQAE4nu4IMMunkv+EorpRCp1K7z8dFpQuB3zEOXHe3jWvGeOHOzbOki40no5ewkRhs8d1YhImHZ83DQx8aHL8F8gvKE7jOD5Y0+PPgDkg7qVE3OlwiDPXJCJd/w1Kx4nkAJfgcshrJ31Lwe0FL6VoqkZIAJiyAGBAyBT8C3PFOF8Y4vwsvnWgoU52My0iz+2zl827GAlgTAI4LivYOtmLLYfapgo4R4MCwp08eDmQjdPQWEQSBDSpWBv9QQW9CTS8/WfmV0XwrlYh93198186zfDKSmdkRA99zlttZFYbQDprbICoifZpW71qQQv7RCIDfWI1olew0X2TCUpw1ZTCikYxVGfiMJZx5XJuC0dQEhJu3JJfQnEl4SIxG5qFoXozrMVoqmTm7h0Zq1G3qFaH2FxNlBIBkQmIuGpQG4MwtehVFSyVEl3wZuKd9VE69geb1Fsa5fG4x0Exb/wBLJRyLXET80Pilqq6v6TD8LWGklV1wcHRfjudQxCiETqLj/IckLsZW8K6cEH0sexq6wonsTkJAxN0uKnY7GQcRDzOBYkH6OUGaFVobmcKyTueHsh7nuzGSYJGSHa20A2Q4ObCaW43cQkUIBoi00+CHrXUeD5/I1EIRgJKbPJw9wgA9n6YaSQaQlBwhc/frpfLvklJ5pNGRulTqdURjGJQVw6jnJI3S+Lio8c8vrxmUPayfrq9/CIVW9wHXVimeDQSkeRUwSiFQqDe7gOzzCItkf6n9XZaDbPgLysBjJz7fUfrbIMMmaCFRN4kBDdARs/sjGFLUqZE4N4MrdQyKju70vJF5D1cFhJkuH67vzieXsAhGUJGgVEDgSaEyRkSyA1g/hMj1meAtIwiG0Z98eWGYO2DURhOHMpdOraRZOm9HSSuCAtGXSqNmkSnLQo2LMM5w4aUqMIl9IUEmMwdEjJUrQYYk/u4Expk63QQhYP6ZSpHdosydCh/2vSQqG/wbKXp/vee5Ke7v8LQmPrOoG8+APymEA2wUHf2Gnd2lpfvyN5ApA7kn9AHlJvPYYebf4X5PX3UTMa5b6/1vPdiWNx0+PMYlwGcRxkKqO9lX5/cdWXHjc5D1WYBgJiTp47luA4+rZt+4mZZVqHUhbcxm0DQoWvv347Pn6vy7qul9Dlct7O2nZ+fnLq+nav1zSN6/cm3fHiJXlfwyHcz8PDg/3tp6MoyhPmFWFQFNKMBcPQMWlgTw3OBkfjjkUnhfwc8n38htMMEUi+lk/gdNLT3TAil8kiCFVZVlqFMBX75GZxLsxU66pKQ8gUzAQUc3zb993E1GWVFRwZELkBDCIxfhLISVbV04+z5fLism1ns3Y+n394i3s9dXKOpzA84l0y8HYXi8HZECbk84PtV72eawkCCdIikCZnAOkSyODoTaebuFh8FEUAcSEnt6mdIHC4GFESl+gMpBIZFlKVNRYXmMJiTMAjZcxEgXSF/E7raSXNrCxVnLiOxYQIqjoTSW7bLkQ1QRTjBiCzoamnq2sCuWh/Y5zfPHsXbUCG7SYWPh0C6Y87nfHi6gdcyE/7O90OF54MQREUaVoQidUFyRFs/W4ywQwSId8oiUOjLs5rQPhPIPdRPxvRSUhXLgBShfSuQgv1kJY40BoVUrpcrVbTLJa6LkNmoQ1lHBcqk8yJNgyXxZaLwEA6IJA9r1qtjgkEbdWC43x5OkBBCATNyQTr7MId7tPbXYx8wE7dWxSlkjLTValSUmBywVh3B2qaz+gzkNwu3GGCcyK5DWj7D9bucWHZ6G5CwcHI0ToIkOC68bgQHGYvSqBpGy+tAaJiZlbwVFJd18qzWKAyj64YlqpAOIaRW94XArkKFDqr/cWuGes0CEVh2LZoq6/hxFgoTZPrCoStTCTgQuLeAeOuPkIT3qCbiXF39BW6dOg74NzB7xebxj7D+QgE/gs357/n3ITk3s/9YYsPGdlv3iktmKlvt1j6rBsn9O/8lOWmrvt+rJsyrvrso1Rp4paLIG9ff8nbaE7lZBlxU4EhTYycQs8i/0ZbOKZ3PAFedM3uF4kLAtIR4tv5MkJOCp+BW2mSUH5Vs3rb7Z7jaSAtCYMgrIs0jGa3uV92MtJVdXmQkacPKmsLX5sX1bjCyEPmnmNVPC1URnHaxFG+Xj+4moSUlXIiK7Q5GWllBRtzZgU+lBHCI1kRP74K+RofwMaZ/wxHYig83U10IKB7R01bWyYjTzcjZFSPF/gWYQy0eWNxySkGV4PjFh11QfNf3z2oknukQx/FiVOcZ8KFYRiGYRiGYRiGYfy0B4cEAAAAAIL+v/aFCQAAAAAAAACAUc+Q8Te2Arg7AAAAAElFTkSuQmCC", - "description": "Displays a latest soil moisture telemetry data in a horizontal layout with background.", + "description": "Displays a latest soil moisture telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 1b357d2d38..901e74e3a8 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest solar radiation telemetry data in a horizontal layout.", + "description": "Displays a latest solar radiation telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 7122187d2c..f8a83b9e63 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 @@ -3,7 +3,7 @@ "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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", - "description": "Displays a latest solar radiation telemetry data in a horizontal layout with background.", + "description": "Displays a latest solar radiation telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 8884bcf132..534a6d25bc 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest temperature telemetry data in a horizontal layout.", + "description": "Displays a latest temperature telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 0bb6084afa..c7a644339b 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 @@ -3,7 +3,7 @@ "name": "Horizontal temperature card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest temperature telemetry data in a horizontal layout with background.", + "description": "Displays a latest temperature telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 c05fb69779..716091c8fd 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest UV index telemetry data in a horizontal layout.", + "description": "Displays a latest UV index telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 941cea4b4b..bbb888865b 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 @@ -3,7 +3,7 @@ "name": "Horizontal UV Index card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest UV index telemetry data in a horizontal layout with background.", + "description": "Displays a latest UV index telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 fd52ab74e4..417fcc6446 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 @@ -3,7 +3,7 @@ "name": "Horizontal value card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a single entity attribute or the latest telemetry data in a horizontal layout.", + "description": "Displays a single entity attribute or the latest telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 4a2b878e4b..4b0125d57f 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest vibration telemetry data in a horizontal layout.", + "description": "Displays a latest vibration telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 b39869c2ab..a5bfbfa0f1 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 @@ -3,7 +3,7 @@ "name": "Horizontal vibration card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest vibration telemetry data in a horizontal layout with background.", + "description": "Displays a latest vibration telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 2d7507602f..70e88e65ed 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest visibility telemetry data in a horizontal layout.", + "description": "Displays a latest visibility telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 95bf6c6a82..aa1678020e 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 @@ -3,7 +3,7 @@ "name": "Horizontal visibility card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest visibility telemetry data in a horizontal layout with background.", + "description": "Displays a latest visibility telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 1f4c86df24..f86a95ae51 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest volatile organic compounds (VOCs) telemetry data in a horizontal layout.", + "description": "Displays a latest volatile organic compounds (VOCs) telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 92618265fe..994f401cf6 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 @@ -3,7 +3,7 @@ "name": "Horizontal volatile organic compounds card with background", "deprecated": false, "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAACN1BMVEUAAAAMDAyyyc6aqrG4ztWdrrWgsruwwMjI1NWuwMewxM14hIrz+/uYnJ64y9aGlZq3ytWyx8+wxc27z9evw8zu8/Xt8vTu8/bs8fO7z9jeI0O2ytOyxs7w9Pe80Ne3ytS80Nm0yNDx9ffs8PK6zta6zti0yNKzx9C2ytLgPVmxxc7x9vi6ztm7z9e4zNW4yta3y9Px9/m3ytXy9vjr7/Ht8vPL2d+2ytHM2uCwxM25zNa4zNbqv8jI193t8fTni5yzx8/J2N65zdfiV2/s2d63y9XfME7z9/nL2eDE2eS80du7vsDC2OG7z9q4y9XopLLu5uvA1d/B0dnBxca6zdjG1t6qu8K2uruqrq/o7e++0tvj6OrB1uDs2N7A1NzY3N7D09vU2NrHy81SVFXw3eLkcYXz+frG2uTE2OHM0NOwtLXjZHrh5efH3ObBxMbmfpHhSmTs5enP3ePqy9Oxwcna6e7K4evszdSfr7XnmKf4/v7V7PPO5O3BzdOtwMjpsr2mtbyisbetsbKZp62go6WHiYpsb3D9///z/f3j8vfv8fHU4efD1t22xczojZ7u+fzc8Pby9PTh7/TY5OrP4ejd4uPswMrppbPjcYVFR0c2ODjj9/rq9vjI3ujt2d+90t3q1tycq7KVo6rml6eToKblfZDk7fDl6evM2uLN0dO8y9LMz9GmqKiTlpd5fH3p7/K0u7/rtL+6t7PpmaiPm6PlcYbgPVru6uS+s6rlipylmpJ6fH1fYWIVBxVZAAAAFXRSTlMABiEnICYmISYmQicgIOAmwFLfwMAaXCMBAAAPg0lEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAJg98lmtIobCuFwCI2WuoLg7AyEgJ2GQ3mEWhusqCIKCFEbFjS66uz7AFARBhLvUC6XtrrvSVemilEJLn67fORnaN+gqv+TM+ZMEvo8pFAqFQqFQKBQKhcekEmazyuSYIYxOgMwxqLCxAKq6MgZJpnM51regms8xNHpNCiPJaK+1xHQkk7rGg8rUT02+LJja5A6p0gdTo9XEdF8jT9XG1ovlRNu2CNA84LE1e26a1KSU3Ic3G+ud+zg0tLtOLhNWr9ktT0+bbUbHkdmxixwjoQSBrPex40ghxADo1ffrm9vzcXX8kygQkQ04sgdHVltLwziiJERn8dXdYwX57Cxs3y9kLXrEs+fw0YoFXeKgxQL6SdlBQnjJHhKT+/xvs5McfRo8u//rpQPQblfviB39vfpFIp8RQZLLLkQ8ETPEdIGiSA1nXy4vL872f7+FSZroDvc6m7vt4VuLshczyHhI1Fu4gnaLDTPqAgvF1pOX2UerTtTCPZDfTC7wL7xa8d3eJkD7j6GByt31yE6h1VeCIR7XJ3/eQ3AMTAz1cCOioyQRfMdoGbRGDUVReH6CmyQDY4hJSw0EMtPGTEOkxQhlopRASzuL4qIr6To44MIpiCsZi+IsiwvFhUt/ouee93ojYaie6dzcd/PonO/dO2F2RkcBEtTBc3MTfru9EsT4DqT9WJIDWx+dzUP4BgDbwkuA614gxUnZ7IEGJMR5MLAzhU7Yl0oY4J8A7MZjhHhxM8HMHJ+EI1Quvl8jgigcvTiLQ+lDOP/xNo6RwF0sNLAsEeLIQBMxxWX8CA2RMgpGnz6/pG9xfhHOd+QqxgNsCZpJA+uyitMJposCxxgacKjAYhG0G6YfgIB9fDE4VQBZLTEw4cmrkNp+P5eLBcE3YxTuj559+HkdxPs78B+zFzDN0bIomJCmsfPz7ssVM4JIUu4e0/REjv/k+g2wmYNGDgDLI3MUEkEgkxYQxE7Ww+2DTaoqCeZVTavpen1ZVHW7OphWoulyWZmkWLc1LhDC8veSi3qqQqoq6rouoHaxuP3aFrLA/dpU/UUh6wKxbttlJbe5ZnkqGSXVX3VxAYZmrxEQPqXC1fBvuXjnQ/cQWZ7nrusyOI7vWLlGw62trSEzLbI8fAKZO44GldnuRdns9SzyHNfRXfiEJIscSP+lrevbRlSN1mdNWY6b8cA8btthH+QQf/TkCgODY+SpZYBYu0qndZLkPftKJBxJlsE0pc4J4mHRVTUnr7KoVqAYl6UBCRUhZwQEMTojPY77OsIbRMHNPoJujrIsiZzuDKw9P8oSjymDS+mejdpOU4zXgA+sUwURBgZwgCVXFmm7p8fUB+n4+k25A1EgyvOT3VniS8MdlRk4tkmlIN2Wvi4B8vQ5O0KQDsPlSNBCbkNuOPp+c5Bgszbc7TelI1EUwxEluzh6bELueU6naDZTkP50bdZ52pRNOeAPklMLAQqKHu8wGOXDnU3nTqf6kfc1hRt46uCIoiSJPFl7yH2vA8ksiOofIO75OE3TcgAMguQW4XAoFqx/FRko9/9BtCnc4nIwDAeci8ySTIri/6G8DloTB6I4gPslZgYeeNhloQRBkN7S0CyNZA85JIg9ekjTnhSqeJCeBDF+BKse9lL22EJZtrDsfrj9v5dx3LRS6F8MY0nVH++9TDz9dmo+VJJL3/8fYsOfLmNegziGenUVcq1l6rVSB6ibebEYMJrO4PpMKA7S/FBJLvt+2+8z5MRBUBZUQzKZapvRo1ZJYpblQqmrcjmqWVxF9pA61VJEaxnO4WIw+hxQZNoB+YAEM3Lm99uuIud4IDLpHI8CbbMbmSIp/yTbJN8uHgs9yt1XxrQLBI4axF1A9/0llydhWEWgbDKsDHaV9c/w2RiGYDV/T+JR9xWkfQHIiUD0OSSaUzkGMc21TfmY75rbK7NYLZ60XuTFqnAN5CDG7WmISCwG59j2UmbPCG5jklrwypNVSMhLhj77Rcg4Oyo5DvHP/Apy0jtHeMbvoomWbOhhkg5kqZJiuTK7XCWrZYnX+XaZWGIN4iQicKm4CEvktGxMCBZmFmPhCY289WxIt63WPb2sZ2MKVS3vQy7O2g35zdQTB55EDzokzlj/oMhuhEVxheZS5VPyV+erUbLcHiBIJbEAqQQ/ahyxQCLpemFaQYIIK4Hc0L0xGcWdTkTPp82p/JXR3SybB/wGg4HK0sBCprJyEL8tMwKIhoOTxh7eY7PZRBRs6LdAmp/LnTF5URS5fip23FqrN5D9/B7dhA0iVbFoWBgi+qD6ymPiUfHouoMnbreIqt4KaRijaFOlIxoSVl1AZBVlDgLHl4b8duqxQ/JAMXFHTeKYbsSxH1A90og7uCGRMWbI8ciI46EgkUlxEAEyxLULjusW0TVuXvDaQihMh3xORN7d3KOIz/LS1KPQQbgkja9wfOq5WyrAb6zIY5Cyu9dhC1FOwTlA7E3eEYbd/aQmQnkHEhiGdFoefTcV5BbHmAJAUs3/l+GsmaskQ3yk3/jHhxm8NA5EYXz/iWlkxINadik9BZWF4lqWlvaQg8IckhAkGtpDUomKh+JJWPbUQ6GH0pvspZRSr/v/7ffeTHYao31IiM7EzI/vfW/eBByUWv/jXC51ksneo+WAKuX9rihMOxVhDLtxcCXm/NoBIgik7wIEKhJImx30zCCcgmYuIXH8aLXqrRZS65BAbIx4A7lu9ORScCPkOIQzm6H7orA+Zhws7BMQu/9tWd7k1/XnID0GwbV5hHENgiuBcMJYkK4BqdfrLVQtnMe/3VgO7CCN4XCIxzryGQAQhLfb2WRyfGZSSktSZJYBcT7CKHEUmwo0+UMgjgXBMl84ha4Emd09kdJ1XfQtGmRkFKmVFBFbIDA7Ph58J0WsJKb8Pkk5Zo4IFXhGICyJMUI0LxZmQKLoA4wKn3GKAUEwiPECF917Oe33F7LTbBJKWw6pXpNHAAMlGRUV7lI+FB6pI6AIfQMpKSIbuC4xedjRiRVg9moyuTueb7QMYSjC2xyA89taCEXi37Fzuk6FwAB+MAAKiFnFMCISCBnQKnKFItluyEshxlL+xca/ODgikqnE3x901erRjHuuWveYcWlBEF8OKawi1Js8UfmV8twYRAQ1kST5xvPyQNR84W/8LAx8lSSeyub5r7AmVBxlWSoixQPKy4ijkKMaF5Rae2dCWEXEU0PK3jPdvfCd7u8BMsKvnVeA8N3okUBoz26LsiIQxILoDeRaN40vxYkHy0/y4M7LY8UgaZykKlaJCuI09z0GuV2nAPGC2ItU4PirkjkqYXqWsrO63SvT1g8GJ6YTbk7l1B0M8L/II84rzWABea71CBThr7Ol1NLdVndccIi3PPXzIPH8iBRRWeoHUeApXwXzLPbyvQuAhKRInL3RQOL72h07Aull6l01DujcziAOzD4lq6CCAUT32CUn2tSCIF/3AVKO8gn03fvS+F3KCz54a4sn3vpoF4Z9zp4uy4Gevq9BdOFtulzAAEILt1FRZB+KVDmcgqP6KvjZhi5bDgVfT1d4bidFMWi6ryrJNsh5G1ZllEV7zC/h2Eb6aUAobqocjLE7bI/yjzCzd20bCMO4506F0ogjsXyFu7Skkggu/Ui9BIEoEnJAJWgwwqPtxUtpQ3DcYNPBDhhSgrcmhGYIpUv+xTzvezJnx4NfW/cpRc/vnjvHOpeftPb/uLN2Ox7qdVP42fEJpUMbEFXbxCRmfq05zSC+LkHs1Hq54KiWduC9AYS2dKp4Tl3moFjn4KpFNBezKbYbOYPQarckFsW4ve6IX8EO+O72VwvB40McGxDsriM+R9++M6PFFJbEKjHpCpQ5EST2S45Tyjar3V7qGBSzVtb++sz3hRYV+IF4sCDmm6Jd5huCLnDMzodjwshcAVlJ6YRFVFdIrAEEYkkcpgNKpwNXnsz5B6WFL+AIolb7Z7cCUcICoepmP0oQ3h18v7XcsVBhm+yAc2Y42BPexONG01uCmGrZYubXlw6hoGspvgmOCmG8qdU+3G8tgzgWZFMQCAyhnaRV1XaOcXGBRyWullNxsafP11BiHVmeqMixEjtMUrWL7f6TgCEIBuFfi+r1ehTVa1EU9If7R2EQBA28G9ggPm40wgYC+0coKe0lyW1WFGkvjdM07Y4O2sXn0Tg/fx1qjV4cCE8Iz9MCJTSgojUOofDSPqocXiumE10hg/HdrlTUJinRs8s2yZPCRw2Z6wu8XLS1T/4MBtOZujkpJBaHoi6EWyEGIqkTSBB5t+nwbF+HR9DN4sOQMMIwJP0J9EM8AIo0a7dbErdtfc+9rBvkO68O9iJtpHtIFPQTDb+E3xRCaZQ4oN0FnZaxUS+k3Pl1GiToAAkUt697inLXILh0BmGg6GYXk8ngLEsS6fo4A33IfANSxy9yEfzw5tfT6bWSx0eNCCCEgJtj/LM0juN+N+2x/oRupkhsiOR/rr10eBuK7b29GlGoJrtB4jUKhNOEELJF8Bj71ECZjJtKEpdE/+juIJEQKiWO+zlKLnSiQk2ECL1c73Umk8vkPD9kDGJFT+U5SDCnamSIdzWYTq8+zjK4cCxE0sbY9/sgiIsiw/gDXoMA8pXiGcST6OcI02M4RF+Ap+ZAC4w1OaGIA9GE/01krmiCQHKKjDXHLUVFl2EO/47DhPSj68eVpAKFYWFzXDgik+JicDnPT09z3zS7uPhF5dk2zECAJpgPfvf3x3mPhv/mptuFBUVhDFAa+h/ZNWOWhoEwDKccOZoGGhyzSALJFoq4abeAYIIRhJChg3QzS7YaihVpcajBxR/gUnDwB/gDfb/XTIIIRZzu6d31eL/cl+/t3W2NQBJxK9BSGBLmGxTcrvIEe3GGf0jAB48UnGEsWDNASYW4QXVijiX62awMEIIqJNXjA5xI6BmXJKBOZ19O8D27aNp21XXz9XKzkF3tHxlZ1sEYTo7xmUxfupPdx1t1XTdZfSUGDlFnGU2j9DQto7RM4xRG4v4+8xT5SVwvSxrxE5RdXIbhkU8TMX58mihoA11KFKkHdWFHZNbbyoNwh5sSgPe7+zzgMQMcxEXWts3N7evTdnu+rhYTWUTGIwsMlFK2sjE62nNd19Pa1hTQtGKUow0RTfchzDW6clxZ6ohsM4gQUmDAcqpMxCDTcS5TxhXTypxLXNdmeIiEUKjjKWh4BzQ1JMpjXf0wGFh08jOI/SPW3q+1vgNlT5gM/a9SwswveagZDAaDwWAwGAwGw2d7cCAAAAAAIMjfepArAAAAAAAAADgIBBErDLIV/6oAAAAASUVORK5CYII=", - "description": "Displays a latest volatile organic compounds (VOCs) telemetry data in a horizontal layout with background.", + "description": "Displays a latest volatile organic compounds (VOCs) telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 e31569ea97..862a669d17 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 @@ -3,7 +3,7 @@ "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==", - "description": "Displays a latest wind speed telemetry data in a horizontal layout.", + "description": "Displays a latest wind speed telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 3808c7d538..7022327db2 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 @@ -3,7 +3,7 @@ "name": "Horizontal wind speed card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest wind speed telemetry data in a horizontal layout with background.", + "description": "Displays a latest wind speed telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 bf034c0bbf..8cae42422e 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 @@ -3,7 +3,7 @@ "name": "Humidity card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest humidity telemetry data in a box layout.", + "description": "Displays a latest humidity telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 bd7c696405..38e07ff0c6 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 @@ -3,7 +3,7 @@ "name": "Humidity card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest humidity telemetry data in a box layout with background.", + "description": "Displays a latest humidity telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 f118b2dd61..4b79730a49 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 @@ -3,7 +3,7 @@ "name": "Illuminance card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest illuminance telemetry data in a box layout.", + "description": "Displays a latest illuminance telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 7cdf502d79..c485af866e 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 @@ -3,7 +3,7 @@ "name": "Illuminance card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest illuminance telemetry data in a box layout with background.", + "description": "Displays a latest illuminance telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 3a3c955819..4a75cdd889 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 @@ -3,7 +3,7 @@ "name": "Indoor CO2 card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor CO2 level telemetry data in a box layout.", + "description": "Displays a latest indoor CO2 level telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 3629187ba6..70230562d4 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 @@ -3,7 +3,7 @@ "name": "Indoor CO2 card with background", "deprecated": false, "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAADAFBMVEW/s60AAAC8tLHNyMrl4ufn3+ewpaG8ubjJyMqzgFn5+Pn39/j29fb08/Ty8fHk4uc7kRzz8vPx8PDw7u/Nzcjf3uPY1tve3OHu7Ozm5Onv7e7s6+rLy8fKycbo5+bPz8nOzcrh3+TQ0MrZ2NXt5eHa2N3e3drU08/i4d/r6ejk4+Lj4uDm5eTS0s3S0NXW1NLU0tfz8O/b2tfFwcLn2dDR0c3q6Ofc29nV1dDX1tP08vLJxsnu5+Tf39zg397T0cvw6+nU08zLyMvo5uTV1M7r497o2tHZ2NLj4ebp4dzl2NDPz8vY19TMy8rBvr7U0tHv6ebp6OnCwMHc29bn5ODW1tHGw8bh39zX18+Btm3Qz82+u7zS0c7Ix8Xy7evZ1M/r3dTp3ti9ubjo3NVqqlLLysjs6+7PzcjPzM7j1c64tbTf2dIgHx/b2NWcd1dSnTbe3dzr6ezf29cjJRHQztKZxIqkgWLf3tjX0cyXclLc1tDH27/u4djW1dXZ2NfZ2c+iYjfl29WnhmqeaUZxb2qkbUfq5+Wri3Hb2tLS0dCgfF1pqVE/NzF6em6hbk0pLBUdIA6ylH2SbEtlQSipnpi3sbCek4tGlynr4NgxLCrh692Rj4tXVlWMZkYxMRmyqaWlpaWvpqKUk5A7Oh+cZD6VWjVsSS6TVS3d5tiro52jmZKNjIl+Wj1dOSGZmJiwr7CreVWdWzBWMRzJpo+KiITAiF6mck+vbj+GXz5zUDVFQyWajoN+fHjEjmezc0WmaT9IQTmioaK1mYRmXVKKTimx0aa1n4+wj3Z0Y1auzaHCrp+yd0zr8OmHg385OTmenZy9pZFoZF9NSEOraDmsq6rFk3B6VTezraqAb2GkyJaqm4bKmXa0gl66flNkU0eVvoSchnmEgnZYUEhNLRu5r6rbu6S2pJiNvHyMem9WTi/i39jS4czItammkX6gn56Tgnd3QyS71LFOmTPNwLuXXz3FvLfKnoCKtnh/ZkdepEW/nIaOjHh2sGGRi4NmXDK2y6Yjmb2TAAAACnRSTlMgAO+/tyC/sK+vmYehdgAALvxJREFUeNqM1EFI21AYwPG6KYxV18NoHpVdCgvsMNqOMnrIkFEQctGuPfQw1x08dEWYWBKEHepBAuKwJDV6kG7FWVA6xJMDWzyURdwQhCpFd5CBwxV22BBGLxuFvS9NXxtfrfsTayRP+H55Ty1dPd2It5ninYhlXDHOu7uz9sGNkP3yEMTmQqydRSyJaeaBdieQsRx+AaJXevRcbfJf3Q1Ll6XHTgAUpLKzQyCdKKOx+oR1DMOilvlgwtIEMktYRIEZw0EX8xtxODOAPAhbLN22/4Q4L5MABH8j43nCDHsBwpK3gdpDaIY4NiLWb4aGiAMkOoaDqwUYvm7h+Y6Qk0DDodcRglh9wtg70XxkYEfIcuJgSLRDFEc1WU67RP+m9E3i6i89xJEuMKrV0DULTH7RQiDnBOJs1E5SDtudzTcdW3Cx5i0pmR2wiD5YDcJIuiyWNVmQ5aSrfChnBSl3/OXvwUFBOKxxLRHGWWVmelwFCImCqHC0TBBa4rSjBQ4BxBiSSwOE5KEgAKYcBsOfzGZ//AJGJsktZ95szBW/ysrnbEYRMooijZgg+Jx5q9XKp9fz+fWOkF117cQEoS3IZedRLcQ2Ici/b4JQO0I5wAoKaKVQLGQVoSilvaK4vzy2lJEVQdnGn4osKLI2zDWD87ZXOkvNq/nVrc6Qc/j3SxztKMwwy6P3XvxBJLENDxwcGkIkLP0nAo4Yjjudy2pztSFR/3FxCe8DTioKWJIRhIwW4lry7s2kZtbV1aP8qyshCQQOImlW93kWARJGvKHAW+M/ZsikNMTk8DQ3BM8NiSJXOx4FBoTnz+oQDUNgT4SCFgk3GJFwtZQaf6uq+fnxVCvEEb0N9fdH40EHP+B7+fvjn+/3gvFoh2zuYDT+1BmPxvUczmDc53UEIYeR7f4LeIQXG4saz2wOG1wQfi8DE74pdyCSexaIPLwzFpmdDQSGt5Pbm0lcbiWZlCQJ352eegOJRGIK53P7Q5XpSXXraGvy52QLJGi9aWS19vb23Xr+5O7g4KPHD/qs+AFcVnzhL7iBRRAs/MdYHau2DYRxAN/dxGDLg5O0VtGFO9nyITgQOkGlNDgQgrSURksI9dYlxIQMoekWDzF0U/sOnfoAzarBgj5Ahs6lQ0jfod8niRNCSZy/E+KzAr6f/99ZedaKBa46HViWUZfxehl1BX/L6512W9uamMJjjMMP50zGEfHksROGocMZd/TeS0gvZMS3xuPJYLjV71+/+jO7/H77db5YJhVkY61Vh2xWkPLl0lIoWnVItQDHMyDrVdDe7vaHI59I2DIwDAMlXizZseOAw2Y8LCBHjFDTsqzReDAcDieXNz9vZ8nvLEkryEflwDdbr0OqstTfHFLb6VoDgnkMUj6qQgYWjZhjlOFcxrFtS8aY9CKPQSUQ3ZGE+j498wPrcHI9+fft5stFslwu5xVEa6kgpBit7XojdU4JUVtXqpWQZiFa/904EDYPdd3Qdb2nF514npR2RAQpJHrIY0GpKwhxffPg8CD9MUvSRZL+LRrBY6cg1WgpCKSqoRyyIoUDAnt9EtKcrPpgbWIhBHaL6UFAAqeEEM+LBD2jIoayYMps4lIqIjv2Ts/v7u6Ws9kcCsnSarSakA9v32xXjTRTQdptpGBWN9KEdFQhHg9fVxC5T4QQJMIPP6DEk1gRLAIqPHbMpqcn51dwH5mnizRdJg9BXpSNrIKoQtoYJemsaKTBUIVIByfLKCBcEjefIkEDy/SpgHoEPDdNH0bQ2dmbnpxc3V8ssmWaJAjZwMdDZ0RbAWmpI9LFqFLyJytGSxlyBxQyHAUunIPQcDhHiW7s7edNiGLzgU8hPpxxywwE/OfOpxySpfMM+lDfWnB7ao7WMyGdHKK1cwiuITlE7RldDUeJgHS7fbiHQCH8yOFMSpDoxm783jehCVcIlwbo8AMTYuFrkWS7088A+TVPsmSRZggpC2lCtOdCYCuapnXL4cr3BluvQ5qTpRRdrb81GFFiMwccHolixg0uCTXHIwsgIMFQHxEmmlyyP50i5Px+MV8k4EiyopEVkNZTkHw0ckghgYlHEzpqkGYhqND+c2J2oUmFcRjvOnVY88I8dTxozHk8IglOrXSMBl7oqlNIZdYgFkUdzVrZFxWIYG3EKogwbEi7XKybLkq86SKiqBMbXVQXxbqJCoLuioJ6/u85042zGvUQ6NyC8/P5fzzv67DbOS8vxoLgyPg9KTy1Ox2JpMEhiiK+fbc7hX8YwbAEMSYI5XKJM2cOg+PY00rpaukqmqTyF5C9S4MQh26Igz0+6xhAMZA2iRGEcRCG19uzSfLFgml/Rkj6o0HWF2hrzYBC0I1Nom1FbYZFA4Fo4uJFcJAAUqHKejxibHbSPEf2rjP/GQQcrDYIZK62Ouh9h9YVRpAWB1UVMHhJ7N4R63KnkUEoSBUQpHxxNDXlEDZ0KXmF9MwSiFwKZf2ewQQ4mN4UKwRSKZaWLK296/8MUgjjrxwOh++cyECk87yFfbLhHt8Gmdfr9fo8EPSGd5Mv1rUd33OEstRAMhLslnp6AEfyxcPoG38mmXSSkB2zoUxSEJKYvKgs0pnZb5i/lUq+VNIdMYIs7chxVVHUu3aOayqK0gTIVBWvKwjkoRLGoxsdqdXmQBgHWx7RSD+SomBbg0QY7RJ7OI7zAmaT2B1OeRBZBMipoYBiYMAmuECCVgfHmdmxxrdSfqRUyi+bM+QPIFv/6EhBnS4cLFcL8nPl5ZaHyr3O3cqkZVLZTYWvg+goRhCtP7gekWYuNqBgW71mzWohlIqJXjvEUf8XaEGCwmbTQIBEIKuFA67evlODgxcwuX6MXRkfGcmP5PO6I9C/gtSVgslyXn3BV8syZ29Wxd3lFZbzyt2VDg2k0FRrh0yTZbO5XuPNk+pMnUDaExsNIu0IRliqXQ0OgGTdMThCJGRWOAo/NIFVtwQgNtsBZ29vX39/f1/fZVxKfMufLuo98l8g5epyk2WlXd6svADIQ+UcmsQyhReHnYGo6qFyVZ5SZHNt2tys1ieVbW1HqLDIkJTfCQpg6CAFH9/j5Tg7h+jl9mSoMzIul3ZEcSU1EJDYnECBXLN0+gVGUZtaEIEsIFkaRAVIh12+rkzxnP2Lsg+zakC5hydkINvw3LIyJSv1sFI3K02TaaasgdBk66DBi5gYyZAbmjC0aHlIEli8vA+QSepwEr58ml2oNHCQgEKy/cDVypX3xZH8tWV6iv8PEDhiBsiAMiXJ3G1lj73znNpkGw5Y4bpCmjTVputVS5D9UAPIAkNibo9T58DDMZA41O0TsdIBKQgE4sHg3RkhlDmQ/UTC9GMClxLDr/K37sMRUPxPaU0px03mAeWFVK0BpKza7efUMnFw3JwjpHq1VrbAGvZDGwSGbOoOp0OaIezBBDo0IVNRGokVkOkFdDkDSScSREIgwKD/sV8nudwYR3G9PX0azQ4MI4hpyAod+bR267sb9OasEeSoOrPt+ox6SZpUnh9qKve4gFq9u3v3Hk4DkdWZg9umZZNcVe5aLLXqtkKz3gahkYVW97gwrlaDYwBfPuX2GOI6RZLzOBImCS5J+SsdTaTTNKWTwlxHtUAmJsaHJ9DuBLJIs9+03jhy5Ib19dqtR6z05sRi87eGatnASd1NVane5rg9Kmmak73cSzVsxq+r6AxTeQbTVy7jbwum8rQGwnYIVRbWIIke2JN2h5Fvu4JY5kglWfYrGr0ZkEAUVEIgATpzhOaxbbYx0ZgYHn9QZCCQEWS0o/Pru7MAOWI2nWUgRtHYAkjch9rC1HRg8GKZyTLn6LDMi7u02RckFFQWgruvK4qZBRFHNpCiAxRSIl0JZVFF+BwiVzLUJhBdqpAn+8kQ7QQ2C0NQW3fyI38DQY8sBYJuB0hc5GUGgrHJ8zwDMS8EaZPoIF4GkqStTT0dQFnpTY7DBoIJKyINRW/5dBQBP+sSALIf653kbI41cJE6/K3YApGWBNllhb4bQXhfnFnCDJF5STKAmBeeq9qOpDyZZCYEIb6jrFi+wmEjheKiPUkQennh5OgJ0FVEfxaEVFiu3l6AXB5mIB/zfy2tJ6O/5oGcGBoaumFdvlBmi0MWMTDJEmaI1AIxL+aIvkZaPeIPeSIB9ATiO9lBh6Yg5E6DRLC1JQi4VHEHt+cGPS4CPAAOIgHIxBhA4MgqIwhInlmZCIReAcI0ZF28SWAJzzk6HUd5UQSTnR1IFnGkFRlpjdA9lgcnQrpVoP7wsZMIFO7aDhKWSoS5mJXM4CZo+7FcYrDXaWNpq6/PTyDjIGGOMA7jZv8wNDo6+vPT2o2vR+HEz5vLl3/+2XLEWFtxUQORRLrLtOMAbzE4ooO09whFX7R4jO4V6Dweo7NhIAqQk9sT/TiEQKg8ttNDWU9aB3FRWSFpMZCxsUajMfatqIEYx6+pHeP1Mzt65PWjR2cNIKy2YAnPda7s5CSfD0gaiLkFYnSEFmePGEcddaHFYYaPccAhD754gOTStABBgQ9o9kLRVC6XOzN4CjWF7LuTgcyODxPIrWJlGa0RoyNGENNv0s0mptEqCsPu+6O0LCo4TMPEaaEdG5mUUg0lSA0x0kEKQixFEpMKqaEBNQzFwILFqE1GklY3kpIGkm6mPwmrVlfdaOKms2i6mJXGxKjJMNtZ+p57T7+ffIVqPMNM+aCZuQ/vPeeec+6ZD1764vvvv1feod1bHnISh81q3xEgOwOdWvdjBmESc0cRkCwswEtC25Pu0ZmhoRnvqCgHqWeNzba4uLg1OxEWIHAflPHYcmQQZH1vDxj7++sC5Mfnn52fH/8lT/beICAxAYSMvw27e1fZW6Nojg+GhvpIETdtMpvcWjsVBtlWQeyRZZHGJ6Pk7+BGikh1O+RBbeKPxYjk1uwsTvJp/7A4JtF0QDVMMMyB+hAk03D2J6Xj8+PzbDqTekFsrF5biwxRCybEEba6Sp9bFxwDI0MBz8JCK0LizLlHAyP4YQ8AZJBArINmy3Zl0Gyy7giQZrUKEIcjedeOIOcJ4HbA4R6cHBod889NxGWeOAELu2ihiFVjkyIuu1ETQ5AwQER1CEkQtp4UT08hSCoFkO7OrmkHqUcCSaMBwdPHhWRj29FoNdeWm4VRqyPwyD13spAsVBtec6vVqpgCeIM9WVk1v3lZiJrJXgPIQaPaXEYMjjVbTa+j2WicDcXOmic3kIJQToLq/A5MgEwgMNPmQ48CJCqIdJanpR9Oz5+nM3D2/wDCBDBFkZdf3UneHa24Rw8s1QPssu1H7gOAvGWJRkMFk7diCnl3GtvjFbO9smO7tHVAqp/3fbQMjz88cDcSsaYjcDbUvDfWKoAD5kQFNczmR2rvmRnH3gMJBS0JwiQAKR7/AEEyfLL3BjEaKxJtLdsjrcaBGSAWe+gEIOPJTcvm6kGVfOTNarRJIKFKtVpVQBoHAsQ2X/iombiXHAydeCtrc8kzJ5/kZDcliSsYQGeFvGjJAxKATLEkINl70s4dl2rZdCqNA/F/gMDjzcnlw6jtoAoQRLDQyfY8FFm2rEZDl9YXK+bWoZ1A7PbLHVNI2VrJe31JUqQacTQSwYr38MTTrE5cNpCiI/2QRiS8tyggjIPE/fenkEEBgec/reWK+WwqfYWPmP4NSLRQKNwdKrSq93aSlcahefMyZO4b+O6sWYGPNFo7puhltWDebLaqc5ZGwfxagX3kMGmxLDQK1bcAsnnZbCVGkmeXjyZjZ4/OolxkSaNzD01g1+xtN6rf8fEHM0srn+7vwXNUkl8xKpDNp1O7mf+iCLq5RiYzqgvOSPA5LmyQaiU/x6P2qpT7jtKUaypZTo6MOGdWK2O+uJOLdw3IHaC4KG55ZxSQ4Y0N0gRGIMViDYqkUulrfORDPQivpAuIVUmtQE+V7uqBfORVvyFA8EtLwq1f1C8Pks3LSPDrdyMJBmESJyVUdFMdHLu94vHOzBDI+tQG2kF0tDNIrl7KZsWBeFXU6uuAvGFmNciMKEIRK6/cQgm6oyOQDkT9C1gQBnkgzsJ5vyKIAMFvJLzTRDKNwz2Aw2Rpyb2y5RvuRzmyMQwUsm+f13OlfB4nIh+IPbeWjoNfVUVUEKSDaAvRyvUgJiOIjUGWqLz92u+EIho9qOMDEkKZpnzx/oob8XfO5aR3JUgUQnlaLJaLpVqaKkTYNYqoIEZjRSwSxNyhwpP+6k1VRH87ooLcCtKhHpEeQjUjVVRCEiS5sDBIKEve8vn7b9xYYxKgPMvlirk2FFG7KL2jVjcQfidpgEduLPwrEGtHkSGA4BbE53o3Qg1g0TgZviklAQiRYHfNLiLXH0Nr5RWAEK8k+bNcr2OmJp9Ps49c1aBjH2EQ0xUgNqEINxa6g5i6gwxQgeVZoSaQL07dN9FqQN9HgvinwxMTIHFNzAEkgPdQxQ5DtUt+svfs93q7Xa+l8pqoZesCgoGB9yQIo1wBwlm7BsSi9YhrQXDXI1JCtHppP6G99b4o2clZhu8IEODMjhHIhF/pSaBsx9H47KKcTeXaWYDIUSPj1mIQajVariDROzvpJX0EZRWT9AKRN4jjqEc8qHv9dIOALF7chtKCIYkrHBYgdLe4hZ3FhTxRQhKAXBRrtSIiMBS5Jmq9/fY1IPJZAVEexBUik+iGhwzRl0BAQih0zR5/l0GCBCJJZNxyUY2ydcuHdwAAhhe6XMDW+r1cqpWRppCP9AB5XS25dSYfRd0q7gw1IFaVhMOvAUQKAgMKefyKAIk4Yy4f3Rtia5HrUwgmg5Pc4hGhDQYRivx6US7X2yWoIhTBR1cQjDnB222W7iSqUyggFh1IZ4oJkhpArAzC3UncJW69H8fqI5AEHFgxOCQJzI+jJAi+mJNBOIUJPy3jZG9/ky22qWYn6waC6aB3aGALC4HpQCSasnIKv3oQImF7wwgCQVRFROCiTmkMhztIqGU3LEDW1m6Iazc58+RDDNCBTE2vP8kVS20ciPki34/0AtFbZ98QSR+t5xoQHH2GraW4iOQY8bpvw5E5a3wFtQh8mkEQj51g8Yffxw07QDQ+QneiPxUvysV2Pt3OSkVgRpCBDkifcdiHSdhFuoDohn+6g9gYhBpc8GNsm4RYeyIR6acFqyC4cgjD2ztjdEpOub7/uFQuQ5RU/kgZPLsahHyEReBRPza5LAlCsDz3ABBFEDEXYO3EvW6KYGMtTdL9LXXZae04t4nE2XGSfioWXTSEFpSKsGHuZv2rx6Vi+aJYKuXT3QfPtCAiavG6eMqMDSgqiMRk19dx2GhvMoZREYCgm43UI5EgEGIBCESQJLKFTS0iAoFqFJUZxLX+yeNsKZfLtZFtGUHIdCBWXqMSbWxWaTwNpFFExuLOUIoMsjCAcGFmBJEX0XFKahO4uRKyJMjjZRKJyheCxCeCYniWMhdhwtfDs5/8ks7Xc+V2LVfqBYJzRIKwyYWSsUdLRXAE8gJVEPkMQfDNK3zELkBGoQiSeCyfZhvAgmEOfzyOC0MOwOh0+YK+eeKg40UB2RcgxVyxVs/LeS18GIdqBkYkCActCzszCUIeLF6Ed+tA5JCTYuJZH38tWhL2EUpP6AhxxekTEAEkpoK45L2bkIOLL4q+BFKr19v1bDbVw0cYhJcgSGC8FLzyVbMCom45eht/hZ3dAMIkIzQ9N49maXw+KEMsfD3mp3XT1nLSZBAS4k7lpYLA2X9J1eq1Ur5Wk5ehxnFZPkdkrqW/b4Ip3m/cWswpPucXCWIIW4okGDtZwXDfvMs3t4Vs3gUAqkrI21mQaeK4GRHxeA1GJBS1wvuP09laDX2UbLaHIjoQdTG8JD5I1KhlNBVE7yRMAhR5sAfEkFxgTJQcIgDL61sQgQOdd/KYNWFMsgFJwn+gOARFPgUQksPgI1eC6JCkQjJx16a6MC2HEYS/TiSQBNWuB932gBhNno9RsBIhjP6krDFMDe2b/XoQeY34E/rwaDOmd3v4iD6NNxqPSCj1iNbUsMUg+r3FJCQJNheqxJVJrgETtIPYAOKnun2Kk6+OEcgG8sk/Upl0JpsWvV8+2q91dt068KRtojCIsUOhHDvaC0XjkKkIXGIi8P6nVDoJl07ABAl8HQXJFIGQJHqQjZs/ZnZTKXzw1ro+alk5QdQYpydqBaJfKhufj/bXrd2nTGWMkyQP0LW6v0i1bAQMkQhCl5LHT4GDQHj+RoKI5LH/4V8YcdpNH6V7h1+ZorBZDMZnOYPoYfiAtHUBYRLWhDL5GTRTFoN3YpQixuJ0iiBrZBIyeVsdIb3IRRjkt9PMbmb3CDBXgJi12a++au1EWbWDawRRSfhkV0EMJGp76/4WcmA6TnyodqHNK7xkjGsIEmFCF3m0g+ThaTpz9OVRJnPUSxGA0Dq6/Pt44eOZQADbXRNN9mvsY8NUEM9tgOAaOngYEB0ThC+OT3AHAqHs0c/tB3DAMPlQgh5fZnCr2xvkdT0IOyrzSA5gCdm67y6rxaCINAaxUXUlq10XtaxpJp5KeKeyi0gTLDsWp5NxWJjccA/PM2nykp+NijCJzLXe0SmilwXGeQZ+g0Qriq49J0b+u/9/Hr0kK4vBsItmyZe8Xsx3fC3avJqf/zCGBuiyFwbvnyJ7mKthVhaCfHm9jwDkH1rONUTGKIzjPrvlWqKsW+4SMphcWzWU++zYHUTkUoqp1Zg0RREtUpJLbVlJaYiSb/g8GM0HvmD2g0tksXwYJUT4/c85M+/M+2Jd1l/Meww772+e8zznvOc8zxnhA/EZBhIkFAviJ3HP7EFLOTkQmURrwLEY2TV1gwnHyndcvEmTlRKI9qojwyN7GhoaQLFppk8vnz92aBedq4OuZUD6lkC8W/kxiQPxIwvEIwnGDYHIJPStKFkpbOKG1NDykEKYlrTl8NqFW0QqQVPTHljmzyfRcd261qvPLp3G29/+BsgyHsgth0ci+UkE8qOxPewsEgTxTOIWgcnimMY+m5KxQ2NZejzIHHjN1GECGaKVFNJUUilDIrNE0J1d9y+f30XP8oM4eSALR4zxgwT3B2Bx7h4sBEOVFgmOSAbErsuPHY3qqJUEBPtQE0b9nl1xKHE4EBShZiFy58npZ8+uXTq099avfGRMNYhQAg7gOb63tOjjAMTj8FvEW3RU5xqvmk+bHc/0a7ZJ24gxr2cOTLqWEolmpRwHJKC8eXJo1+lnV0/vqrDIQF/XciB1YwYqfHooAmlPp9vtDWXSZeXtHeZzj5OF9soR50ddy+fujiQUYked7dEQqQ6146mDgWXR/Kk1cEykkFKpUFE4PJL3h9jQPc2K0PYOLQKI1oOqlCa7Jm4vv3DplO4hJU+ZRiLj4jPqoGtVkBjRx6xpTOKGSkuGrTKVSuPq6ogHEdyjTLL1QuvbQ3t3Xbp8v8uCnzq7B9LbR5IQiH3y2OgDaePCT+IPv8G+VSKR5PU4iynGxVNSkyPzlcRFEKhl37S+AiSyJ/L54tnjra1vT28/HexaUpVFSCOr3u5I9nIgCKYvcSt1pxzvtLVncpjlMLcXAPHcK2ASkSDr9FT01BkQTMAy/KLdcKg9nm06SIhaiPzspy/PnL3Z+pZaGFlkAb99FvGB9K588sv08kC6c5WvGCEP80Zfhnp1vgwMaFIHIOVJMCjWU8aPw6kBCRmLMHSY3WmCmd1wxCYIGoE8PXPmxd5Wqlz9FgmChMjxA0SyCwwYYWMJREmcFbc0WD1MIH34RwUNLszhAck0N3frli9mFRCkTCbTvUe+mEvnLQntwX36tOeKGT3CR4uFbzWj6w6EQkyJBTKSFNRam6CGtQjABiQCyJFXz58/P3PmzM0XQRA4PJD1AsFJSiS2YyXjJZA0zlBRHSlDjBdHH/0LJvBM4mURwLMFRYFTSQNCO0cbJc3/PUy7aNrxsYNsuPiSOnCAGXE9ICa1Wc5vk4TqU2WQ2JFzJ7ZuPXECmo4tMkYWQQ4mc6pXonclyOHeBOOM7SBF7sBO7D/wRt9JkyyHQD71smoTSEU77kASrn34g/4UiXI29NTIFnu9SvFhsb3NA1l05N7WDdLWrfjIgl+G39oxA0hRNBKKGIoOJBzuXeBLPmU+PzMJydd5AeQxtzpJFGE4TGxLJLMF3W3agmAc1xaI3n+co6032gqP3/Ga4umXaIuiqVn1uI2yi0NlkAg5nMMfnBDG6tUbNnDkjgMZ+JPZL84uEHV4PjIHQs+eAgmLjfstKeeB0Kd4IwGFywzaSKuZHtsM9EaBKDzLvIpu2PKw2nxCRkDt40ZOUx8tKGeuKaJ7lsNPxuUJXYMdCBw8f22CAi1ZvfonINp1Zg9RD1bLALECJUMVBt+9QIhHXOgLzOXi+iIPhMMCCRsljfO4SZpAkjbDU1HOgMRN4FI7ZINdHynBRe3oxm3bMElbfWpaNMJcfb6ZH6pCn8olxpiohcNM44ZsWL3E6hcgk8h8UOrDQPq6pC86rm/egtBtUHsuo5ec9Vu92NgmEAOBPJDu7fyDdgtiPU7tChAuHo+vpz8B8qGRHHmbijK/oSHGxH3GtpH1ytHkuqEpVQ/VmtUCWbFkxQqBiGQBIL6wNWnt3GUzZy5b6zicD3wKI4Go93vaaPpMlvuyc0NAPumqEgTlrZNUhe/iD0BiAqFglA33OSJB85SDplr9aGS6BeH0iqVwQLFiyhRAkLWIzyRhSObOXbvWIGiADocSGCSN+LwvmiV6kgW6dXMgKAlYKb+2AqS7B4LdkJzLB1I7mkdegUSm61AOQ2IX6dgnYQdOuc3qWRppAEFTECASo7sPRGuIAKBw+bvHIJXCfcvKCqSrwm9Xozgg5kIsv7ZI2gfCDlZklEBmCKQGEson+T3MPLVPV6I8LtL4ehwgE8HAJA5ECoBAAkqJobtR1g/SnEwmbaJ80hTJNOtvbYEGzmouqi2S9vmIaQtEwcOBqM7SgERmzJ83zEocgNg9H3E0pQCpPQCIMKpANvtKvCVfAk1z1kkekc3mzY2nSzf+hZdTrtQkz0XR/SSH1U1SlOte0bXU7u1ARCIQnVhjQOTr2AFB4kyifKEYT1TR1Os6QC5sxUPEsTIA4qEEZe8KydnNxScMkee1AFGW1yQ31mxfE/nyTxLIKTOOuAcZte04QrsEggzIIKpbpwskSpxlP6GGrBNA5CXknc6zIM4iJy9gkJ9aJMjiAJAPRF0j0Zb8ohe1GfHU1sidrPg5ZiSPJ9s0CcgYEFRq+y0yaPDoaRMFklI9zJwam29KBCZysecDiLpW9HU9Jmk9/l4gssjQBQuGOpAOFQThq3dKWN8ou1G8qjzTm0sl3VxLDG7W6LPIgOVUgFsQxvB5w7TyQC4gamggKQ0Rffc0Nb4eXVd3Z+fOF0usRYZKfwrSlkiUXLkZKE2c8lXtRMFfZ5rMCmUjIcv5iGl/Kpqpc5yfZ0C4KAzU+VSf3r17PHIWJpnHapBSUZq0omVo4IBkHSSvF77fdWXf2wDI34pCH187X4lRjlr55mZROBBibybjPVo5EbkGYpKR1LlGZ7H3Q3FMzRBAIk2NqcZGpomRBpd4uq4JlC1fd+4/dsOCgOFA/pO8cQRVgiA/CBwq7Rvvqq/GMchT/iaQaCM9DRJA8Hr5/jpc/u31r1c+vtpqQSD5jyBVUxRUBqnebvFI7BkKOplmnNayJ8coaydjk6EcYZGYQMyAj6e0Xm/5+PXcxRKIHP5/gYikA4sETcLSL1XttSGebJU5ZEurISGr1nLUIKHc5VTHV9ePWBAnQMxA0enyQDSb7BhEJqGAZ2xtiLU6m3HTjyxaUv21fa1tBUDYraoRyPWWz6/O3fYsIhD6snXOzu9ahXi8WOZAtLPdfwYCiRYdwRjAzrXOftAq9rBRzHxVI+42qwnK+Mnd6zsufgXEZxFIOl++fXlPP/MRd6AQGKwOMTpOXqqkjhrqkmWRmIYRzntieZ7Q1fqq5dHXcw99IAqUnW8Rj8SzSJDEwzAkoFD1oFBM35ookCETZkwbaTI9FkVUyKuMiFjD5x0tLa/OfQ6ClA8u/D8GYe75SxDkSFAfN6ZMmzjVgeggBYTHz5vKNHhGJPJ5x1Hqp09Wg1SVGnYWhn51aBLPInCURVsBjEn9miHs9KxZpCM6cHgqK1W7H1s0ebJAjra0HPeDlD63cz3kL7qWZNo6ZM8cDWEPTeGAJ3vkmSrHqRaPtu7AJOdOBEA60yTeuaEV+hVInx+C6BgY5RGsmTiZIyHqWKYbbwr4WeaalQKEY1GOrBBIfw8EOXfXHXSyNYI2YbenGgRVcwiEGSQ5Q3ZjQYXWLNExyCAKlmdZkAeABH0E2T72z85h/wxiBG0ijiCIZAb5kews6AwCW2htN+YQmyWpGy34yOofg3hnyHaej3skHYAEuxYg31m7n5Y2gjCO4y9CRFEIgUJoSmBJCEqqxlwMxEZWbaHQpoVtDsaDkKTnLOQi5NRLEd9Lj301vohCv888szOuQ/5o/JV07T+6H56Z2Ulmd/xcIk3qIYptggWNrAL/efj18y8O3lhlmxJvAnFZq3H5ITxghI4QwkYFGr2cCIQH3mRdoYzCRReE7u7+Pfy2kE0gOBTi/m/bOF6i0FfAmC/xXSQz7Gg4XZZ2gLCqoNtVafQPZUL2jc8ejAOIxkLWxSghMISMsGkpQ5/xGe1eaMxz7FQESGHvQvqHhyApRCjEEUA0FsDrmaOx/zdLGeGdIJmC068wxprAKI3HYyS6OqIUJyk3rGNZRXit7rB/M1T48SpUBE+OXRQ4e3aWlMidp7UbUtsfNt8qRsriKRNaFg4D2XKQXPzw+TzInMxDKASHMsry/FuplqbdiSYyaTTepNyOhgYLnUUlJL2kHgrZyiCjPEMphC/0q8WNzPdvOQZ5angv3cJvL2sd3GzaLKXdKI7jmUmPHB/3erJnObuTg8FS2FMJbTHF4SBhRcLkBqM5EMUvLEhWgGr1u4Qhtso8MWtWZjeEUtqIZ9zZOBgUba4+FMmA35vFEZYjs+USECRUxEOsZJQ/c/vDH9zpulMPmtTC0UoLAWJjh9WKc3J4ft5qbe9IJ/eOWpe7mwZnLkCuimfyUAYZcOfmJB3ybl4lQC4N4wCIiULChDY9aQfIqEY735EhqhtikJWwEwkLYofl1u42DHUwG2nETBGLjyVFGAcSwXyZTfaZrJS1m3T56NdADhxka7Tw9H1JeHmFG2uXKgTBwhGIkw5JkqTfT5KOLLfe3sqtALcVHOMbnqMWCQ3LOTwEyaAXpUMg6KFMgKgEiAbIyoFgjYEiHHJVQafQUohhOp322+12vT4lCRY+V2dHBxZxPwokimdQBKNB4jKgIunRI4gpCXkJZGkdfM8AYRUgaE6dpM+5n5pcEw5q+UQU0hVJLAOW0eiBvm96O6PXhBtsFEKAyALJCpDFp7y8RVVRtFRBLWCgUIaLWBIkzKnGXP66SKC4uF9E5ptDyLXxXSWbeElFVoSsgUChDUr6xT19oj+tQ3AQJ9GaAKEiUhIkNo2ubIKfmnCZH5Lm4xlk9HWliqxVCVVoi7qnFvQKywgr0s8qMvaQhkFQgX0u6UbQbDKdh1Hxk66JW55+NQhdO1+JDNERhWHgAHB6XT+tc/aOUe/j8BBpWgrBURPFEQJDYLJFzNtdC4kNhLweJDc+0SkEQSlsLWDgkHC85sVPGSMx4xYQOjudBIdGIexNrghDIOrIID+QiGP9pqUGVTgEBnutQAECxpy0qQYXRm5poiJyHclB0gwCwzu0IkQhSNZpWuEVTwdZ3yckIMK0yX/S7l4loTCO43hXUERTNAUGDY7i5CCIgUOa1GbDObkJQW0NLmcRvINzH95FUxfiRfT9vzzP46OHwvodGoPz4f/yWOKx4CI4aj78v1oJ5DZCJhPtLa3Im0FwNEOQ/LO1MORTEWaiTls29lMygJDUdVEohJNdzvXdikyIDkmCIGmCrF+0JH+HOAEDiKQYldZOMHQAPE5wA1lK8BrkAUhoLZYWBXEJECQ/QSYGQQLk5hgIgFSHUzH4gvKjwoZCGFGSK5zRgg2kY5BUkccIQRKHJMz6JVeEEK3IzCE4wAA57qwjEMRgc0FDYfDYclUEyRU1WfKqtzccUbgKSC9VBAidFSAMSQaJYWupYxei3zMnFCC/KxxxgSEQwpoVRbjtTuyp/VLIaLBvW/xya8Qk3e1BXh2y9t5qXFtp/64XQGYBwoXlnROt6fb9sEsHha9YE7Bma1IWvqAc0omMIinUwQBVcyD9/mpYCqRu9bo8ZKutB6JDeHHovZWvrTbXwYxYSU6C42Zqb8PYbTe+OWMMFCCUUFoK4g6XJFMyhAGveGkFhP+9PZXVnUO6OUT+SPchCRCRXLaZkQxyv3AJFbHQXXLHTbUIsRMPhu5YAHNPBiHJoYoUfq+seAxeNRr05dHF9JZCet1UEWY9g+ysLamH9VforPYsQMZAQq7P5b4zDYrMcYHDt+w8bKhdiE93o2NIFMIT/coBjzm+WhlkmEOsIs+xIkB82pUyGCRId4zDph2INpYV5Wx6EP/aOT7H8bH93G63X5vNhh/Nd1l37+I0HIcB3BdQ/AfcBN2cpODgIDi4q+DgIi4FsRwODoe4CMEaXLRwNA2UE0MlMbRnNUmbBKlJxCsqF8SXGHqYRuK1SofTK7QWKQg+3yTX+vJc017haPvJ8/umS3uZThvTxixTnF/m1tJ0utSYNBqTSePLn7mG/w55aTTCA2xtRd+ef7ty4tDhE8f60dJz+rtLB47+yGb7/UqN5/nWr9dIs9lcWV6+/+jN92rlQ+dxKd3z2LL4NBB9W/fUwYsLpYVUQpB/s39/fDM/5eLiwdHai5dXFUMxChRFYVmDFaWxJEmyrLKu69q26shyu91mGMcORds2Pd0KAl23fNysjXKLueOnSxUuGgx6Wr0oPUzOHFjRhkPZn/j9Cse3WoNXn+Js3KY8e/bs/fuNjdV3727eefr5NVj3kyzzNY6rVitCp1P6C7J/TkgzN+RAeH5DMQylUMjTRSGOwbKO40jkaMtxGNN2GIaxTdPzPMZhXT0ILN0Kw6DR2MwtxufQPLoAyPorQIby+pEYckErDiVr4n+tcK3B+qtXq6uxpDyTEITOHvgUkJXUsdwiyQyysA3Z/18ycQ25uAa89iR5MV8wDCM/Thmsw6gMdUBh8Ltneqrqmaath75lTQI9tLr+5qUjSfB457ICFz0s1jWt2OaTRhafaEO5O/Gn/GAdDgpRLieSFAIJIGklcPxq8TwoFUhSSPZ/SPz4IExf3uhizxeMBJHPG3kW1yxlPHaAoE2VZYlBPPyoHhymZ+oWFBau/cnmJXq4meTk2Q4XPejV61hPpXRnDXrDNhsEfrS1NYAFGqLcvjxv5C5Vkq6tZXKsEKRWI0pnLiHIHIEn+7H2HNOgGHmECKAYCpsXRWwsK4qMRE3EAcRxbc9hsLBU1Q1DF1UElu/7etdfG12f7Zg0uXOlalSkEWk/yWXSIenV22Iw8TEhrS2SxKW8TyqhIfkTAgmy0oKkVuOQKnVSiiH4kP+RDALDxR9rb5duFEiAOR7DgdlmqQXDcF0gJApVoMpUheQ4pm17ps24oc5iqnVLD3w91K23hJjvnQxtVMnxhWqkaYAMf6bPebSvabKIaf/Ib1OokfflcjmpZAbBkDRXQMEFbVAlmJJKpYpa4oEHZPdi7ugmeuh2rxo0zwhqyLMKGYBCEQqWGSsyDKZaRQ8qrkzTBIIktu3qemBR9O7LaVoFjiApJA1Vcr4S9QCpD6MMcvJ0SRCe9IYMDgxLPJJQINkoI0kj6ZAAAglBmvc5pEYQzLsACidQK3t37ABBUZQuouTHWEJYRHRgHUNADDTiKg5iOgzimK5t2jg4mS6WFIMDbzzdOAQrt76eySQ9wIHMIdsFCFEZhdSLXObIuSy+UdQRBr265MaQeEcnlNXbSSVpI9triyTN1wBQ0AdtAoLb/q4dOB/4PjjwOlDDeEyAOHJbklhHlLCicA8lMHjtnu26dmhiJHCgxUx4oR6GNn663bejTOb6jJEkgcwlx/utez1aXEK2X8KbGShcT2uLfmDFO5lGmCfKKkHmEoLQeyTyulmrURE49godARjcQfbs2PkbsJbvvZKeAEAAAAAASUVORK5CYII=", - "description": "Displays a latest indoor CO2 level telemetry data in a box layout with background.", + "description": "Displays a latest indoor CO2 level telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 87ed101aee..5a380c571b 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest indoor CO2 level telemetry data in a horizontal layout.", + "description": "Displays a latest indoor CO2 level telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 1c12804184..dd26362066 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 @@ -3,7 +3,7 @@ "name": "Indoor horizontal CO2 card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor CO2 level telemetry data in a horizontal layout with background.", + "description": "Displays a latest indoor CO2 level telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 1d630dc25c..ac2c54b3de 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest indoor humidity telemetry data in a horizontal layout.", + "description": "Displays a latest indoor humidity telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 b2776b6a8d..8601d276a8 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 @@ -3,7 +3,7 @@ "name": "Indoor horizontal humidity card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor humidity telemetry data in a horizontal layout with background.", + "description": "Displays a latest indoor humidity telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 b0fb560e4a..41df45abcf 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest indoor illuminance telemetry data in a horizontal layout.", + "description": "Displays a latest indoor illuminance telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 a13e99ccf2..6762e33aab 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 @@ -3,7 +3,7 @@ "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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", - "description": "Displays a latest indoor illuminance telemetry data in a horizontal layout with background.", + "description": "Displays a latest indoor illuminance telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 e2fffc09fe..2fdd93dd05 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 @@ -3,7 +3,7 @@ "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=", - "description": "Displays a latest indoor fine and coarse particulate matter (PM10) telemetry data in a horizontal layout.", + "description": "Displays a latest indoor fine and coarse particulate matter (PM10) telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 c4c1081b27..d33a5c95a5 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 @@ -3,7 +3,7 @@ "name": "Indoor horizontal PM10 card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor fine and coarse particulate matter (PM10) telemetry data in a horizontal layout with background.", + "description": "Displays a latest indoor fine and coarse particulate matter (PM10) telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 e2fe5eb634..48d8552505 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest indoor fine particulate matter (PM2.5) telemetry data in a horizontal layout.", + "description": "Displays a latest indoor fine particulate matter (PM2.5) telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 c8479d0df5..45fe6b6755 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 @@ -3,7 +3,7 @@ "name": "Indoor horizontal PM2.5 card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor fine particulate matter (PM2.5) telemetry data in a horizontal layout with background.", + "description": "Displays a latest indoor fine particulate matter (PM2.5) telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 a97f8d62c9..015832c41c 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest indoor temperature telemetry data in a horizontal layout.", + "description": "Displays a latest indoor temperature telemetry in a horizontal layout.", "descriptor": { "type": "latest", "sizeX": 5, 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 6fe2e71a3f..660511133d 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 @@ -3,7 +3,7 @@ "name": "Indoor horizontal temperature card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor temperature telemetry data in a horizontal layout with background.", + "description": "Displays a latest indoor temperature telemetry in a horizontal layout with background.", "descriptor": { "type": "latest", "sizeX": 5, 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 848cf84203..78a7c6a09c 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 @@ -3,7 +3,7 @@ "name": "Indoor humidity card", "deprecated": false, "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEXg4ODf39/g4OAAAADg4ODf39////8/pxrg4OBXsjaqqqqf04y33qnn9OM9PT3z8/PP6caHyHAhISHu7u7CwsLn5+eenp7n9OJ0dHRvvVNLrCjIyMhYWFiQkJD5+fm7u7vOzs62trawsLDz+vHV1dV7wmHb29uf042r2Jrz+fHb79SCgoLD5LiTzn7U1NSkpKSTzX5jt0VmZmYvLy9KSkpjuEU5Rz98AAAABnRSTlPvIL8Ar7DvmsykAAAGN0lEQVR42uzPsQ0AMAgDsFAQYmPg/1/7RkDxB4bbQ20X5jBMrtcwROcB81B5Aq5EShEyirBRhI0ibBRhowgbRdgo8qmpg944YSAMw7dvgE0G4qouuwziUK+K4lbKAv3/fy22dyOIBUqyB4u8wodB+PDIwN76DOQR36BPQHrqsf8+hhyI6ICVyrAzK7FSh5AtUBpslRISHBuSmv1+1a451FXCNQblxlVMUkhwBMmXIDB4g2QG4LVn0kKCI5bEEGsBbVGI5qlpeTIwYpAJ12MNPUAU207KcHcuKaSnuR4xZCyKQjuIiBsErbIN+yVoVAPmrlW15zZcm0zpIJ9LCXmmZVUMUexaQhCWZQ8xqgA4QMKrJeKnuZSQXzkty3+vv1oxpA0Qd72D6LHzd+YSQp7ofecNyDCtQLLoREo1MqISQZ4prlqH2LErOIZAuLHqBhEDiBuiEkGORHR6qM7k+peT64hlVvx+1shklGGAZlyXwHCDbBqHwYan9DgAWhlEpYGEA3kAcCL6c/teKtxd/M9KB3kh118AF+cArgeDu5tUgahEkCO5/j+iD44n8l1wd22HqFSQE4XyhYNO2G0fQmaHD7ttG5IvHZfrlGO3bUPOC0d1G4/4WuUPbPYzFeRArpfgyAG8smMHLW7DQBiGbx/JbMNsGI2XjUHyqKl6CRb9/3+ulpJuTXwK1EUHvRghbDnkwTgOvm1+tUywzidsmhxqoitAkGocAPy/58jxVO6Py/fHH+ETVpFiibUg1EMHLjNfNvb3vQUiAj8GDy+MpavLCnjRO0SkDOx9Gfd6slfJuY7f3sq9f8YGMlEgLzFEccNYr0HZhhAjDjmQQww0a6QD07Lm6zyyWCG0HC2fkROT0bwP5KN893WX0xYirFnnKMo84C8EyGIzRueVJyq7xsDL+DhPCXW5F54MWRBTCpDsd4Hg/QlywxYyxSkrktEzhNTSMvU0ugpx0bkJJSrr7xBejhoGhqWiHHgfCG6X9fV4coASs6cDZ51nhJkHD2AOcAtkYfE4LlPJmKnyDMx/IJJZC0QJc0RMnpJGToSdIPg4fzk+T3jKiOiQotmBzYzhCABHshFDoOtj6shFSLx6RyYomQIT1dX+cTRSwkQmO0Eq5e3z1/H44+c7XmnAKyUR0jbf/RpeSSxc+0vsDmm1DmmtDmmtDmmtDmmtDmmtDmmtDmmtDmmtDmmtDmmtDmmtDmmtDmmtDmmtfwb5za4Z7DgIQlF0ByFAAisiW2JajSbtYv7/10ZvIa8QMd35Fp5Fi62TeAaeF2deshtJZGyDaEhm9dpxFAmqtHeBt6xQouYZPx9bfiJeViLxVETTP7y5iRhZiUzyTCSgBcG9qLklWSYiQZEItX8QQ9ubp2yeGJs/8ZaFyEvWIk5uzCe9Ib7MmylTxEIkSBKhlZZEvxNMl4HJ7w8WS0uhZRAiVM1R/CrylFKxqJH9skf9LfI6beR8l8aviJ8I29vCQQQLy1Yi42m3nceXn0pyOPQsbr8KHYNZhFq9VqR96nQdaSucwpIy26vlIPJETtQicRfRKBvV3ljhWTAi7YXCIRARIa4RkRVaNEzF5Ily+mOR7B4tgrVIkCcmwIxv9V7nHCEcRAz2fo2Ikztx9KOSwJ0V2IPDXisoXH47I36/w6LOF6gMJwWmWGwaPa6SRMhwLoPYnRKKkDS7+VIRhwipRVpeuaoPyBESUPtKXyRCEdIRIdlO4uUImaP88JeuEsHF6w/4rY7bQDRMvSLJEYIyG/z+qi8SmeQRoqUjUiLEYMePo5g4i3RnBBGCmB/LectFS6sjgjxcqxoZOxHSbuovEnFfeFz9NhBiit+P6fjCdCKEiQhR37WGPKbHeXscIdxFsJqiIQ/fiZD87DKUklmYieR9uho9BkcTMnmpKElNfk/cRCYlic6KCU4AVNQA5VVwExGTJ43oxCmU7IKDyFNtLHQcvJI7wyOJDnQqfB+ChcgByTmbfj2TxR/oOHCLcOMW4cYtwo1bhBu3yH97d3AEIAwDMfCcQMY/HvTfK20Ij7YDVSAaQ2gMoTGExhAaQ2gMoTGExhAaQ2gMoTGExhAaQ2gMoTGExhAaQ2g6OSN01oD19DnPncqA+fSbyq6r/y6r9gdRqEj0Nw1P2AAAAABJRU5ErkJggg==", - "description": "Displays a latest indoor humidity telemetry data in a box layout.", + "description": "Displays a latest indoor humidity telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 f1a69015fa..8e83fb2b26 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 @@ -3,7 +3,7 @@ "name": "Indoor humidity card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor humidity telemetry data in a box layout with background.", + "description": "Displays a latest indoor humidity telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 6f9c866f4a..cbad2f7b0f 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 @@ -3,7 +3,7 @@ "name": "Indoor illuminance card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor illuminance telemetry data in a box layout.", + "description": "Displays a latest indoor illuminance telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 7e215b854c..61b0bbd118 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 @@ -3,7 +3,7 @@ "name": "Indoor illuminance card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor illuminance telemetry data in a box layout with background.", + "description": "Displays a latest indoor illuminance telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 a8610563ef..0b750ff7ae 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 @@ -3,7 +3,7 @@ "name": "Indoor PM10 card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor fine and coarse particulate matter (PM10) telemetry data in a box layout.", + "description": "Displays a latest indoor fine and coarse particulate matter (PM10) telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 5387b784dc..a2dd1d0010 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 @@ -3,7 +3,7 @@ "name": "Indoor PM10 card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor fine and coarse particulate matter (PM10) telemetry data in a box layout with background.", + "description": "Displays a latest indoor fine and coarse particulate matter (PM10) telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 f1a2e99e2a..2211ce9ff7 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 @@ -3,7 +3,7 @@ "name": "Indoor PM2.5 card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor fine particulate matter (PM2.5) telemetry data in a box layout.", + "description": "Displays a latest indoor fine particulate matter (PM2.5) telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 56de801a4f..5414727923 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 @@ -3,7 +3,7 @@ "name": "Indoor PM2.5 card with background", "deprecated": false, "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC91BMVEX5+fn39/cAAADi4uL6+vrn5+ff39/n5+f7+/v4+Pjo6Oji4uLb29vi4uL8/Pz7+vr49/j39vb6+fnT0tJ8wyLS0dLV1NTW1dXX1tb+/v718/Tk4+PR0NHh4ODT09PY19fj4uPb2trz8/Py8fHa2djc29zn5ubx8PDd29vZ2Njp6Ojo5+fr6+v19PXk5OTt7Ozv7u7e3d3w7+/q6urh4eHf39/t7e3U09Tf3d7m5eTq6enPz8/l5eXn5ufz8fLa2tri4eLd3d3c2dnX1db5+Pj29fXc2tre3NvQz9DOzs7q6ejZ19js6unh397f3t/g3t3k4uLMzMzt6+vj4eDOzMza19fZ2dnKysrp5+jn5eXe3t7Z1tZXU1SUyVDJx8euq6xcWFnX19eHxTijn6CIxzm0sbLm5OS7ubp1cXJybm+gzGdMSEnSzs7HxcbAvr+yr7CIhYaSyE7m4+NPTU7Mycq6t7i3s7Swra7v7u3v7e2PjI1qZWZlYmJhXV4cHByUkZGKh4hTT1DV0dLGw8RjX2BZVVbDwcKsqaqoqKiCxS3Dv8Crp6izzZGu0IBvbGzQ0NDIz7u9u7u4tra1tLSAfH1tampeW1vJxcXQ18OcmJmFgYJ9envj4N/X09OppaagnZ6Wk5Tg3d3Tz8/QzM2npKWYl5eZlJWDfn94c3SOyEWempt8eHkfHx/GwsK/u7umoqN6d3eqzXyoy3pGQ0TT2sadnJySj5CdymU3Nja/vL1rZ2hnZGWKyDusqqq9zqajoaKPiorN1cHJ0b2vr66cm5uMioux1oF5dXbLx8e/uLWqoqCfl5WizmlCP0A/OzzDvbvB0qm4sK6Ig4PF1K+5zpyZkY+SjY2524zm79nU2M7W5cGyq6mjy3CWy1IqKiq61JeYyVro7OG8tbOuzYao1G+a0Fbe5tHb48/P08nQ4rjA3JylnZv0+O7k6N7X3srM5avG3qez0ouLhoanz3Sf0GCMyj3c7cfJ1bd+eXns9eDa3tS/1KK60J3x3LhVAAAADnRSTlPvIADvryAg77+/v7+wr3LpCOwAADTTSURBVHjapJQxa9tQEMedkqFd6nsa1U0PrND0UeGhg4cMJsRQbBqUCmyytxQ8CTKYbl67lYIXuWAZmlKwP0NGSxqEAsqizas3Txl7d3oJxMSL/bd1eu8JvbvfuztVXhy8rBhVo1o1AACtQRfQRIAgAShbStMylRCmJU16YBgClCWddu+oP5tn81l4NjhRQC/jVvynsd5OC0hocc3gi60W7KXDgxeVgwqgY45AoAUgDBIQh7IsjF9aKNPEme1/EEq9p0em3egFzf6iiJMkTvv+wAKODHTwaMuJXoUHob8Nwd5CjEPtkQxaMAiEeBjEkgQhMRt0s0z7vNt1nZqS0q53j/qLeZRlWb5eReNO90QASSkG4eMBeEABFBkmfArxhEPAbnpVYa/61LRBSyUlCIQ5bMvEBGDw0nbf+b1gUGu43VorTNMfcZwV63UxavkIgjKEY+mTKTMr9Ka6rDZBYENiR5oKgYDBBoBsKaGEUKaQKCwqWdaXsk9s2xm0j1wv8INJc5oufyerOMlvijBwB1IpwpeKClVQcrleaQacFEOLT24TYt+0VLikuJboLgB0f2gQanNlStNEHMd1HOm2uxPf649bw2m0LFZ/4mS9WmVD3yFiRIEyUCF0RwPNGEnnA8d7tcZ2EIPyAPQT/AMuKw1iSfpWUSJsJ5ic19z2eacTjKPlaLmM4/wmSZLr/O5fOnERlrqJSehUmecxdAJ52uBbOITYFYQ7nH0TRilkUgL7u16XNqZEuh9rvUbNu7wcT7zZ1POmWZEVUXzz99v9XXJ//StPJw1krju9xsASglMKZa9zXREIWRbA8xBiT5CNjzkyWJQVpejTZHOTHDd6k1EYjqIoSuNimeI9y/M4v72+/36bY1KixbgZoDotb3hhKz4Q0E3OGDRGpu31JHYF4/ohkLKKBcWOnl6j0CuLD5RzZNcH3eZZ67LfD8NZGIafp+Hi69X8ap7Ofs5nY2/4Kbh44/u92lv3+ItrApzCqYGbbRdujxcZGvOQxTNa3FjWFz/jl3j6yMsgIKpQFu3zHo3/lJfPjpswEIfzBM3SU1jkQ/6IpcuBJZWqJIccSGIkFgsEioTVOw/AKXmXPGx/nrhxsdtKGSewa1gvH9/MhBxfTq/LC7KrH4IawUSVR3y+mvNctEHYFWVyvSZJk1zXy8XJezkiLAzf979g0AuhfqatOUEPPedM67dvX50RAyNAITA61QzNARDvtHj7UXYSGG3bgiONeLZaZQ+QBhhlWTaXt/0rSF7GPmgxgjCL07T9z8ykO01vOjg6rnsTNgChX5BgOM3xoYXs1xAS1C27CSE2ueJAEIiMi1LFrtj9QWIZsVe2774/VqLNqf3okLvM9FFFE++rroWp+UuHA0LioWZMiKrSHIgsr1ggww4IZVF0XfG9+SASG8Q3SzvJQsMyoiFs9r+wTY0RaoXqo8Q1QgXvKY5r2W1rpijSPOd8nmUEElW3ug9BUrx3cRjG77u7k/8Z8S0jlhBDga0zXCOKQr1gxAOKkuIa0fWxX6NA+poRRaR0ZAhwzKMNcqvfyhAhJfaxIlmcHjUyRbjl7Ns313VHOzdcI6r50nuiyoP0mFs4rvPlOkF9tKIiCu0i4xwwUS5YXQfB0EvZb4dgQME06/1JC/ndP50rsUvZGqMpe7hGPIrJ45l9aq1P9QGOj6aQ0IHK4ErE+fx5RlIhONrWRjCGTlYHA7XmQHblBd+9jtT3TRCMuUoLwA4994QRAkEAxDZCz5Ko8zsHOhW5AMXP2exzxSOVZUpJWlVCwYCixaaPCQSpZce/jfjPKHGN6Jg8nt6MEcKgxELfTRRHGhGHojgcDrNvWZRuFEjGozxPN5W4sVapCWRR4jEYZae/6eoYZ5hvCXlCiWPEgEAH9Ohi10HXcE+sX6yYzYsScRzG/wVnk9VGJHTEHbNpZqcQ6+DBUktXFG3BsCQolNoKaTooLVNR9AZ1CIpoL106RHMIqsWoiGjr1J46BEFCh+pU0H/Q8/06w7SSpLHPvo0s7M7H5/d8X6YzFw8MOEKR+YJ/l296etpfSOeSyVk5PUgL2QIUsJRPISOa096ndkMeDy5B4hoz7MjGiSwZ7QgnXWBHhjkEboQ7qiXEgxISqTOIb1cBjszmsiCLzYMFKHzA2BCaU6iVsAQWWFyUoYyMrE0TO0IjO3cVBnE4gAGOMDWQQBD5wL3i+2s/SHw+fyGEjMgE5q/XEX14QiDlZm1ORUtMhUUxk8Efz2ToIsMkLOAMIYx83yfOiMAaArE5kJCd0UCR6xPCfezI6/omPzISoZd7Ll07eXqXv77v0l5Ur9KGhi8QzRdbVUlKQeFoBCcvbDN53DV3KCOj3/iJHREUbo2KCzLIh5iS9C5GrHJRDoVkRPqY13swgrJVmE/LAFk0oYWT/mVzFQYV75tGs3bLsqxzM5AkHbWgZ+wORwZ/k74NOzI6CpNmBBhCOLCNHXEPFvkh6R11Lr+fQWDBe6/3yB0uXuTPLECunbzSWwCI+RIhWTWN6FOrpS1Z2zVN0/UDF3EMyzMcGD5b7nS/cbx+MakjAFFmROynLgdNWODoqhUCKclUmo6B4wm1QUgegMT8/htmfdlcOJrNtUwDII8qiZbVSqhqt/O4rWsdTZd4iLQdcTIyXgefMCP2or4GhAvWjEYcNRQtahjEcScHAUWW8RMg6CuL/cJZc6l/PPfcOGPwRH+rR5uJ2u33rX67wyDMARAn7GMYwr8dxxFFcUEEES8UHC2nEdogHRVLRjxQTaLwModsgzCJvGguLKyaS5Gz5s3+4WTvvmFg1KotW5fztJmoD9uNttXSMQzbhjDJn0PkPx2ZLCOD5z4UeXA4IEKGQODIj89XvQ9+3WEOABAG7CEUgCwttV9ms/fMC0eNV+a0YWDUWrHu5qG5SqKjdbpWG02FQWyttWQdHFkDIuJDEZQpl8PDINqXb3P5d17oKnHw7Wd5pwrhOrto4jW8uWeeeGMaz4OGESyftO5Gawxy4sZ2rUMgKQ77QE7ah1j+mouJHVEUifqIqHuIghMyAPny8eqLb7X9RMJ+kBFUtGKFCC0kAJF50LpvNoo98w1Aio3+45WVlUv55bOVYP9i66HlIxCQZJwWP0Syro5ooqIoqPZTriHoyZ++eqEX35vl63TxgM5UKEQYm+pMEjraI5Bk6VWvEXy7Giw+P4RL0nL+NqpX47zVu6fr1OfDIkmhZk8g4zFM7ghlJIxPjwNCHITBTvysFpnkAx4A0RyPqcSPhYSEmiwDBGMWqVSaxZxSLTf31zajeKmJbqeDfoLemHLEMxhIRtz4fzuiMIjI5VeSFBuEE5J5wRhMUiwRyTGZ01EgkHosNj8PmFDWnuJJyVlc0eC4Ixqvcd1iFqCQdI2gUmFF2A2QsfVvR1B+6RMgEoPA+SnbkCkCQTIckiclIjnIILxX4WyxaGvnCsD9EYI9QSyL2N0ZhVkAo6F+JdRKRU1oVIzHTslYnV0UHRCBQRQbZMqJiPcPkmTyOhwJRQASAwiNvBge/QVyheMCGhKBYIfHCg+UzYQCGACooMCDr53btiR0Jpn05kevYXAEAglAWOByQciSr3+S5HLXP6TTsQJvuq7YGQyRMdBwYErFIG+9jBJFViDmAUV+M2VH1VMK7XDrJDjigoj4oeBoeWwOgLiW2LWXk16gG+ddF18kB2gTn7KsTEsJLb1V+8FKlBVnIH70hQdfIMngP60bCB0sCCBgEKSwNCN4bA4GEcPv1pDwnsvCjugDBC1YDgkscfZERmFTwBJITzeb9NirBl9AEo/H89sSM2E+XFvXCQQMTvkV2RR2xAHB7PubdnP5iasMwzh/ARVHhkmPM8Pcz5n7nZkBpA4tIFgoBVrGJp3ECkRDAQkUZUNDkzIBE1PGhHhB7lXTiG4waZSgARLjRt241o3u/Atc+Lzv9x0OuBPHBzJzDiXp98vz3r5vDr99dorkTbdbegEOM0jwtvMIt2QHOEiPuBYTi5VMIU0XFVKh1YQAy5Eng7m6ZcuVywDZqxSIJIEjTrBA0hHeadMp6e/fGCBvaIKDACC6MM8ukyWmh8AwPzC7OyZM7bHYwEAmn7/aqvbisKu9f7nYd81kuna1vK90Drt7QDLYX1prRGwlfAIkkcCLD7shXPrOF1pi5g1VheIRF25crhphCHPQsVzuj9dOQL7jmOJ4gh+4wBVA6izTX619ZW6c2567uT9RQhkeKsXKCz3H20ePre/ubO8U+w4+3pl2rx31Z/aKR6ZOlLLI/vNXnimWywxSHinVVvcejBxo1YflUu+5QZAfcMQfDYUYRJbeK+CIp7Gl+lOPrl+FGwxCGBIE1tzuv318d3ln6sHN/IQKAWRoqee4seerqe0ynFB7ux7tKNOH3kfFzMMilbD0fm1N8qC6hkBqwr7aUnUpXF3WXinjRzXnAcGXAHGmXSF6KuAKF15QOF8Ax/VcYLIPnZD1k1g/cPjNwpkyW0aQFddnju/mR47mGh0TbQzSPrQUu2+KrT1cG+sp7/ftFYsAmSkc3hkff+THWBwtmp5Jli6IHCmNjZWq93wAqR2rrj7w/XuQEExACAHkoivuoo9u407GAIWP97iDhWsfZVTaiTz3KgJKOkFvOsj4zZuN609Nxw9Gxt13xvMTrZiOl/fUUkm932uaNc0sZRb2n5+LPQTI0vDYF9Y2y6A/EYkf2i5fPPBxjiQOquFI+W7NoRY+8CVK5+oj6BwhAnH6or40RruoizFAkb4exBYXB/A9OIOzf/fOr39JEGDABCbBxc7s7OzI8vr7R2MvYXZvdG/POfIO887cQbFt4mBuua11b+6LQ+v4TnEvY9orK+WdNbO3Mxh1jbQ8e+FmqcyrvlsaOaxOHB6WtOrew1L4fCAsJLsvFw1GffAFQcUb9UQOGFnmyHdZOKrqhMysOgFis5lMNtzYhTB76cpPNOYhtEg6rE9Sg2QNe0U/5BnCWMwriUTplfOWX+ZgR3zOXBrTXDxy/QVEVTQdJIwCPmcjDs3eKi3ggkWrx9pxxyBQg1nkjGwpLE07MgsgnHeJrnIWxNi6s3zlcu35RxQngTgB4nI1R6PpaDAx6PIhrnBwEigMK33WDOIKXZDLrcWOtZqJwwCRJGZDBCxxNCE3SDKpq9bkNSUMZQMAwdQo9okV0bMXWQBBZ0+7XNF0LuD1xflELuBlDky7mt1u4f4HEF56wwkIc3BwQfJCFgRikdLcbUySrFeykDeQQ444UWWIpJIgUBV8QfsL5iYn4/Fo+vrLfsmBsGIfZFLAGp2D5xRevKm21sSqxQW7IxqNjgJLPPgAwppUwgUaHwGSjrtoe0V5UmEQl4vaX6LQ55WGEEeqvU0DBozA6im26oiDQBrEoMUUUnTBJA0NIsQgJukSIClrfTjrbQ40Y/oFSRQoCK8KgjglCDpJLlgo+H3RtyKJwSxxILC6OERgBJYnM0KA4A4ctc9LnQbBrzILg1COcJLAkOGm5uZmeAKSxHV9o1iRodEAiSLH0/70YF8hTiXLGwZHD0cWpS1ASEA4LSz9+Y7GxsaOjg4CYRLKEuFZA4MQRovDQxwwBBDZ7DDeyZQIEoUsqawjEVc6ksMjisPeeDQS9HuV5NXuTEyC4EVUXRNEBCyyo5ElQCABgm8GIY6WFofD4XmR/GCOpmxYUegSJG/5KgbCEMKRdKeykbm10TcYfTvCDzikwNGGkkXh0UX1CuFlMgQ3YIcE4dBi0RvjMoebKDzEcUkJN3kRV+Coh5Rs4H8CSRcmN+ZXR1dvTaYjKFnhemt3TPU43ECgjMWrAKk1KtQJB6eI+CGLOKQfhKG+mEklFWBga+htAkgyeUkZDuQQWhcrFlpOHaQwkN+cn98a3WoPJjoDWQUcwKCY4lCX44hY6llHOoQfMrQAxRn/T46wF8XKH2gmkEuULwEMjgC5XGlH2m73/zi6sru7a/YHMGElUzGPwEAB0guvTYIYJEhzxBWD6BgCy4b2iTRnkFi3tV5pavb7CcQbVmAJg6RxlEIgFyraR9Sp3e9Xfhy/M7Q5TOaDQwMFMDhMSLL1nSV5F1+Cw0DDveGIBIEhDOLlXOccofOHEE+OFQ2tjVtb8/d+/uHxwvfJpNVKflho6SwbSYfQgwf3uIbOGoJQM0BQeHWQrAisJlCAhECCAJGTYyUd2RjN93/8+JdvH0/jYYZYTHVodTYjs7nW6jJI+NqwiCNL5L5IdgYRvRCtAyWLoioJEqSMH/MWQC5XGmRgcXN8bvaTJxP3PJDDccNuNvIBbzKxaeWcFPrCT1C5P+ogRmxJS3hcDCNkIZCEs80ChOZGqDKhxdPv6u3FO3PrH374ZMYNUZ4bIKLzvSRAOmSd0kuU3iDxIkgEJ1nCsSVJLqF5JK1oTdRTgEWO+GhsrJwj4MBx0Pzu0L31+x+8/npJwz6CpqsGWhdzkB8AAQkZIpzR08Vko8nFaJKQAdIFEIgrMCkGrz0xYYksvwCBKlF+Q/RdU7U1MrT4xbf3v5xYAAR3DSNFhCPCEOMKAo+JSpoBoqeN6IgaLIGELaqKiG0RICBp4vpbIRKA8BYRZ78rIw+ml9bf+/TJgmYRXVyCGMOhXL2cSiB2xiZAuCUaIz2ByJFRY91AvN7gORgJc5LuPpklFQktPseuejo6ML32/sT9r4coroxxRFRejn3OYr6QOgtiyACxE4NdeMxDW4snY4UdClTJ4GIQcfY7NTm5OP7x0tLOtEOS2MTG7wSEDcGFLjFl0YobDBBjcmQSuUVkj3mod8SsSlaMwGG9cFWglzwbgojjmaoN1b+6sjiyMvPQ0+LG/yxiyyR0EllGCsjEFrHHIKc7vE4iUThW6U7zdNdneXZUlCbEVhp7Kyb5ryBMwX+t0NoayW/emv+8+DTmYU/0faxetLhmsZDgdeQYls5BpNcrA4Skk9h1EtzY3WpK8dKoklXCDCKes/vPbfFCzQlIojD4Uau1Z/P7xYwqSJAlciYBx0sQLBEgDXXIWnudzQgl/iVjd2WQiIxnEkABxKrQ9NiM2JIgL1SC5ILEAEg64r06r5intkzWGHlyBoQ5YIk0pE5zqKqDW7+UyBm94Z8m0UEgmSLeAIGIsoV9OywBCcKrEiDIkWj9YP7W6sK9xf6kNcUkdZzDMrKYRPZ0W52mZjKqG5bAAz3/RTFmEib7Z3CJY6FYqr4JGyw4gt0ubdvJEqD8p0Q58whHsMnbtpqfnvl2TKFRwoPQMfqc9EROtmaLW+1OveiwAMQQlTUjSWQdMDOIEG9PXkzx/Ihsx2sCjvAjEU6wiEH43CAhHWQgF85PrWw/frLsxXBnjbVpGFJOnZbIraAAuYFTEbXFbsaPRS2TOcL1zACRSWLRMRw8CV/CxBiA6BwFp1s+FwQYmHL+TRZAQviGqgY6vZtTT2eOf+lKIILrU6pGFZjPqKg3MgLEmz+LhiXBM7OJ+MQ/6AXNJIsxMxkVWCMMzFyxblgCECR8LoHIAoiQCyT/tjWefoLOFXGhJ7ouVm22q7eHdvuXthLBRK5ZsapugOiipRktAiBYFrKIkkRySBRjFICMpkjn2EQRy2RStF/3ChB2RAokssmf9zTeydZWDQysjBT7R/v7E+lgIiBAWPLUgcOEuz26CM9Qbs3SQE4Z+c03ZCJ+TZJQ1RI7RRUU3amUFSAcWyAJBtMgkSx41IZJoHM4IjDivvjfnJzrb5NlGMb7H3jIqyHKslbX2a11W+2q3dKl60jmB+OiyeYH50DHPFIhxE0T1AjTaDaHDgVByUCcMQwzD0gcwpxAovIBCZFFNjICBjxAUDGgxsMHr+t67td3YwaMd2hXunZ7fu99fO7n7kKPzu/qnje8anAwUUWQdLTMURRbllf3HbtfrM/tmSDcskwPVLbJVV3vQOylajWCgVKN3Ui2Rr1s6gQoEFPJ/9tnqfolRhVCR2jLox+1Nne9e++jmwBSF05Hil11RGHjV2rQ0rlWEdreK9hTQRzIP6UzinyAMFqBA+2s+rCrfCuy2YqabLwcJJVGAjfhPgskF0Fxn0acKZfyUOcGKjf0ench3LDw1c3rb69MldfUJwGCiBOAyMO5kecCrUOkvVdQlcwEkfAoSyDYI1aTQRA47OGDbKmREEUgLp1cUCmkIMp5IJwE0+UILXz6tnjrgtV33/VsCo3fomSOINabcyAl0XwsYiqBmMsYB0UcgBSJ7X+pETo6FFIfZs+3Jmv9X2sA+ySyLagEOplOMguIDLNBLzMO+kjjvMbeNx9c9MQq5JH6dIwgWK6OOQwE6RyeM63/a56gexMu3UgIaw1gNeO1wVXfVB1glr91ADESqgQgLFaEIplNYs/rNu1JgFggDz3cunfxwmWPf756VRi9jkw0VwbPdtc0AGnKR4pdvu8f7xvr94Oyq0i+7+/vp6Io1KZSkFopiFhpOblA1N9SicKk+MO33xqJ4hZJTCmS0xO/np4NYjT+UwQhh0AaBp5+7qnlXz316bPpdCaDYosg5tnaTCCdZ9JM+Fhi35AbFgJK0PAdwTN7biKFRDzkcAop8lUS13ZER4nMJSe80YQjuYFOYiSXGsmhHvzQb37nmp1+Zojze4HAqFxeDRW6ntu1bNfyjbteUpsADexiWBFtXh7P0hXrcY3UrZ4v48p+Ahn3AhCJcVjIokgp2ZosMLI664FhjXonEgmhiEQoJBEKhsV++Qa304F3zJbZIF++tvOBLZ+/XKIeTo7lLyyLYRf/LXGHzCxM5vRRGX1jU7haPd/f5Bck7QIBhwCEYhw80QUJblJL2Dm6/CN1xvNOphIUR8L6UShylW9+OXHJJT953oRzlguAVBHkWprW/Y8t27zj7rs2r1lQrJKijJeeabC4BJoAQS5HVXGjgiWP0JfHsPI+P/lBSwSBfxPEOARiOZ0Wm+Ej8YTvK6VCas95o6laiPN5LoYsZmHUikB+J8gFFAKN3OD7yIa3Vj+w48kVz9z9vOVBHSkwe9BRi9JAAUgUijqgKw+Sm0C01QqxfigJz/dboRgohPiosQiBt0/+dnASNVeGlSOrlO88b18cInf54fDJr5UYJw7/eo1tUk6fONHjHQKDIC4EgowokNfeW7PzyUWPrFi0gdZtRg59RJJq3yCQ5aPOc/pgUVdKsPQpO24A0xhB7HCaFPjuQwSJclw4n89HI7vbNIa3Dja5DSQoU0553mF4/mfg+e6IBznxddVPvCKjh6AbFF8THlzkJ/PtC4CAwsLv5tU7XlmxffsX+9/U2Y4/N4NuQZgpLAydiAOxjGuVtNO0xLEVuumfATJHINyECIR98d02iscv29Q3vfqIN8SDH7ziCOgoRw55Tg65bfDEBJ74FWu9qEZkXChRtix/5pX92/fv34isobWaYVVja8qjuHReHEqIbvRkXGGKHGBov8JAiKF4JRC2S98HCMMFAZYe36qosC7J4utHzzvK4xiAeD1nT3026vHBylMrR/Hlh8TXZ85MINl73qn/AAIISuid4ce+XLNo+xeLFlIjDoR9qEw9au46gGTg6OLw0/f3cnp5yDEgOBB+R8MoxQ6kBCgEQcFJ39rKvDNCkCg952eqBqfgBFmHFv13VMvhRCJ1El/P1KZ6vNHDE7C7k5dfFEQlI/J7aN7a+xcuv+uDRXct9Oex1L6JZqqxDSpF0ZIHB8pEde00bzICNewRRx+I5O8C8f28jSAUgiB28PVqZ4xx2Wpsd3htTFoyPp1gI9GeQwwrj4/CtuJxM7OlrCQvDFIFhht5h/ORzudfvfuRFSs2BLETQScKX0f6QhXp2hHgsOEGxtuD/P/c/navvX/uXILsAeFMEKiCIMioWOQUFSiQ3WV33FHyGyyLOUqomik4Aq8vL0fqB8hnpaV1J88NjZ47db2SCuQiIFRJaH5n8/2fPPHkmicWGIU/RNIEr0T1FWPNonUEHMddh2UEPo/ULhBTCMfLp4MsBYiFBgMphuCNk+pyE4QVcjVBOK1SQxCNRJWnXFsVLMj2kn8FIQcl1AuSR9fvfGD9ApTtxKB1c4uabyrS4SgMiyDGcVwGr6QOwxoagzDhj48d9DPhPyDFArlnjtInA4lAmKfavZE5EoUDlpYEqUFBWdEBEHxFRQMS9lWt3WM4/woiktDid5pb9u5a88JTS1xP0NUp/mYbhiUOCjnGyWHbKZhMIFqa3i+QHKfWDEQaoRwgCJ4/AHBnxlsBohKgDSBhCkFs04L2V5VqF52BKOVrGzkbhJVnaG3zcHPLq++98PrLthBwGEkUzWBxMCwL5GCPcRBk6QyQh4opPKqaATLH+Yg8iCDr8I0Rr93iioFEowRReUkQN7SC5hGma1WlqwVm+8jzQMBAEGikcOviztbnl+14+97i6SDMA8wBcnQ2SIizh4GXViaWsT4nx+k1fQdKKNRnG1d3B0I2QVBFTiE3KFMKJJcr6/FGgOWDyAIIkkwixwBkZThcX69tpW2JK7VUICG3QCezQKp4F2q5bWBg3uLn1u9c4EAYHskQJYcKSIjb+5FjyM5ybYiRJzl7aDF3aNghYlfXOwCF8OVLkSSVR+B+k0PKI5Gj+LY7ABIIflNOkQ7vzd9JEGoGJESBVlhZUhI4VMHox+WzTYtSGRq47eqBlqff2bj5Y1gGOVgiQnAfoT6CsTnUigBZajKufg+D026tj4kumc/H8jGC9Dz0/kiPRxDIMU5zTz2kWgSfWz7mdZTQ5SGKWpzhURKltxAEBbNI6q2DBFF9mfKnhgO5HgxQGW6hwU23xTYNzl/y6ZJitxlKUjIZVfA2Cmj7d2+69JXlHG1kHdfHrYdV7ASR9AhEpUBQayW3ed5Z2mwQtRDgCaJ2HkFQ8quHhNobunFtpApsyupSN+oPY8wEqUzI+kKdrd2NLYPzN7zexU12nj9DbcFqTcyS5J+auH2adPwZS2qvkUxu6+jo2Obegrc2ZQAyNASM98fb249dKZKpdpZSBwnSdBR30ZwDOY5XRBhQRtrbp2QObR0dP+eT1tXjdeEj7cpQa8Zx9ijjCkDAQJBEZaird7gVf/3y3Y1d1oWCPvGeCk6guSrLhF4CJKUaEvPUHNpXrKnmY+ZPkAAEV3dyN91AokngyXWRKEHS6TZvKBnLlfnHpMj0ZaqsUeApEudjEKfgTB6P9ND9jmx5pZu9C0ASBEngFtqypLfQMrzq3g0vgQNNKHXQNEzJ8iRnxuyXYS6sQRl4IZRtfSqne6SxMK5ikxKizqYlIP+LWTbKz/YPoeJdeTATpartwiDTaKYKINyMwc3oodCKWiFEgzgNhUtT53nJVYSQhD5csrawabiw997FSLAambbWTWlFdZpXbiZGjnmSvGqGoFMVCKjqwZGxPGKiUqXtt0hk8qyHEstZTNTKHldOqyAVSMQaIBBmMZwzl7in8rLj6opafNhlBgjDGWFSobeGe99oLQzsXdypwT1QsGMOwbyprpyzKb/lllfrUBgpSG25JA4BSBggGYEwpfoy2UHHxx0UIhNJJ22Wylr6rsHnT0dF/ffmVLABSXqRWq6OV84EuSZRm8AqEpWp0MbC3paWgcHC8NxqXWYTVvAqGG0m3nFEkwbLYyf5mWhqwcMj9DA5kgSJKg9JchF+mkZy9g92hrBVYwc2GKDCaIWOkeaoPtL6MXKMO0oJ84xUlY811ZcmrrtqJggVksJKQr0tNzfEGru7589FzLa5vTp6CDgs/LqOLzhiGZvtq2XrViE8ASFKnAfP8HVEsaMrV/4Zi5rISPLbju7bt+9nYYRZUZfoGJKDR3bYqokQy0wEMLFKgwZGSVYThH8dNTAt9cbwL9TSkMk0DjR2d15ZYfbCAUTGLNiVqUOz/eBQDwQMLnIzqVYaSi3eQ4U0MSvGlBnFIrH+FjCYrQmig2FiNENIYvNRJAlihLqDroaNNM4AAcrl5uzwEXAApJC5OZy5sqWzu8F1+xM4SiQH/EPqMIXwILQJm8ZyqoJSJYFSyAL4bEWYCiGDcipdNGYclguAQalO50tgWrAogtx+++3NJLHjFxsxcEgQ6kK2JZD6ukomEoqZlkqXBDN796bWTLqhdXDtHBq+AwFHOkZ9iIE39oew+WU9Ghz/iYQofE9WISsZiEBwZxyudoJAcTyEoW2BRCDNMK4XbYzQ0g+zlXxd1QPUQo701YxayO0QP/zKVZkQ59/a2JpLNszrukXHlHi2Nk6FqJntRBGLQxil4rDWnkgEIstyCsn4GLIuCtTTJBBysAFs2mannEoRiY7yNetiHNAM9nfKPknWSgpb6XBd4oZruCsJQCqhEJg5SpRCoZAsKsrc0plUIxbrSsVr8Lss1BPD2irhGnLY+fg0EimEc6RMIoEYj+8fKheUQuF+eYZDkgAEJHITjU5Z+xg8AgFAkiARNvaZD6s05zUdJFVuzt7d3ZuMNLW2NJc6y7ePLMDVCQLRSTOHSSqwZQOH/lpTQAIO6JAD41ZqOWkSCh9YgUGFZMGhrGkbTyOBbQlEoQsVDf7ZxzaUfgmCkggGkeLEsFlWoBHog+G3MK+74Y2GltZCHKti244qyYYR6+UjFnjZQM2CHXtPNc5FIg5TiEBEkjaxh8TwQSCIWjbzonkqgYjDzahK+/6eWWnd1eEx49Cx6XQQ/H46KUBK0igANnU3t5Y60+cn+HSYaCA8JnHNobgMCxwQ6cRXiBsYVwFpCEWzxE4VrK48D0QeEox2ulaOtptQSBONlNex1nGYQgKQhHP2v7k6w92mgSAI+xWKBEJFkdwWjuJQJ7SXkkZ31EECISHxC/ojD8AT8P5iZnZsJ101AkSp/GV2b/f29sJhWPwof7f/rh/waAriNSVBeRKHutCD84iaRPRJhkhCEQtS+E632STPGSiIQNrAIIeasAJxfIDDIORQHlRkUFksewjQ1a04TkFUM3IJbt49Pfx+N/Tf/yy/jCSQ5GHYUhFl28frbX5TGCDisCIEkSBKhgBxTR8Y+cj0h8jpLBiRMLknFMdLZXdinE5MwKeUVcFhPTFSr0B/DnK3AgateX2xPORD3n7dAeTKILuUCUKOn4/XmwGJ0ByTIDMIPIuKyLfC4rFJJoSBzYQcrofhNmJIj2muGBhTGyA6Ut6QGGPwHQe3t0wyZXaWe3fNZp/ysB/6T3eXIrEiWQfuLEzIUXeMD3McgdyPIODgO26OKSBmA8tiwctCxlATdh5kkU0YOnyMf6XLAfSHuFOKFiq+jkBQ9eGrA0hbatm3Q9l8HEOYIL2GayJ/5H6pkTdxHAsCEOZPgMizRkXy4G22WRQcCo9jDp9A2qWcrlTJa6QezuzpWiagpOtM+ui0kwbqi3MUh/gCS1P7VDaHTT58PNcDKtg1XPOalcIjhhHBoYk3cRhEPijPcqybRBxKGbBeNObhquujFg8MOzTCp4jh4KAccKbx/gzbp155bfP/B3AZGyI4V5MvSlkcEJGrG5FEiLRb7H08r5t2zoOBcY4XeIODsa4s8mYKiqOJjcKKxMIMuk0nPV7JrwwyXZU75hjYZoTTCKUUXlamIGfmmO2qdrVWbIg+NgjL3Pc5be5v9An2c4jwR/PgqhMHIWQWzoLMi5ZJ1LogRq1qr/vvDDIKYkV0QXYGQdEuEoKggmUQc3O0lCCcHLciRyCQo8q7mloO71Jtn/brGWSpEOFbhLnjegeOmKMMOw4RcMz3p2TyqwIMzpQuoUpvsbhkselHEvuWOGgxzelQZw+kLTGuQhT8BhECz4KR4kQRCNIhRLpdU1NqLzb7pzYU+YIr+nep/YUQ4bjuNj90c0/8hhzO6wJh0T+BvJk4tPGX6VZSWA6SR5JQlNMhKQV7oJBkiL4vDTicd/b5wnPXSggQSrdqSoUew+Jzub25kSLr1a5kFCioFB8hCG97+CwfFoLEOr1ehyAAcSDgFRzJHAaxsc4HCfuldi852Dg37PrUNxtK1V50Rbtfy7OekViRriKYUGsVuPOQhn2+/0ZJAALP4rZKQygQhIUiOHBA8e1GrAYJz9IO/wH+Y1NvM1kRQQLwqM5SLeuIhzG303wNzRt3Hpch3Kde/Dpm02SOEtNc1r5WKAKQWvtN3rSprPmhTl+u5FnYjQAE48rYAqwkiPQgqiLE6VCCEMQLbS+MUpIlISXdznz9XDJOt5ldpPi6rEk4uJ19qgA59E7qdoVZwqTI8CG2tbumT08vyya15f0ZnvMSgnT2LIDIsyQIQaDICcfqFCQwkMaSFVHDC0lNGG7hqbLEMMVbh4rLRpNQEy766jsxl4yzzp64OWUhSNH8LdZfZPb+UIbUD+uzMygCEMzM7hGS8FVsphjqFkQh4jomBEFWp/cApIwUNoOo3fW353K8rCT+Sw/TNIUzvLspmvc2iSTRyNpIAp9wjMK/g2cEaWu01bom5/6wGdrDcEuQq/f3TOvXAMHbsh3KTp41R7pBJkGkiPzJsZFqUBhEeoGjKvSFTFm0Ej+BRLtEm0gQ8Yx3p5Mi5wpJbHGFx6616qsEEUh+/MzazIoQZPGJh4jYTbGRP3nWuPSK4znIgzhMYOssiTmonSoXtvLgXp5wYV9I5hl7LF1O8UgnfSWJt0G2c5NEZi8XBStO7ZoBrdGLoZQMRRQjTIdYJbW79No7c5wkwwlEz8fHVVh0Yf6VnkcOf5+YSYKYR04J54L9oI1XS8cM74bgauUNBIsk+vkxSDqUHUBqk0qpLWrG/B6fSMUP1uKuiicsi5bFMyPEjiWOU5AI9iABR4iwo5nGDfta+V1RRoYkiBMVLL6/GWZFDLKXJPxoBZPY+DwjyG3qKmdWa2pS6grK37y5lyJXyIcJyuNHqFh0Lpw5vBMZQfikJKGBA/56JzOLQVx2eSX2QvwrluGpXAmOaBIEyC/Fu7JJDPfCAHQkyUpLJF9NqhU14382zh7HbSCGwr6Cq6QRImGhMWAEg8TSpjBorFzkClu42/tfIh/JpxkICNvF2vP5kcMf0b7WWSA3injeiE/C5XC/EkcDkSANBJIwOKI+CmtDeoGUljU1btw8zU8fsbCTWR6Wfms5CL6VQ3Pt0ms14JIkeWttkHhLBUgtjAeu9ryla3kV74HqcijO3RQgqrI6CL4lCwwVFYniIOLE+ZxjjDJGUyHvs6J5/9ZXuClTFOvESIKQ4fOFZZnndxBbqRrLw8qJi8EoNet2kSKesJe4KpocPdL3CBGIJMm4vmtOfyTxKIelV8jqtLbWaGlsrQ2Lvb8KRaJTVOyFq8IUwzWXJECG12MBowBiBaCx2o3M7o1VHFLpVBgCUQ65HUDuO8QiDA3oAyQ1wRIkMASiwmvyZQ8scPSAT7HO1BgQJLGCZdqlQvDH7RT1mUpu81AWKxWQrdpWkXD44wWIHIeY0q0rS44uCO7aDuscDSJMIA0TkOhLhKGOURUko+pcPAgU1b/9GShtWtx2jp6DiPxeaYb7Zfo0w3GrndaN15zn9+cCh4O4vXWvwuGwJohA8rQiUWjomYkYmyTKisbpO4cEAQSSsFDmuzbGJikCCEeHQiPy6IIfS298fw2V+pd8bt7q2nOaP7/uav04rO5c/dzp357UEyRPK5QF619rwRwkMTCllFTErY0pNKsDRJYkOWaUaxEknBySvQMgSTIDvgOiG/hidVjraChihenZa5q/qj5zYWTdDrcX70eQJGnepQ13p1ARFnwCwXo1rwtLHA4CCbaTgNJAOHU8k1gTRKvU5OkEye3znzY+X8NqBRCjsH7N2/DjzY8KhuRwQ47zIdQ7CCgi0aZ+cIRgjaODRBYRh8bdMZzmuJ3EgyV3vvTLBM25+B+B/B68RbpIkfPGwGd+DhVFEH2Ew4aPgcNq5iOOs9uxwxWIDBKsc/D3/4PwLk0Ryng4EERPtbokkGAC6Y+7AKljrIQLJIOdo13XR6nvRHmtJ6v/Sra+F6ShKBxFBf14irVBm7QHo1EEgTJoxVw91IiCQWwgYz+Q4YZNBW2Cc6g5NRImlhoaaJGpKKUQBBpBEOFTPfTQ39NZnSFMhe1+5/u+cw+7d4mbCejlY1Eqeu3qjRuXAHC4UBqmG3J+NTy/BU0edDLEhdjFS1fgsnC5tyBW6C2B6od34yB6eKX4wsVL4Thjty/fefoUQ+7fOffo3b17T89fflwUlEePlEbLVhrZht1o7HoQ6Rc5NWcYuZeG88JQ1RLEV+Pr5Fm73f6qdlTV+F6Cf0sltWQ46Wy61cq+SGdbrUcMf/567ME1GGCcFDniIheN3eRuXoSZPRmahEiyUYKLkSSNcLEol4wSBBeGiOkkFeEZKYIytiAVcYwR+Od28VVDwu1GT1EE+/krQeARDH0kdBn83LtX6Y/OpO2oMNDZbLNRc89Lo9n71GT1pvb5fTlffVP7thjn++vXh8AfWNbesiwz+OKG4Qdes+lpmu/VNX9f8dygovnDpufvD2ZtXlusf3+ubmYTNb170jivU7wYJbkkRok3xZsxkBZYJJ5I6jgZJ0C8LBUnwgBHxv+VRozC8XAvIIJ08YikCJjE3EMgv1Ixa9sMzyt2Q5G6NCNJisJjtGKnc4ZaeuI4TqczS6UM1XgymozajvG+/OZN9fObP+NxvpzfmuvXy8BcLoPlcjDYD6yBu//iVvaaPNQ0d5hp+lp40qx7niz7zcpgMZqWrWXtzXzVmaiblCFIEs1yUXjKT1AXQVRHroFkQXeJKBYnAML/zVqgNVgISHIcQKGRrsR0IwhDR1CMbwkojnSZrtIqvipKOC/ZkiQARLT7SJAYXMdsJfvEefJ818sZm1RqlVI7m/ZoNDJyznw0G5X/fKuWa+WaaZlb87AENObrrWVCDAaB+0X74jWBE1fLaLKswRnAKtR9U9PMxVytjvPj8vx9CmLyUoKgyWQ8eS0Bo7117Uj4wP8i9EIwv8ficY4DhEQCSgUXhSPJkSSKoAJPo3oEo6HRVhicEYRutyUVi48YhBEkOABPBCN1TKcpFi++evXBlhq7F05nCncstTuj1JtcabVKTSbT/GJc/TMvL6zAsoLD6/5ibK4P5hL4cOHtj4rWHGr1uuZVCrIGUApyRs58Knj7TMYP8qnVdJ5f91//Ls9TL1qQQJC7SAkkFILETTD7Lcg/rNT8AxbjiBjgiSUBCBk6hCVZUWRhgFS4ngxcQPa7koQoLVx4hOA6HQGiAIrA6FB5dBpFIsVXYByp8SSntjeT2Sy3cUalUbuUmrfV1Ko6Hv+oVWtrE5AE23Ft0V/34cugMvS9oTysyHKzPpSb+0LTqwCGT5/+fZq/fmX8JRikNgYFBq9r81Iv3cryqE7pWSxkIkYcOXkT+qyLgAMqFzQroDnggyMSiTgXj/4DQrKkLooYzaMUJQiQd0FABQblcRQVEVyKsBhDUygAjrKijjO2DcAaz52SkzO+bmZGx5k5pY3a6bQ3qelmDnz86JtmYL3uj2tglf7v/vZgfQFTe7I2BBY0T25qYAtXq//6+TNTyGQ+yZ8AiDWwDkur4rtL8Nhopu4chcGSnMT9M0P0yKlE4hIguRTugAtlFpoE3B8HgyQBAsfpOhAoYigMV8cknGJRGtMjYVcUQdEuzXdFlhJJDCPZKIthVARcIxQ/ZHe77IteW81l047xpAV1NJdajaahvD//WGy3g8Ein68Bom2/39+ae83VhsOmXK9nPL9QqGsBSKv+69ever1eycDPclA7WMFgqPkVE1gdTdtPnoOmodreBB8QxJkjx4/BU8ZYImyGgBGIJAnCSrJkEowUZTnIMiaCahAMEzBEABAYoke6oSFaqE6DuFjo1GicjoqkCCRFeInhd62GYveyds95YdsfjZb0Ip3LdVIriM3q27j/2tybtXx/8dpcr7eL/sG0XNfzhnXgAqovOKPp+sDEr0+f6oWCK8vul4pVXhzcYUGreMG32pu26uxsltUxjrsJtSpx7MSRo8fPAh3gFuAEbMP9oyNGcPGQGlYEq4g6RbM6UNLFcEGHOiyBLSISz/RAcBgmRgEqKgIfJItSut5VBOF5Q1Ek+3kWJkDJbmR7jV66lO6VoByPptXyeLE0t7+rn/P534v1YQtwrCBwZd8PSfGHMmgLrJL5CcL6CVBkiLpc6S8rnpxpek1rtJrCfGlLGCtG9OS1GHHs9ImjfwGN3z6sVKrzPwAAAABJRU5ErkJggg==", - "description": "Displays a latest indoor fine particulate matter (PM2.5) telemetry data in a box layout with background.", + "description": "Displays a latest indoor fine particulate matter (PM2.5) telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 c8316e3af6..5927ec19ce 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 @@ -3,7 +3,7 @@ "name": "Indoor temperature card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor temperature telemetry data in a box layout.", + "description": "Displays a latest indoor temperature telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 28243c702b..ea0e698528 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 @@ -3,7 +3,7 @@ "name": "Indoor temperature card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest indoor temperature telemetry data in a box layout with background.", + "description": "Displays a latest indoor temperature telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 2c19b88b1f..6acc5c075f 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 @@ -3,7 +3,7 @@ "name": "Leaf wetness card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest leaf wetness telemetry data in a box layout.", + "description": "Displays a latest leaf wetness telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 5c61b126cb..f6c625bd2a 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 @@ -3,7 +3,7 @@ "name": "Leaf wetness card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest leaf wetness telemetry data in a box layout with background.", + "description": "Displays a latest leaf wetness telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 03d2551fdf..ece024faab 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 @@ -3,7 +3,7 @@ "name": "Noise level card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest noise level telemetry data in a box layout.", + "description": "Displays a latest noise level telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 8b01223e7e..35e45b8062 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 @@ -3,7 +3,7 @@ "name": "Noise level card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest noise level telemetry data in a box layout with background.", + "description": "Displays a latest noise level telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 943c8f5ae1..c9ac4c9582 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 @@ -3,7 +3,7 @@ "name": "PM10 card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry data in a box layout.", + "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 ac01cc445f..acee15e1cb 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 @@ -3,7 +3,7 @@ "name": "PM10 card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry data in a box layout with background.", + "description": "Displays a latest fine and coarse particulate matter (PM10) telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 c925624c81..0c721ae651 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 @@ -3,7 +3,7 @@ "name": "PM2.5 card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest fine particulate matter (PM2.5) telemetry data in a box layout.", + "description": "Displays a latest fine particulate matter (PM2.5) telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 8ddba63104..ea04acff8c 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 @@ -3,7 +3,7 @@ "name": "PM2.5 card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest fine particulate matter (PM2.5) telemetry data in a box layout with background.", + "description": "Displays a latest fine particulate matter (PM2.5) telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 db557728f5..ef83f72cb1 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 @@ -3,7 +3,7 @@ "name": "Pressure card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest pressure telemetry data in a box layout.", + "description": "Displays a latest pressure telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 b7d75d7426..7fbc5164f1 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 @@ -3,7 +3,7 @@ "name": "Pressure card with background", "deprecated": false, "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC8VBMVEWytrmNnqsAAAChtMiQqMCyu7hIX3CxubWwwNCTqcBUanrr7/Pl6u/u8fTo7fHn7PDl7PDk6e7i6e3q7fLs8PPeI0Pf5uve5eng6Ozv8/Xb4ebb4+fd5Ojk6u7c4+jU2t7V2+DY3+Ta4OTL0NTn7O7O09fi6OzQ1dnX3uLq8PPo7/LT2N3JztHZ4ObN0dbR1trW3OHKz9O5xNPX3eHN0dXO1Ni2w9Hq7vDS19u+yNbw8vLy8/PCzNe8x9W7xtTh5uvZ3uPx8/bu8fPBytW0wdDFztjd4uaywM+Uqr+ktcg/VmbL09yesMVBWGnP09hifIuhsseuvM2crsPAydhcdYSSqL6OprvN1d3H0NnI0tuHobU9VGTBx8BfeIirusyZrcK2v76/ydOmtsmQpr2/xL+JorbkuMSassPkoK9DW2uWr8GLpbnz9feRqr1OZ3k4UGDx9feouMuFn7RZcYBGXm4YLj2vv8/e4+pfeovb4eiWrMG2vbxLY3QSKDjfPFng5em6wcJ+lKDjh5p5k6ngnax6kp/z9fS7xc/eOle7w743ODnIzMW8xcTFycGzvbpHYHLN2OGgs8OCnbKbnaB7kJt2jZpifo87UWY0TF7R2OEmPFDV3eXE0Nu5wLyEmaWCl6JTa3vJ1d9pa26ssLS4x9O+yMimqa0wR1neL03f4uG9x9HeU2weHx+WpKygoqVziZa3xMylucdadoqotr7ezdR+mK5EW3ArQlXBy8uuvMZphpqisrxxjaLdg5UdNEOgrbacqrBWcYWGnKdTbX/Dzs6qvcrfkKFlgJTdaoDAzdOrusLds7+WmZ0iOUjCztintLWNm6Lc1t2xwMmgt8aEhohQUlNvhpNtg4+Rk5Zpf43k1t3Hys7DxsrdwMqQoqqGlJveR2LfmqmPkpXbmqjib4TdXnbdp7TgeY2YrruLnqfbgJLbdIgsLC3q4OXpyNGRnqfhVm9ERUd3eXsrLCzdOVblrbpdX2HdlKTaZ3zXlKJkdH+BcZovAAAAC3RSTlP+IAC/v7+/sK+vrwWwZvoAACohSURBVHjaRJW9btswFIXdn6FdO3RsO3ULUHAQQEBkB0mQBWcwLbixFwWW5w5aZDhPkY6CvRTwC/RF+kz9zrWLnCgKRVHk/e65ZGavX739uV7P509cT6tlMwx9v0RNl+rUN01jD02v/qHvUhfaNrpkHUOXysz51scYQ4gO8Ydn74vCF3lebbYPDw+LxWK7WSwekG7bqsqrnAExy0q+13dM4LKMRlsUwXmuv/nf3Ed7EXl2DC1rhjNsTN3Q9ATQdRbDOL579Xr2ar3e7yFBj6v7ZU+8zfL+vhnGLEs0ad8bC+oFUvsqb7M0DCmlUfMGH1ofgve0iQWQ4GIoiryqABEAINz/I20qlOdFMADLgD4jVmJmmqgUaATxMz/SHQy1SjQCQCjdWCeRADL+eTV7P5+v15A8PT0q4gYOQJZDqsu6u4Ks+OHNEkpAxsgSNRQ185dZ6XwOGS60V5JIUzhFhbY4MkEgGRCCZFPBoXR7D4k+A8WYFLyvtsDmms9U2r1mLdr1WI8JAOwo6ySIui7H/s1sTUXN93v+PK5kSYOImirKyjQ04uBaLX8tAekIv3bkP6uxOVjKgs+3G9VK6608ghoEdaus6cuXafo8TRNltdjiEUECQmUFDz4kKhvVDFR5G83S87YN4WIumFXIiYJFRdGR4b4brdbc5eJcnRpA0FokjwhTBMIOaAQ8wIG4W22pHllSNQFJFnFBKqoNJV+Io5QjgKrSRALIt29fxDKprmDQxfgcE5EnF8THZEoBncFA8pxultAi6nJMm9miIxjarQKps3IsLyGIuZutESQqLrRaWcgM69PY9b0ZgkAzN7s6U0VZCqOCbUEg4CtIJEEOixSfF0lRLR7wBAokQzQ0t7JBGhbFgZjQeTjoUSaiViDs0ukhulKgynyCgvK3PW6GhWDZGGd7gdiG5+ACBRKhEHS6GSIWmZF0lfKb+WrWDRS1AHbcCFq73aEYdnBwFUVb5JuXbb7dQEEf/byWBKL5VCTkHr6AHdodRkfOA7apuuBF7G44dIYKZOT95cJSWnkGAQJEPPMXT5R/DEE8WwZkSW3bDQ4F7JCB7DCFVN9Adr7YBaSQ7IXtcGQcPsJPvFFyV3OVbzs0qr+tz8/V2VM0qQZOx3Cw5DgOHzt3pf5GwoBLZDqGzH7sgdjfSBCH11JqDGRpHLcPe3a70qItbwc+du9YHTsIUXFGB4C4VCGBDKvAKjumUN7qzDVaGF4wCFi95oW23blVDZnrEUdi6WSwuxrSmLpkhlxBIosC8kN+SOP5vJV+/35+1u/z9PyiaTqdeJ5O6Nvp7u7uePh4OB6Ph+9fv5u+fvj69fvh0+GqT0e9O+huXdZnj3foeHdrnW6ieRto3x3thfVrHHdJvZNkYZgWBuL0f+Afo3Wv2jAMRQHYu2O7IVr8Gh0CHWpw6eAhUyCGTh48pkMnl/ZZshT8oD33WvKRuA7kUEKJo0Sfrv6ysR9F0vfTbr/zeZJUVVVGOazJc1dI6rpu2/aTaSU1UtTF/Tjn8ILkIa7QaEsflz7im6ELiHzP3zzDIZtydu1V0ve3PSBrVslhA0KHgRiCYQhEKDkhdISsj/IEgniHh/w083ycsGgBufbjKAfJbQ9JZFGIkbAiwcGIw0BcoRVYGUwKqYsIkjy0kOBQyFHX03vWI5cAoYMQiZVwZlnIGxF+WB2ymPz/7CgrUjCmXKxT7AAEt5ppkuMg6zqsErx4CC06t0JBPCmFtJLEAQgYTsJhJWZ5w2vSvtKBj6ZKZ32EYOuVAweQ4dyNF9EAgtybW0wsYb78Skc9+HMcwYTErppBjxvap8aBqSUn6hF/2en0e8FBqBAtCT2VX+5bEkKi6Cx3CUMjnbKxEBe346pea2JWDiDLXaJ5zs4DIXFYEu+oNGlJYKk1qkDCJmnyAMSlipKrwW5mK+S1QXCVaAAZOrk1bkIQ7XgEQRSiEo3fPHXXIeQRyoGQtF2pCZD87ulSf+vtE9ekl+w0QCK3RkCSLMs9rHBATEm0+yYucpQ+hGxS/GizSYVEEl8AQhwhIsGN7uOfL/N3cSKI4vj2t5jk9k6xsQh6EQRjYSkoSg4lQc40SRrFRmytBBcsgtVUBiuxcgJWS8D/ZRcCprJOkwSu9vvmx313shu/XJJjN7s7n/m+N29mEg2H8OQTUAgSknw+/Zwk7uZNb1G5W54+PYGeBiBkwIX1JDjgj1354Y33oUBLTlhdShw3P9rZ9Hj0IxqIAPO8CgJZEO9IU6KNlrDGsdvwYUA8wl6jqCDcHL7rraa7yHNArgbVgUC9fv97ZFax0OBn7EesY4JMpwYEH4YDoucnvLkRC7aPRarsSTVx/FXmIUaWIwk46Adz5NYzWdiNJwJycTEbzGaDoYB4Eo8yPT2dAkQ+5BEyAMS+VefdbvfcN5tPNEcYi2wWRApyWHkOfDnGy6H7gkjf2WEOxGzVjEdfH0SyiALGpzcTD3IMDoJYeRDI56HOoKJbbpJ7Gh0pV9YQgQ6FIH5OEcYvE2TPFID0+2bPLMJaHiRId4DENGSPZOoji0OZVp1Oui4IQg4L4q/gNUZBYa0D8Q7WzeJpihu1xpOvo4ls+UWvzKoLg/BPgrSoqeUwroczF63Qkm2WLC7x38tCbeZHJwuliu7RUa6Ubjd0Hsd4/dVF0byP87/KtfU/IEJdxxF6YpP9+kS2/B5B0esPsp6/GBIk1NT6ETgCOZBLleRZkSdKzfOs28m2fzYqWWRpus4bSscxXjrTf5vA2O7ajoL5H3D4HHHnOHuozLRYj6+PYYfsDDxDjvxGcA0MSD0JOAhCEr0rik2WJ/kuSdJs0emul91s2znvJMt12n7ZdiAtreI4yr7dX2XfGlRlSHbBCPFUAEJD6AhAHMfb6MXsBQxBIenHMVHKUO/ipiMBhIBYFL3L82V6LcmVgIjyo4XKNvPkXK8zfacM8s2et3cRMbjohwMJS66QVCKLp673ekIBRWZbAhURw2+gd3USDDFF0LSyAS8gq2xuRuQ06ej10WqVpDstIC0H8iuLcI3IdYW3hBIOgJQqoY+tcNhKeAa60QOJbASOI+G4MCBN20j3d1qnpnSZyxWt8EwHghxJ55tOmi07yJrtOk2VblzuojwTkFbrrlLRr+JJ7EVLnFh1XCUkyeFVlQORQtIfIbRQ1lEQBwCxsv1SC2Kz0WpbNIyWBVr0Uq9VniSLzbpYSWipy3bj4QZZtG1tC0Tqw2Kn/pJDHA1HZB91NGSfpBpZAiLby6P+GHVkJhADAZFJDvXe6suXL+8pHDcgYdqLfIFgDzerQ0dcY8k1TkjLJZ3i1JeBRZCe/f3l+/cIM0YI73DENawhN67NEZfzbM9tS+JEDoKEqukD2lEBoQHMEBpiQVDWwQGQoRWG3ysOuf+h0BLF1G0hcQz2zXPIt1qHSJjwloMiiGt5wlmlJWERwbr0MeaL+OHFgQwQXgQxGIdyJLSE63pG19XSiByHSaA9DtsZLC6V2T8NEZKzkQgg/WhAR0jCHAnVqFhCRwgBGdpWrQIQKuyR6qIlNMQ7AhCbJD2AvLECCO9NoaL45/OQ114DuChkZB2bSSjlMJgmxPAihxMhPIe35AwME2D0JhHWuaDA+4QggTBFiVu+90W3gwSB6g0ByN17gDg7O4YI4uzolLJExheKjpADFMwXzwE9xpTR/IA0/ke4ves4DURhAPYDgAMBAQpJuAckLgEhcRMQroaKAgSCNIAQQiJKkwYBBRENDRVuaZAlF1tYPIhFjUgqGl6D/5wz49+ztuBnk83Gy+58e2bGsceJBHEfH02IzV940QjJwJoORefwYZPk+4O/5WgVMx0bIs8yOAAZHyHkXr5PIAd/h+f7mxAWpHHGhSX5cFtWkpAnOGWKimCM4MCKki1V++AQCYuA4BMepEelIL0xvm90YRJf+JkIZyQfyeQoKrL7iEAuXBglUT7s9o8fE8fnrDy6Zdtk39Hf+gvOnkUVTyejidwTwpKQwn5FytbhxSuyXIZJWCGyHzGIxXV+c3jJ9hpFCCkInWWapaPTRVacjfACMo6XkXz8zIpiy5mfeZl1i7xcnirKE8fKvDiuPStFp0rzApA4xv9e78DPKFdJmqdrQhAomgwP8Dl57txVrJBBAshd6VwYI673cnfVEQclbZDTvXE5Xhdnx0nyOyYkjsv9+eftUTY8dexZ2UVlovzYs8xBOkfTTk++fXQ2WeY7yrNxsVpl8elyYhA6LBWjuZByQBbir8i6ayQruTLW7351k4lyOpbayQd0+XCEpxdiVKRYluN4laeAdBCF7AAkPZqvMUaGZZQpJCuy7JmeKwNklRskSd9H+Q70yXyF/xj/TmJKGDLMEULunLM1ychWpZ/elYowHS/52AGk8/GPTaYGEcr5OF0lySQ9lJQX1us4Wya/J3h6nXUiQMDqRdH2LDv+s7tUyLOie+yaQlDJ/WXvqEAupDvWxY5iNUpX4yJZpa2ORjVqkJ0n9TobWUqNXkhJ7kLjIZRYmwHhXgGQjtsH5mmaHloVeX4oyfM86UQpnk+KNH+PMZKuOweLMo+6WZkV3ePFcpiV+XFxdPKxDK1IWj2K0qiITxdFuoqXab6fDioCBiAuHCPnFIJ19oeiQJ5sl9YOBtVgcJ8EcthBBlIRvpI47/dm4ck4GSOw6+5QgnuJnYVt7slXp0+n47hKsxpIUA0oKohcV6XXHUTzh3MEkK/4za6xPqr69euXzLgD2wiISTSd9uT+pRYMgrGoQyFhTufZus3ROIqyBIP9LRRYZ0dw5cNc13XnX9FUjVdIuxFH8tvgsIQKWFE3ji4PkRBSr0iw/yWEEi7ZEUKKg2C+ggLTVvTIMp/zJLYxJGbhV6Ky2dc4RgAiyGHXFU2hjhEhjqETJCz/cQSj/Doh1UIP1kbQu1CRGRS41VesZKS4P+T2MM4hd+5hg8F6egkh7FviqO+wQPGcwEEIHR6je/YrF8WBtbdoZnGrutrygf/9jsINWxh57BmQK5PRH4AbfxAd9QP/8JikXhFjhAUxCSE4if38ChwiAeQlgpooJPwzjrqMOrwE/Q1V42MNLZyv6hVhz/IOB2NiUliQugQUOpAhDIh0rZfTxWI6hQWQkLFnz54axY0XYNjyAR8zvh6ceTlEOhY4mpBthIQjxNIOeauMjSsbz6PF4suXL0L50WAQImHTN7VdNzGsByWVwx2s0MHBryhC6HCpQzhrQfFcE02nKlksCFGHZRPEMHUEU0EGfJ4S2xnGAYSzlj1TX3xocXC4UzIUw2VZf2uvCBwW10LfpkpCcZ3C2AFVfZu1U6N/foWohHMYIXQwJuFoV4iewVbIdIFMX848pCvZ4+ObFzaWDAs3cpt/3uOrglQLhWpxjwhhQeAIJG17xN2XJTcRDPapQmZfu4hnEKJz7oCSbuCw/ocEEL8lcMhIJ8QB7MOFEGU0K8J4yZvLuFTSuhYmLJP8qBTMSPuEh7DBVGhGewKI36jPegcnKFaEcWdpWjtWO+WSQvpywA6IDnbUZArODyJ2STZXxLXbWcioP22KcK4wByV0eIlaQwgVYdB8GDhIZLBv4OPTp2gh+xDR/Kgxdu92lpFItpvDfBO0WRQTbMaXuAunNyopqSYpYJrF0HAyCCG6/25U5pJ/1PskgeO7VAQB5IFXwCFRTNXAkWxpDytCBiGUaMgIHZyd1UGI7vvaQsjGhlREp94pAggd/X5fKWilb5rbgptJNZRUEGOwUoDwcG1zBs1LeAxSHxfuipcbvMbQnsFzPXXg7mr05YtCFouLrlchb/rDYX/Yd0UhkAklrIiZXfVg8RJP0WIwbVeHsSLMDclOUISjX7vnTn5y2YgW2B3KxPXlIlvbBwQUL8GGBqTPh05iDq8IS2VNbY9uCkbI5rEOg4s6wJEY5Nz37+dUEi0QQujwFGcIFNjQlxslviQjOjjzIZy5WjG8frIJ8ZfqeMtOuCrYgVuAWEVmU5MA4hyEaO/yBkYYElpUYnshZdchIzo4zvGZEzC7FfeGNADhstOHkB5GyPMN3HCoi2poSRzkjWsnKQ2HjiCmJhmFk1t9jKiDEERXDU1EB5tMxj8gey+79whdjh7NgJjiznctg7CZbRL7FmqdBA79axiCc4B3BHNweAqiGh48oqKi3SKDv3/7sXsDGiAz2Y28REVcSVwr9w737mX/CSB07JUI1yQcInzRibg5KzieoiOAWFoZ7su6Y+sbeZ+NvscmmqtkNpva9LtbJdZIRyGEkt1ea3ESTTg6gsmXEKEowRg20IM2t5XD7rxDX/2iIJborkhwyI4XjX5H4iEWSlqqsjeQ7KIDDDoAYUHCfbxqwq7FtDCCiRjXa+GqBw+BRCOvfn1R+Odm9woZrEhPgm/TmuDfZok/1mf42GxclnZpUWwKGIiusz/Rd9Nh1prfnavlq75wbZWoxeIhrAgloEgI4fIhISHKIP4k7Pnz58HAreFoZyhE1hDlZfwjkaAsespUJda9mhTvUYbGKmKx3sVwlASSgQsxXKlQiWJChTh4ram+rcNDdgGCpVDsSlARybvXr7/pYQe7Fycvo/ibI8hdAGmVkFIJ8NC+CCEIIJYQ4hTCaBzCf9DjKj2LYufiX79+BQgk200SUIKwNgaB4eTBgxwmNkqaIwUxgz7ycRA4rCQ7mhBfjiC8FsWO2Z9vRK/foRrvBKI7LOteZuEEFkhI8Q5EIbZjnNiRGSm0bI6DmCQGJG6HoDe1RCCqkBcp0V9C7i+0zSqM43juq9bJ0m1NVxud2q5GRZ1/wLnOiykTCwoK242I9I8rUdmFU5EO1oK5s93NqvZCobBK8KKaOtQGFWksBoSsd4VAx7ZWVlp6seG88/s8zzl5mqzqT9elSbu9nzznOefkfdMNvD4wMIADiEpip3hd/k0SKwLDJAZpiXu2IPG2j5xAcgkOh9Q7fMmwKMkh7WL4+AmSWBwfHxgfIF+yOkUKllgYJA0UQ7SRAMlkKEomQg4ZxCncdShy/OxFgOz1ijwJpNHhDCHo1pe4pY1Bxc/1Xrx4MTEjWSRj9ubIOLf4HObN4o6QAEnfkxFIyoaWjS1Pi4HwiChiSID4ZUl3IDCFO8Luvf7OUwwsIC9//33iPTIv+Xy/nQXUsFapB0ps/LopuCYBQkHS1ISxZRDDb5/TLYYhBrGRFR3OEEWox3OiiIym+vUkdVDq8f38zEziy2OTf0w+PTU1ldmPxC3BA6VuEgvLYvwIhP5Ip9PWJF6RaGljFMYvtnt4c2GB8WcSKoIDhg+rmiQ2iEYRMcKxomWeFwVv+R1PZNo/+JyfzZ3844OmJqF4giROyCoh1UKbqfitWioWVwppCSVJpYBUqqOjNUlZH2c0HtFS6r6Nt1GMtphEK7LRH7LuK6EdtT/9/kbAhndAfUpf8Nb+8VdeSfAMth+bnHz6j1RTkHhUQrwslVI+ORq3KYV8UrNWg7SV89PcAURSDY/nC6ktEYhObgEynIwZPrPk+0MvTWCEtdI+cGVcMyaGV+SHqxK7WjJjB6eYvzJdQOoczQ0jrFLWIxuNjlwy5KpKGFqr9vnuQ2T3SjImV6CVQgRyie9XyF6DOAXJrbH9l/QQwy8cmmXfi6/z42FcA+3rS3z6+djk1PPv0exWkOYYgXigFKeTxCELyeR0sVBd467LPekMkIUkd62WRncfYrIV53CpUC1JTVp9uRFIGyUJp2P3AVk+Q1aXRbIeDp1f4enHgKA5xN/8plPr5FCfXN+ZnZ1NfHmQnz+emjKInyv3hFFmT13eIRVulmTOWuDuTiqSKnLPaqVFgmSUzwqynMrdFQyWTIRYQfYJ5Io1ur7HjYO3+JNvl/E9EOL1gGfEMCJJ8E+c8O8rzM84pN5BZfZTKfplePNMYXeAEEbOdEo2KGU5UHqkQMWKu6SVdA1cxdcikAKPlyHI1MbKqUOrUh7tLyikOULIJiWxPli/MXhjQwUQ7NA9APT0ACP44EjIbIJh9fz8/Mzi+Ji1ul8Ycwjd07X/jiWGl0Ls5FeRA03pIsJ9K1TkMs1QfwZS9zepikIyaYJEISXMPPs4AsQkf3Gn3NxARIYHheBHrwBCA8aTTlOm4KJbYh4F6wkQGKHDXQKEgnRJ9jO87rpLIDa1LtDkBsnRJECWZcww4a4wP1twME1dsqFlk7RC+EpNySEagVCFG8mY0g4OPR68AU7rOV39cOrUrkdF0cdP5L+ZGF8cX5zZCvGr4A6Jkr0RguRqMrlg6zqQa+lMRQrDTepSam/3V5BV7iu2GsSGFpLSihRlep2REyoiS+IV7tq3b0nav3+pf5jPlvTYW05rBMDhbzlVdWpq9uxJeWWYfTWxyI5xfHxmZnyMIxZJA4R7apDm2/YGCJK8QJBESDnpKaUsl/L55aSBtdFlJyOOCnNWPzc2mLUEYg29keTmbbfdAFBgLC15P9rzX/dKLqWQZ3HIv72RfSGR/XMAycz8Yg0SJWy3YrM3dXXRJTK45A+3Hb5AdNOokAwtQhbK1ct8Ol0xSNGWmRQJE7BCRmXOWufGIJ0MZHOQ/HU1SZZ27Cj091d1GEkpjxw5ktJEQUYiN7QkB7mWIO8/oSJDr2VPAJmZGdtPrCREIbWShDB1yWHYDl8gNAEW+QsNUkzxaVnnZU0pl5vWBZGvM0urQlgNd+wQCEsBEM8oAjFUCuVyWWZB/RZKKeFpsIkPSSiJDK2+Ie0RTs4hGRhfHGtqUolCUHiTxMgkHP52LAKxiUmbAAjTsUBSeYrQWkuZh5et8aEY5JBstOQG05FDpvNV7YRdttEhDNltIhKD0OxIjstpOXnnw/HsCV4ibq2IEHzeutPf8d0sEJA8TGdesdcrOW0KILmUpsQtGUgZe+Go64iQqQoxCBK5we9A8qOSaoXtAkOpVQdkLi+aaz2dnT09/K9Jp/mfZCKkbWqEBfGsXKxKyAo/REnoERi1brei3LrGC8S+bJXnnZ0LL1imma7a20NFiJAYzBb2kvT7anjVzOMGIXKDYQRkQcqAAT2RMbpW6ezslN57JKaTiKXHIYTpl4gGyElKIhUJDG92si1Em7+L5WFYumbvV/qM76rKlkRn3SJjqbV1bWGBZVIkeSB+Ys+On4RJKQckGtI9VICmv8qRd3QIpCPEKAaJEihPjMyNjMzNYWFo0ffZP7PZYxBIdOytg9itZoM0dcnJmQ2ZPmVSHqQUMsakN/Voczrhcjz5jP6VPFAKL654OE7gp3XT1X5Evjoa9Phxr90tkaGlN6IECNE2CVPXE3OSHwhv4ZBuz2aHJu8kMIDA0ERKjWQQHHJybJN5c8/tO1m/mP3p/zOAqvRMUSrUrlNvKUOuSan8dLgVggiESghEDRytHjbPwPXHu7u7+T6DGAVITVLDXPzhtx9+0ySGmL1OnMjyphovgDmi5RYIjsPvvvuulGR49cq0LMCyqVxfljVjNZ+UlmB3LKt8fm1Bfltr1ahFC0GkWS5TCoGg0OPtlvydRLK2phPXWneExD7xxhfO799I3ucX68gLJ+TMVnayBsHhMQgffGjdvgcIoQQEx+BOGWJ3UBvL5lcymfkLr4VKRiOUlBaC+euIQBhQfNXNDkM8JXn44ZtJAmaZ5yVCkCjFm1/z7a+/kF9JIiuNLpJjftFCJHUnaL3bh4eHbxiE9G8K48rGHkZYl6xCl5aFMchToadfRvO6OpTZW8atFkMpl1tpJffIDcZUPpdbE4YYNA888Pd1vu1mtXj9+nI3kgDxdOivDvLjF2+HJE4QHIsOaSwJiQzdQO40iGV9XT6qRLO+1KWrkVqYAQoFmXWjBIstL/qZtTfVUIYaYh6sPsCn2LqRRIrnbr5J89NHkk8IlxVegCIVMUSjxLfB5giQw1A8h4HoI0RFYORPAUNlaBgkmbRHGTgew2GMgOg90HvgQMAAcYlGCHXp/um7GN4um1WHnvt1iTskBokOIEpxyx6HCMUs4YQSmJYWihIkruh0hxXjQIhLooXUAzT4f35Jo5Dsh0AIEJ1/a0uiM3wbLCNLJcQlhw3CI6SLyxhhoPH1gmH1l6JAcUinQaLDFPeROgmWqIHj0TuE//PRc0ePHn3pu08+SrA/IRESFvfQ8w3bFC8JEqMQHArZCUSiBoMYhj+JoiiFAUZ7aBwijl4U6mi0GMeK47GGgv/1OUJF6JHZvtAjCmkOm5Ttw6MqCRQkasEBxBkN0X2MtQpdLzGNQqQgVg9DuMRHmZMkQSFxCBUZ4aWiOIBYXPF/Eg+Q5xzBXqwpKrzxoYiFukBh6hJJHcQpW0nUivQ6yRkCmXgHCAWhIidfQ+IQEtrjXyRN20qkxWNjWDN5rFNsOnZLJi2z1n9BHtKPvb29/LJ4gcLnX0/geItefykxO3vc1naFSFv4jOXd4bcoic9PzqhVpEkgQsGi/1l0/vILLkJhn6hjyyBOQRASLJ4IquEYWkxaRxlfiVk28ycpyeKYQoRhp4/C5NtAaY4SilIXGO6IFOIQihIpImHf3tOpEJFwUFCc4RFQDVYfgVjemeCtgGzpzw5lI0Rex94fL2F6YVTik7AWxSne5eZorpPYiX2TRIhK0p2PdfgyIhJzPL4lNU28GaQBQoscPTcxcf48u99ZXpmc7WNoRcddeqlGTomZhsJECkPLJRpFuCNAkHikRRogVhIkj9QkDnGFx2GRhsMg52Ccv8DKfhLI3MjxSVXY+zhaPHJiHYvvG01i0xLHbwhnNCQaHBIb3scWgytA3HGvRD5yk/9jIqcGYVChuHDhs8RZCsILrLmRNxBI/FpbuFqmlwCoiksapyV3xJHVLHFFvUO3kdbtOra0JO4QxvZxCw6DTJy/8Jnkwj+E271qFGEUxvG5AkUQlPi9iC6o4LLYrIVBZAVvwMILEAtjJdjIFoKt2EhKiyxiIaybwuiKskQRBSWsF2C7XW7B/znPnD07k4k+MaOmmMwv533n/ZhJ4QtF1lkfN45mFhvQfV/YiaImFhJSVbgjVv2ZROQUMvbrcFCRcNQVHR06RP/vJCV6/i4GdwBxBxlxuRkcsTvIURS3RD+xOCAjSAODNltx6Lxnlh1WjQWi05yQhIPsBORVgeKFZ3Ys3vQti6+NZ1tUtuzJsz/ABCOJKHUFCUYOriIQOfzEnDbnjJTDq7GMuHjRDhwrCUdCDEE9Xq0LMiY/VghF1/NzNWEmEd1ut+0SKGbZKzkQCDlqjFDECKLbLghN4VWOYIhQTwdOOmB4BHHEug2Itpvy4hHr3k09LY+Ulbd021DipZlliX9Us58iet5JO7OfGIVXw1qVMzA0RYZkRHxuufvOFL4e+WCOMZAJ82rtf1mLEiN2MKwoLd84DgmWhhxsVGAQQ+1qVU0q+zhdXIymyBCNKhXGYNL4AMWztbXpuKB3sJsy3X45oRWRtoW//WemqChthNbEkMRgrxyM476KvIHgiEFQxchqNCdK4Y5sU0yHbSl84TPz3rXt7em3J8V0rEwnpytZrChNQlQXJEck+UeCgaLKMAcF0dBB11A11Df+w1A1jKA5MIhTXNEmm0GPPjy5//tGsY3HMt6sLO3FkERRbyklUP7LWEaQ8g0cm18hcYgcZF9G1sIVMoDgcrqrrZX+9/n87vOvNzc2bhZrkUn18smeVT8SanLcJQwqDYilRlVhxCtRQHI5lTerBkh93HAFCC4Iw+rqSv/4YHDt9Gg22/j1ffR2Uty7p12IZ5/Lq6+mAqGY7TOX6CZISP1FcRQkFTKEQo7WmUpJomXVFclYzEdQ2NVcphBmYEp76MTZlV/fZ+9/bE7m82Ld8uDBrTtvtKgnuBWXVCCngXhJjopSDQglGImA4Q6tcJEEZO/oUR/Foxim6LZAXENg4cl8a/b+7WROJsU7C/Pg9TfnaxElS4LDK2K9JCQEjg6pkCMVIEhsocSQvlwRkoranUrFQEGv6KNA4LF3h27PJz9mo9loNCp+/vzJMI9l98pyTKKaNECOuyQpaZAiGMsGECUDiEoSEFEqgnRQDYpBv6BXDAbnTqA4fL3Xu97z19Eu4BhufSFAiEl2cyXJ4lkWlUQG3bYCgsQpYOyPBKUiGTVEODRXVG+XRAkFX/Ov+vAthtUCxVkU13tXCRA4reFoC4dBPhEvyk6uWDwqSkIIBUmILJFUpMMNAsgghW2UBsQkRBoO1dVtVKMNI2rhCpf0sPS/KFtbQEyCZWdpCaYpgDeuhGhIdIgkwuhThmBoyYEiBRCEID5ixZBoGEWGxWaJXYB1DRhHrsFQLTI90heDFA/LfPqzaKApybYVDofoVxRrSUXsXBmjrIF/dN2g5J6vB5CiFq3Y4C3GIaqB4mmZlPQheIYGeeySP3n39ntFOoLBReEAQkliFdygiMEPh/pDGf0jIEjqT0WckM8R7DsyZhwZnMNxWIx0SPK6ZAyHxWPykE8glpAYpOpwhiAmkUUxgSHCcSwcwWgOFiVH33LcbllAMGj4uGedo4EBRIoSQk3IX7rtIKWBKAjCsEdQEAWNAYOCG4OSA+gq58g9skgOkBN4Jy/kyr+7rFfMEAsTVDTMl+6eNxNmgEgiB8PuASmGHILc+ZalaKKwQ6dP2l4y6uA2Jf4NHu/de61Y3B6Uj/6cUPsqCtKMGQRC5wSElCYQhiQOMTZ2rF5b4hjTz2YQfbRQjrHlgfQLEs++WJxBUInt8pYa+OYMDJUMCIw4AjmdBqRmJI61HWkrIEpLiC0GRAEDyCed5enQNg+IHC+KvsVAJy0XxXiahUUcSEuGAocgIAgQMQRJY9Wgx7EZkBRlhuGLpziA9AruclIefjKk3n1lRXhCsdwyaDQTVagrTKeQayDTrjJEjOOxIN5ruR4a9Mx5l71jSSjRkDCqs9j20TEFy7nzZmOD/njbtTj0Z7RXQDjhDKNdDYljBjkSDXt2vx50Q9wapkhCJpozjm6tyiPv9n1dNSNJTQgQVYGMuwMPVQ5BkkAsiSOthWMHROvhWBDX2WMZMqYzRVF0d9U8OAzhP6prqu22nOQiIX8O1UGpXRQR5HIOIdNjk0BgtEMQHEDKoYJkCUHiSDIo4fwPQUJf9SENlwHdSaKCqB70E4DKDQ9JHs6WJJAoAtkBscPHWg2ZHPcmpjC6oUQShyHEECSrlrwJEgdbL4VLguRhynFvxRFI1wOIHd8/7+chkWRYgvEiPIVIYggdBEQlQcJDBVnojJWEUhBnBokjeRZjv99fYCBf5LerM3Z1GoricBVU8L8RHf0LhJLFQWgCEbJ00SEdhDqYIUiwjcuNipCmi4NCCCgI4mDMG0SXdGrJEudO7k5+5x6uEb+X3ib3lr7f13NuoY/3eL8P8AtqoYUv//IZlA9yfADhBwif/kcm9RGf+ASnyOdrN2cnnz69f/+7wF+v2et3XHMF3Cu3v9+4x2t78+3/3Hx764mKwOz1a/tRd+LVQ1gs+H2C5Wr1fPUcHisPlL3lYn8B8devd9/Do0ee9+IbP0VmkDuPw/MeBcHdOA68Y1OkSnHygrsQDKemKYoiTaqdUCWpYYLrZAdJknJWMWvXu26s6z7a+ltf2ESbKIqyLNNRVWYS/ZWEZwQ5U5H5fIkJ4GJt1EdlnNNFHN8V3geooMFN4AKNRypC6mOTJirSHK1J4DGHiElAErNsCpMamz8Fk6Z4FEVSdecOk7Fuw02Y+X7k8EFMbG/lM+uhJnyB9dCKgHWZwAccUp0YJBkmeIDoeFYEFUKzSuoiVRFMhgAGpsCk5K6oCC4KpTGNFmd3Hmvau63HcTyfz2Ob56U/gYV4lCFIRdRiYhKhJuribqvlVCB1+seE3IQXA62GhxoirpGka6rUEP448IBBKmKMYXIH3XjudrszQgbX0+nIalKNX/onm03etzVfbb+OVGC7dRZolOE6DMuynC0W5J3z8i8EkZhEWNFBjZwXMIiSmGh74WE3hedEkADRkNVTY5JOmj+VvXAahuEkIglU5D+3/YcvvLuMIy5J0bDYmKpr8zfPIJv1fZ9NhfCj7K8FGus8z2mtjyvbIvGD5xJxjsEC1MTBmbtQGe5VSUxURNODU0EERIT1oUmrTqgSY+QlF4/CVD/RqIn5QQKtw5zItNIv2RHtlz70xUMir0tOt5TC9ZNCS+XrtRz57OpzssTy/fbxfv9gtZyjIB5sd8l/BxgmmGWwYtZEmksKIhskAKehoCF4x2SnIpVhDxytiDHV4TC2fR6WWQS2Z8oy7/u8lN7PMskc4pihoSKiUeKhWP1cSnJtdolykARiePB4tbRxsZlYgA4O1vUNmpJYEdnkdBZoi2ljiccF79WUxFTsBLoLES2JiPw8HOo+l8Bk3GpWZKxSlKHGpOKWXDnWoqDFEGaX+Lfm15GwxJQEEdkyTsWGl0N4+ZJhgmlKovUM8KAgChLuGXlKyoyJVyCCBhVRRILDivgkJKaEdZnFBGRCcTtcNEiOgnVQjSuXLv8B+oLrMXOS1YkAAAAASUVORK5CYII=", - "description": "Displays a latest pressure telemetry data in a box layout with background.", + "description": "Displays a latest pressure telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 ab1533e4c7..8ba60596c6 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 @@ -3,7 +3,7 @@ "name": "Radon level card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest radon level telemetry data in a box layout.", + "description": "Displays a latest radon level telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 5785502397..b0b0d732f5 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 @@ -3,7 +3,7 @@ "name": "Radon level card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest radon level telemetry data in a box layout with background.", + "description": "Displays a latest radon level telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 a231670288..af02114cc8 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 @@ -3,7 +3,7 @@ "name": "Rainfall card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest rainfall telemetry data in a box layout.", + "description": "Displays a latest rainfall telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 1fe9cdb53e..6f6899d8fd 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 @@ -3,7 +3,7 @@ "name": "Rainfall card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest rainfall telemetry data in a box layout with background.", + "description": "Displays a latest rainfall telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 3e83976e26..73e0635a3b 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 @@ -27,6 +27,9 @@ "weather", "environment", "air", - "aqi" + "aqi", + "pollution", + "emission", + "smog" ] } \ No newline at end of file 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 4e05bdf267..efc1b71eb2 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 @@ -27,6 +27,9 @@ "weather", "environment", "air", - "aqi" + "aqi", + "pollution", + "emission", + "smog" ] } \ No newline at end of file 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 af275581c6..2f7da25f0a 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 @@ -3,7 +3,7 @@ "name": "Snow depth card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest snow depth telemetry data in a box layout.", + "description": "Displays a latest snow depth telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 1505e705e7..1b72e68163 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 @@ -3,7 +3,7 @@ "name": "Snow depth card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest snow depth telemetry data in a box layout with background.", + "description": "Displays a latest snow depth telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 05204d5204..5b6ecaa404 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 @@ -3,7 +3,7 @@ "name": "Soil moisture card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest soil moisture telemetry data in a box layout.", + "description": "Displays a latest soil moisture telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 ba153c1ba7..0b4f945371 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 @@ -3,7 +3,7 @@ "name": "Soil moisture card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest soil moisture telemetry data in a box layout with background.", + "description": "Displays a latest soil moisture telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 812fb8d846..966cdcb005 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 @@ -3,7 +3,7 @@ "name": "Solar radiation card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest solar radiation telemetry data in a box layout.", + "description": "Displays a latest solar radiation telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 474d056fd1..4cba27e99e 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 @@ -3,7 +3,7 @@ "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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", - "description": "Displays a latest solar radiation telemetry data in a box layout with background.", + "description": "Displays a latest solar radiation telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 8986d46d23..84460a71fb 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 @@ -3,7 +3,7 @@ "name": "Temperature card", "deprecated": false, "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAApVBMVEXg4ODg4ODf398AAAD///8jTMfh4eEhISGrq6vCwsKenp7k6fi2trbIyMhaedXI0vF0dHRYWFg/Ys4+Ys7Ozs67u7vn5+c9PT11j9zb29utvOqkpKT5+fmRpePz8/Py9PvV1dUwV8svLy+QkJCesefx8fFMbtFmZmbW3fXt7e2Dmt+svOqsu+qwsLCCgoK6x+6RpuNng9kxV8pKSko8PDx2j9ydnZ0akTsKAAAABHRSTlPvtyAAaBr7wwAABsRJREFUeNrsz0ERADAIA7DScTjhgX+Ds1G4xkHwGKjtgg/E5HoNIjoPmEDlCbgSKUfEOKLGETWOqHFEjSNqHFHjiJpPfhmtthEDUfRlpFHlyh4VhEJImkXKWiUpelnj//+0XluYlGS9xph13Oa8jHbmCnTQ7sN+JZHFakEj9LpxI7/8J0WelkqpuxEVxw1P56KNJrq6CDzAcuRGnAvsnevoXBwbomuLrJRa36+VWo1uZtmXWqomyjaUonX1hshJJ6jAloIaxKE48QiGwhhVu0tpynlbeuoqJrOK3MPh14tSv4+L6JhkE3vy7EtKgwxsyDB6bIkqi+dAmVMMgX1GMCBoKHpCymEXR63TUDZxdpFHNSkirLGy5BPRFhI9ugZ113BsUT1EUENuZ3cYvokkjcRGo+vmFqHFpMiQRAQrH9vRiH2rlXVmLxIZIhpJV8V/EIkYcBIpnD9ZJCYB5qNI3okUAU3EsBgZF9kICLN/I8+TIiX1RD29EwloJFRLGDaRFjiIDH+JxLRPzS3y/GNSxHE0NoV3ItFWTPtNssaXJiKcbYRhxyW0h4PIlovJqfu8VytWAsFzzETisYwQiQUidUilR0RS8pq2Ue/XQ46WqHIh7RkPbrcLmIExuLLIadrNnM3cInePL/+HCDhbxElH0/wjIqe5ssjTWjXWC7ptTogs1YEl3TbTIq/qjVe6hIeHCyKXi+BCjl9J50YO85PG+fb9WOQPe2aw4kYMg+GLMsiqzUKxRY21xr0sdcGH7fs/XGVnp5OWWQodSl3wB4kj/5KTL3ObYZf3lr8ncnvk/d92YPC3IpF+0rBEk4iIN1EA2LgIW0seFNb3LQKXaCL0rAQ7WjbgQF6gOu3ucNxUpGfxfp5GbzN+i3t1WeTz7eDbOyLYClqo5B3xLuKpx7oEQ14zY8hCJG+Ih0hOusMw4C4S7y2KRiWVfWM0lusir7eD13MRYQGPUFKGrYJBeBRJAC5BaKOqFUA9Y890J4QHkWDHS8nqZ8MojB3n+XRd5Ol28OVcRBUwIYih5uFXEa0igTWjyjYh3UUsKfYQ2VsUMYgatbEx9jfKl0Xg+bbzDOciTAxeRURi8icihX78u00A7yKhZeXxioT9vJgyWAthiIzRQnJdRE3OPRSDMUauVBgRfKoVHbjEoEQqG6pIX4xWsVcmVT+uCIvm7MohouOjRSmJGe2+0Rv1hMsiyodPLx9fvj6dJA4Vp1/ZPIpo5QRqwzdJa4JGumZQvV5lm2xwIC1l8C1pMKjYP7gxoEgftWPG6qKNRv75vV+P8KcIg6CZ5Sb2BRFGmzDPIpIrXLgkLOuxwv/MEpmNJTIbS2Q2lshsLJHZWCKzsURmY4nMxhKZjSUyG0tkNpbIbCyR2Vgi39k3g1XHQSgMbzyrAwpxI4EgggRJB9IG7vu/2tiY9jcT5zYzAyYd+i1KarWcr8cYTSywY+v9GErlXaus+A3K+00bbmOTMRwioiQltOFiuQzFZpoiN87Frw5fVVvEfhGYPD7Iy69iw0gJjYR5R3mbuiK2J5BvvBno+6g0kWx9fO3QYo2pKmLojhu6QaecWOwqmstNKlebhMyBsnu2uNKMk0ZqmhkqiqjsybXPjoXG8VdpZ1G3uBkizsz7JBxgX0lELvGib2iE1aMXISjUHZctIgGVerv6YllNxNIdXr3DFpZRJHyhn7RL19JEMNeMYdjBvoKIWv9uzVPLJaUEP9MDrIsm3uvHOd1jpMhSMlQQwRhq1iI25QahJ62p0BRZYKQWKSOSB01RKDIVMtUjSjDquRJO9XXYQUbMMSLIj1pnSkIkR/k25OOEOXyutdA/z8+2IKLEq/1t3UlE0sAj/lQENX6cQyQNmPz2Ina5lr+NiGweyG0oWryPSEMJRI0Jlea3F7lSxLH4JxF/vEjyCOKvRcw5ht/ogTningsiONUF8UK/dgwuTFGs+IZ2c9IpjCeVRLC4AhZxYdK4Zz0AfPVJY3Dw2MyDZwJi2rdCQ0FFEdalhcOQh9FRxO/onhOvOydxHRF43IrdbbKo8jImvboQsa6w1N166MAZ6Bn9/Zj7VyMS1ElfbHajjuuJ3GiLQlwkZU87Y+oo0TQOfyuoJiLLIhG/uW+3zwR04hQi+Q1Q98IDd4OBVqKmiGm2PCJgkwJrOit2cpEumd/UuZ6PWKUCLHbBsQl/HvT8F3xEzsZH5Gx8RM7Gz/bugAYAEAZi4EjInMy/RSajfFoHp6BCaAmhJYSWEFpCaAmhJYSWEFpCaAmhJYSWEFpCaAmhJYSWEFpCaAVB6kbUIcvmOXufDpDMMnZr3r9XuzV/7odnfTPNiLwAAAAASUVORK5CYII=", - "description": "Displays a latest temperature telemetry data in a box layout.", + "description": "Displays a latest temperature telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 e6743fbe8a..67929b09c7 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 @@ -3,7 +3,7 @@ "name": "Temperature card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest temperature telemetry data in a box layout with background.", + "description": "Displays a latest temperature telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 cba061819f..0a12fb0902 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 @@ -3,7 +3,7 @@ "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", - "description": "Displays a latest UV index telemetry data in a box layout.", + "description": "Displays a latest UV index telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 73b0f89692..2c166a8e4c 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 @@ -3,7 +3,7 @@ "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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", - "description": "Displays a latest UV index telemetry data in a box layout with background.", + "description": "Displays a latest UV index telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 a868a8d810..93300135bd 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 @@ -3,7 +3,7 @@ "name": "Value and chart card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a single entity telemetry data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "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", "sizeX": 4.5, 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 eb676a517f..896a401b8f 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 @@ -3,7 +3,7 @@ "name": "Value card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a single entity attribute or the latest telemetry data in a box layout.", + "description": "Displays a single entity attribute or the latest telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 5afa70f0ee..960cb4330c 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 @@ -3,7 +3,7 @@ "name": "Vibration card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest vibration telemetry data in a box layout.", + "description": "Displays a latest vibration telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 92b82633f3..0900ad0308 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 @@ -3,7 +3,7 @@ "name": "Vibration card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest vibration telemetry data in a box layout with background.", + "description": "Displays a latest vibration telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 e71ff3ab3e..dd55a31ac8 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 @@ -3,7 +3,7 @@ "name": "Visibility card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest visibility telemetry data in a box layout.", + "description": "Displays a latest visibility telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 86d6ce56f4..1038d1352d 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 @@ -3,7 +3,7 @@ "name": "Visibility card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest visibility telemetry data in a box layout with background.", + "description": "Displays a latest visibility telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 0ba9f98e86..b16218e9c1 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 @@ -3,7 +3,7 @@ "name": "Volatile organic compounds card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest volatile organic compounds (VOCs) telemetry data in a box layout.", + "description": "Displays a latest volatile organic compounds (VOCs) telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 8e205f70a9..8984136576 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 @@ -3,7 +3,7 @@ "name": "Volatile organic compounds card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest volatile organic compounds (VOCs) telemetry data in a box layout with background.", + "description": "Displays a latest volatile organic compounds (VOCs) telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3, 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 45b63875bf..077f03f84e 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 @@ -3,7 +3,7 @@ "name": "Wind speed card", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest wind speed telemetry data in a box layout.", + "description": "Displays a latest wind speed telemetry in a box layout.", "descriptor": { "type": "latest", "sizeX": 3, 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 78e3fe63d6..b198f033f0 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 @@ -3,7 +3,7 @@ "name": "Wind speed card with background", "deprecated": false, "image": "data:image/png;base64,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", - "description": "Displays a latest wind speed telemetry data in a box layout with background.", + "description": "Displays a latest wind speed telemetry in a box layout with background.", "descriptor": { "type": "latest", "sizeX": 3,