1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-01-17 02:52:12 +01:00

Fixed conflicted merge with origin/next.

This commit is contained in:
Brian Webb 2012-07-11 19:25:05 -07:00
commit 3fabdb9963
133 changed files with 8425 additions and 5039 deletions

View File

@ -1,5 +1,13 @@
Short summary of changes. For a complete list see the git log.
2012-07-10
On Windows the installation mode was changed from per-user to per-machine
(for all users) installation. It is recommended to completely uninstall
previous version before installing new one to remove per-user installed
files. Per-machine installation requires elevated (administrator) previleges
during install. But since the same rights are now required to install
optional CDC driver (virtual communication port), it was deemed acceptable.
2012-06-04
AeroSimRC support merged into next

View File

@ -488,7 +488,7 @@ uavobjgenerator:
$(MAKE) --no-print-directory -w ; \
)
UAVOBJ_TARGETS := gcs flight python matlab java
UAVOBJ_TARGETS := gcs flight python matlab java wireshark
.PHONY:uavobjects
uavobjects: $(addprefix uavobjects_, $(UAVOBJ_TARGETS))

View File

@ -109,7 +109,10 @@ class UAVObject:
def addField(self, field):
append(self.fields, field)
'''
#
# Support for getName was removed from embedded UAVO database to save RAM + Flash
#
def getName(self):
"""__NATIVE__
UAVObjHandle objHandle;
@ -143,6 +146,7 @@ class UAVObject:
return PM_RET_OK;
"""
pass
'''
def read(self):
"""__NATIVE__

View File

@ -58,7 +58,6 @@
#define TASK_PRIORITY (tskIDLE_PRIORITY+4)
#define UPDATE_PERIOD_MS 20
#define THROTTLE_FAILSAFE -0.1f
#define FLIGHT_MODE_LIMIT 1.0f/3.0f
#define ARMED_TIME_MS 1000
#define ARMED_THRESHOLD 0.50f
//safe band to allow a bit of calibration error or trim offset (in microseconds)
@ -236,19 +235,23 @@ static void manualControlTask(void *parameters)
settings.ChannelGroups[MANUALCONTROLSETTINGS_CHANNELGROUPS_PITCH] >= MANUALCONTROLSETTINGS_CHANNELGROUPS_NONE ||
settings.ChannelGroups[MANUALCONTROLSETTINGS_CHANNELGROUPS_YAW] >= MANUALCONTROLSETTINGS_CHANNELGROUPS_NONE ||
settings.ChannelGroups[MANUALCONTROLSETTINGS_CHANNELGROUPS_THROTTLE] >= MANUALCONTROLSETTINGS_CHANNELGROUPS_NONE ||
settings.ChannelGroups[MANUALCONTROLSETTINGS_CHANNELGROUPS_FLIGHTMODE] >= MANUALCONTROLSETTINGS_CHANNELGROUPS_NONE ||
// Check all channel mappings are valid
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_ROLL] == (uint16_t) PIOS_RCVR_INVALID ||
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_PITCH] == (uint16_t) PIOS_RCVR_INVALID ||
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_YAW] == (uint16_t) PIOS_RCVR_INVALID ||
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_THROTTLE] == (uint16_t) PIOS_RCVR_INVALID ||
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_FLIGHTMODE] == (uint16_t) PIOS_RCVR_INVALID ||
// Check the driver is exists
// Check the driver exists
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_ROLL] == (uint16_t) PIOS_RCVR_NODRIVER ||
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_PITCH] == (uint16_t) PIOS_RCVR_NODRIVER ||
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_YAW] == (uint16_t) PIOS_RCVR_NODRIVER ||
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_THROTTLE] == (uint16_t) PIOS_RCVR_NODRIVER ||
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_FLIGHTMODE] == (uint16_t) PIOS_RCVR_NODRIVER) {
// Check the FlightModeNumber is valid
settings.FlightModeNumber < 1 || settings.FlightModeNumber > MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_NUMELEM ||
// Similar checks for FlightMode channel but only if more than one flight mode has been set. Otherwise don't care
((settings.FlightModeNumber > 1) && (
settings.ChannelGroups[MANUALCONTROLSETTINGS_CHANNELGROUPS_FLIGHTMODE] >= MANUALCONTROLSETTINGS_CHANNELGROUPS_NONE ||
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_FLIGHTMODE] == (uint16_t) PIOS_RCVR_INVALID ||
cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_FLIGHTMODE] == (uint16_t) PIOS_RCVR_NODRIVER))) {
AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_CRITICAL);
cmd.Connected = MANUALCONTROLCOMMAND_CONNECTED_FALSE;
@ -357,7 +360,6 @@ static void manualControlTask(void *parameters)
AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_WARNING);
}
processFlightMode(&settings, flightMode);
}
@ -847,30 +849,27 @@ static void processArm(ManualControlCommandData * cmd, ManualControlSettingsData
}
/**
* @brief Determine which of three positions the flight mode switch is in and set flight mode accordingly
* @brief Determine which of N positions the flight mode switch is in and set flight mode accordingly
* @param[out] cmd Pointer to the command structure to set the flight mode in
* @param[in] settings The settings which indicate which position is which mode
* @param[in] flightMode the value of the switch position
*/
static void processFlightMode(ManualControlSettingsData * settings, float flightMode)
static void processFlightMode(ManualControlSettingsData *settings, float flightMode)
{
FlightStatusData flightStatus;
FlightStatusGet(&flightStatus);
uint8_t newMode;
// Note here the code is ass
if (flightMode < -FLIGHT_MODE_LIMIT)
newMode = settings->FlightModePosition[0];
else if (flightMode > FLIGHT_MODE_LIMIT)
newMode = settings->FlightModePosition[2];
else
newMode = settings->FlightModePosition[1];
// Convert flightMode value into the switch position in the range [0..N-1]
uint8_t pos = ((int16_t)(flightMode * 256.0f) + 256) * settings->FlightModeNumber >> 9;
if (pos >= settings->FlightModeNumber)
pos = settings->FlightModeNumber - 1;
if(flightStatus.FlightMode != newMode) {
uint8_t newMode = settings->FlightModePosition[pos];
if (flightStatus.FlightMode != newMode) {
flightStatus.FlightMode = newMode;
FlightStatusSet(&flightStatus);
}
}
/**

View File

@ -297,9 +297,9 @@ static int32_t RadioComBridgeInitialize(void)
PipXSettingsPairIDGet(&(data->pairStats[0].pairID));
// Configure our UAVObjects for updates.
UAVObjConnectQueue(UAVObjGetByName("PipXStatus"), data->gcsEventQueue, EV_UPDATED | EV_UPDATED_MANUAL | EV_UPDATE_REQ);
UAVObjConnectQueue(UAVObjGetByName("GCSReceiver"), data->uavtalkEventQueue ? data->uavtalkEventQueue : data->gcsEventQueue, EV_UPDATED | EV_UPDATED_MANUAL | EV_UPDATE_REQ);
UAVObjConnectQueue(UAVObjGetByName("ObjectPersistence"), data->gcsEventQueue, EV_UPDATED | EV_UPDATED_MANUAL);
UAVObjConnectQueue(UAVObjGetByID(PIPXSTATUS_OBJID), data->gcsEventQueue, EV_UPDATED | EV_UPDATED_MANUAL | EV_UPDATE_REQ);
UAVObjConnectQueue(UAVObjGetByID(GCSRECEIVER_OBJID), data->uavtalkEventQueue ? data->uavtalkEventQueue : data->gcsEventQueue, EV_UPDATED | EV_UPDATED_MANUAL | EV_UPDATE_REQ);
UAVObjConnectQueue(UAVObjGetByID(OBJECTPERSISTENCE_OBJID), data->gcsEventQueue, EV_UPDATED | EV_UPDATED_MANUAL);
// Initialize the UAVTalk comm parameters.
data->gcs_uavtalk_params.UAVTalkCon = data->GCSUAVTalkCon;

View File

@ -444,7 +444,6 @@ static float bound(float val)
static void SettingsUpdatedCb(UAVObjEvent * ev)
{
memset(pids,0,sizeof (pid_type) * PID_MAX);
StabilizationSettingsGet(&settings);
// Set the roll rate PID constants

View File

@ -0,0 +1,12 @@
/* Taken from include/linux/kernel.h from the Linux kernel tree */
/**
* container_of - cast a member of a structure out to the containing structure
* @ptr: the pointer to the member.
* @type: the type of the container struct this is embedded in.
* @member: the name of the member within the struct.
*
*/
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})

View File

@ -274,7 +274,6 @@ void vPortStartFirstTask( void )
*/
portBASE_TYPE xPortStartScheduler( void )
{
portBASE_TYPE xResult;
sigset_t xSignalToBlock;
/**
@ -337,9 +336,9 @@ portBASE_TYPE xPortStartScheduler( void )
PORT_PRINT( "Cleaning Up, Exiting.\n" );
/* Cleanup the mutexes */
xResult = pthread_mutex_destroy( &xRunningThreadMutex );
xResult = pthread_mutex_destroy( &xYieldingThreadMutex );
xResult = pthread_mutex_destroy( &xGuardMutex );
pthread_mutex_destroy( &xRunningThreadMutex );
pthread_mutex_destroy( &xYieldingThreadMutex );
pthread_mutex_destroy( &xGuardMutex );
vPortFree( (void *)pxThreads );
/* Should not get here! */
@ -353,13 +352,12 @@ portBASE_TYPE xPortStartScheduler( void )
void vPortEndScheduler( void )
{
portBASE_TYPE xNumberOfThreads;
portBASE_TYPE xResult;
for ( xNumberOfThreads = 0; xNumberOfThreads < MAX_NUMBER_OF_TASKS; xNumberOfThreads++ )
{
if ( ( pthread_t )NULL != pxThreads[ xNumberOfThreads ].hThread )
{
/* Kill all of the threads, they are in the detached state. */
xResult = pthread_cancel( pxThreads[ xNumberOfThreads ].hThread );
pthread_cancel( pxThreads[ xNumberOfThreads ].hThread );
}
}
@ -683,7 +681,6 @@ void vPortForciblyEndThread( void *pxTaskToDelete )
xTaskHandle hTaskToDelete = ( xTaskHandle )pxTaskToDelete;
xThreadState* xTaskToDelete;
xThreadState* xTaskToResume;
portBASE_TYPE xResult;
PORT_ENTER();
@ -706,7 +703,7 @@ portBASE_TYPE xResult;
/* Send a signal to wake the task so that it definitely cancels. */
pthread_testcancel();
xResult = pthread_cancel( xTaskToDelete->hThread );
pthread_cancel( xTaskToDelete->hThread );
}
else

View File

@ -0,0 +1,12 @@
/* Taken from include/linux/kernel.h from the Linux kernel tree */
/**
* container_of - cast a member of a structure out to the containing structure
* @ptr: the pointer to the member.
* @type: the type of the container struct this is embedded in.
* @member: the name of the member within the struct.
*
*/
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})

View File

@ -0,0 +1 @@
handle SIGUSR1 noprint nostop

View File

@ -38,7 +38,7 @@ OUTDIR := $(TOP)/build/$(TARGET)
# Set developer code and compile options
# Set to YES for debugging
DEBUG ?= NO
DEBUG ?= YES
# Set to YES when using Code Sourcery toolchain
CODE_SOURCERY ?= NO

View File

@ -133,7 +133,7 @@ typedef void (*UAVObjEventCallback)(UAVObjEvent* ev);
/**
* Callback used to initialize the object fields to their default values.
*/
typedef void (*UAVObjInitializeCallback)(UAVObjHandle obj, uint16_t instId);
typedef void (*UAVObjInitializeCallback)(UAVObjHandle obj_handle, uint16_t instId);
/**
* Event manager statistics
@ -148,25 +148,23 @@ typedef struct {
int32_t UAVObjInitialize();
void UAVObjGetStats(UAVObjStats* statsOut);
void UAVObjClearStats();
UAVObjHandle UAVObjRegister(uint32_t id, const char* name, const char* metaName, int32_t isMetaobject,
UAVObjHandle UAVObjRegister(uint32_t id,
int32_t isSingleInstance, int32_t isSettings, uint32_t numBytes, UAVObjInitializeCallback initCb);
UAVObjHandle UAVObjGetByID(uint32_t id);
UAVObjHandle UAVObjGetByName(char* name);
uint32_t UAVObjGetID(UAVObjHandle obj);
const char* UAVObjGetName(UAVObjHandle obj);
uint32_t UAVObjGetNumBytes(UAVObjHandle obj);
uint16_t UAVObjGetNumInstances(UAVObjHandle obj);
UAVObjHandle UAVObjGetLinkedObj(UAVObjHandle obj);
uint16_t UAVObjCreateInstance(UAVObjHandle obj, UAVObjInitializeCallback initCb);
int32_t UAVObjIsSingleInstance(UAVObjHandle obj);
int32_t UAVObjIsMetaobject(UAVObjHandle obj);
int32_t UAVObjIsSettings(UAVObjHandle obj);
int32_t UAVObjUnpack(UAVObjHandle obj, uint16_t instId, const uint8_t* dataIn);
int32_t UAVObjPack(UAVObjHandle obj, uint16_t instId, uint8_t* dataOut);
int32_t UAVObjSave(UAVObjHandle obj, uint16_t instId);
int32_t UAVObjLoad(UAVObjHandle obj, uint16_t instId);
int32_t UAVObjDelete(UAVObjHandle obj, uint16_t instId);
int32_t UAVObjSaveToFile(UAVObjHandle obj, uint16_t instId, FILEINFO* file);
uint16_t UAVObjCreateInstance(UAVObjHandle obj_handle, UAVObjInitializeCallback initCb);
bool UAVObjIsSingleInstance(UAVObjHandle obj);
bool UAVObjIsMetaobject(UAVObjHandle obj);
bool UAVObjIsSettings(UAVObjHandle obj);
int32_t UAVObjUnpack(UAVObjHandle obj_handle, uint16_t instId, const uint8_t* dataIn);
int32_t UAVObjPack(UAVObjHandle obj_handle, uint16_t instId, uint8_t* dataOut);
int32_t UAVObjSave(UAVObjHandle obj_handle, uint16_t instId);
int32_t UAVObjLoad(UAVObjHandle obj_handle, uint16_t instId);
int32_t UAVObjDelete(UAVObjHandle obj_handle, uint16_t instId);
int32_t UAVObjSaveToFile(UAVObjHandle obj_handle, uint16_t instId, FILEINFO* file);
UAVObjHandle UAVObjLoadFromFile(FILEINFO* file);
int32_t UAVObjSaveSettings();
int32_t UAVObjLoadSettings();
@ -174,18 +172,17 @@ int32_t UAVObjDeleteSettings();
int32_t UAVObjSaveMetaobjects();
int32_t UAVObjLoadMetaobjects();
int32_t UAVObjDeleteMetaobjects();
int32_t UAVObjSetData(UAVObjHandle obj, const void* dataIn);
int32_t UAVObjSetDataField(UAVObjHandle obj, const void* dataIn, uint32_t offset, uint32_t size);
int32_t UAVObjGetData(UAVObjHandle obj, void* dataOut);
int32_t UAVObjGetDataField(UAVObjHandle obj, void* dataOut, uint32_t offset, uint32_t size);
int32_t UAVObjSetInstanceData(UAVObjHandle obj, uint16_t instId, const void* dataIn);
int32_t UAVObjSetInstanceDataField(UAVObjHandle obj, uint16_t instId, const void* dataIn, uint32_t offset, uint32_t size);
int32_t UAVObjGetInstanceData(UAVObjHandle obj, uint16_t instId, void* dataOut);
int32_t UAVObjGetInstanceDataField(UAVObjHandle obj, uint16_t instId, void* dataOut, uint32_t offset, uint32_t size);
int32_t UAVObjSetMetadata(UAVObjHandle obj, const UAVObjMetadata* dataIn);
int32_t UAVObjGetMetadata(UAVObjHandle obj, UAVObjMetadata* dataOut);
int32_t UAVObjSetData(UAVObjHandle obj_handle, const void* dataIn);
int32_t UAVObjSetDataField(UAVObjHandle obj_handle, const void* dataIn, uint32_t offset, uint32_t size);
int32_t UAVObjGetData(UAVObjHandle obj_handle, void* dataOut);
int32_t UAVObjGetDataField(UAVObjHandle obj_handle, void* dataOut, uint32_t offset, uint32_t size);
int32_t UAVObjSetInstanceData(UAVObjHandle obj_handle, uint16_t instId, const void* dataIn);
int32_t UAVObjSetInstanceDataField(UAVObjHandle obj_handle, uint16_t instId, const void* dataIn, uint32_t offset, uint32_t size);
int32_t UAVObjGetInstanceData(UAVObjHandle obj_handle, uint16_t instId, void* dataOut);
int32_t UAVObjGetInstanceDataField(UAVObjHandle obj_handle, uint16_t instId, void* dataOut, uint32_t offset, uint32_t size);
int32_t UAVObjSetMetadata(UAVObjHandle obj_handle, const UAVObjMetadata* dataIn);
int32_t UAVObjGetMetadata(UAVObjHandle obj_handle, UAVObjMetadata* dataOut);
uint8_t UAVObjGetMetadataAccess(const UAVObjMetadata* dataOut);
void UAVObjMetadataInitialize(UAVObjMetadata* dataOut);
UAVObjAccessType UAVObjGetAccess(const UAVObjMetadata* dataOut);
void UAVObjSetAccess(UAVObjMetadata* dataOut, UAVObjAccessType mode);
UAVObjAccessType UAVObjGetGcsAccess(const UAVObjMetadata* dataOut);
@ -199,14 +196,14 @@ void UAVObjSetTelemetryUpdateMode(UAVObjMetadata* dataOut, UAVObjUpdateMode val)
UAVObjUpdateMode UAVObjGetGcsTelemetryUpdateMode(const UAVObjMetadata* dataOut);
void UAVObjSetTelemetryGcsUpdateMode(UAVObjMetadata* dataOut, UAVObjUpdateMode val);
int8_t UAVObjReadOnly(UAVObjHandle obj);
int32_t UAVObjConnectQueue(UAVObjHandle obj, xQueueHandle queue, uint8_t eventMask);
int32_t UAVObjDisconnectQueue(UAVObjHandle obj, xQueueHandle queue);
int32_t UAVObjConnectCallback(UAVObjHandle obj, UAVObjEventCallback cb, uint8_t eventMask);
int32_t UAVObjDisconnectCallback(UAVObjHandle obj, UAVObjEventCallback cb);
int32_t UAVObjConnectQueue(UAVObjHandle obj_handle, xQueueHandle queue, uint8_t eventMask);
int32_t UAVObjDisconnectQueue(UAVObjHandle obj_handle, xQueueHandle queue);
int32_t UAVObjConnectCallback(UAVObjHandle obj_handle, UAVObjEventCallback cb, uint8_t eventMask);
int32_t UAVObjDisconnectCallback(UAVObjHandle obj_handle, UAVObjEventCallback cb);
void UAVObjRequestUpdate(UAVObjHandle obj);
void UAVObjRequestInstanceUpdate(UAVObjHandle obj, uint16_t instId);
void UAVObjRequestInstanceUpdate(UAVObjHandle obj_handle, uint16_t instId);
void UAVObjUpdated(UAVObjHandle obj);
void UAVObjInstanceUpdated(UAVObjHandle obj, uint16_t instId);
void UAVObjInstanceUpdated(UAVObjHandle obj_handle, uint16_t instId);
void UAVObjIterate(void (*iterator)(UAVObjHandle obj));
#endif // UAVOBJECTMANAGER_H

View File

@ -42,8 +42,6 @@
// Object constants
#define $(NAMEUC)_OBJID $(OBJIDHEX)
#define $(NAMEUC)_NAME "$(NAME)"
#define $(NAMEUC)_METANAME "$(NAME)Meta"
#define $(NAMEUC)_ISSINGLEINST $(ISSINGLEINST)
#define $(NAMEUC)_ISSETTINGS $(ISSETTINGS)
#define $(NAMEUC)_NUMBYTES sizeof($(NAME)Data)

View File

@ -1,20 +1,20 @@
/**
******************************************************************************
* @addtogroup UAVObjects OpenPilot UAVObjects
* @{
* @addtogroup UAV Object Manager
* @brief The core UAV Objects functions, most of which are wrappered by
* autogenerated defines
* @{
*
*
* @file uavobjectmanager.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Object manager library. This library holds a collection of all objects.
* It can be used by all modules/libraries to find an object reference.
* @see The GNU Public License (GPL) Version 3
*
*****************************************************************************/
******************************************************************************
* @addtogroup UAVObjects OpenPilot UAVObjects
* @{
* @addtogroup UAV Object Manager
* @brief The core UAV Objects functions, most of which are wrappered by
* autogenerated defines
* @{
*
*
* @file uavobjectmanager.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Object manager library. This library holds a collection of all objects.
* It can be used by all modules/libraries to find an object reference.
* @see The GNU Public License (GPL) Version 3
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -32,6 +32,7 @@
*/
#include "openpilot.h"
#include "pios_struct_helper.h"
// Constants
@ -39,84 +40,144 @@
// Macros
#define SET_BITS(var, shift, value, mask) var = (var & ~(mask << shift)) | (value << shift);
#define OLGetIsMetaobject(olp) ((olp)->flags & OL_IS_METAOBJECT)
#define OLSetIsMetaobject(olp, val) ((olp)->flags = (((val) == 0) ? ((olp)->flags & ~OL_IS_METAOBJECT) : ((olp)->flags | OL_IS_METAOBJECT)))
#define OLGetIsSingleInstance(olp) ((olp)->flags & OL_IS_SINGLE_INSTANCE)
#define OLSetIsSingleInstance(olp, val) ((olp)->flags = (((val) == 0) ? ((olp)->flags & ~OL_IS_SINGLE_INSTANCE) : ((olp)->flags | OL_IS_SINGLE_INSTANCE)))
#define OLGetIsSettings(olp) ((olp)->flags & OL_IS_SETTINGS)
#define OLSetIsSettings(olp, val) ((olp)->flags = (((val) == 0) ? ((olp)->flags & ~OL_IS_SETTINGS) : ((olp)->flags | OL_IS_SETTINGS)))
/**
* List of event queues and the eventmask associated with the queue.
*/
struct ObjectEventListStruct {
xQueueHandle queue;
UAVObjEventCallback cb;
uint8_t eventMask;
struct ObjectEventListStruct *next;
};
typedef struct ObjectEventListStruct ObjectEventList;
/**
* List of object instances, holds the actual data structure and instance ID
*/
struct ObjectInstListStruct {
void *data;
uint16_t instId;
struct ObjectInstListStruct *next;
};
typedef struct ObjectInstListStruct ObjectInstList;
/** opaque type for instances **/
typedef void* InstanceHandle;
typedef enum {
OL_IS_METAOBJECT = 0x01, /** Set if this is a metaobject */
OL_IS_SINGLE_INSTANCE = 0x02, /** Set if this object has a single instance */
OL_IS_SETTINGS = 0x04 /** Set if this object is a settings object */
} ObjectListFlags;
/**
* List of objects registered in the object manager
*/
struct ObjectListStruct {
uint32_t id;
/** The object ID */
const char *name;
/** The object name */
ObjectListFlags flags;
/** The object list mode flags */
uint16_t numBytes;
/** Number of data bytes contained in the object (for a single instance) */
uint16_t numInstances;
/** Number of instances */
struct ObjectListStruct *linkedObj;
/** Linked object, for regular objects this is the metaobject and for metaobjects it is the parent object */
ObjectInstList instances;
/** List of object instances, instance 0 always exists */
ObjectEventList *events;
/** Event queues registered on the object */
struct ObjectListStruct *next;
/** Needed by linked list library (utlist.h) */
struct ObjectEventEntry {
xQueueHandle queue;
UAVObjEventCallback cb;
uint8_t eventMask;
struct ObjectEventEntry * next;
};
typedef struct ObjectListStruct ObjectList;
/*
MetaInstance == [UAVOBase [UAVObjMetadata]]
SingleInstance == [UAVOBase [UAVOData [InstanceData]]]
MultiInstance == [UAVOBase [UAVOData [NumInstances [InstanceData0 [next]]]]
____________________/
\-->[InstanceData1 [next]]
_________...________/
\-->[InstanceDataN [next]]
*/
/*
* UAVO Base Type
* - All Types of UAVObjects are of this base type
* - The flags determine what type(s) this object
*/
struct UAVOBase {
/* Let these objects be added to an event queue */
struct ObjectEventEntry * next_event;
/* Describe the type of object that follows this header */
struct UAVOInfo {
bool isMeta : 1;
bool isSingle : 1;
bool isSettings : 1;
} flags;
} __attribute__((packed));
/* Augmented type for Meta UAVO */
struct UAVOMeta {
struct UAVOBase base;
UAVObjMetadata instance0;
} __attribute__((packed));
/* Shared data structure for all data-carrying UAVObjects (UAVOSingle and UAVOMulti) */
struct UAVOData {
struct UAVOBase base;
uint32_t id;
/*
* Embed the Meta object as another complete UAVO
* inside the payload for this UAVO.
*/
struct UAVOMeta metaObj;
struct UAVOData * next;
uint16_t instance_size;
} __attribute__((packed));
/* Augmented type for Single Instance Data UAVO */
struct UAVOSingle {
struct UAVOData uavo;
uint8_t instance0[];
/*
* Additional space will be malloc'd here to hold the
* the data for this instance.
*/
} __attribute__((packed));
/* Part of a linked list of instances chained off of a multi instance UAVO. */
struct UAVOMultiInst {
struct UAVOMultiInst * next;
uint8_t instance[];
/*
* Additional space will be malloc'd here to hold the
* the data for this instance.
*/
} __attribute__((packed));
/* Augmented type for Multi Instance Data UAVO */
struct UAVOMulti {
struct UAVOData uavo;
uint16_t num_instances;
struct UAVOMultiInst instance0;
/*
* Additional space will be malloc'd here to hold the
* the data for instance 0.
*/
} __attribute__((packed));
/** all information about a metaobject are hardcoded constants **/
#define MetaNumBytes sizeof(UAVObjMetadata)
#define MetaBaseObjectPtr(obj) ((struct UAVOData *)((obj)-offsetof(struct UAVOData, metaObj)))
#define MetaObjectPtr(obj) ((struct UAVODataMeta*) &((obj)->metaObj))
#define MetaDataPtr(obj) ((UAVObjMetadata*)&((obj)->instance0))
#define LinkedMetaDataPtr(obj) ((UAVObjMetadata*)&((obj)->metaObj.instance0))
#define MetaObjectId(id) ((id)+1)
/** all information about instances are dependant on object type **/
#define ObjSingleInstanceDataOffset(obj) ((void*)(&(( (struct UAVOSingle*)obj )->instance0)))
#define InstanceDataOffset(inst) ((void*)&(( (struct UAVOMultiInst*)inst )->instance))
#define InstanceData(instance) (void*)instance
// Private functions
static int32_t sendEvent(ObjectList * obj, uint16_t instId,
UAVObjEventType event);
static ObjectInstList *createInstance(ObjectList * obj, uint16_t instId);
static ObjectInstList *getInstance(ObjectList * obj, uint16_t instId);
static int32_t connectObj(UAVObjHandle obj, xQueueHandle queue,
UAVObjEventCallback cb, uint8_t eventMask);
static int32_t disconnectObj(UAVObjHandle obj, xQueueHandle queue,
UAVObjEventCallback cb);
static int32_t sendEvent(struct UAVOBase * obj, uint16_t instId,
UAVObjEventType event);
static InstanceHandle createInstance(struct UAVOData * obj, uint16_t instId);
static InstanceHandle getInstance(struct UAVOData * obj, uint16_t instId);
static int32_t connectObj(UAVObjHandle obj_handle, xQueueHandle queue,
UAVObjEventCallback cb, uint8_t eventMask);
static int32_t disconnectObj(UAVObjHandle obj_handle, xQueueHandle queue,
UAVObjEventCallback cb);
#if defined(PIOS_INCLUDE_SDCARD)
static void objectFilename(ObjectList * obj, uint8_t * filename);
static void objectFilename(UAVObjHandle obj_handle, uint8_t * filename);
static void customSPrintf(uint8_t * buffer, uint8_t * format, ...);
#endif
// Private variables
static ObjectList *objList;
static struct UAVOData * uavo_list;
static xSemaphoreHandle mutex;
static UAVObjMetadata defMetadata;
static const UAVObjMetadata defMetadata = {
.flags = (ACCESS_READWRITE << UAVOBJ_ACCESS_SHIFT |
ACCESS_READWRITE << UAVOBJ_GCS_ACCESS_SHIFT |
1 << UAVOBJ_TELEMETRY_ACKED_SHIFT |
1 << UAVOBJ_GCS_TELEMETRY_ACKED_SHIFT |
UPDATEMODE_ONCHANGE << UAVOBJ_TELEMETRY_UPDATE_MODE_SHIFT |
UPDATEMODE_ONCHANGE << UAVOBJ_GCS_TELEMETRY_UPDATE_MODE_SHIFT),
.telemetryUpdatePeriod = 0,
.gcsTelemetryUpdatePeriod = 0,
.loggingUpdatePeriod = 0,
};
static UAVObjStats stats;
/**
@ -126,31 +187,32 @@ static UAVObjStats stats;
*/
int32_t UAVObjInitialize()
{
// Initialize variables
objList = NULL;
memset(&stats, 0, sizeof(UAVObjStats));
// Initialize variables
uavo_list = NULL;
memset(&stats, 0, sizeof(UAVObjStats));
// Create mutex
mutex = xSemaphoreCreateRecursiveMutex();
if (mutex == NULL)
return -1;
// Create mutex
mutex = xSemaphoreCreateRecursiveMutex();
if (mutex == NULL)
return -1;
// Initialize default metadata structure (metadata of metaobjects)
UAVObjMetadataInitialize(&defMetadata);
// Done
return 0;
// Done
return 0;
}
/*****************
* Statistics
****************/
/**
* Get the statistics counters
* @param[out] statsOut The statistics counters will be copied there
*/
void UAVObjGetStats(UAVObjStats * statsOut)
{
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
memcpy(statsOut, &stats, sizeof(UAVObjStats));
xSemaphoreGiveRecursive(mutex);
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
memcpy(statsOut, &stats, sizeof(UAVObjStats));
xSemaphoreGiveRecursive(mutex);
}
/**
@ -158,17 +220,84 @@ void UAVObjGetStats(UAVObjStats * statsOut)
*/
void UAVObjClearStats()
{
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
memset(&stats, 0, sizeof(UAVObjStats));
xSemaphoreGiveRecursive(mutex);
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
memset(&stats, 0, sizeof(UAVObjStats));
xSemaphoreGiveRecursive(mutex);
}
/************************
* Object Initialization
***********************/
static void UAVObjInitMetaData (struct UAVOMeta * obj_meta)
{
/* Fill in the common part of the UAVO */
struct UAVOBase * uavo_base = &(obj_meta->base);
memset(uavo_base, 0, sizeof(*uavo_base));
uavo_base->flags.isMeta = true;
uavo_base->flags.isSingle = true;
uavo_base->next_event = NULL;
/* Clear the instance data carried in the UAVO */
memset(&(obj_meta->instance0), 0, sizeof(obj_meta->instance0));
}
static struct UAVOData * UAVObjAllocSingle(uint32_t num_bytes)
{
/* Compute the complete size of the object, including the data for a single embedded instance */
uint32_t object_size = sizeof(struct UAVOSingle) + num_bytes;
/* Allocate the object from the heap */
struct UAVOSingle * uavo_single = (struct UAVOSingle *) pvPortMalloc(object_size);
if (!uavo_single)
return (NULL);
/* Fill in the common part of the UAVO */
struct UAVOBase * uavo_base = &(uavo_single->uavo.base);
memset(uavo_base, 0, sizeof(*uavo_base));
uavo_base->flags.isSingle = true;
uavo_base->next_event = NULL;
/* Clear the instance data carried in the UAVO */
memset(&(uavo_single->instance0), 0, num_bytes);
/* Give back the generic UAVO part */
return (&(uavo_single->uavo));
}
static struct UAVOData * UAVObjAllocMulti(uint32_t num_bytes)
{
/* Compute the complete size of the object, including the data for a single embedded instance */
uint32_t object_size = sizeof(struct UAVOMulti) + num_bytes;
/* Allocate the object from the heap */
struct UAVOMulti * uavo_multi = (struct UAVOMulti *) pvPortMalloc(object_size);
if (!uavo_multi)
return (NULL);
/* Fill in the common part of the UAVO */
struct UAVOBase * uavo_base = &(uavo_multi->uavo.base);
memset(uavo_base, 0, sizeof(*uavo_base));
uavo_base->flags.isSingle = false;
uavo_base->next_event = NULL;
/* Set up the type-specific part of the UAVO */
uavo_multi->num_instances = 1;
/* Clear the instance data carried in the UAVO */
memset (&(uavo_multi->instance0), 0, num_bytes);
/* Give back the generic UAVO part */
return (&(uavo_multi->uavo));
}
/**************************
* UAVObject Database APIs
*************************/
/**
* Register and new object in the object manager.
* \param[in] id Unique object ID
* \param[in] name Object name
* \param[in] nameName Metaobject name
* \param[in] isMetaobject Is this a metaobject (1:true, 0:false)
* \param[in] isSingleInstance Is this a single instance or multi-instance object
* \param[in] isSettings Is this a settings object
* \param[in] numBytes Number of bytes of object data (for one instance)
@ -176,85 +305,60 @@ void UAVObjClearStats()
* \return Object handle, or NULL if failure.
* \return
*/
UAVObjHandle UAVObjRegister(uint32_t id, const char *name,
const char *metaName, int32_t isMetaobject,
int32_t isSingleInstance, int32_t isSettings,
uint32_t numBytes,
UAVObjInitializeCallback initCb)
UAVObjHandle UAVObjRegister(uint32_t id,
int32_t isSingleInstance, int32_t isSettings,
uint32_t num_bytes,
UAVObjInitializeCallback initCb)
{
ObjectList *objEntry;
ObjectInstList *instEntry;
ObjectList *metaObj;
struct UAVOData * uavo_data = NULL;
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Check that the object is not already registered
LL_FOREACH(objList, objEntry) {
if (objEntry->id == id) {
// Already registered, ignore
xSemaphoreGiveRecursive(mutex);
return NULL;
}
}
/* Don't allow duplicate registrations */
if (UAVObjGetByID(id))
goto unlock_exit;
// Create and append entry
objEntry = (ObjectList *) pvPortMalloc(sizeof(ObjectList));
if (objEntry == NULL) {
xSemaphoreGiveRecursive(mutex);
return NULL;
}
objEntry->id = id;
objEntry->name = name;
OLSetIsMetaobject(objEntry, isMetaobject);
OLSetIsSingleInstance(objEntry, isSingleInstance);
OLSetIsSettings(objEntry, isSettings);
objEntry->numBytes = numBytes;
objEntry->events = NULL;
objEntry->numInstances = 0;
objEntry->instances.data = NULL;
objEntry->instances.instId = 0xFFFF;
objEntry->instances.next = NULL;
objEntry->linkedObj = NULL; // will be set later
LL_APPEND(objList, objEntry);
/* Map the various flags to one of the UAVO types we understand */
if (isSingleInstance) {
uavo_data = UAVObjAllocSingle (num_bytes);
} else {
uavo_data = UAVObjAllocMulti (num_bytes);
}
// Create instance zero
instEntry = createInstance(objEntry, 0);
if (instEntry == NULL) {
xSemaphoreGiveRecursive(mutex);
return NULL;
}
// Create metaobject and update linkedObj
if (isMetaobject) {
objEntry->linkedObj = NULL; // will be set later
} else {
// Create metaobject
metaObj =
(ObjectList *) UAVObjRegister(id + 1, metaName,
NULL, 1, 1, 0,
sizeof
(UAVObjMetadata),
NULL);
// Link two objects
objEntry->linkedObj = metaObj;
metaObj->linkedObj = objEntry;
}
if (!uavo_data)
goto unlock_exit;
// Initialize object fields and metadata to default values
if (initCb != NULL) {
initCb((UAVObjHandle) objEntry, 0);
}
// Attempt to load object's metadata from the SD card (not done directly on the metaobject, but through the object)
if (!OLGetIsMetaobject(objEntry)) {
UAVObjLoad((UAVObjHandle) objEntry->linkedObj, 0);
}
// If this is a settings object, attempt to load from SD card
if (OLGetIsSettings(objEntry)) {
UAVObjLoad((UAVObjHandle) objEntry, 0);
}
// Release lock
xSemaphoreGiveRecursive(mutex);
return (UAVObjHandle) objEntry;
/* Fill in the details about this UAVO */
uavo_data->id = id;
uavo_data->instance_size = num_bytes;
if (isSettings) {
uavo_data->base.flags.isSettings = true;
}
/* Initialize the embedded meta UAVO */
UAVObjInitMetaData (&uavo_data->metaObj);
/* Add the newly created object to the global list of objects */
LL_APPEND(uavo_list, uavo_data);
/* Initialize object fields and metadata to default values */
if (initCb)
initCb((UAVObjHandle) uavo_data, 0);
/* Always try to load the meta object from flash */
UAVObjLoad((UAVObjHandle) &(uavo_data->metaObj), 0);
/* Attempt to load settings object from flash */
if (uavo_data->base.flags.isSettings)
UAVObjLoad((UAVObjHandle) uavo_data, 0);
// fire events for outer object and its embedded meta object
UAVObjInstanceUpdated((UAVObjHandle) uavo_data, 0);
UAVObjInstanceUpdated((UAVObjHandle) &(uavo_data->metaObj), 0);
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return (UAVObjHandle) uavo_data;
}
/**
@ -264,52 +368,27 @@ UAVObjHandle UAVObjRegister(uint32_t id, const char *name,
*/
UAVObjHandle UAVObjGetByID(uint32_t id)
{
ObjectList *objEntry;
UAVObjHandle * found_obj = (UAVObjHandle *) NULL;
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Look for object
LL_FOREACH(objList, objEntry) {
if (objEntry->id == id) {
// Release lock
xSemaphoreGiveRecursive(mutex);
// Done, object found
return (UAVObjHandle) objEntry;
}
}
// Look for object
struct UAVOData * tmp_obj;
LL_FOREACH(uavo_list, tmp_obj) {
if (tmp_obj->id == id) {
found_obj = (UAVObjHandle *)tmp_obj;
goto unlock_exit;
}
if (MetaObjectId(tmp_obj->id) == id) {
found_obj = (UAVObjHandle *)&(tmp_obj->metaObj);
goto unlock_exit;
}
}
// Object not found, release lock and return error
xSemaphoreGiveRecursive(mutex);
return NULL;
}
/**
* Retrieve an object from the list given its name
* \param[in] name The name of the object
* \return The object or NULL if not found.
*/
UAVObjHandle UAVObjGetByName(char *name)
{
ObjectList *objEntry;
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Look for object
LL_FOREACH(objList, objEntry) {
if (objEntry->name != NULL
&& strcmp(objEntry->name, name) == 0) {
// Release lock
xSemaphoreGiveRecursive(mutex);
// Done, object found
return (UAVObjHandle) objEntry;
}
}
// Object not found, release lock and return error
xSemaphoreGiveRecursive(mutex);
return NULL;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return found_obj;
}
/**
@ -317,19 +396,24 @@ UAVObjHandle UAVObjGetByName(char *name)
* \param[in] obj The object handle
* \return The object ID
*/
uint32_t UAVObjGetID(UAVObjHandle obj)
uint32_t UAVObjGetID(UAVObjHandle obj_handle)
{
return ((ObjectList *) obj)->id;
}
PIOS_Assert(obj_handle);
/**
* Get the object's name
* \param[in] obj The object handle
* \return The object's name
*/
const char *UAVObjGetName(UAVObjHandle obj)
{
return ((ObjectList *) obj)->name;
/* Recover the common object header */
struct UAVOBase * uavo_base = (struct UAVOBase *) obj_handle;
if (UAVObjIsMetaobject(obj_handle)) {
/* We have a meta object, find our containing UAVO */
struct UAVOData * uavo_data = container_of ((struct UAVOMeta *)uavo_base, struct UAVOData, metaObj);
return MetaObjectId (uavo_data->id);
} else {
/* We have a data object, augment our pointer */
struct UAVOData * uavo_data = (struct UAVOData *) uavo_base;
return (uavo_data->id);
}
}
/**
@ -339,7 +423,23 @@ const char *UAVObjGetName(UAVObjHandle obj)
*/
uint32_t UAVObjGetNumBytes(UAVObjHandle obj)
{
return ((ObjectList *) obj)->numBytes;
PIOS_Assert(obj);
uint32_t instance_size;
/* Recover the common object header */
struct UAVOBase * uavo_base = (struct UAVOBase *) obj;
if (uavo_base->flags.isMeta) {
instance_size = MetaNumBytes;
} else {
/* We have a data object, augment our pointer */
struct UAVOData * uavo = (struct UAVOData *) uavo_base;
instance_size = uavo->instance_size;
}
return (instance_size);
}
/**
@ -349,9 +449,24 @@ uint32_t UAVObjGetNumBytes(UAVObjHandle obj)
* \param[in] obj The object handle
* \return The object linked object handle
*/
UAVObjHandle UAVObjGetLinkedObj(UAVObjHandle obj)
UAVObjHandle UAVObjGetLinkedObj(UAVObjHandle obj_handle)
{
return (UAVObjHandle) (((ObjectList *) obj)->linkedObj);
PIOS_Assert(obj_handle);
/* Recover the common object header */
struct UAVOBase * uavo_base = (struct UAVOBase *) obj_handle;
if (UAVObjIsMetaobject(obj_handle)) {
/* We have a meta object, find our containing UAVO. */
struct UAVOData * uavo_data = container_of ((struct UAVOMeta *)uavo_base, struct UAVOData, metaObj);
return (UAVObjHandle) uavo_data;
} else {
/* We have a data object, augment our pointer */
struct UAVOData * uavo_data = (struct UAVOData *) uavo_base;
return (UAVObjHandle) &(uavo_data->metaObj);
}
}
/**
@ -359,13 +474,19 @@ UAVObjHandle UAVObjGetLinkedObj(UAVObjHandle obj)
* \param[in] obj The object handle
* \return The number of instances
*/
uint16_t UAVObjGetNumInstances(UAVObjHandle obj)
uint16_t UAVObjGetNumInstances(UAVObjHandle obj_handle)
{
uint32_t numInstances;
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
numInstances = ((ObjectList *) obj)->numInstances;
xSemaphoreGiveRecursive(mutex);
return numInstances;
PIOS_Assert(obj_handle);
if (UAVObjIsSingleInstance(obj_handle)) {
/* Only one instance is allowed */
return 1;
} else {
/* Multi-instance object. Inspect the object */
/* Augment our pointer to reflect the proper type */
struct UAVOMulti * uavo_multi = (struct UAVOMulti *) obj_handle;
return uavo_multi->num_instances;
}
}
/**
@ -373,29 +494,37 @@ uint16_t UAVObjGetNumInstances(UAVObjHandle obj)
* \param[in] obj The object handle
* \return The instance ID or 0 if an error
*/
uint16_t UAVObjCreateInstance(UAVObjHandle obj,
UAVObjInitializeCallback initCb)
uint16_t UAVObjCreateInstance(UAVObjHandle obj_handle,
UAVObjInitializeCallback initCb)
{
ObjectList *objEntry;
ObjectInstList *instEntry;
PIOS_Assert(obj_handle);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
if (UAVObjIsMetaobject(obj_handle)) {
return 0;
}
// Create new instance
objEntry = (ObjectList *) obj;
instEntry = createInstance(objEntry, objEntry->numInstances);
if (instEntry == NULL) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Initialize instance data
if (initCb != NULL) {
initCb(obj, instEntry->instId);
}
// Unlock
xSemaphoreGiveRecursive(mutex);
return instEntry->instId;
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
InstanceHandle instEntry;
uint16_t instId = 0;
// Create new instance
instId = UAVObjGetNumInstances(obj_handle);
instEntry = createInstance( (struct UAVOData *)obj_handle, instId);
if (instEntry == NULL) {
goto unlock_exit;
}
// Initialize instance data
if (initCb) {
initCb(obj_handle, instId);
}
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return instId;
}
/**
@ -403,9 +532,14 @@ uint16_t UAVObjCreateInstance(UAVObjHandle obj,
* \param[in] obj The object handle
* \return True (1) if this is a single instance object
*/
int32_t UAVObjIsSingleInstance(UAVObjHandle obj)
bool UAVObjIsSingleInstance(UAVObjHandle obj_handle)
{
return OLGetIsSingleInstance((ObjectList *) obj);
PIOS_Assert(obj_handle);
/* Recover the common object header */
struct UAVOBase * uavo_base = (struct UAVOBase *) obj_handle;
return uavo_base->flags.isSingle;
}
/**
@ -413,9 +547,14 @@ int32_t UAVObjIsSingleInstance(UAVObjHandle obj)
* \param[in] obj The object handle
* \return True (1) if this is metaobject
*/
int32_t UAVObjIsMetaobject(UAVObjHandle obj)
bool UAVObjIsMetaobject(UAVObjHandle obj_handle)
{
return OLGetIsMetaobject((ObjectList *) obj);
PIOS_Assert(obj_handle);
/* Recover the common object header */
struct UAVOBase * uavo_base = (struct UAVOBase *) obj_handle;
return uavo_base->flags.isMeta;
}
/**
@ -423,9 +562,14 @@ int32_t UAVObjIsMetaobject(UAVObjHandle obj)
* \param[in] obj The object handle
* \return True (1) if this is a settings object
*/
int32_t UAVObjIsSettings(UAVObjHandle obj)
bool UAVObjIsSettings(UAVObjHandle obj_handle)
{
return OLGetIsSettings((ObjectList *) obj);
PIOS_Assert(obj_handle);
/* Recover the common object header */
struct UAVOBase * uavo_base = (struct UAVOBase *) obj_handle;
return uavo_base->flags.isSettings;
}
/**
@ -435,39 +579,49 @@ int32_t UAVObjIsSettings(UAVObjHandle obj)
* \param[in] dataIn The byte array
* \return 0 if success or -1 if failure
*/
int32_t UAVObjUnpack(UAVObjHandle obj, uint16_t instId,
const uint8_t * dataIn)
int32_t UAVObjUnpack(UAVObjHandle obj_handle, uint16_t instId,
const uint8_t * dataIn)
{
ObjectList *objEntry;
ObjectInstList *instEntry;
PIOS_Assert(obj_handle);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Cast handle to object
objEntry = (ObjectList *) obj;
int32_t rc = -1;
// Get the instance
instEntry = getInstance(objEntry, instId);
if (UAVObjIsMetaobject(obj_handle)) {
if (instId != 0) {
goto unlock_exit;
}
memcpy(MetaDataPtr((struct UAVOMeta *)obj_handle), dataIn, MetaNumBytes);
} else {
struct UAVOData *obj;
InstanceHandle instEntry;
// If the instance does not exist create it and any other instances before it
if (instEntry == NULL) {
instEntry = createInstance(objEntry, instId);
if (instEntry == NULL) {
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return -1;
}
}
// Set the data
memcpy(instEntry->data, dataIn, objEntry->numBytes);
// Cast handle to object
obj = (struct UAVOData *) obj_handle;
// Fire event
sendEvent(objEntry, instId, EV_UNPACKED);
// Get the instance
instEntry = getInstance(obj, instId);
// Unlock
xSemaphoreGiveRecursive(mutex);
return 0;
// If the instance does not exist create it and any other instances before it
if (instEntry == NULL) {
instEntry = createInstance(obj, instId);
if (instEntry == NULL) {
goto unlock_exit;
}
}
// Set the data
memcpy(InstanceData(instEntry), dataIn, obj->instance_size);
}
// Fire event
sendEvent((struct UAVOBase*)obj_handle, instId, EV_UNPACKED);
rc = 0;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return rc;
}
/**
@ -477,30 +631,41 @@ int32_t UAVObjUnpack(UAVObjHandle obj, uint16_t instId,
* \param[out] dataOut The byte array
* \return 0 if success or -1 if failure
*/
int32_t UAVObjPack(UAVObjHandle obj, uint16_t instId, uint8_t * dataOut)
int32_t UAVObjPack(UAVObjHandle obj_handle, uint16_t instId, uint8_t * dataOut)
{
ObjectList *objEntry;
ObjectInstList *instEntry;
PIOS_Assert(obj_handle);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Cast handle to object
objEntry = (ObjectList *) obj;
int32_t rc = -1;
// Get the instance
instEntry = getInstance(objEntry, instId);
if (instEntry == NULL) {
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Pack data
memcpy(dataOut, instEntry->data, objEntry->numBytes);
if (UAVObjIsMetaobject(obj_handle)) {
if (instId != 0) {
goto unlock_exit;
}
memcpy(dataOut, MetaDataPtr((struct UAVOMeta *)obj_handle), MetaNumBytes);
} else {
struct UAVOData *obj;
InstanceHandle instEntry;
// Unlock
xSemaphoreGiveRecursive(mutex);
return 0;
// Cast handle to object
obj = (struct UAVOData *) obj_handle;
// Get the instance
instEntry = getInstance(obj, instId);
if (instEntry == NULL) {
goto unlock_exit;
}
// Pack data
memcpy(dataOut, InstanceData(instEntry), obj->instance_size);
}
rc = 0;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return rc;
}
/**
@ -512,50 +677,72 @@ int32_t UAVObjPack(UAVObjHandle obj, uint16_t instId, uint8_t * dataOut)
* @param[in] file File to append to
* @return 0 if success or -1 if failure
*/
int32_t UAVObjSaveToFile(UAVObjHandle obj, uint16_t instId,
FILEINFO * file)
int32_t UAVObjSaveToFile(UAVObjHandle obj_handle, uint16_t instId,
FILEINFO * file)
{
PIOS_Assert(obj_handle);
#if defined(PIOS_INCLUDE_SDCARD)
uint32_t bytesWritten;
ObjectList *objEntry;
ObjectInstList *instEntry;
uint32_t bytesWritten;
// Check for file system availability
if (PIOS_SDCARD_IsMounted() == 0) {
return -1;
}
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Check for file system availability
if (PIOS_SDCARD_IsMounted() == 0) {
return -1;
}
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
if (UAVObjIsMetaobject(obj_handle)) {
// Get the instance information
if (instId != 0) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Write the object ID
uint32_t objId = UAVObjGetID(obj_handle);
PIOS_FWRITE(file, &objId, sizeof(objId),
&bytesWritten);
// Cast to object
objEntry = (ObjectList *) obj;
// Write the data and check that the write was successful
PIOS_FWRITE(file, MetaDataPtr((struct UAVOMeta *)obj_handle), MetaNumBytes,
&bytesWritten);
if (bytesWritten != MetaNumBytes) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
} else {
struct UAVOData * uavo;
InstanceHandle instEntry;
// Get the instance information
instEntry = getInstance(objEntry, instId);
if (instEntry == NULL) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Write the object ID
PIOS_FWRITE(file, &objEntry->id, sizeof(objEntry->id),
&bytesWritten);
// Cast to object
uavo = (struct UAVOData *) obj_handle;
// Write the instance ID
if (!OLGetIsSingleInstance(objEntry)) {
PIOS_FWRITE(file, &instEntry->instId,
sizeof(instEntry->instId), &bytesWritten);
}
// Write the data and check that the write was successful
PIOS_FWRITE(file, instEntry->data, objEntry->numBytes,
&bytesWritten);
if (bytesWritten != objEntry->numBytes) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Done
xSemaphoreGiveRecursive(mutex);
// Get the instance information
instEntry = getInstance(uavo, instId);
if (instEntry == NULL) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Write the object ID
PIOS_FWRITE(file, &uavo->id, sizeof(uavo->id),
&bytesWritten);
// Write the instance ID
if (!UAVObjIsSingleInstance(obj_handle)) {
PIOS_FWRITE(file, &instId,
sizeof(instId), &bytesWritten);
}
// Write the data and check that the write was successful
PIOS_FWRITE(file, InstanceData(instEntry), uavo->instance_size,
&bytesWritten);
if (bytesWritten != uavo->instance_size) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
}
// Done
xSemaphoreGiveRecursive(mutex);
#endif /* PIOS_INCLUDE_SDCARD */
return 0;
return 0;
}
/**
@ -568,59 +755,60 @@ int32_t UAVObjSaveToFile(UAVObjHandle obj, uint16_t instId,
* @param[in] file File to append to
* @return 0 if success or -1 if failure
*/
int32_t UAVObjSave(UAVObjHandle obj, uint16_t instId)
int32_t UAVObjSave(UAVObjHandle obj_handle, uint16_t instId)
{
PIOS_Assert(obj_handle);
#if defined(PIOS_INCLUDE_FLASH_SECTOR_SETTINGS)
ObjectList *objEntry = (ObjectList *) obj;
if (UAVObjIsMetaobject(obj_handle)) {
if (instId != 0)
return -1;
if (objEntry == NULL)
return -1;
if (PIOS_FLASHFS_ObjSave(obj_handle, instId, (uint8_t*) MetaDataPtr((struct UAVOMeta *)obj_handle)) != 0)
return -1;
} else {
InstanceHandle instEntry = getInstance( (struct UAVOData *)obj_handle, instId);
ObjectInstList *instEntry = getInstance(objEntry, instId);
if (instEntry == NULL)
return -1;
if (instEntry == NULL)
return -1;
if (InstanceData(instEntry) == NULL)
return -1;
if (instEntry->data == NULL)
return -1;
if (PIOS_FLASHFS_ObjSave(obj, instId, instEntry->data) != 0)
return -1;
if (PIOS_FLASHFS_ObjSave(obj_handle, instId, InstanceData(instEntry)) != 0)
return -1;
}
#endif
#if defined(PIOS_INCLUDE_SDCARD)
FILEINFO file;
ObjectList *objEntry;
uint8_t filename[14];
FILEINFO file;
uint8_t filename[14];
// Check for file system availability
if (PIOS_SDCARD_IsMounted() == 0) {
return -1;
}
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Check for file system availability
if (PIOS_SDCARD_IsMounted() == 0) {
return -1;
}
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Cast to object
objEntry = (ObjectList *) obj;
// Get filename
objectFilename(obj_handle, filename);
// Get filename
objectFilename(objEntry, filename);
// Open file
if (PIOS_FOPEN_WRITE(filename, file)) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Append object
if (UAVObjSaveToFile(obj, instId, &file) == -1) {
PIOS_FCLOSE(file);
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Done, close file and unlock
PIOS_FCLOSE(file);
xSemaphoreGiveRecursive(mutex);
// Open file
if (PIOS_FOPEN_WRITE(filename, file)) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Append object
if (UAVObjSaveToFile(obj_handle, instId, &file) == -1) {
PIOS_FCLOSE(file);
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Done, close file and unlock
PIOS_FCLOSE(file);
xSemaphoreGiveRecursive(mutex);
#endif /* PIOS_INCLUDE_SDCARD */
return 0;
return 0;
}
/**
@ -631,68 +819,87 @@ int32_t UAVObjSave(UAVObjHandle obj, uint16_t instId)
UAVObjHandle UAVObjLoadFromFile(FILEINFO * file)
{
#if defined(PIOS_INCLUDE_SDCARD)
uint32_t bytesRead;
ObjectList *objEntry;
ObjectInstList *instEntry;
uint32_t objId;
uint16_t instId;
UAVObjHandle obj;
uint32_t bytesRead;
struct UAVOBase *objEntry;
InstanceHandle instEntry;
uint32_t objId;
uint16_t instId;
UAVObjHandle obj_handle;
// Check for file system availability
if (PIOS_SDCARD_IsMounted() == 0) {
return NULL;
}
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Check for file system availability
if (PIOS_SDCARD_IsMounted() == 0) {
return NULL;
}
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Read the object ID
if (PIOS_FREAD(file, &objId, sizeof(objId), &bytesRead)) {
xSemaphoreGiveRecursive(mutex);
return NULL;
}
// Get the object
obj = UAVObjGetByID(objId);
if (obj == 0) {
xSemaphoreGiveRecursive(mutex);
return NULL;
}
objEntry = (ObjectList *) obj;
// Read the object ID
if (PIOS_FREAD(file, &objId, sizeof(objId), &bytesRead)) {
xSemaphoreGiveRecursive(mutex);
return NULL;
}
// Get the object
obj_handle = UAVObjGetByID(objId);
if (obj_handle == 0) {
xSemaphoreGiveRecursive(mutex);
return NULL;
}
objEntry = (struct UAVOBase *) obj_handle;
// Get the instance ID
instId = 0;
if (!OLGetIsSingleInstance(objEntry)) {
if (PIOS_FREAD
// Get the instance ID
instId = 0;
if (!UAVObjIsSingleInstance(obj_handle)) {
if (PIOS_FREAD
(file, &instId, sizeof(instId), &bytesRead)) {
xSemaphoreGiveRecursive(mutex);
return NULL;
}
}
// Get the instance information
instEntry = getInstance(objEntry, instId);
xSemaphoreGiveRecursive(mutex);
return NULL;
}
}
// If the instance does not exist create it and any other instances before it
if (instEntry == NULL) {
instEntry = createInstance(objEntry, instId);
if (instEntry == NULL) {
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return NULL;
}
}
// Read the instance data
if (PIOS_FREAD
(file, instEntry->data, objEntry->numBytes, &bytesRead)) {
xSemaphoreGiveRecursive(mutex);
return NULL;
}
// Fire event
sendEvent(objEntry, instId, EV_UNPACKED);
if (UAVObjIsMetaobject(obj_handle)) {
// If the instance does not exist create it and any other instances before it
if (instId != 0) {
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return NULL;
}
// Read the instance data
if (PIOS_FREAD
(file, MetaDataPtr((struct UAVOMeta *)obj_handle), MetaNumBytes, &bytesRead)) {
xSemaphoreGiveRecursive(mutex);
return NULL;
}
} else {
// Unlock
xSemaphoreGiveRecursive(mutex);
return obj;
// Get the instance information
instEntry = getInstance((struct UAVOData *)objEntry, instId);
// If the instance does not exist create it and any other instances before it
if (instEntry == NULL) {
instEntry = createInstance((struct UAVOData *)objEntry, instId);
if (instEntry == NULL) {
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return NULL;
}
}
// Read the instance data
if (PIOS_FREAD
(file, InstanceData(instEntry), ((struct UAVOData *)objEntry)->instance_size, &bytesRead)) {
xSemaphoreGiveRecursive(mutex);
return NULL;
}
}
// Fire event
sendEvent(objEntry, instId, EV_UNPACKED);
// Unlock
xSemaphoreGiveRecursive(mutex);
return obj_handle;
#else /* PIOS_INCLUDE_SDCARD */
return NULL;
return NULL;
#endif
}
@ -704,74 +911,74 @@ UAVObjHandle UAVObjLoadFromFile(FILEINFO * file)
* @param[in] instId The object instance
* @return 0 if success or -1 if failure
*/
int32_t UAVObjLoad(UAVObjHandle obj, uint16_t instId)
int32_t UAVObjLoad(UAVObjHandle obj_handle, uint16_t instId)
{
PIOS_Assert(obj_handle);
#if defined(PIOS_INCLUDE_FLASH_SECTOR_SETTINGS)
ObjectList *objEntry = (ObjectList *) obj;
if (UAVObjIsMetaobject(obj_handle)) {
if (instId != 0)
return -1;
if (objEntry == NULL)
return -1;
// Fire event on success
if (PIOS_FLASHFS_ObjLoad(obj_handle, instId, (uint8_t*) MetaDataPtr((struct UAVOMeta *)obj_handle)) == 0)
sendEvent((struct UAVOBase*)obj_handle, instId, EV_UNPACKED);
else
return -1;
} else {
ObjectInstList *instEntry = getInstance(objEntry, instId);
InstanceHandle instEntry = getInstance( (struct UAVOData *)obj_handle, instId);
if (instEntry == NULL)
return -1;
if (instEntry == NULL)
return -1;
if (instEntry->data == NULL)
return -1;
// Fire event on success
if (PIOS_FLASHFS_ObjLoad(obj_handle, instId, InstanceData(instEntry)) == 0)
sendEvent((struct UAVOBase*)obj_handle, instId, EV_UNPACKED);
else
return -1;
}
// Fire event on success
int32_t retval;
if ((retval = PIOS_FLASHFS_ObjLoad(obj, instId, instEntry->data)) == 0)
sendEvent(objEntry, instId, EV_UNPACKED);
else
return retval;
#endif
#if defined(PIOS_INCLUDE_SDCARD)
FILEINFO file;
ObjectList *objEntry;
UAVObjHandle loadedObj;
ObjectList *loadedObjEntry;
uint8_t filename[14];
FILEINFO file;
UAVObjHandle loadedObj;
uint8_t filename[14];
// Check for file system availability
if (PIOS_SDCARD_IsMounted() == 0) {
return -1;
}
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Check for file system availability
if (PIOS_SDCARD_IsMounted() == 0) {
return -1;
}
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Cast to object
objEntry = (ObjectList *) obj;
// Get filename
objectFilename(obj_handle, filename);
// Get filename
objectFilename(objEntry, filename);
// Open file
if (PIOS_FOPEN_READ(filename, file)) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Load object
loadedObj = UAVObjLoadFromFile(&file);
if (loadedObj == 0) {
PIOS_FCLOSE(file);
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Check that the IDs match
loadedObjEntry = (ObjectList *) loadedObj;
if (loadedObjEntry->id != objEntry->id) {
PIOS_FCLOSE(file);
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Done, close file and unlock
PIOS_FCLOSE(file);
xSemaphoreGiveRecursive(mutex);
// Open file
if (PIOS_FOPEN_READ(filename, file)) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Load object
loadedObj = UAVObjLoadFromFile(&file);
if (loadedObj == 0) {
PIOS_FCLOSE(file);
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Check that the IDs match
if (UAVObjGetID(loadedObj) != UAVObjGetID(obj_handle)) {
PIOS_FCLOSE(file);
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Done, close file and unlock
PIOS_FCLOSE(file);
xSemaphoreGiveRecursive(mutex);
#endif /* PIOS_INCLUDE_SDCARD */
return 0;
return 0;
}
/**
@ -780,35 +987,32 @@ int32_t UAVObjLoad(UAVObjHandle obj, uint16_t instId)
* @param[in] instId The object instance
* @return 0 if success or -1 if failure
*/
int32_t UAVObjDelete(UAVObjHandle obj, uint16_t instId)
int32_t UAVObjDelete(UAVObjHandle obj_handle, uint16_t instId)
{
PIOS_Assert(obj_handle);
#if defined(PIOS_INCLUDE_FLASH_SECTOR_SETTINGS)
PIOS_FLASHFS_ObjDelete(obj, instId);
PIOS_FLASHFS_ObjDelete(obj_handle, instId);
#endif
#if defined(PIOS_INCLUDE_SDCARD)
ObjectList *objEntry;
uint8_t filename[14];
uint8_t filename[14];
// Check for file system availability
if (PIOS_SDCARD_IsMounted() == 0) {
return -1;
}
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Check for file system availability
if (PIOS_SDCARD_IsMounted() == 0) {
return -1;
}
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Cast to object
objEntry = (ObjectList *) obj;
// Get filename
objectFilename(obj_handle, filename);
// Get filename
objectFilename(objEntry, filename);
// Delete file
PIOS_FUNLINK(filename);
// Delete file
PIOS_FUNLINK(filename);
// Done
xSemaphoreGiveRecursive(mutex);
// Done
xSemaphoreGiveRecursive(mutex);
#endif /* PIOS_INCLUDE_SDCARD */
return 0;
return 0;
}
/**
@ -817,27 +1021,30 @@ int32_t UAVObjDelete(UAVObjHandle obj, uint16_t instId)
*/
int32_t UAVObjSaveSettings()
{
ObjectList *objEntry;
struct UAVOData *obj;
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Save all settings objects
LL_FOREACH(objList, objEntry) {
// Check if this is a settings object
if (OLGetIsSettings(objEntry)) {
// Save object
if (UAVObjSave((UAVObjHandle) objEntry, 0) ==
-1) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
}
}
int32_t rc = -1;
// Done
xSemaphoreGiveRecursive(mutex);
return 0;
// Save all settings objects
LL_FOREACH(uavo_list, obj) {
// Check if this is a settings object
if (UAVObjIsSettings(obj)) {
// Save object
if (UAVObjSave((UAVObjHandle) obj, 0) ==
-1) {
goto unlock_exit;
}
}
}
rc = 0;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return rc;
}
/**
@ -846,27 +1053,30 @@ int32_t UAVObjSaveSettings()
*/
int32_t UAVObjLoadSettings()
{
ObjectList *objEntry;
struct UAVOData *obj;
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Load all settings objects
LL_FOREACH(objList, objEntry) {
// Check if this is a settings object
if (OLGetIsSettings(objEntry)) {
// Load object
if (UAVObjLoad((UAVObjHandle) objEntry, 0) ==
-1) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
}
}
int32_t rc = -1;
// Done
xSemaphoreGiveRecursive(mutex);
return 0;
// Load all settings objects
LL_FOREACH(uavo_list, obj) {
// Check if this is a settings object
if (UAVObjIsSettings(obj)) {
// Load object
if (UAVObjLoad((UAVObjHandle) obj, 0) ==
-1) {
goto unlock_exit;
}
}
}
rc = 0;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return rc;
}
/**
@ -875,27 +1085,30 @@ int32_t UAVObjLoadSettings()
*/
int32_t UAVObjDeleteSettings()
{
ObjectList *objEntry;
struct UAVOData *obj;
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Save all settings objects
LL_FOREACH(objList, objEntry) {
// Check if this is a settings object
if (OLGetIsSettings(objEntry)) {
// Save object
if (UAVObjDelete((UAVObjHandle) objEntry, 0)
== -1) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
}
}
int32_t rc = -1;
// Done
xSemaphoreGiveRecursive(mutex);
return 0;
// Save all settings objects
LL_FOREACH(uavo_list, obj) {
// Check if this is a settings object
if (UAVObjIsSettings(obj)) {
// Save object
if (UAVObjDelete((UAVObjHandle) obj, 0)
== -1) {
goto unlock_exit;
}
}
}
rc = 0;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return rc;
}
/**
@ -904,27 +1117,27 @@ int32_t UAVObjDeleteSettings()
*/
int32_t UAVObjSaveMetaobjects()
{
ObjectList *objEntry;
struct UAVOData *obj;
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Save all settings objects
LL_FOREACH(objList, objEntry) {
// Check if this is a settings object
if (OLGetIsMetaobject(objEntry)) {
// Save object
if (UAVObjSave((UAVObjHandle) objEntry, 0) ==
-1) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
}
}
int32_t rc = -1;
// Done
xSemaphoreGiveRecursive(mutex);
return 0;
// Save all settings objects
LL_FOREACH(uavo_list, obj) {
// Save object
if (UAVObjSave( (UAVObjHandle) MetaObjectPtr(obj), 0) ==
-1) {
goto unlock_exit;
}
}
rc = 0;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return rc;
}
/**
@ -933,27 +1146,27 @@ int32_t UAVObjSaveMetaobjects()
*/
int32_t UAVObjLoadMetaobjects()
{
ObjectList *objEntry;
struct UAVOData *obj;
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Load all settings objects
LL_FOREACH(objList, objEntry) {
// Check if this is a settings object
if (OLGetIsMetaobject(objEntry)) {
// Load object
if (UAVObjLoad((UAVObjHandle) objEntry, 0) ==
-1) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
}
}
int32_t rc = -1;
// Done
xSemaphoreGiveRecursive(mutex);
return 0;
// Load all settings objects
LL_FOREACH(uavo_list, obj) {
// Load object
if (UAVObjLoad((UAVObjHandle) MetaObjectPtr(obj), 0) ==
-1) {
goto unlock_exit;
}
}
rc = 0;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return rc;
}
/**
@ -962,253 +1175,293 @@ int32_t UAVObjLoadMetaobjects()
*/
int32_t UAVObjDeleteMetaobjects()
{
ObjectList *objEntry;
struct UAVOData *obj;
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Load all settings objects
LL_FOREACH(objList, objEntry) {
// Check if this is a settings object
if (OLGetIsMetaobject(objEntry)) {
// Load object
if (UAVObjDelete((UAVObjHandle) objEntry, 0)
== -1) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
}
}
// Done
xSemaphoreGiveRecursive(mutex);
return 0;
}
/**
* Set the object data
* \param[in] obj The object handle
* \param[in] dataIn The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjSetData(UAVObjHandle obj, const void *dataIn)
{
return UAVObjSetInstanceData(obj, 0, dataIn);
}
/**
* Set the object data
* \param[in] obj The object handle
* \param[in] dataIn The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjSetDataField(UAVObjHandle obj, const void* dataIn, uint32_t offset, uint32_t size)
{
return UAVObjSetInstanceDataField(obj, 0, dataIn, offset, size);
}
/**
* Get the object data
* \param[in] obj The object handle
* \param[out] dataOut The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjGetData(UAVObjHandle obj, void *dataOut)
{
return UAVObjGetInstanceData(obj, 0, dataOut);
}
/**
* Get the object data
* \param[in] obj The object handle
* \param[out] dataOut The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjGetDataField(UAVObjHandle obj, void* dataOut, uint32_t offset, uint32_t size)
{
return UAVObjGetInstanceDataField(obj, 0, dataOut, offset, size);
}
/**
* Set the data of a specific object instance
* \param[in] obj The object handle
* \param[in] instId The object instance ID
* \param[in] dataIn The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjSetInstanceData(UAVObjHandle obj, uint16_t instId,
const void *dataIn)
{
ObjectList *objEntry;
ObjectInstList *instEntry;
UAVObjMetadata *mdata;
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Cast to object info
objEntry = (ObjectList *) obj;
// Check access level
if (!OLGetIsMetaobject(objEntry)) {
mdata =
(UAVObjMetadata *) (objEntry->linkedObj->instances.
data);
if (UAVObjGetAccess(mdata) == ACCESS_READONLY) {
xSemaphoreGiveRecursive(mutex);
return -1;
}
}
// Get instance information
instEntry = getInstance(objEntry, instId);
if (instEntry == NULL) {
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Set data
memcpy(instEntry->data, dataIn, objEntry->numBytes);
// Fire event
sendEvent(objEntry, instId, EV_UPDATED);
// Unlock
xSemaphoreGiveRecursive(mutex);
return 0;
}
/**
* Set the data of a specific object instance
* \param[in] obj The object handle
* \param[in] instId The object instance ID
* \param[in] dataIn The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjSetInstanceDataField(UAVObjHandle obj, uint16_t instId, const void* dataIn, uint32_t offset, uint32_t size)
{
ObjectList* objEntry;
ObjectInstList* instEntry;
UAVObjMetadata* mdata;
// Lock
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Cast to object info
objEntry = (ObjectList*)obj;
int32_t rc = -1;
// Check access level
if ( !OLGetIsMetaobject(objEntry) )
{
mdata = (UAVObjMetadata*)(objEntry->linkedObj->instances.data);
if ( UAVObjGetAccess(mdata) == ACCESS_READONLY )
{
xSemaphoreGiveRecursive(mutex);
return -1;
// Load all settings objects
LL_FOREACH(uavo_list, obj) {
// Load object
if (UAVObjDelete((UAVObjHandle) MetaObjectPtr(obj), 0)
== -1) {
goto unlock_exit;
}
}
// Get instance information
instEntry = getInstance(objEntry, instId);
if ( instEntry == NULL )
{
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return -1;
}
rc = 0;
// return if we set too much of what we have
if ( (size + offset) > objEntry->numBytes) {
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Set data
memcpy(instEntry->data + offset, dataIn, size);
// Fire event
sendEvent(objEntry, instId, EV_UPDATED);
// Unlock
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return 0;
return rc;
}
/**
* Get the data of a specific object instance
* Set the object data
* \param[in] obj The object handle
* \param[in] instId The object instance ID
* \param[out] dataOut The object's data structure
* \param[in] dataIn The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjGetInstanceData(UAVObjHandle obj, uint16_t instId,
void *dataOut)
int32_t UAVObjSetData(UAVObjHandle obj_handle, const void *dataIn)
{
ObjectList *objEntry;
ObjectInstList *instEntry;
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Cast to object info
objEntry = (ObjectList *) obj;
// Get instance information
instEntry = getInstance(objEntry, instId);
if (instEntry == NULL) {
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Set data
memcpy(dataOut, instEntry->data, objEntry->numBytes);
// Unlock
xSemaphoreGiveRecursive(mutex);
return 0;
return UAVObjSetInstanceData(obj_handle, 0, dataIn);
}
/**
* Get the data of a specific object instance
* Set the object data
* \param[in] obj The object handle
* \param[in] dataIn The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjSetDataField(UAVObjHandle obj_handle, const void* dataIn, uint32_t offset, uint32_t size)
{
return UAVObjSetInstanceDataField(obj_handle, 0, dataIn, offset, size);
}
/**
* Get the object data
* \param[in] obj The object handle
* \param[in] instId The object instance ID
* \param[out] dataOut The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjGetInstanceDataField(UAVObjHandle obj, uint16_t instId, void* dataOut, uint32_t offset, uint32_t size)
int32_t UAVObjGetData(UAVObjHandle obj_handle, void *dataOut)
{
ObjectList* objEntry;
ObjectInstList* instEntry;
return UAVObjGetInstanceData(obj_handle, 0, dataOut);
}
/**
* Get the object data
* \param[in] obj The object handle
* \param[out] dataOut The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjGetDataField(UAVObjHandle obj_handle, void* dataOut, uint32_t offset, uint32_t size)
{
return UAVObjGetInstanceDataField(obj_handle, 0, dataOut, offset, size);
}
/**
* Set the data of a specific object instance
* \param[in] obj The object handle
* \param[in] instId The object instance ID
* \param[in] dataIn The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjSetInstanceData(UAVObjHandle obj_handle, uint16_t instId,
const void *dataIn)
{
PIOS_Assert(obj_handle);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Cast to object info
objEntry = (ObjectList*)obj;
int32_t rc = -1;
// Get instance information
instEntry = getInstance(objEntry, instId);
if ( instEntry == NULL )
{
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return -1;
if (UAVObjIsMetaobject(obj_handle)) {
if (instId != 0) {
goto unlock_exit;
}
memcpy(MetaDataPtr((struct UAVOMeta *)obj_handle), dataIn, MetaNumBytes);
} else {
struct UAVOData *obj;
InstanceHandle instEntry;
// Cast to object info
obj = (struct UAVOData *) obj_handle;
// Check access level
if (UAVObjReadOnly(obj_handle)) {
goto unlock_exit;
}
// Get instance information
instEntry = getInstance(obj, instId);
if (instEntry == NULL) {
goto unlock_exit;
}
// Set data
memcpy(InstanceData(instEntry), dataIn, obj->instance_size);
}
// return if we request too much of what we can give
if ( (size + offset) > objEntry->numBytes)
{
// Error, unlock and return
xSemaphoreGiveRecursive(mutex);
return -1;
}
// Set data
memcpy(dataOut, instEntry->data + offset, size);
// Fire event
sendEvent((struct UAVOBase *)obj_handle, instId, EV_UPDATED);
rc = 0;
// Unlock
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return 0;
return rc;
}
/**
* Set the data of a specific object instance
* \param[in] obj The object handle
* \param[in] instId The object instance ID
* \param[in] dataIn The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjSetInstanceDataField(UAVObjHandle obj_handle, uint16_t instId, const void* dataIn, uint32_t offset, uint32_t size)
{
PIOS_Assert(obj_handle);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
int32_t rc = -1;
if (UAVObjIsMetaobject(obj_handle)) {
// Get instance information
if (instId != 0) {
goto unlock_exit;
}
// Check for overrun
if ((size + offset) > MetaNumBytes) {
goto unlock_exit;
}
// Set data
memcpy(MetaDataPtr((struct UAVOMeta *)obj_handle) + offset, dataIn, size);
} else {
struct UAVOData * obj;
InstanceHandle instEntry;
// Cast to object info
obj = (struct UAVOData *)obj_handle;
// Check access level
if (UAVObjReadOnly(obj_handle)) {
goto unlock_exit;
}
// Get instance information
instEntry = getInstance(obj, instId);
if (instEntry == NULL) {
goto unlock_exit;
}
// Check for overrun
if ((size + offset) > obj->instance_size) {
goto unlock_exit;
}
// Set data
memcpy(InstanceData(instEntry) + offset, dataIn, size);
}
// Fire event
sendEvent((struct UAVOBase *)obj_handle, instId, EV_UPDATED);
rc = 0;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return rc;
}
/**
* Get the data of a specific object instance
* \param[in] obj The object handle
* \param[in] instId The object instance ID
* \param[out] dataOut The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjGetInstanceData(UAVObjHandle obj_handle, uint16_t instId,
void *dataOut)
{
PIOS_Assert(obj_handle);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
int32_t rc = -1;
if (UAVObjIsMetaobject(obj_handle)) {
// Get instance information
if (instId != 0) {
goto unlock_exit;
}
// Set data
memcpy(dataOut, MetaDataPtr((struct UAVOMeta *)obj_handle), MetaNumBytes);
} else {
struct UAVOData *obj;
InstanceHandle instEntry;
// Cast to object info
obj = (struct UAVOData *) obj_handle;
// Get instance information
instEntry = getInstance(obj, instId);
if (instEntry == NULL) {
goto unlock_exit;
}
// Set data
memcpy(dataOut, InstanceData(instEntry), obj->instance_size);
}
rc = 0;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return rc;
}
/**
* Get the data of a specific object instance
* \param[in] obj The object handle
* \param[in] instId The object instance ID
* \param[out] dataOut The object's data structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjGetInstanceDataField(UAVObjHandle obj_handle, uint16_t instId, void* dataOut, uint32_t offset, uint32_t size)
{
PIOS_Assert(obj_handle);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
int32_t rc = -1;
if (UAVObjIsMetaobject(obj_handle)) {
// Get instance information
if (instId != 0) {
goto unlock_exit;
}
// Check for overrun
if ((size + offset) > MetaNumBytes) {
goto unlock_exit;
}
// Set data
memcpy(dataOut, MetaDataPtr((struct UAVOMeta *)obj_handle) + offset, size);
} else {
struct UAVOData * obj;
InstanceHandle instEntry;
// Cast to object info
obj = (struct UAVOData *)obj_handle;
// Get instance information
instEntry = getInstance(obj, instId);
if (instEntry == NULL) {
goto unlock_exit;
}
// Check for overrun
if ((size + offset) > obj->instance_size) {
goto unlock_exit;
}
// Set data
memcpy(dataOut, InstanceData(instEntry) + offset, size);
}
rc = 0;
unlock_exit:
xSemaphoreGiveRecursive(mutex);
return rc;
}
/**
@ -1217,25 +1470,21 @@ int32_t UAVObjGetInstanceDataField(UAVObjHandle obj, uint16_t instId, void* data
* \param[in] dataIn The object's metadata structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjSetMetadata(UAVObjHandle obj, const UAVObjMetadata * dataIn)
int32_t UAVObjSetMetadata(UAVObjHandle obj_handle, const UAVObjMetadata * dataIn)
{
ObjectList *objEntry;
PIOS_Assert(obj_handle);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Set metadata (metadata of metaobjects can not be modified)
if (UAVObjIsMetaobject(obj_handle)) {
return -1;
}
// Set metadata (metadata of metaobjects can not be modified)
objEntry = (ObjectList *) obj;
if (!OLGetIsMetaobject(objEntry)) {
UAVObjSetData((UAVObjHandle) objEntry->linkedObj,
dataIn);
} else {
return -1;
}
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Unlock
xSemaphoreGiveRecursive(mutex);
return 0;
UAVObjSetData((UAVObjHandle) MetaObjectPtr((struct UAVOData *)obj_handle), dataIn);
xSemaphoreGiveRecursive(mutex);
return 0;
}
/**
@ -1244,44 +1493,29 @@ int32_t UAVObjSetMetadata(UAVObjHandle obj, const UAVObjMetadata * dataIn)
* \param[out] dataOut The object's metadata structure
* \return 0 if success or -1 if failure
*/
int32_t UAVObjGetMetadata(UAVObjHandle obj, UAVObjMetadata * dataOut)
int32_t UAVObjGetMetadata(UAVObjHandle obj_handle, UAVObjMetadata * dataOut)
{
ObjectList *objEntry;
PIOS_Assert(obj_handle);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Get metadata
objEntry = (ObjectList *) obj;
if (OLGetIsMetaobject(objEntry)) {
memcpy(dataOut, &defMetadata, sizeof(UAVObjMetadata));
} else {
UAVObjGetData((UAVObjHandle) objEntry->linkedObj,
dataOut);
}
// Get metadata
if (UAVObjIsMetaobject(obj_handle)) {
memcpy(dataOut, &defMetadata, sizeof(UAVObjMetadata));
} else {
UAVObjGetData((UAVObjHandle) MetaObjectPtr( (struct UAVOData *)obj_handle ),
dataOut);
}
// Unlock
xSemaphoreGiveRecursive(mutex);
return 0;
// Unlock
xSemaphoreGiveRecursive(mutex);
return 0;
}
/**
* Initialize a UAVObjMetadata object.
* \param[in] metadata The metadata object
*/
void UAVObjMetadataInitialize(UAVObjMetadata* metadata)
{
metadata->flags =
ACCESS_READWRITE << UAVOBJ_ACCESS_SHIFT |
ACCESS_READWRITE << UAVOBJ_GCS_ACCESS_SHIFT |
1 << UAVOBJ_TELEMETRY_ACKED_SHIFT |
1 << UAVOBJ_GCS_TELEMETRY_ACKED_SHIFT |
UPDATEMODE_ONCHANGE << UAVOBJ_TELEMETRY_UPDATE_MODE_SHIFT |
UPDATEMODE_ONCHANGE << UAVOBJ_GCS_TELEMETRY_UPDATE_MODE_SHIFT;
metadata->telemetryUpdatePeriod = 0;
metadata->gcsTelemetryUpdatePeriod = 0;
metadata->loggingUpdatePeriod = 0;
}
/*******************************
* Object Metadata Manipulation
******************************/
/**
* Get the UAVObject metadata access member
@ -1290,6 +1524,7 @@ void UAVObjMetadataInitialize(UAVObjMetadata* metadata)
*/
UAVObjAccessType UAVObjGetAccess(const UAVObjMetadata* metadata)
{
PIOS_Assert(metadata);
return (metadata->flags >> UAVOBJ_ACCESS_SHIFT) & 1;
}
@ -1300,6 +1535,7 @@ UAVObjAccessType UAVObjGetAccess(const UAVObjMetadata* metadata)
*/
void UAVObjSetAccess(UAVObjMetadata* metadata, UAVObjAccessType mode)
{
PIOS_Assert(metadata);
SET_BITS(metadata->flags, UAVOBJ_ACCESS_SHIFT, mode, 1);
}
@ -1310,6 +1546,7 @@ void UAVObjSetAccess(UAVObjMetadata* metadata, UAVObjAccessType mode)
*/
UAVObjAccessType UAVObjGetGcsAccess(const UAVObjMetadata* metadata)
{
PIOS_Assert(metadata);
return (metadata->flags >> UAVOBJ_GCS_ACCESS_SHIFT) & 1;
}
@ -1319,6 +1556,7 @@ UAVObjAccessType UAVObjGetGcsAccess(const UAVObjMetadata* metadata)
* \param[in] mode The access mode
*/
void UAVObjSetGcsAccess(UAVObjMetadata* metadata, UAVObjAccessType mode) {
PIOS_Assert(metadata);
SET_BITS(metadata->flags, UAVOBJ_GCS_ACCESS_SHIFT, mode, 1);
}
@ -1328,6 +1566,7 @@ void UAVObjSetGcsAccess(UAVObjMetadata* metadata, UAVObjAccessType mode) {
* \return the telemetry acked boolean
*/
uint8_t UAVObjGetTelemetryAcked(const UAVObjMetadata* metadata) {
PIOS_Assert(metadata);
return (metadata->flags >> UAVOBJ_TELEMETRY_ACKED_SHIFT) & 1;
}
@ -1337,6 +1576,7 @@ uint8_t UAVObjGetTelemetryAcked(const UAVObjMetadata* metadata) {
* \param[in] val The telemetry acked boolean
*/
void UAVObjSetTelemetryAcked(UAVObjMetadata* metadata, uint8_t val) {
PIOS_Assert(metadata);
SET_BITS(metadata->flags, UAVOBJ_TELEMETRY_ACKED_SHIFT, val, 1);
}
@ -1346,6 +1586,7 @@ void UAVObjSetTelemetryAcked(UAVObjMetadata* metadata, uint8_t val) {
* \return the telemetry acked boolean
*/
uint8_t UAVObjGetGcsTelemetryAcked(const UAVObjMetadata* metadata) {
PIOS_Assert(metadata);
return (metadata->flags >> UAVOBJ_GCS_TELEMETRY_ACKED_SHIFT) & 1;
}
@ -1355,6 +1596,7 @@ uint8_t UAVObjGetGcsTelemetryAcked(const UAVObjMetadata* metadata) {
* \param[in] val The GCS telemetry acked boolean
*/
void UAVObjSetGcsTelemetryAcked(UAVObjMetadata* metadata, uint8_t val) {
PIOS_Assert(metadata);
SET_BITS(metadata->flags, UAVOBJ_GCS_TELEMETRY_ACKED_SHIFT, val, 1);
}
@ -1364,6 +1606,7 @@ void UAVObjSetGcsTelemetryAcked(UAVObjMetadata* metadata, uint8_t val) {
* \return the telemetry update mode
*/
UAVObjUpdateMode UAVObjGetTelemetryUpdateMode(const UAVObjMetadata* metadata) {
PIOS_Assert(metadata);
return (metadata->flags >> UAVOBJ_TELEMETRY_UPDATE_MODE_SHIFT) & UAVOBJ_UPDATE_MODE_MASK;
}
@ -1373,6 +1616,7 @@ UAVObjUpdateMode UAVObjGetTelemetryUpdateMode(const UAVObjMetadata* metadata) {
* \param[in] val The telemetry update mode
*/
void UAVObjSetTelemetryUpdateMode(UAVObjMetadata* metadata, UAVObjUpdateMode val) {
PIOS_Assert(metadata);
SET_BITS(metadata->flags, UAVOBJ_TELEMETRY_UPDATE_MODE_SHIFT, val, UAVOBJ_UPDATE_MODE_MASK);
}
@ -1382,6 +1626,7 @@ void UAVObjSetTelemetryUpdateMode(UAVObjMetadata* metadata, UAVObjUpdateMode val
* \return the GCS telemetry update mode
*/
UAVObjUpdateMode UAVObjGetGcsTelemetryUpdateMode(const UAVObjMetadata* metadata) {
PIOS_Assert(metadata);
return (metadata->flags >> UAVOBJ_GCS_TELEMETRY_UPDATE_MODE_SHIFT) & UAVOBJ_UPDATE_MODE_MASK;
}
@ -1391,6 +1636,7 @@ UAVObjUpdateMode UAVObjGetGcsTelemetryUpdateMode(const UAVObjMetadata* metadata)
* \param[in] val The GCS telemetry update mode
*/
void UAVObjSetGcsTelemetryUpdateMode(UAVObjMetadata* metadata, UAVObjUpdateMode val) {
PIOS_Assert(metadata);
SET_BITS(metadata->flags, UAVOBJ_GCS_TELEMETRY_UPDATE_MODE_SHIFT, val, UAVOBJ_UPDATE_MODE_MASK);
}
@ -1403,22 +1649,13 @@ void UAVObjSetGcsTelemetryUpdateMode(UAVObjMetadata* metadata, UAVObjUpdateMode
* \arg 1 if read only
* \arg -1 if unable to get meta data
*/
int8_t UAVObjReadOnly(UAVObjHandle obj)
int8_t UAVObjReadOnly(UAVObjHandle obj_handle)
{
ObjectList *objEntry;
UAVObjMetadata *mdata;
// Cast to object info
objEntry = (ObjectList *) obj;
// Check access level
if (!OLGetIsMetaobject(objEntry)) {
mdata =
(UAVObjMetadata *) (objEntry->linkedObj->instances.
data);
return UAVObjGetAccess(mdata) == ACCESS_READONLY;
}
return -1;
PIOS_Assert(obj_handle);
if (!UAVObjIsMetaobject(obj_handle)) {
return UAVObjGetAccess(LinkedMetaDataPtr( (struct UAVOData *)obj_handle)) == ACCESS_READONLY;
}
return -1;
}
/**
@ -1429,14 +1666,16 @@ int8_t UAVObjReadOnly(UAVObjHandle obj)
* \param[in] eventMask The event mask, if EV_MASK_ALL then all events are enabled (e.g. EV_UPDATED | EV_UPDATED_MANUAL)
* \return 0 if success or -1 if failure
*/
int32_t UAVObjConnectQueue(UAVObjHandle obj, xQueueHandle queue,
uint8_t eventMask)
int32_t UAVObjConnectQueue(UAVObjHandle obj_handle, xQueueHandle queue,
uint8_t eventMask)
{
int32_t res;
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
res = connectObj(obj, queue, 0, eventMask);
xSemaphoreGiveRecursive(mutex);
return res;
PIOS_Assert(obj_handle);
PIOS_Assert(queue);
int32_t res;
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
res = connectObj(obj_handle, queue, 0, eventMask);
xSemaphoreGiveRecursive(mutex);
return res;
}
/**
@ -1445,13 +1684,15 @@ int32_t UAVObjConnectQueue(UAVObjHandle obj, xQueueHandle queue,
* \param[in] queue The event queue
* \return 0 if success or -1 if failure
*/
int32_t UAVObjDisconnectQueue(UAVObjHandle obj, xQueueHandle queue)
int32_t UAVObjDisconnectQueue(UAVObjHandle obj_handle, xQueueHandle queue)
{
int32_t res;
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
res = disconnectObj(obj, queue, 0);
xSemaphoreGiveRecursive(mutex);
return res;
PIOS_Assert(obj_handle);
PIOS_Assert(queue);
int32_t res;
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
res = disconnectObj(obj_handle, queue, 0);
xSemaphoreGiveRecursive(mutex);
return res;
}
/**
@ -1462,14 +1703,15 @@ int32_t UAVObjDisconnectQueue(UAVObjHandle obj, xQueueHandle queue)
* \param[in] eventMask The event mask, if EV_MASK_ALL then all events are enabled (e.g. EV_UPDATED | EV_UPDATED_MANUAL)
* \return 0 if success or -1 if failure
*/
int32_t UAVObjConnectCallback(UAVObjHandle obj, UAVObjEventCallback cb,
uint8_t eventMask)
int32_t UAVObjConnectCallback(UAVObjHandle obj_handle, UAVObjEventCallback cb,
uint8_t eventMask)
{
int32_t res;
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
res = connectObj(obj, 0, cb, eventMask);
xSemaphoreGiveRecursive(mutex);
return res;
PIOS_Assert(obj_handle);
int32_t res;
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
res = connectObj(obj_handle, 0, cb, eventMask);
xSemaphoreGiveRecursive(mutex);
return res;
}
/**
@ -1478,13 +1720,14 @@ int32_t UAVObjConnectCallback(UAVObjHandle obj, UAVObjEventCallback cb,
* \param[in] cb The event callback
* \return 0 if success or -1 if failure
*/
int32_t UAVObjDisconnectCallback(UAVObjHandle obj, UAVObjEventCallback cb)
int32_t UAVObjDisconnectCallback(UAVObjHandle obj_handle, UAVObjEventCallback cb)
{
int32_t res;
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
res = disconnectObj(obj, 0, cb);
xSemaphoreGiveRecursive(mutex);
return res;
PIOS_Assert(obj_handle);
int32_t res;
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
res = disconnectObj(obj_handle, 0, cb);
xSemaphoreGiveRecursive(mutex);
return res;
}
/**
@ -1492,9 +1735,9 @@ int32_t UAVObjDisconnectCallback(UAVObjHandle obj, UAVObjEventCallback cb)
* will be generated as soon as the object is updated.
* \param[in] obj The object handle
*/
void UAVObjRequestUpdate(UAVObjHandle obj)
void UAVObjRequestUpdate(UAVObjHandle obj_handle)
{
UAVObjRequestInstanceUpdate(obj, UAVOBJ_ALL_INSTANCES);
UAVObjRequestInstanceUpdate(obj_handle, UAVOBJ_ALL_INSTANCES);
}
/**
@ -1503,20 +1746,21 @@ void UAVObjRequestUpdate(UAVObjHandle obj)
* \param[in] obj The object handle
* \param[in] instId Object instance ID to update
*/
void UAVObjRequestInstanceUpdate(UAVObjHandle obj, uint16_t instId)
void UAVObjRequestInstanceUpdate(UAVObjHandle obj_handle, uint16_t instId)
{
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
sendEvent((ObjectList *) obj, instId, EV_UPDATE_REQ);
xSemaphoreGiveRecursive(mutex);
PIOS_Assert(obj_handle);
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
sendEvent((struct UAVOBase *) obj_handle, instId, EV_UPDATE_REQ);
xSemaphoreGiveRecursive(mutex);
}
/**
* Send the object's data to the GCS (triggers a EV_UPDATED_MANUAL event on this object).
* \param[in] obj The object handle
*/
void UAVObjUpdated(UAVObjHandle obj)
void UAVObjUpdated(UAVObjHandle obj_handle)
{
UAVObjInstanceUpdated(obj, UAVOBJ_ALL_INSTANCES);
UAVObjInstanceUpdated(obj_handle, UAVOBJ_ALL_INSTANCES);
}
/**
@ -1524,11 +1768,12 @@ void UAVObjUpdated(UAVObjHandle obj)
* \param[in] obj The object handle
* \param[in] instId The object instance ID
*/
void UAVObjInstanceUpdated(UAVObjHandle obj, uint16_t instId)
void UAVObjInstanceUpdated(UAVObjHandle obj_handle, uint16_t instId)
{
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
sendEvent((ObjectList *) obj, instId, EV_UPDATED_MANUAL);
xSemaphoreGiveRecursive(mutex);
PIOS_Assert(obj_handle);
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
sendEvent((struct UAVOBase *) obj_handle, instId, EV_UPDATED_MANUAL);
xSemaphoreGiveRecursive(mutex);
}
/**
@ -1538,133 +1783,152 @@ void UAVObjInstanceUpdated(UAVObjHandle obj, uint16_t instId)
*/
void UAVObjIterate(void (*iterator) (UAVObjHandle obj))
{
ObjectList *objEntry;
PIOS_Assert(iterator);
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Get lock
xSemaphoreTakeRecursive(mutex, portMAX_DELAY);
// Iterate through the list and invoke iterator for each object
LL_FOREACH(objList, objEntry) {
(*iterator) ((UAVObjHandle) objEntry);
}
// Iterate through the list and invoke iterator for each object
struct UAVOData *obj;
LL_FOREACH(uavo_list, obj) {
(*iterator) ((UAVObjHandle) obj);
(*iterator) ((UAVObjHandle) &obj->metaObj);
}
// Release lock
xSemaphoreGiveRecursive(mutex);
// Release lock
xSemaphoreGiveRecursive(mutex);
}
/**
* Send an event to all event queues registered on the object.
* Send a triggered event to all event queues registered on the object.
*/
static int32_t sendEvent(ObjectList * obj, uint16_t instId,
UAVObjEventType event)
static int32_t sendEvent(struct UAVOBase * obj, uint16_t instId,
UAVObjEventType triggered_event)
{
ObjectEventList *eventEntry;
UAVObjEvent msg;
/* Set up the message that will be sent to all registered listeners */
UAVObjEvent msg = {
.obj = (UAVObjHandle) obj,
.event = triggered_event,
.instId = instId,
};
// Setup event
msg.obj = (UAVObjHandle) obj;
msg.event = event;
msg.instId = instId;
// Go through each object and push the event message in the queue (if event is activated for the queue)
struct ObjectEventEntry *event;
LL_FOREACH(obj->next_event, event) {
if (event->eventMask == 0
|| (event->eventMask & triggered_event) != 0) {
// Send to queue if a valid queue is registered
if (event->queue) {
// will not block
if (xQueueSend(event->queue, &msg, 0) != pdTRUE) {
stats.lastQueueErrorID = UAVObjGetID(obj);
++stats.eventQueueErrors;
}
}
// Go through each object and push the event message in the queue (if event is activated for the queue)
LL_FOREACH(obj->events, eventEntry) {
if (eventEntry->eventMask == 0
|| (eventEntry->eventMask & event) != 0) {
// Send to queue if a valid queue is registered
if (eventEntry->queue != 0) {
if (xQueueSend(eventEntry->queue, &msg, 0) != pdTRUE) // will not block
{
stats.lastQueueErrorID = UAVObjGetID(obj);
++stats.eventQueueErrors;
}
}
// Invoke callback (from event task) if a valid one is registered
if (eventEntry->cb != 0) {
if (EventCallbackDispatch(&msg, eventEntry->cb) != pdTRUE) // invoke callback from the event task, will not block
{
++stats.eventCallbackErrors;
stats.lastCallbackErrorID = UAVObjGetID(obj);
}
}
}
}
// Invoke callback (from event task) if a valid one is registered
if (event->cb) {
// invoke callback from the event task, will not block
if (EventCallbackDispatch(&msg, event->cb) != pdTRUE) {
++stats.eventCallbackErrors;
stats.lastCallbackErrorID = UAVObjGetID(obj);
}
}
}
}
// Done
return 0;
return 0;
}
/**
* Create a new object instance, return the instance info or NULL if failure.
*/
static ObjectInstList *createInstance(ObjectList * obj, uint16_t instId)
static InstanceHandle createInstance(struct UAVOData * obj, uint16_t instId)
{
ObjectInstList *instEntry;
int32_t n;
struct UAVOMultiInst *instEntry;
// For single instance objects, only instance zero is allowed
if (OLGetIsSingleInstance(obj) && instId != 0) {
return NULL;
}
// Make sure that the instance ID is within limits
if (instId >= UAVOBJ_MAX_INSTANCES) {
return NULL;
}
// Check if the instance already exists
if (getInstance(obj, instId) != NULL) {
return NULL;
}
// Create any missing instances (all instance IDs must be sequential)
for (n = obj->numInstances; n < instId; ++n) {
if (createInstance(obj, n) == NULL) {
return NULL;
}
}
/* Don't allow more than one instance for single instance objects */
if (UAVObjIsSingleInstance(&(obj->base))) {
PIOS_Assert(0);
return NULL;
}
if (instId == 0) { /* Instance 0 ObjectInstList allocated with ObjectList element */
instEntry = &obj->instances;
instEntry->data = pvPortMalloc(obj->numBytes);
if (instEntry->data == NULL)
return NULL;
memset(instEntry->data, 0, obj->numBytes);
instEntry->instId = instId;
} else {
// Create the actual instance
instEntry =
(ObjectInstList *)
pvPortMalloc(sizeof(ObjectInstList));
if (instEntry == NULL)
return NULL;
instEntry->data = pvPortMalloc(obj->numBytes);
if (instEntry->data == NULL)
return NULL;
memset(instEntry->data, 0, obj->numBytes);
instEntry->instId = instId;
LL_APPEND(obj->instances.next, instEntry);
}
++obj->numInstances;
/* Don't create more than the allowed number of instances */
if (instId >= UAVOBJ_MAX_INSTANCES) {
return NULL;
}
// Fire event
UAVObjInstanceUpdated((UAVObjHandle) obj, instId);
/* Don't allow duplicate instances */
if (instId < UAVObjGetNumInstances(&(obj->base))) {
return NULL;
}
// Done
return instEntry;
// Create any missing instances (all instance IDs must be sequential)
for (uint16_t n = UAVObjGetNumInstances(&(obj->base)); n < instId; ++n) {
if (createInstance(obj, n) == NULL) {
return NULL;
}
}
/* Create the actual instance */
instEntry = (struct UAVOMultiInst *) pvPortMalloc(sizeof(struct UAVOMultiInst)+obj->instance_size);
if (!instEntry)
return NULL;
memset(InstanceDataOffset(instEntry), 0, obj->instance_size);
LL_APPEND(( (struct UAVOMulti*)obj )->instance0.next, instEntry);
( (struct UAVOMulti*)obj )->num_instances++;
// Fire event
UAVObjInstanceUpdated((UAVObjHandle) obj, instId);
// Done
return InstanceDataOffset(instEntry);
}
/**
* Get the instance information or NULL if the instance does not exist
*/
static ObjectInstList *getInstance(ObjectList * obj, uint16_t instId)
static InstanceHandle getInstance(struct UAVOData * obj, uint16_t instId)
{
ObjectInstList *instEntry;
if (UAVObjIsMetaobject(&obj->base)) {
/* Metadata Instance */
// Look for specified instance ID
LL_FOREACH(&(obj->instances), instEntry) {
if (instEntry->instId == instId) {
return instEntry;
}
}
// If this point is reached then instance id was not found
return NULL;
if (instId != 0)
return NULL;
/* Augment our pointer to reflect the proper type */
struct UAVOMeta * uavo_meta = (struct UAVOMeta *) obj;
return (&(uavo_meta->instance0));
} else if (UAVObjIsSingleInstance(&(obj->base))) {
/* Single Instance */
if (instId != 0)
return NULL;
/* Augment our pointer to reflect the proper type */
struct UAVOSingle * uavo_single = (struct UAVOSingle *) obj;
return (&(uavo_single->instance0));
} else {
/* Multi Instance */
/* Augment our pointer to reflect the proper type */
struct UAVOMulti * uavo_multi = (struct UAVOMulti *) obj;
if (instId >= uavo_multi->num_instances)
return NULL;
// Look for specified instance ID
uint16_t instance = 0;
struct UAVOMultiInst *instEntry;
LL_FOREACH(&(uavo_multi->instance0), instEntry) {
if (instance++ == instId) {
/* Found it */
return &(instEntry->instance);
}
}
/* Instance was not found */
return NULL;
}
}
/**
@ -1675,35 +1939,34 @@ static ObjectInstList *getInstance(ObjectList * obj, uint16_t instId)
* \param[in] eventMask The event mask, if EV_MASK_ALL then all events are enabled (e.g. EV_UPDATED | EV_UPDATED_MANUAL)
* \return 0 if success or -1 if failure
*/
static int32_t connectObj(UAVObjHandle obj, xQueueHandle queue,
UAVObjEventCallback cb, uint8_t eventMask)
static int32_t connectObj(UAVObjHandle obj_handle, xQueueHandle queue,
UAVObjEventCallback cb, uint8_t eventMask)
{
ObjectEventList *eventEntry;
ObjectList *objEntry;
struct ObjectEventEntry *event;
struct UAVOBase *obj;
// Check that the queue is not already connected, if it is simply update event mask
objEntry = (ObjectList *) obj;
LL_FOREACH(objEntry->events, eventEntry) {
if (eventEntry->queue == queue && eventEntry->cb == cb) {
// Already connected, update event mask and return
eventEntry->eventMask = eventMask;
return 0;
}
}
// Check that the queue is not already connected, if it is simply update event mask
obj = (struct UAVOBase *) obj_handle;
LL_FOREACH(obj->next_event, event) {
if (event->queue == queue && event->cb == cb) {
// Already connected, update event mask and return
event->eventMask = eventMask;
return 0;
}
}
// Add queue to list
eventEntry =
(ObjectEventList *) pvPortMalloc(sizeof(ObjectEventList));
if (eventEntry == NULL) {
return -1;
}
eventEntry->queue = queue;
eventEntry->cb = cb;
eventEntry->eventMask = eventMask;
LL_APPEND(objEntry->events, eventEntry);
// Add queue to list
event = (struct ObjectEventEntry *) pvPortMalloc(sizeof(struct ObjectEventEntry));
if (event == NULL) {
return -1;
}
event->queue = queue;
event->cb = cb;
event->eventMask = eventMask;
LL_APPEND(obj->next_event, event);
// Done
return 0;
// Done
return 0;
}
/**
@ -1713,25 +1976,25 @@ static int32_t connectObj(UAVObjHandle obj, xQueueHandle queue,
* \param[in] cb The event callback
* \return 0 if success or -1 if failure
*/
static int32_t disconnectObj(UAVObjHandle obj, xQueueHandle queue,
UAVObjEventCallback cb)
static int32_t disconnectObj(UAVObjHandle obj_handle, xQueueHandle queue,
UAVObjEventCallback cb)
{
ObjectEventList *eventEntry;
ObjectList *objEntry;
struct ObjectEventEntry *event;
struct UAVOBase *obj;
// Find queue and remove it
objEntry = (ObjectList *) obj;
LL_FOREACH(objEntry->events, eventEntry) {
if ((eventEntry->queue == queue
&& eventEntry->cb == cb)) {
LL_DELETE(objEntry->events, eventEntry);
vPortFree(eventEntry);
return 0;
}
}
// Find queue and remove it
obj = (struct UAVOBase *) obj_handle;
LL_FOREACH(obj->next_event, event) {
if ((event->queue == queue
&& event->cb == cb)) {
LL_DELETE(obj->next_event, event);
vPortFree(event);
return 0;
}
}
// If this point is reached the queue was not found
return -1;
// If this point is reached the queue was not found
return -1;
}
#if defined(PIOS_INCLUDE_SDCARD)
@ -1740,16 +2003,16 @@ static int32_t disconnectObj(UAVObjHandle obj, xQueueHandle queue,
*/
static void customSPrintf(uint8_t * buffer, uint8_t * format, ...)
{
va_list args;
va_start(args, format);
vsprintf((char *)buffer, (char *)format, args);
va_list args;
va_start(args, format);
vsprintf((char *)buffer, (char *)format, args);
}
/**
* Get an 8 character (plus extension) filename for the object.
*/
static void objectFilename(ObjectList * obj, uint8_t * filename)
static void objectFilename(UAVObjHandle obj_handle, uint8_t * filename)
{
customSPrintf(filename, (uint8_t *) "%X.obj", obj->id);
customSPrintf(filename, (uint8_t *) "%X.obj", UAVObjGetID(obj_handle));
}
#endif /* PIOS_INCLUDE_SDCARD */

View File

@ -54,7 +54,7 @@ int32_t $(NAME)Initialize(void)
return -2;
// Register object with the object manager
handle = UAVObjRegister($(NAMEUC)_OBJID, $(NAMEUC)_NAME, $(NAMEUC)_METANAME, 0,
handle = UAVObjRegister($(NAMEUC)_OBJID,
$(NAMEUC)_ISSINGLEINST, $(NAMEUC)_ISSETTINGS, $(NAMEUC)_NUMBYTES, &$(NAME)SetDefaults);
// Done

View File

@ -14,579 +14,12 @@
height="79.57505"
id="svg3604"
version="1.1"
inkscape:version="0.47pre4 r22446"
sodipodi:docname="system-health1.svg"
inkscape:version="0.48.2 r9819"
sodipodi:docname="system-health.svg"
inkscape:export-filename="C:\NoBackup\OpenPilot\mainboard-health.png"
inkscape:export-xdpi="269.53"
inkscape:export-ydpi="269.53"
style="display:inline">
<defs
id="defs3606">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 372.04724 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1052.3622 : 372.04724 : 1"
inkscape:persp3d-origin="526.18109 : 248.03149 : 1"
id="perspective3613" />
<inkscape:perspective
id="perspective3623"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3674"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3674-7"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3674-0"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3716"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3716-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3716-2"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3786"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3786-2"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3786-22"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3866"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3866-2"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3866-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3939"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4534"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4566"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4566-2"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4597"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4597-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4633"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4659"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4687"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4714"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4714-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4714-6"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4714-4"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4714-1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4714-7"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4714-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4714-63"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4854"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5052"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5110"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5141"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5275"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5325"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5325-1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5325-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3315"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3320"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3826"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3881"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4745"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4745-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4794"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4848"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3379"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3418"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3449"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3693"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3743"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3743-1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3743-16"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4642"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective6244"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4052"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3132"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3187"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3138"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3160"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3194"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3216"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3238"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3266"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3185"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3242-4"
id="radialGradient10901"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.77065835,-1.0172554,0,470.40485,337.23242)"
cx="23.895569"
cy="3.9900031"
fx="23.895569"
fy="3.9900031"
r="20.397499" />
<linearGradient
id="linearGradient3242-4">
<stop
id="stop3244-3"
style="stop-color:#f8b17e;stop-opacity:1"
offset="0" />
<stop
id="stop3246-8"
style="stop-color:#e35d4f;stop-opacity:1"
offset="0.26238" />
<stop
id="stop3248-5"
style="stop-color:#c6262e;stop-opacity:1"
offset="0.66093999" />
<stop
id="stop3250-5"
style="stop-color:#690b54;stop-opacity:1"
offset="1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2490-8"
id="linearGradient10903"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.3229028,0,0,0.32290287,458.59633,354.96299)"
x1="18.379412"
y1="44.980297"
x2="18.379412"
y2="3.0816143" />
<linearGradient
id="linearGradient2490-8">
<stop
id="stop2492-3"
style="stop-color:#791235;stop-opacity:1"
offset="0" />
<stop
id="stop2494-1"
style="stop-color:#dd3b27;stop-opacity:1"
offset="1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3242-4"
id="radialGradient10905"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.77065835,-1.0172554,0,470.40485,337.23242)"
cx="23.895569"
cy="3.9900031"
fx="23.895569"
fy="3.9900031"
r="20.397499" />
<linearGradient
id="linearGradient11125">
<stop
id="stop11127"
style="stop-color:#f8b17e;stop-opacity:1"
offset="0" />
<stop
id="stop11129"
style="stop-color:#e35d4f;stop-opacity:1"
offset="0.26238" />
<stop
id="stop11131"
style="stop-color:#c6262e;stop-opacity:1"
offset="0.66093999" />
<stop
id="stop11133"
style="stop-color:#690b54;stop-opacity:1"
offset="1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2490-8"
id="linearGradient10907"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.3229028,0,0,0.32290287,458.59633,354.96299)"
x1="18.379412"
y1="44.980297"
x2="18.379412"
y2="3.0816143" />
<linearGradient
id="linearGradient11136">
<stop
id="stop11138"
style="stop-color:#791235;stop-opacity:1"
offset="0" />
<stop
id="stop11140"
style="stop-color:#dd3b27;stop-opacity:1"
offset="1" />
</linearGradient>
</defs>
<sodipodi:namedview
inkscape:document-units="mm"
pagecolor="#ffffff"
@ -594,36 +27,603 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="6.6150935"
inkscape:cx="44.907363"
inkscape:cy="47.413196"
inkscape:zoom="9.3551549"
inkscape:cx="42.866204"
inkscape:cy="35.940147"
inkscape:current-layer="g4794"
id="namedview3608"
showgrid="false"
inkscape:window-width="1280"
inkscape:window-height="775"
inkscape:window-width="1920"
inkscape:window-height="1178"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
orientation="0,1"
id="guide3857"
position="68.372091,-63.708224"
id="guide3857" />
orientation="0,1" />
<sodipodi:guide
orientation="0,1"
id="guide4955"
position="-39.163559,-63.708224"
id="guide4955" />
orientation="0,1" />
<sodipodi:guide
orientation="0,1"
id="guide3360"
position="-180.96091,-53.199384"
id="guide3360" />
orientation="0,1" />
<sodipodi:guide
orientation="0,1"
id="guide3168"
position="34.202366,114.41506"
id="guide3168" />
orientation="0,1" />
</sodipodi:namedview>
<defs
id="defs3606">
<inkscape:perspective
id="perspective3613"
inkscape:persp3d-origin="526.18109 : 248.03149 : 1"
inkscape:vp_z="1052.3622 : 372.04724 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 372.04724 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3623" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3674" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3674-7" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3674-0" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3716" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3716-8" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3716-2" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3786" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3786-2" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3786-22" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3866" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3866-2" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3866-3" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3939" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4534" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4566" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4566-2" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4597" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4597-3" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4633" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4659" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4687" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4714" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4714-8" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4714-6" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4714-4" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4714-1" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4714-7" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4714-3" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4714-63" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4854" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective5052" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective5110" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective5141" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective5275" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective5325" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective5325-1" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective5325-9" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3315" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3320" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3826" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3881" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4745" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4745-3" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4794" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4848" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3379" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3418" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3449" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3693" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3743" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3743-1" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3743-16" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4642" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective6244" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4052" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3132" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3187" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3138" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3160" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3194" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3216" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3238" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3266" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3185" />
<radialGradient
r="20.397499"
fy="3.9900031"
fx="23.895569"
cy="3.9900031"
cx="23.895569"
gradientTransform="matrix(0,0.77065835,-1.0172554,0,470.40485,337.23242)"
gradientUnits="userSpaceOnUse"
id="radialGradient10901"
xlink:href="#linearGradient3242-4"
inkscape:collect="always" />
<linearGradient
id="linearGradient3242-4">
<stop
offset="0"
style="stop-color:#f8b17e;stop-opacity:1"
id="stop3244-3" />
<stop
offset="0.26238"
style="stop-color:#e35d4f;stop-opacity:1"
id="stop3246-8" />
<stop
offset="0.66093999"
style="stop-color:#c6262e;stop-opacity:1"
id="stop3248-5" />
<stop
offset="1"
style="stop-color:#690b54;stop-opacity:1"
id="stop3250-5" />
</linearGradient>
<linearGradient
y2="3.0816143"
x2="18.379412"
y1="44.980297"
x1="18.379412"
gradientTransform="matrix(0.3229028,0,0,0.32290287,458.59633,354.96299)"
gradientUnits="userSpaceOnUse"
id="linearGradient10903"
xlink:href="#linearGradient2490-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient2490-8">
<stop
offset="0"
style="stop-color:#791235;stop-opacity:1"
id="stop2492-3" />
<stop
offset="1"
style="stop-color:#dd3b27;stop-opacity:1"
id="stop2494-1" />
</linearGradient>
<radialGradient
r="20.397499"
fy="3.9900031"
fx="23.895569"
cy="3.9900031"
cx="23.895569"
gradientTransform="matrix(0,0.77065835,-1.0172554,0,470.40485,337.23242)"
gradientUnits="userSpaceOnUse"
id="radialGradient10905"
xlink:href="#linearGradient3242-4"
inkscape:collect="always" />
<linearGradient
id="linearGradient11125">
<stop
offset="0"
style="stop-color:#f8b17e;stop-opacity:1"
id="stop11127" />
<stop
offset="0.26238"
style="stop-color:#e35d4f;stop-opacity:1"
id="stop11129" />
<stop
offset="0.66093999"
style="stop-color:#c6262e;stop-opacity:1"
id="stop11131" />
<stop
offset="1"
style="stop-color:#690b54;stop-opacity:1"
id="stop11133" />
</linearGradient>
<linearGradient
y2="3.0816143"
x2="18.379412"
y1="44.980297"
x1="18.379412"
gradientTransform="matrix(0.3229028,0,0,0.32290287,458.59633,354.96299)"
gradientUnits="userSpaceOnUse"
id="linearGradient10907"
xlink:href="#linearGradient2490-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient11136">
<stop
offset="0"
style="stop-color:#791235;stop-opacity:1"
id="stop11138" />
<stop
offset="1"
style="stop-color:#dd3b27;stop-opacity:1"
id="stop11140" />
</linearGradient>
</defs>
<metadata
id="metadata3610">
<rdf:RDF>
@ -637,756 +637,715 @@
</rdf:RDF>
</metadata>
<g
inkscape:label="Background"
inkscape:groupmode="layer"
id="background"
style="display:inline"
transform="translate(-497.66563,-344.28037)"
style="display:inline">
id="background"
inkscape:groupmode="layer"
inkscape:label="Background">
<rect
style="fill:#453e3e;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Background"
width="93.746948"
height="79.063599"
x="497.92136"
ry="1.628684"
y="344.5361"
ry="1.628684" />
x="497.92136"
height="79.063599"
width="93.746948"
id="Background"
style="fill:#453e3e;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<g
style="font-size:13.40719509px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
id="MainBoard">
id="MainBoard"
style="font-size:13.40719509px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans">
<path
d="m 524.3844,367.59399 1.32275,0 1.67432,4.46485 1.68311,-4.46485 1.32275,0 0,6.56104 -0.86572,0 0,-5.76123 -1.6919,4.5 -0.89209,0 -1.69189,-4.5 0,5.76123 -0.86133,0 0,-6.56104"
id="path4061"
style="font-size:9px;fill:#ffffff"
id="path4061" />
d="m 524.3844,367.59399 1.32275,0 1.67432,4.46485 1.68311,-4.46485 1.32275,0 0,6.56104 -0.86572,0 0,-5.76123 -1.6919,4.5 -0.89209,0 -1.69189,-4.5 0,5.76123 -0.86133,0 0,-6.56104" />
<path
d="m 534.35559,371.68091 c -0.65332,0 -1.10596,0.0747 -1.35791,0.22412 -0.25195,0.14942 -0.37793,0.4043 -0.37793,0.76465 0,0.28711 0.0937,0.51562 0.28125,0.68554 0.19043,0.167 0.44824,0.25049 0.77344,0.25049 0.44824,0 0.80712,-0.1582 1.07666,-0.47461 0.27246,-0.31933 0.40869,-0.74267 0.40869,-1.27002 l 0,-0.18017 -0.8042,0 m 1.61279,-0.33399 0,2.80811 -0.80859,0 0,-0.74707 c -0.18457,0.29883 -0.41455,0.52002 -0.68994,0.66357 -0.27539,0.14063 -0.61231,0.21094 -1.01074,0.21094 -0.50391,0 -0.90528,-0.14062 -1.20411,-0.42187 -0.29589,-0.28418 -0.44384,-0.66358 -0.44384,-1.13819 0,-0.55371 0.18457,-0.97119 0.55371,-1.25244 0.37207,-0.28125 0.92578,-0.42187 1.66113,-0.42187 l 1.13379,0 0,-0.0791 c 0,-0.37206 -0.12305,-0.65917 -0.36914,-0.86132 -0.24317,-0.20508 -0.58594,-0.30762 -1.02832,-0.30762 -0.28125,0 -0.55518,0.0337 -0.82178,0.10107 -0.2666,0.0674 -0.52295,0.16846 -0.76904,0.30323 l 0,-0.74707 c 0.2959,-0.11426 0.58301,-0.19922 0.86133,-0.25489 0.27832,-0.0586 0.54931,-0.0879 0.81299,-0.0879 0.71191,10e-6 1.24364,0.18458 1.59521,0.55371 0.35156,0.36915 0.52734,0.92872 0.52734,1.67871"
id="path4063"
style="font-size:9px;fill:#ffffff"
id="path4063" />
d="m 534.35559,371.68091 c -0.65332,0 -1.10596,0.0747 -1.35791,0.22412 -0.25195,0.14942 -0.37793,0.4043 -0.37793,0.76465 0,0.28711 0.0937,0.51562 0.28125,0.68554 0.19043,0.167 0.44824,0.25049 0.77344,0.25049 0.44824,0 0.80712,-0.1582 1.07666,-0.47461 0.27246,-0.31933 0.40869,-0.74267 0.40869,-1.27002 l 0,-0.18017 -0.8042,0 m 1.61279,-0.33399 0,2.80811 -0.80859,0 0,-0.74707 c -0.18457,0.29883 -0.41455,0.52002 -0.68994,0.66357 -0.27539,0.14063 -0.61231,0.21094 -1.01074,0.21094 -0.50391,0 -0.90528,-0.14062 -1.20411,-0.42187 -0.29589,-0.28418 -0.44384,-0.66358 -0.44384,-1.13819 0,-0.55371 0.18457,-0.97119 0.55371,-1.25244 0.37207,-0.28125 0.92578,-0.42187 1.66113,-0.42187 l 1.13379,0 0,-0.0791 c 0,-0.37206 -0.12305,-0.65917 -0.36914,-0.86132 -0.24317,-0.20508 -0.58594,-0.30762 -1.02832,-0.30762 -0.28125,0 -0.55518,0.0337 -0.82178,0.10107 -0.2666,0.0674 -0.52295,0.16846 -0.76904,0.30323 l 0,-0.74707 c 0.2959,-0.11426 0.58301,-0.19922 0.86133,-0.25489 0.27832,-0.0586 0.54931,-0.0879 0.81299,-0.0879 0.71191,10e-6 1.24364,0.18458 1.59521,0.55371 0.35156,0.36915 0.52734,0.92872 0.52734,1.67871" />
<path
d="m 537.63831,369.23315 0.80859,0 0,4.92188 -0.80859,0 0,-4.92188 m 0,-1.91601 0.80859,0 0,1.02392 -0.80859,0 0,-1.02392"
id="path4065"
style="font-size:9px;fill:#ffffff"
id="path4065" />
d="m 537.63831,369.23315 0.80859,0 0,4.92188 -0.80859,0 0,-4.92188 m 0,-1.91601 0.80859,0 0,1.02392 -0.80859,0 0,-1.02392" />
<path
d="m 544.22571,371.18433 0,2.9707 -0.8086,0 0,-2.94434 c 0,-0.46581 -0.0908,-0.81445 -0.27246,-1.0459 -0.18164,-0.23144 -0.4541,-0.34716 -0.81738,-0.34716 -0.43653,0 -0.78076,0.13916 -1.03271,0.41748 -0.25196,0.27832 -0.37794,0.65772 -0.37793,1.13818 l 0,2.78174 -0.81299,0 0,-4.92188 0.81299,0 0,0.76465 c 0.19335,-0.29589 0.4204,-0.51708 0.68115,-0.66357 0.26367,-0.14648 0.56689,-0.21972 0.90967,-0.21973 0.56542,10e-6 0.99316,0.17579 1.2832,0.52735 0.29003,0.34863 0.43505,0.86279 0.43506,1.54248"
id="path4067"
style="font-size:9px;fill:#ffffff"
id="path4067" />
d="m 544.22571,371.18433 0,2.9707 -0.8086,0 0,-2.94434 c 0,-0.46581 -0.0908,-0.81445 -0.27246,-1.0459 -0.18164,-0.23144 -0.4541,-0.34716 -0.81738,-0.34716 -0.43653,0 -0.78076,0.13916 -1.03271,0.41748 -0.25196,0.27832 -0.37794,0.65772 -0.37793,1.13818 l 0,2.78174 -0.81299,0 0,-4.92188 0.81299,0 0,0.76465 c 0.19335,-0.29589 0.4204,-0.51708 0.68115,-0.66357 0.26367,-0.14648 0.56689,-0.21972 0.90967,-0.21973 0.56542,10e-6 0.99316,0.17579 1.2832,0.52735 0.29003,0.34863 0.43505,0.86279 0.43506,1.54248" />
<path
d="m 549.38049,371.69849 c 0,-0.59473 -0.12305,-1.06055 -0.36914,-1.39746 -0.24317,-0.33984 -0.57861,-0.50977 -1.00635,-0.50977 -0.42773,0 -0.76465,0.16993 -1.01074,0.50977 -0.24316,0.33691 -0.36475,0.80273 -0.36474,1.39746 -10e-6,0.59472 0.12158,1.06201 0.36474,1.40185 0.24609,0.33692 0.58301,0.50537 1.01074,0.50537 0.42774,0 0.76318,-0.16845 1.00635,-0.50537 0.24609,-0.33984 0.36914,-0.80713 0.36914,-1.40185 m -2.75097,-1.71827 c 0.16992,-0.29296 0.38378,-0.50976 0.6416,-0.65039 0.26074,-0.14355 0.57128,-0.21532 0.93164,-0.21533 0.59765,10e-6 1.08251,0.23731 1.45459,0.71192 0.37499,0.47461 0.56249,1.09863 0.5625,1.87207 -10e-6,0.77344 -0.18751,1.39746 -0.5625,1.87207 -0.37208,0.47461 -0.85694,0.71191 -1.45459,0.71191 -0.36036,0 -0.6709,-0.0703 -0.93164,-0.21094 -0.25782,-0.14355 -0.47168,-0.36181 -0.6416,-0.65478 l 0,0.73828 -0.81299,0 0,-6.83789 0.81299,0 0,2.66308"
id="path4069"
style="font-size:9px;fill:#ffffff"
id="path4069" />
d="m 549.38049,371.69849 c 0,-0.59473 -0.12305,-1.06055 -0.36914,-1.39746 -0.24317,-0.33984 -0.57861,-0.50977 -1.00635,-0.50977 -0.42773,0 -0.76465,0.16993 -1.01074,0.50977 -0.24316,0.33691 -0.36475,0.80273 -0.36474,1.39746 -10e-6,0.59472 0.12158,1.06201 0.36474,1.40185 0.24609,0.33692 0.58301,0.50537 1.01074,0.50537 0.42774,0 0.76318,-0.16845 1.00635,-0.50537 0.24609,-0.33984 0.36914,-0.80713 0.36914,-1.40185 m -2.75097,-1.71827 c 0.16992,-0.29296 0.38378,-0.50976 0.6416,-0.65039 0.26074,-0.14355 0.57128,-0.21532 0.93164,-0.21533 0.59765,10e-6 1.08251,0.23731 1.45459,0.71192 0.37499,0.47461 0.56249,1.09863 0.5625,1.87207 -10e-6,0.77344 -0.18751,1.39746 -0.5625,1.87207 -0.37208,0.47461 -0.85694,0.71191 -1.45459,0.71191 -0.36036,0 -0.6709,-0.0703 -0.93164,-0.21094 -0.25782,-0.14355 -0.47168,-0.36181 -0.6416,-0.65478 l 0,0.73828 -0.81299,0 0,-6.83789 0.81299,0 0,2.66308" />
<path
d="m 553.46741,369.80005 c -0.4336,0 -0.77637,0.16992 -1.02832,0.50976 -0.25196,0.33692 -0.37793,0.79981 -0.37793,1.38868 0,0.58887 0.12451,1.05322 0.37353,1.39306 0.25195,0.33692 0.59619,0.50537 1.03272,0.50537 0.43066,0 0.77197,-0.16992 1.02392,-0.50976 0.25195,-0.33984 0.37793,-0.80273 0.37793,-1.38867 0,-0.58301 -0.12598,-1.04443 -0.37793,-1.38428 -0.25195,-0.34277 -0.59326,-0.51416 -1.02392,-0.51416 m 0,-0.68555 c 0.70312,10e-6 1.25536,0.22852 1.65674,0.68555 0.40136,0.45703 0.60204,1.08985 0.60205,1.89844 -10e-6,0.80566 -0.20069,1.43847 -0.60205,1.89843 -0.40138,0.45704 -0.95362,0.68555 -1.65674,0.68555 -0.70606,0 -1.25977,-0.22851 -1.66114,-0.68555 -0.39843,-0.45996 -0.59765,-1.09277 -0.59765,-1.89843 0,-0.80859 0.19922,-1.44141 0.59765,-1.89844 0.40137,-0.45703 0.95508,-0.68554 1.66114,-0.68555"
id="path4071"
style="font-size:9px;fill:#ffffff"
id="path4071" />
d="m 553.46741,369.80005 c -0.4336,0 -0.77637,0.16992 -1.02832,0.50976 -0.25196,0.33692 -0.37793,0.79981 -0.37793,1.38868 0,0.58887 0.12451,1.05322 0.37353,1.39306 0.25195,0.33692 0.59619,0.50537 1.03272,0.50537 0.43066,0 0.77197,-0.16992 1.02392,-0.50976 0.25195,-0.33984 0.37793,-0.80273 0.37793,-1.38867 0,-0.58301 -0.12598,-1.04443 -0.37793,-1.38428 -0.25195,-0.34277 -0.59326,-0.51416 -1.02392,-0.51416 m 0,-0.68555 c 0.70312,10e-6 1.25536,0.22852 1.65674,0.68555 0.40136,0.45703 0.60204,1.08985 0.60205,1.89844 -10e-6,0.80566 -0.20069,1.43847 -0.60205,1.89843 -0.40138,0.45704 -0.95362,0.68555 -1.65674,0.68555 -0.70606,0 -1.25977,-0.22851 -1.66114,-0.68555 -0.39843,-0.45996 -0.59765,-1.09277 -0.59765,-1.89843 0,-0.80859 0.19922,-1.44141 0.59765,-1.89844 0.40137,-0.45703 0.95508,-0.68554 1.66114,-0.68555" />
<path
d="m 559.29895,371.68091 c -0.65332,0 -1.10596,0.0747 -1.35791,0.22412 -0.25195,0.14942 -0.37793,0.4043 -0.37793,0.76465 0,0.28711 0.0937,0.51562 0.28125,0.68554 0.19043,0.167 0.44824,0.25049 0.77344,0.25049 0.44824,0 0.80712,-0.1582 1.07666,-0.47461 0.27246,-0.31933 0.40869,-0.74267 0.40869,-1.27002 l 0,-0.18017 -0.8042,0 m 1.61279,-0.33399 0,2.80811 -0.80859,0 0,-0.74707 c -0.18457,0.29883 -0.41455,0.52002 -0.68994,0.66357 -0.2754,0.14063 -0.61231,0.21094 -1.01074,0.21094 -0.50391,0 -0.90528,-0.14062 -1.20411,-0.42187 -0.29589,-0.28418 -0.44384,-0.66358 -0.44384,-1.13819 0,-0.55371 0.18457,-0.97119 0.55371,-1.25244 0.37207,-0.28125 0.92578,-0.42187 1.66113,-0.42187 l 1.13379,0 0,-0.0791 c 0,-0.37206 -0.12305,-0.65917 -0.36914,-0.86132 -0.24317,-0.20508 -0.58594,-0.30762 -1.02832,-0.30762 -0.28125,0 -0.55518,0.0337 -0.82178,0.10107 -0.2666,0.0674 -0.52295,0.16846 -0.76904,0.30323 l 0,-0.74707 c 0.2959,-0.11426 0.583,-0.19922 0.86133,-0.25489 0.27831,-0.0586 0.54931,-0.0879 0.81298,-0.0879 0.71192,10e-6 1.24365,0.18458 1.59522,0.55371 0.35156,0.36915 0.52734,0.92872 0.52734,1.67871"
id="path4073"
style="font-size:9px;fill:#ffffff"
id="path4073" />
d="m 559.29895,371.68091 c -0.65332,0 -1.10596,0.0747 -1.35791,0.22412 -0.25195,0.14942 -0.37793,0.4043 -0.37793,0.76465 0,0.28711 0.0937,0.51562 0.28125,0.68554 0.19043,0.167 0.44824,0.25049 0.77344,0.25049 0.44824,0 0.80712,-0.1582 1.07666,-0.47461 0.27246,-0.31933 0.40869,-0.74267 0.40869,-1.27002 l 0,-0.18017 -0.8042,0 m 1.61279,-0.33399 0,2.80811 -0.80859,0 0,-0.74707 c -0.18457,0.29883 -0.41455,0.52002 -0.68994,0.66357 -0.2754,0.14063 -0.61231,0.21094 -1.01074,0.21094 -0.50391,0 -0.90528,-0.14062 -1.20411,-0.42187 -0.29589,-0.28418 -0.44384,-0.66358 -0.44384,-1.13819 0,-0.55371 0.18457,-0.97119 0.55371,-1.25244 0.37207,-0.28125 0.92578,-0.42187 1.66113,-0.42187 l 1.13379,0 0,-0.0791 c 0,-0.37206 -0.12305,-0.65917 -0.36914,-0.86132 -0.24317,-0.20508 -0.58594,-0.30762 -1.02832,-0.30762 -0.28125,0 -0.55518,0.0337 -0.82178,0.10107 -0.2666,0.0674 -0.52295,0.16846 -0.76904,0.30323 l 0,-0.74707 c 0.2959,-0.11426 0.583,-0.19922 0.86133,-0.25489 0.27831,-0.0586 0.54931,-0.0879 0.81298,-0.0879 0.71192,10e-6 1.24365,0.18458 1.59522,0.55371 0.35156,0.36915 0.52734,0.92872 0.52734,1.67871" />
<path
d="m 565.43372,369.98901 c -0.0908,-0.0527 -0.19044,-0.0908 -0.29883,-0.11425 -0.10547,-0.0264 -0.22266,-0.0395 -0.35156,-0.0395 -0.45704,0 -0.8086,0.14941 -1.05469,0.44824 -0.24317,0.2959 -0.36475,0.72217 -0.36475,1.27881 l 0,2.59277 -0.81299,0 0,-4.92188 0.81299,0 0,0.76465 c 0.16992,-0.29882 0.39111,-0.52001 0.66358,-0.66357 0.27245,-0.14648 0.60351,-0.21972 0.99316,-0.21973 0.0557,10e-6 0.11718,0.004 0.18457,0.0132 0.0674,0.006 0.14209,0.0161 0.22412,0.0308 l 0.004,0.83056"
id="path4075"
style="font-size:9px;fill:#ffffff"
id="path4075" />
d="m 565.43372,369.98901 c -0.0908,-0.0527 -0.19044,-0.0908 -0.29883,-0.11425 -0.10547,-0.0264 -0.22266,-0.0395 -0.35156,-0.0395 -0.45704,0 -0.8086,0.14941 -1.05469,0.44824 -0.24317,0.2959 -0.36475,0.72217 -0.36475,1.27881 l 0,2.59277 -0.81299,0 0,-4.92188 0.81299,0 0,0.76465 c 0.16992,-0.29882 0.39111,-0.52001 0.66358,-0.66357 0.27245,-0.14648 0.60351,-0.21972 0.99316,-0.21973 0.0557,10e-6 0.11718,0.004 0.18457,0.0132 0.0674,0.006 0.14209,0.0161 0.22412,0.0308 l 0.004,0.83056" />
<path
d="m 569.37122,369.98022 0,-2.66308 0.80859,0 0,6.83789 -0.80859,0 0,-0.73828 c -0.16993,0.29297 -0.38526,0.51123 -0.646,0.65478 -0.25782,0.14063 -0.56836,0.21094 -0.93164,0.21094 -0.59473,0 -1.07959,-0.2373 -1.45459,-0.71191 -0.37207,-0.47461 -0.55811,-1.09863 -0.55811,-1.87207 0,-0.77344 0.18604,-1.39746 0.55811,-1.87207 0.375,-0.47461 0.85986,-0.71191 1.45459,-0.71192 0.36328,10e-6 0.67382,0.0718 0.93164,0.21533 0.26074,0.14063 0.47607,0.35743 0.646,0.65039 m -2.75538,1.71827 c 0,0.59472 0.12159,1.06201 0.36475,1.40185 0.24609,0.33692 0.58301,0.50537 1.01074,0.50537 0.42773,0 0.76465,-0.16845 1.01075,-0.50537 0.24608,-0.33984 0.36913,-0.80713 0.36914,-1.40185 -10e-6,-0.59473 -0.12306,-1.06055 -0.36914,-1.39746 -0.2461,-0.33984 -0.58302,-0.50977 -1.01075,-0.50977 -0.42773,0 -0.76465,0.16993 -1.01074,0.50977 -0.24316,0.33691 -0.36475,0.80273 -0.36475,1.39746"
id="path4077"
style="font-size:9px;fill:#ffffff"
id="path4077" />
d="m 569.37122,369.98022 0,-2.66308 0.80859,0 0,6.83789 -0.80859,0 0,-0.73828 c -0.16993,0.29297 -0.38526,0.51123 -0.646,0.65478 -0.25782,0.14063 -0.56836,0.21094 -0.93164,0.21094 -0.59473,0 -1.07959,-0.2373 -1.45459,-0.71191 -0.37207,-0.47461 -0.55811,-1.09863 -0.55811,-1.87207 0,-0.77344 0.18604,-1.39746 0.55811,-1.87207 0.375,-0.47461 0.85986,-0.71191 1.45459,-0.71192 0.36328,10e-6 0.67382,0.0718 0.93164,0.21533 0.26074,0.14063 0.47607,0.35743 0.646,0.65039 m -2.75538,1.71827 c 0,0.59472 0.12159,1.06201 0.36475,1.40185 0.24609,0.33692 0.58301,0.50537 1.01074,0.50537 0.42773,0 0.76465,-0.16845 1.01075,-0.50537 0.24608,-0.33984 0.36913,-0.80713 0.36914,-1.40185 -10e-6,-0.59473 -0.12306,-1.06055 -0.36914,-1.39746 -0.2461,-0.33984 -0.58302,-0.50977 -1.01075,-0.50977 -0.42773,0 -0.76465,0.16993 -1.01074,0.50977 -0.24316,0.33691 -0.36475,0.80273 -0.36475,1.39746" />
</g>
<rect
y="365.44907"
x="499.10913"
height="56.637238"
width="13.893178"
inkscape:label="#rect4000-8-5"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Actuator"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#rect4000-8-5" />
<rect
y="365.44907"
x="576.71594"
height="56.637238"
width="13.893178"
height="56.637238"
x="499.10913"
y="365.44907" />
<rect
inkscape:label="#rect4000-8-0-9"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="ManualControl"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#rect4000-8-0-9" />
width="13.893178"
height="56.637238"
x="576.71594"
y="365.44907" />
<rect
inkscape:label="#rect4000-7-6-2-2"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="SDCard"
width="5.311192"
height="15.007023"
x="569.32855"
y="406.95688"
inkscape:label="#rect4000-7-6-51-2-0-4" />
<rect
y="346.10165"
x="501.80048"
id="Power"
width="18.023544"
height="8.2846708"
width="18.023544"
x="501.80048"
y="346.10165" />
<rect
inkscape:label="#rect4000-7-6-2-2111"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Battery"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#rect4000-7-6-2-2" />
<rect
y="345.96741"
x="556.2887"
height="20.208858"
width="9.741457"
id="AHRS-SPI"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
y="346.10165"
x="569.6358"
height="8.0567961"
width="18.023544"
id="I2C"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
y="355.2207"
x="569.63025"
height="8.0690594"
width="18.036383"
id="Temp-Baro"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.51991701;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
y="407.05673"
x="552.6358"
height="15.007023"
width="5.311192"
id="USB"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
height="8.2846708"
x="501.69357"
y="355.57822" />
<rect
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="JTAG"
id="Sensors"
width="9.741457"
height="20.208858"
x="556.2887"
y="345.96741"
inkscape:label="#Sensors" />
<rect
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="I2C"
width="18.023544"
height="8.0567961"
x="569.6358"
y="346.10165" />
<rect
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.51991701;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Temp-Baro"
width="18.036383"
height="8.0690594"
x="569.63025"
y="355.2207" />
<rect
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="USB"
width="5.311192"
height="15.007023"
x="560.98218"
x="552.6358"
y="407.05673" />
<rect
y="407.05673"
x="544.28949"
x="560.98218"
height="15.007023"
width="5.311192"
id="GPIO"
id="JTAG"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
y="407.0524"
x="514.80487"
height="14.938984"
width="9.9426785"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="GPIO"
width="5.311192"
height="15.007023"
x="544.28949"
y="407.05673" />
<rect
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53369814;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Pwr-Sense"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53369814;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
width="9.9426785"
height="14.938984"
x="514.80487"
y="407.0524" />
<rect
y="406.95688"
x="526.39636"
height="15.034504"
width="16.179909"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53585184;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="ADC"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53585184;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
y="385.55762"
x="515.23181"
height="8.1216154"
width="18.153212"
id="CPUOverload"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#rect4000-7-6-7-1" />
<rect
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="StackOverflow"
width="18.153212"
height="8.1216154"
x="535.7182"
y="385.55762"
inkscape:label="#rect6258" />
<rect
y="385.55762"
x="556.20465"
height="8.1216154"
width="18.153212"
id="OutOfMemory"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#rect6260" />
width="16.179909"
height="15.034504"
x="526.39636"
y="406.95688" />
<rect
inkscape:label="#rect4000-7-6-7-1"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="EventSystem"
id="CPUOverload"
width="18.153212"
height="8.1216154"
x="515.23181"
y="395.55762" />
<rect
y="1.9175365"
x="25.010578"
height="20.040594"
width="30.08411"
id="USARTs"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.55302167;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(497.66563,344.28037)" />
<rect
inkscape:label="#rect4552-27"
y="347.41809"
x="523.76398"
height="5.6002355"
width="23.347105"
id="Telemetry"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
y="385.55762" />
<rect
inkscape:label="#rect6258"
y="395.55762"
y="385.55762"
x="535.7182"
height="8.1216154"
width="18.153212"
id="Stabilization"
id="StackOverflow"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="AHRSComms"
width="7.7278037"
height="13.085983"
x="557.29553"
y="347.19067"
inkscape:label="#rect4552-27" />
<rect
y="395.55762"
x="556.20465"
height="8.1216154"
width="18.153212"
id="FlightTime"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect6260" />
<rect
y="353.41809"
x="523.76398"
height="5.6002355"
width="23.347105"
id="GPS"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4120" />
<rect
inkscape:label="#rect6260"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Attitude"
id="OutOfMemory"
width="18.153212"
height="8.1216154"
x="556.20465"
y="375.55762" />
y="385.55762" />
<rect
inkscape:label="#rect6258"
y="375.55762"
x="535.7182"
height="8.1216154"
width="18.153212"
id="Guidance"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
inkscape:label="#rect4000-7-6-7-1"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="BootFault"
width="18.153212"
height="8.1216154"
y="395.55762"
x="515.23181"
y="375.55762" />
</g>
<g
inkscape:groupmode="layer"
id="layer45"
inkscape:label="FlightTime-OK"
style="display:none">
<rect
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="FlightTime-OK"
width="18.153212"
height="8.1216154"
x="58.539021"
y="51.277248"
inkscape:label="#rect8374" />
</g>
<g
inkscape:groupmode="layer"
id="layer46"
inkscape:label="FlightTime-Warning"
style="display:none">
<rect
y="51.277248"
x="58.539021"
height="8.1216154"
width="18.153212"
id="FlightTime-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4073" />
</g>
<g
inkscape:groupmode="layer"
id="layer47"
inkscape:label="FlightTime-Error"
style="display:none">
<g
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="FlightTime-Error"
transform="translate(20.488022,18.086644)"
inkscape:label="#g4084">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 38.076545,33.292974 56.14311,41.28257"
id="path4086-8"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 38.220502,41.354548 17.85063,-8.061574"
id="FlightTime-Error2"
inkscape:label="#path4088-8"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer48"
inkscape:label="FlightTime-Critical"
style="display:none">
id="EventSystem"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#rect4000-7-6-7-1" />
<rect
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="FlightTime-Critical"
transform="translate(497.66563,344.28037)"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.55302167;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="USARTs"
width="30.08411"
height="20.040594"
x="25.010578"
y="1.9175365" />
<rect
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Telemetry"
width="23.347105"
height="5.6002355"
x="523.76398"
y="347.41809"
inkscape:label="#rect4552-27" />
<rect
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Stabilization"
width="18.153212"
height="8.1216154"
x="58.539021"
y="51.277248"
inkscape:label="#rect4080" />
x="535.7182"
y="395.55762"
inkscape:label="#rect6258" />
<rect
inkscape:label="#rect6260"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="FlightTime"
width="18.153212"
height="8.1216154"
x="556.20465"
y="395.55762" />
<rect
inkscape:label="#rect4120"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="GPS"
width="23.347105"
height="5.6002355"
x="523.76398"
y="353.41809" />
<rect
y="375.55762"
x="556.20465"
height="8.1216154"
width="18.153212"
id="Attitude"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#rect6260" />
<rect
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Guidance"
width="18.153212"
height="8.1216154"
x="535.7182"
y="375.55762"
inkscape:label="#rect6258" />
<rect
y="375.55762"
x="515.23181"
height="8.1216154"
width="18.153212"
id="BootFault"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#rect4000-7-6-7-1" />
</g>
<g
style="display:none"
inkscape:label="I2C-OK"
id="g3164"
inkscape:label="FlightTime-OK"
id="layer45"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect8374"
y="1.8212841"
x="71.970177"
y="51.277248"
x="58.539021"
height="8.1216154"
width="18.153212"
id="I2C-OK"
id="FlightTime-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="I2C-Warning"
id="g3160"
inkscape:label="FlightTime-Warning"
id="layer46"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect4073"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="I2C-Warning"
id="FlightTime-Warning"
width="18.153212"
height="8.1216154"
x="71.970177"
y="1.8212841" />
x="58.539021"
y="51.277248" />
</g>
<g
style="display:none"
inkscape:label="I2C-Error"
id="g3152"
inkscape:label="FlightTime-Error"
id="layer47"
inkscape:groupmode="layer">
<g
inkscape:label="#g4084"
transform="translate(33.813538,-31.144609)"
id="I2C-Error"
transform="translate(20.488022,18.086644)"
id="FlightTime-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline">
<path
id="path3156"
inkscape:connector-curvature="0"
id="path4086-8"
d="M 38.076545,33.292974 56.14311,41.28257"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
inkscape:label="#path4088-8"
id="path3158"
id="FlightTime-Error2"
d="m 38.220502,41.354548 17.85063,-8.061574"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
style="display:none"
inkscape:label="I2C-Critical"
id="g3148"
inkscape:label="FlightTime-Critical"
id="layer48"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect4080"
y="1.8212841"
x="71.970177"
y="51.277248"
x="58.539021"
height="8.1216154"
width="18.153212"
id="I2C-Critical"
id="FlightTime-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
inkscape:groupmode="layer"
id="g3184"
inkscape:label="GPS-OK"
id="g3164"
inkscape:label="I2C-OK"
style="display:none">
<rect
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.30000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="GPS-OK"
width="23.347105"
height="5.6002355"
x="26.199663"
y="9.1076469"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="I2C-OK"
width="18.153212"
height="8.1216154"
x="71.970177"
y="1.8212841"
inkscape:label="#rect8374" />
</g>
<g
inkscape:groupmode="layer"
id="g3180"
inkscape:label="GPS-Warning"
id="g3160"
inkscape:label="I2C-Warning"
style="display:none">
<rect
y="9.1076469"
x="26.199663"
height="5.6002355"
width="23.347105"
id="GPS-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.30000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
y="1.8212841"
x="71.970177"
height="8.1216154"
width="18.153212"
id="I2C-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4073" />
</g>
<g
inkscape:groupmode="layer"
id="g3172"
inkscape:label="GPS-Error"
id="g3152"
inkscape:label="I2C-Error"
style="display:none">
<g
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="GPS-Error"
transform="matrix(1.2853162,0,0,0.64013573,-22.75,-11.845582)"
id="I2C-Error"
transform="translate(33.813538,-31.144609)"
inkscape:label="#g4084">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 38.076545,33.292974 56.14311,41.28257"
id="path3176" />
id="path3156" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 38.220502,41.354548 17.85063,-8.061574"
id="path3178"
id="path3158"
inkscape:label="#path4088-8" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="g3168"
inkscape:label="GPS-Critical"
id="g3148"
inkscape:label="I2C-Critical"
style="display:none">
<rect
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.30000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="GPS-Critical"
width="23.347105"
height="5.6002355"
x="26.199663"
y="9.1076469"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="I2C-Critical"
width="18.153212"
height="8.1216154"
x="71.970177"
y="1.8212841"
inkscape:label="#rect4080" />
</g>
<g
inkscape:groupmode="layer"
style="display:none"
inkscape:label="GPS-OK"
id="g3184"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect8374"
y="9.1076469"
x="26.199663"
height="5.6002355"
width="23.347105"
id="GPS-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.30000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="GPS-Warning"
id="g3180"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect4073"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.30000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="GPS-Warning"
width="23.347105"
height="5.6002355"
x="26.199663"
y="9.1076469" />
</g>
<g
style="display:none"
inkscape:label="GPS-Error"
id="g3172"
inkscape:groupmode="layer">
<g
inkscape:label="#g4084"
transform="matrix(1.2853162,0,0,0.64013573,-22.75,-11.845582)"
id="GPS-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline">
<path
id="path3176"
d="M 38.076545,33.292974 56.14311,41.28257"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:label="#path4088-8"
id="path3178"
d="m 38.220502,41.354548 17.85063,-8.061574"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
style="display:none"
inkscape:label="GPS-Critical"
id="g3168"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect4080"
y="9.1076469"
x="26.199663"
height="5.6002355"
width="23.347105"
id="GPS-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.30000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="Sensors-OK"
id="layer41"
inkscape:label="AHRSComms-OK"
style="display:none">
inkscape:groupmode="layer">
<rect
transform="translate(-497.66563,-344.28037)"
inkscape:label="#rect4552-27"
y="346.98621"
x="557.29553"
height="13.085983"
width="7.7278037"
id="AHRSComms-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.40371776;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Sensors-OK"
width="9.6456022"
height="20.241537"
x="58.617558"
y="1.586597"
inkscape:label="#rect4552-27" />
</g>
<g
inkscape:groupmode="layer"
style="display:none"
inkscape:label="Sensors-Warning"
id="layer42"
inkscape:label="AHRSComms-Warning"
style="display:none">
inkscape:groupmode="layer">
<rect
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="AHRSComms-Warning"
width="7.7278037"
height="13.085983"
x="557.29553"
y="346.98621"
inkscape:label="#rect4552-27"
transform="translate(-497.66563,-344.28037)" />
y="1.6929722"
x="58.617039"
height="20.135679"
width="9.6466379"
id="Sensors-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.4026823;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
inkscape:groupmode="layer"
style="display:none"
inkscape:label="Sensors-Error"
id="layer43"
inkscape:label="AHRSComms-Error"
style="display:none">
inkscape:groupmode="layer">
<g
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="AHRSComms-Error"
transform="translate(55.598602,0.91613479)"
inkscape:label="#g5707">
inkscape:label="#g5707"
transform="matrix(0.98237131,0,0,1.3895115,55.842113,0.32873234)"
id="Sensors-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 4.2641874,1.9700434 11.103735,14.522849"
sodipodi:nodetypes="cc"
id="path5709"
sodipodi:nodetypes="cc" />
<path
d="M 4.2641874,1.9700434 11.103735,14.522849"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 4.5521007,14.319264 11.235342,1.9402289"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path5711"
sodipodi:nodetypes="cc" />
d="M 4.5521007,14.319264 11.235342,1.9402289"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
style="display:none"
inkscape:label="Sensors-Critical"
id="layer44"
inkscape:label="AHRSComms-Critical"
style="display:none">
inkscape:groupmode="layer">
<rect
transform="translate(-497.66563,-344.28037)"
inkscape:label="#rect4552-27"
y="346.98621"
x="557.29553"
height="13.085983"
width="7.7278037"
id="AHRSComms-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.40371776;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Sensors-Critical"
width="9.6456032"
height="20.241537"
x="58.617558"
y="1.586597"
inkscape:label="#rect4552-27" />
</g>
<g
inkscape:groupmode="layer"
id="layer36"
style="display:none"
inkscape:label="ManualControl-OK"
style="display:none">
id="layer36"
inkscape:groupmode="layer">
<rect
transform="translate(-497.66563,-344.28037)"
inkscape:label="#rect4000-8-0-9"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
y="365.44907"
x="576.71594"
height="56.637238"
width="13.893178"
id="ManualControl-OK"
width="13.893178"
height="56.637238"
x="576.71594"
y="365.44907" />
</g>
<g
inkscape:groupmode="layer"
id="layer33"
inkscape:label="ManualControl-Warning"
style="display:none">
<rect
transform="translate(-497.66563,-344.28037)"
inkscape:label="#rect4000-8-0-9"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="ManualControl-Warning"
width="13.893178"
height="56.637238"
x="576.71594"
y="365.44907" />
</g>
<g
inkscape:groupmode="layer"
id="layer34"
inkscape:label="ManualControl-Error"
style="display:none">
<g
inkscape:label="#g3878"
style="stroke:#cf0e0e;stroke-opacity:1;display:inline"
id="ManualControl-Error"
transform="translate(78,0)">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 2.0153937,22.13633 14.539626,77.127787"
id="path5066" />
<path
id="path5068"
d="M 14.539626,22.13633 2.0153937,77.127787"
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer35"
inkscape:label="ManualControl-Critical"
style="display:none">
<rect
y="365.44907"
x="576.71594"
height="56.637238"
width="13.893178"
id="ManualControl-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4000-8-0-9"
transform="translate(-497.66563,-344.28037)" />
</g>
<g
inkscape:groupmode="layer"
id="layer29"
inkscape:label="Actuator-OK"
style="display:none">
<rect
transform="translate(-497.66563,-344.28037)"
inkscape:label="#rect4000-8-5"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Actuator-OK"
width="13.893178"
height="56.637238"
x="499.10913"
y="365.44907" />
</g>
<g
inkscape:groupmode="layer"
id="layer30"
inkscape:label="Actuator-Warning"
style="display:none">
<rect
y="365.44907"
x="499.10913"
height="56.637238"
width="13.893178"
id="Actuator-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4000-8-5"
inkscape:label="#rect4000-8-0-9"
transform="translate(-497.66563,-344.28037)" />
</g>
<g
inkscape:groupmode="layer"
id="layer31"
inkscape:label="Actuator-Error"
style="display:none">
style="display:none"
inkscape:label="ManualControl-Warning"
id="layer33"
inkscape:groupmode="layer">
<rect
y="365.44907"
x="576.71594"
height="56.637238"
width="13.893178"
id="ManualControl-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4000-8-0-9"
transform="translate(-497.66563,-344.28037)" />
</g>
<g
style="display:none"
inkscape:label="ManualControl-Error"
id="layer34"
inkscape:groupmode="layer">
<g
id="Actuator-Error"
style="stroke:#cf0e0e;stroke-opacity:1"
transform="translate(78,0)"
id="ManualControl-Error"
style="stroke:#cf0e0e;stroke-opacity:1;display:inline"
inkscape:label="#g3878">
<path
id="path3874"
id="path5066"
d="M 2.0153937,22.13633 14.539626,77.127787"
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 14.539626,22.13633 2.0153937,77.127787"
id="path3876" />
id="path5068" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer32"
inkscape:label="Actuator-Critical"
style="display:none">
style="display:none"
inkscape:label="ManualControl-Critical"
id="layer35"
inkscape:groupmode="layer">
<rect
transform="translate(-497.66563,-344.28037)"
inkscape:label="#rect4000-8-0-9"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="ManualControl-Critical"
width="13.893178"
height="56.637238"
x="576.71594"
y="365.44907" />
</g>
<g
style="display:none"
inkscape:label="Actuator-OK"
id="layer29"
inkscape:groupmode="layer">
<rect
y="365.44907"
x="499.10913"
height="56.637238"
width="13.893178"
id="Actuator-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4000-8-5"
transform="translate(-497.66563,-344.28037)" />
</g>
<g
style="display:none"
inkscape:label="Actuator-Warning"
id="layer30"
inkscape:groupmode="layer">
<rect
transform="translate(-497.66563,-344.28037)"
inkscape:label="#rect4000-8-5"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Actuator-Critical"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Actuator-Warning"
width="13.893178"
height="56.637238"
x="499.10913"
y="365.44907" />
</g>
<g
inkscape:groupmode="layer"
id="layer21"
inkscape:label="EventSystem-OK"
style="display:none">
<rect
y="51.277248"
x="17.566181"
height="8.1216154"
width="18.153212"
id="EventSystem-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4000-7-6-7-1" />
style="display:none"
inkscape:label="Actuator-Error"
id="layer31"
inkscape:groupmode="layer">
<g
inkscape:label="#g3878"
style="stroke:#cf0e0e;stroke-opacity:1"
id="Actuator-Error">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 2.0153937,22.13633 14.539626,77.127787"
id="path3874" />
<path
id="path3876"
d="M 14.539626,22.13633 2.0153937,77.127787"
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer22"
inkscape:label="EventSystem-Warning"
style="display:none">
style="display:none"
inkscape:label="Actuator-Critical"
id="layer32"
inkscape:groupmode="layer">
<rect
y="365.44907"
x="499.10913"
height="56.637238"
width="13.893178"
id="Actuator-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4000-8-5"
transform="translate(-497.66563,-344.28037)" />
</g>
<g
style="display:none"
inkscape:label="EventSystem-OK"
id="layer21"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect4000-7-6-7-1"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="EventSystem-Warning"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="EventSystem-OK"
width="18.153212"
height="8.1216154"
x="17.566181"
y="51.277248" />
</g>
<g
inkscape:groupmode="layer"
id="layer23"
inkscape:label="EventSystem-Error"
style="display:none">
<g
inkscape:label="#g4040-1"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="EventSystem-Error"
transform="translate(-20.405861,18.143957)">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 38.076545,33.292974 56.14311,41.28257"
id="path4161" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 38.220502,41.354548 17.85063,-8.061574"
id="path4163" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer24"
inkscape:label="EventSystem-Critical"
style="display:none">
style="display:none"
inkscape:label="EventSystem-Warning"
id="layer22"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect8365"
y="51.277248"
x="17.566181"
height="8.1216154"
width="18.153212"
id="EventSystem-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
id="EventSystem-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4000-7-6-7-1" />
</g>
<g
inkscape:groupmode="layer"
id="layer25"
inkscape:label="Telemetry-OK"
style="display:none">
style="display:none"
inkscape:label="EventSystem-Error"
id="layer23"
inkscape:groupmode="layer">
<g
transform="translate(-20.405861,18.143957)"
id="EventSystem-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#g4040-1">
<path
id="path4161"
d="M 38.076545,33.292974 56.14311,41.28257"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
id="path4163"
d="m 38.220502,41.354548 17.85063,-8.061574"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
style="display:none"
inkscape:label="EventSystem-Critical"
id="layer24"
inkscape:groupmode="layer">
<rect
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Telemetry-OK"
width="23.347105"
height="5.6002355"
x="26.098318"
y="3.1377156"
inkscape:label="#rect4552-27" />
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="EventSystem-Critical"
width="18.153212"
height="8.1216154"
x="17.566181"
y="51.277248"
inkscape:label="#rect8365" />
</g>
<g
inkscape:groupmode="layer"
id="layer26"
inkscape:label="Telemetry-Warning"
style="display:none">
style="display:none"
inkscape:label="Telemetry-OK"
id="layer25"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect4552-27"
y="3.1377156"
x="26.098318"
height="5.6002355"
width="23.347105"
id="Telemetry-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
id="Telemetry-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
inkscape:groupmode="layer"
id="layer27"
inkscape:label="Telemetry-Error"
style="display:none">
<g
id="Telemetry-Error"
style="stroke:#cf0e0e;stroke-opacity:1;display:inline"
inkscape:label="#g4357">
<path
id="path4353"
d="M 26.488031,3.4219598 49.017254,8.3164874"
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4355"
d="M 49.089232,3.3499815 26.56001,8.3884657"
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer28"
inkscape:label="Telemetry-Critical"
style="display:none">
style="display:none"
inkscape:label="Telemetry-Warning"
id="layer26"
inkscape:groupmode="layer">
<rect
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Telemetry-Critical"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Telemetry-Warning"
width="23.347105"
height="5.6002355"
x="26.098318"
@ -1394,262 +1353,217 @@
inkscape:label="#rect4552-27" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="SDCard-OK"
style="display:none">
<rect
transform="translate(-497.66563,-344.28037)"
y="406.95688"
x="569.32855"
height="15.007023"
width="5.311192"
id="SDCard-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect3846" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="SDCard-Warning"
style="display:none">
<rect
inkscape:label="#rect3846"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="SDCard-Warning"
width="5.311192"
height="15.007023"
x="569.32855"
y="406.95688"
transform="translate(-497.66563,-344.28037)" />
</g>
<g
inkscape:groupmode="layer"
id="layer11"
inkscape:label="SDCard-Error"
style="display:none">
style="display:none"
inkscape:label="Telemetry-Error"
id="layer27"
inkscape:groupmode="layer">
<g
id="SDCard-Error"
inkscape:label="#g4357"
style="stroke:#cf0e0e;stroke-opacity:1;display:inline"
inkscape:label="#g3858">
id="Telemetry-Error">
<path
id="path3854"
d="m 71.967477,62.881039 4.478881,14.250985"
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 26.488031,3.4219598 49.017254,8.3164874"
id="path4353" />
<path
id="path3856"
d="M 71.865684,77.233817 76.853529,62.881039"
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
style="fill:none;stroke:#cf0e0e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 49.089232,3.3499815 26.56001,8.3884657"
id="path4355" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer20"
style="display:none"
inkscape:label="Telemetry-Critical"
id="layer28"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect4552-27"
y="3.1377156"
x="26.098318"
height="5.6002355"
width="23.347105"
id="Telemetry-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:inline"
inkscape:label="SDCard-OK"
id="layer1"
inkscape:groupmode="layer" />
<g
style="display:inline"
inkscape:label="SDCard-Warning"
id="layer6"
inkscape:groupmode="layer" />
<g
style="display:inline"
inkscape:label="SDCard-Error"
id="layer11"
inkscape:groupmode="layer" />
<g
style="display:inline"
inkscape:label="SDCard-Critical"
style="display:none">
<rect
transform="translate(-497.66563,-344.28037)"
y="406.95688"
x="569.32855"
height="15.007023"
width="5.311192"
id="SDCard-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect3846" />
</g>
id="layer20"
inkscape:groupmode="layer" />
<g
inkscape:groupmode="layer"
id="layer9"
style="display:none"
inkscape:label="Memory-OK"
style="display:none">
id="layer9"
inkscape:groupmode="layer">
<rect
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect8374"
y="41.277248"
x="58.539021"
height="8.1216154"
width="18.153212"
id="OutOfMemory-OK"
width="18.153212"
height="8.1216154"
x="58.539021"
y="41.277248"
inkscape:label="#rect8374" />
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
inkscape:groupmode="layer"
id="layer17"
style="display:none"
inkscape:label="Memory-Warning"
style="display:none">
id="layer17"
inkscape:groupmode="layer">
<rect
y="41.277248"
x="58.539021"
height="8.1216154"
width="18.153212"
inkscape:label="#rect4073"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="OutOfMemory-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4073" />
</g>
<g
inkscape:groupmode="layer"
id="layer18"
inkscape:label="Memory-Error"
style="display:none">
<g
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="OutOfMemory-Error"
transform="translate(20.503848,8)"
inkscape:label="#g4084">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 38.076545,33.292974 56.14311,41.28257"
id="path4086" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 38.220502,41.354548 17.85063,-8.061574"
id="path4088" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer19"
inkscape:label="Memory-Critical"
style="display:none">
<rect
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="OutOfMemory-Critical"
width="18.153212"
height="8.1216154"
x="58.539021"
y="41.277248"
inkscape:label="#rect4080" />
y="41.277248" />
</g>
<g
inkscape:groupmode="layer"
id="layer8"
style="display:none"
inkscape:label="Memory-Error"
id="layer18"
inkscape:groupmode="layer">
<g
inkscape:label="#g4084"
transform="translate(20.503848,8)"
id="OutOfMemory-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline">
<path
id="path4086"
d="M 38.076545,33.292974 56.14311,41.28257"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
id="path4088"
d="m 38.220502,41.354548 17.85063,-8.061574"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
style="display:none"
inkscape:label="Memory-Critical"
id="layer19"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect4080"
y="41.277248"
x="58.539021"
height="8.1216154"
width="18.153212"
id="OutOfMemory-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="StackOverflow-OK"
style="display:none">
id="layer8"
inkscape:groupmode="layer">
<rect
y="41.277248"
x="38.05257"
height="8.1216154"
width="18.153212"
inkscape:label="#rect8370"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="StackOverflow-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect8370" />
width="18.153212"
height="8.1216154"
x="38.05257"
y="41.277248" />
</g>
<g
inkscape:groupmode="layer"
id="layer10"
style="display:none"
inkscape:label="StackOverflow-Warning"
style="display:none">
id="layer10"
inkscape:groupmode="layer">
<rect
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect8540"
y="41.277248"
x="38.05257"
height="8.1216154"
width="18.153212"
id="StackOverflow-Warning"
width="18.153212"
height="8.1216154"
x="38.05257"
y="41.277248"
inkscape:label="#rect8540" />
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
inkscape:groupmode="layer"
id="layer15"
style="display:none"
inkscape:label="StackOverflow-Error"
style="display:none">
id="layer15"
inkscape:groupmode="layer">
<g
id="g4040"
transform="translate(0,8)"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
transform="translate(0,8)">
id="g4040">
<path
id="path4036"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 38.076545,33.292974 56.14311,41.28257"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
id="path4036" />
<path
id="path4038"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 38.220502,41.354548 17.85063,-8.061574"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
id="path4038" />
</g>
<g
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="StackOverflow-Error"
transform="translate(0,8)"
inkscape:label="#g4102"
transform="translate(0,8)">
id="StackOverflow-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path4104"
d="M 38.076545,33.292974 56.14311,41.28257"
id="path4104" />
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path4106"
d="m 38.220502,41.354548 17.85063,-8.061574"
id="path4106" />
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer16"
style="display:none"
inkscape:label="StackOverflow-Critical"
style="display:none">
id="layer16"
inkscape:groupmode="layer">
<rect
y="41.277248"
x="38.05257"
height="8.1216154"
width="18.153212"
id="StackOverflow-Critical"
inkscape:label="#rect4032"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4032" />
</g>
<g
inkscape:groupmode="layer"
id="layer7"
inkscape:label="CPUOverload-OK"
style="display:none">
<rect
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="CPUOverload-OK"
id="StackOverflow-Critical"
width="18.153212"
height="8.1216154"
x="17.566181"
y="41.277248"
inkscape:label="#rect8365" />
x="38.05257"
y="41.277248" />
</g>
<g
inkscape:groupmode="layer"
id="layer12"
inkscape:label="CPUOverload-Warning"
style="display:none">
style="display:none"
inkscape:label="CPUOverload-OK"
id="layer7"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect8365"
y="41.277248"
x="17.566181"
height="8.1216154"
width="18.153212"
id="CPUOverload-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
id="CPUOverload-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
inkscape:groupmode="layer"
id="layer13"
inkscape:label="CPUOverload-Error"
style="display:none">
<g
transform="translate(-20.405861,8.1439567)"
id="CPUOverload-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#g4040-1">
<path
id="path4036-7"
d="M 38.076545,33.292974 56.14311,41.28257"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
id="path4038-4"
d="m 38.220502,41.354548 17.85063,-8.061574"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer14"
inkscape:label="CPUOverload-Critical"
style="display:none">
style="display:none"
inkscape:label="CPUOverload-Warning"
id="layer12"
inkscape:groupmode="layer">
<rect
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="CPUOverload-Critical"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="CPUOverload-Warning"
width="18.153212"
height="8.1216154"
x="17.566181"
@ -1657,27 +1571,124 @@
inkscape:label="#rect8365" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
style="display:none"
inkscape:label="CPUOverload-Error"
id="layer13"
inkscape:groupmode="layer">
<g
inkscape:label="#g4040-1"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="CPUOverload-Error"
transform="translate(-20.405861,8.1439567)">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 38.076545,33.292974 56.14311,41.28257"
id="path4036-7" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 38.220502,41.354548 17.85063,-8.061574"
id="path4038-4" />
</g>
</g>
<g
style="display:none"
inkscape:label="CPUOverload-Critical"
id="layer14"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect8365"
y="41.277248"
x="17.566181"
height="8.1216154"
width="18.153212"
id="CPUOverload-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="Power-OK"
id="layer2"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect7370"
y="1.8212841"
x="4.1348462"
height="8.2846708"
width="18.023544"
id="Power-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
style="display:none"
inkscape:label="Power-Warning"
id="layer3"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect7397"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Power-Warning"
width="18.023544"
height="8.2846708"
x="4.1348462"
y="1.8212841" />
</g>
<g
style="display:none"
inkscape:label="Power-Error"
id="layer4"
inkscape:groupmode="layer">
<g
inkscape:label="#g4026"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Power-Error">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 3.9588091,1.7664579 22.097352,10.043968"
id="path4022"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 4.2467224,10.043968 22.025374,1.8384362"
id="path4024"
inkscape:connector-curvature="0" />
</g>
</g>
<g
style="display:none"
inkscape:label="Power-Critical"
id="layer5"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect7437"
y="1.8212841"
x="4.1348462"
height="8.2846708"
width="18.023544"
id="Power-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#f9f9f9;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
inkscape:groupmode="layer"
id="g471999"
inkscape:label="Battery-OK"
style="display:none">
<rect
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="Battery-OK"
width="18.023544"
height="8.2846708"
x="4.1348462"
y="1.8212841"
x="4.0279531"
y="11.334756"
inkscape:label="#rect7370" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Power-Warning"
id="g4712"
inkscape:label="Battery-Warning"
style="display:none">
<rect
y="1.8212841"
x="4.1348462"
y="11.334756"
x="4.0279531"
height="8.2846708"
width="18.023544"
id="Battery-Warning"
@ -1686,27 +1697,8 @@
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Power-Error"
style="display:none">
<g
id="Battery-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#g4026">
<path
id="path4022"
d="M 3.9588091,1.7664579 22.097352,10.043968"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
id="path4024"
d="M 4.2467224,10.043968 22.025374,1.8384362"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Power-Critical"
id="g4700"
inkscape:label="Battery-Critical"
style="display:none">
<rect
style="fill:#cf0e0e;fill-opacity:1;stroke:#f9f9f9;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
@ -1714,141 +1706,205 @@
width="18.023544"
height="8.2846708"
x="4.1348462"
y="1.8212841"
y="11.344959"
inkscape:label="#rect7437" />
</g>
<g
inkscape:groupmode="layer"
id="layer37"
inkscape:label="Stabilization-OK"
style="display:none">
<rect
inkscape:label="#rect8365"
y="51.277248"
x="37.998051"
height="8.1216154"
width="18.153212"
id="Stabilization-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
inkscape:groupmode="layer"
id="layer38"
inkscape:label="Stabilization-Warning"
style="display:none">
<rect
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Stabilization-Warning"
width="18.023544"
height="8.2846708"
x="38.015614"
y="51.261425"
inkscape:label="#rect3132" />
</g>
<g
inkscape:groupmode="layer"
id="layer39"
inkscape:label="Stabilization-Error"
id="g4704"
inkscape:label="Battery-Error"
style="display:none">
<g
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Stabilization-Error"
transform="translate(34,49.56813)"
inkscape:label="#g3114">
id="Battery-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:label="#g4026"
transform="translate(0,9.5134715)">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0"
id="path4708"
d="M 3.9588091,1.7664579 22.097352,10.043968"
id="path3116"
inkscape:connector-curvature="0" />
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0"
id="path4710"
d="M 4.2467224,10.043968 22.025374,1.8384362"
id="path3118"
inkscape:connector-curvature="0" />
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer40"
inkscape:label="Stabilization-Critical"
style="display:none">
style="display:none"
inkscape:label="Stabilization-OK"
id="layer37"
inkscape:groupmode="layer">
<rect
y="51.101501"
x="38.134846"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Stabilization-OK"
width="18.153212"
height="8.1216154"
x="37.998051"
y="51.277248"
inkscape:label="#rect8365" />
</g>
<g
style="display:none"
inkscape:label="Stabilization-Warning"
id="layer38"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect3132"
y="51.261425"
x="38.015614"
height="8.2846708"
width="18.023544"
id="Stabilization-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#f9f9f9;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect3108" />
id="Stabilization-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="Attitude-OK"
id="g3357"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect8374"
y="31.277248"
x="58.539021"
height="8.1216154"
width="18.153212"
id="Attitude-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="Attitude-Warning"
id="g3361"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect4073"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Attitude-Warning"
width="18.153212"
height="8.1216154"
x="58.539021"
y="31.277248" />
</g>
<g
style="display:none"
inkscape:label="Attitude-Error"
id="g3365"
inkscape:label="Stabilization-Error"
id="layer39"
inkscape:groupmode="layer">
<g
inkscape:label="#g4084"
transform="translate(20.488022,-1.913356)"
id="Attitude-Error"
inkscape:label="#g3114"
transform="translate(34,49.56813)"
id="Stabilization-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline">
<path
inkscape:connector-curvature="0"
id="path3369"
d="M 38.076545,33.292974 56.14311,41.28257"
id="path3116"
d="M 3.9588091,1.7664579 22.097352,10.043968"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
inkscape:label="#path4088-8"
id="path3371"
d="m 38.220502,41.354548 17.85063,-8.061574"
id="path3118"
d="M 4.2467224,10.043968 22.025374,1.8384362"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
style="display:none"
inkscape:label="Attitude-Critical"
id="g3373"
inkscape:label="Stabilization-Critical"
id="layer40"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect4080"
inkscape:label="#rect3108"
style="fill:#cf0e0e;fill-opacity:1;stroke:#f9f9f9;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Stabilization-Critical"
width="18.023544"
height="8.2846708"
x="38.134846"
y="51.101501" />
</g>
<g
inkscape:groupmode="layer"
id="g3357"
inkscape:label="Attitude-OK"
style="display:none">
<rect
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Attitude-OK"
width="18.153212"
height="8.1216154"
x="58.539021"
y="31.277248"
inkscape:label="#rect8374" />
</g>
<g
inkscape:groupmode="layer"
id="g3361"
inkscape:label="Attitude-Warning"
style="display:none">
<rect
y="31.277248"
x="58.539021"
height="8.1216154"
width="18.153212"
id="Attitude-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
id="Attitude-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4073" />
</g>
<g
inkscape:groupmode="layer"
id="g3365"
inkscape:label="Attitude-Error"
style="display:none">
<g
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Attitude-Error"
transform="translate(20.488022,-1.913356)"
inkscape:label="#g4084">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 38.076545,33.292974 56.14311,41.28257"
id="path3369"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 38.220502,41.354548 17.85063,-8.061574"
id="path3371"
inkscape:label="#path4088-8"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="g3373"
inkscape:label="Attitude-Critical"
style="display:none">
<rect
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Attitude-Critical"
width="18.153212"
height="8.1216154"
x="58.539021"
y="31.277248"
inkscape:label="#rect4080" />
</g>
<g
style="display:none"
inkscape:label="BootFault-OK"
id="g4794"
inkscape:groupmode="layer">
<rect
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="BootFault-OK"
width="18.153212"
height="8.1216154"
x="17.567717"
y="31.277248"
inkscape:label="#rect4080" />
</g>
<g
inkscape:groupmode="layer"
id="g3546"
inkscape:label="BootFault-Warning"
style="display:none">
<rect
inkscape:label="#rect4080"
y="31.277248"
x="17.567717"
height="8.1216154"
width="18.153212"
id="BootFault-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="BootFault-Error"
id="g3550"
inkscape:groupmode="layer">
<rect
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="BootFault-Error"
width="18.153212"
height="8.1216154"
x="17.567717"
y="31.277248"
inkscape:label="#rect4080" />
</g>
<g
inkscape:groupmode="layer"
id="g3554"
inkscape:label="BootFault-Critical"
style="display:none">
<rect
@ -1861,1517 +1917,1482 @@
style="fill:#cf0e0e;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="Guidance-OK"
inkscape:groupmode="layer"
id="g3377"
inkscape:groupmode="layer">
inkscape:label="Guidance-OK"
style="display:none">
<rect
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Guidance-OK"
width="18.153212"
height="8.1216154"
x="37.998051"
inkscape:label="#rect8365"
y="31.277248"
inkscape:label="#rect8365" />
x="37.998051"
height="8.1216154"
width="18.153212"
id="Guidance-OK"
style="fill:#04b629;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="Guidance-Warning"
inkscape:groupmode="layer"
id="g3381"
inkscape:groupmode="layer">
inkscape:label="Guidance-Warning"
style="display:none">
<rect
inkscape:label="#rect3132"
y="31.261425"
x="38.015614"
height="8.2846708"
width="18.023544"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Guidance-Warning"
style="fill:#f1b907;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
</g>
<g
style="display:none"
inkscape:label="Guidance-Error"
id="g3385"
inkscape:groupmode="layer">
<g
inkscape:label="#g3114"
transform="translate(34,29.56813)"
id="Guidance-Error"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline">
<path
inkscape:connector-curvature="0"
id="path3389"
d="M 3.9588091,1.7664579 22.097352,10.043968"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path3391"
d="M 4.2467224,10.043968 22.025374,1.8384362"
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
style="display:none"
inkscape:label="Guidance-Critical"
id="g3393"
inkscape:groupmode="layer">
<rect
inkscape:label="#rect3108"
style="fill:#cf0e0e;fill-opacity:1;stroke:#f9f9f9;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Guidance-Critical"
width="18.023544"
height="8.2846708"
x="38.134846"
y="31.101501" />
x="38.015614"
y="31.261425"
inkscape:label="#rect3132" />
</g>
<g
inkscape:groupmode="layer"
id="foreground"
inkscape:label="Foreground"
style="display:inline">
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4522-4">
<path
d="m 7.6886106,4.8015099 0,1.0957031 0.4960937,0 C 8.3682966,5.8972145 8.5102235,5.8496885 8.6104856,5.7546349 8.7107442,5.6595845 8.7608743,5.524168 8.7608762,5.3483849 8.7608743,5.1739079 8.7107442,5.0391424 8.6104856,4.944088 8.5102235,4.8490384 8.3682966,4.8015124 8.1847043,4.8015099 l -0.4960937,0 m -0.3945313,-0.3242188 0.890625,0 c 0.3268213,2.9e-6 0.5735659,0.074222 0.7402344,0.2226563 C 9.0929052,4.8470853 9.1768895,5.0632309 9.1768918,5.3483849 9.1768895,5.636147 9.0929052,5.8535947 8.9249387,6.0007286 8.7582702,6.1478653 8.5115256,6.2214329 8.1847043,6.2214317 l -0.4960937,0 0,1.171875 -0.3945313,0 0,-2.9160156"
style="font-size:4px;fill:#ffffff"
id="path3980"
inkscape:connector-curvature="0" />
<path
d="m 10.399548,5.4577599 c -0.192709,1.9e-6 -0.345053,0.075523 -0.4570312,0.2265625 -0.1119798,0.1497411 -0.1679693,0.3554701 -0.1679687,0.6171875 -6e-7,0.2617195 0.055338,0.4680995 0.1660156,0.6191406 0.1119783,0.1497399 0.2649733,0.2246096 0.4589843,0.2246094 0.191405,2e-7 0.343097,-0.075521 0.455078,-0.2265625 0.111978,-0.1510411 0.167967,-0.35677 0.167969,-0.6171875 -2e-6,-0.2591133 -0.05599,-0.4641912 -0.167969,-0.6152344 C 10.742645,5.5339336 10.590953,5.4577618 10.399548,5.4577599 m 0,-0.3046875 c 0.312499,2.2e-6 0.557941,0.1015646 0.736328,0.3046875 0.178383,0.2031267 0.267576,0.4843764 0.267578,0.84375 -2e-6,0.3580736 -0.0892,0.6393233 -0.267578,0.84375 -0.178387,0.203125 -0.423829,0.3046874 -0.736328,0.3046875 -0.313803,-1e-7 -0.5598964,-0.1015625 -0.7382812,-0.3046875 -0.1770836,-0.2044267 -0.2656252,-0.4856764 -0.265625,-0.84375 -2e-7,-0.3593736 0.088541,-0.6406233 0.265625,-0.84375 C 9.8396516,5.254637 10.085745,5.1530746 10.399548,5.1530724"
style="font-size:4px;fill:#ffffff"
id="path3982"
inkscape:connector-curvature="0" />
<path
d="m 11.78822,5.2058067 0.359375,0 0.449219,1.7070313 0.447265,-1.7070313 0.423828,0 0.449219,1.7070313 0.447266,-1.7070313 0.359375,0 -0.572266,2.1875 -0.423828,0 -0.470703,-1.7929687 -0.472656,1.7929687 -0.423828,0 -0.572266,-2.1875"
style="font-size:4px;fill:#ffffff"
id="path3984"
inkscape:connector-curvature="0" />
<path
d="m 17.141736,6.209713 0,0.1757812 -1.652344,0 c 0.01562,0.2473966 0.08984,0.4361985 0.222656,0.5664063 0.134114,0.1289065 0.320311,0.1933596 0.558594,0.1933594 0.138019,2e-7 0.271483,-0.016927 0.40039,-0.050781 0.130207,-0.033854 0.259113,-0.084635 0.386719,-0.1523437 l 0,0.3398437 c -0.128908,0.054688 -0.261069,0.096354 -0.396484,0.125 -0.135418,0.028646 -0.272788,0.042969 -0.41211,0.042969 -0.348959,-10e-8 -0.625651,-0.1015625 -0.830078,-0.3046875 -0.203125,-0.2031246 -0.304687,-0.4778639 -0.304687,-0.8242188 0,-0.3580715 0.09635,-0.6419254 0.289062,-0.8515625 0.19401,-0.2109354 0.455077,-0.316404 0.783203,-0.3164062 0.29427,2.2e-6 0.526691,0.095054 0.697266,0.2851562 0.171873,0.1888039 0.25781,0.4459651 0.257813,0.7714844 M 16.782361,6.1042442 c -0.0026,-0.1966131 -0.05795,-0.353514 -0.166016,-0.4707031 -0.106773,-0.1171856 -0.248699,-0.1757793 -0.425781,-0.1757812 -0.200522,1.9e-6 -0.361329,0.056642 -0.482422,0.1699218 -0.119793,0.1132829 -0.188803,0.272788 -0.207031,0.4785157 l 1.28125,-0.00195"
style="font-size:4px;fill:#ffffff"
id="path3986"
inkscape:connector-curvature="0" />
<path
d="m 18.999157,5.5417442 c -0.04037,-0.023436 -0.08464,-0.040363 -0.132812,-0.050781 -0.04688,-0.011717 -0.09896,-0.017576 -0.15625,-0.017578 -0.203126,1.9e-6 -0.359376,0.066408 -0.46875,0.1992187 -0.108074,0.131512 -0.16211,0.3209649 -0.162109,0.5683594 l 0,1.1523437 -0.361329,0 0,-2.1875 0.361329,0 0,0.3398438 c 0.07552,-0.1328105 0.173827,-0.2311177 0.294921,-0.2949219 0.121093,-0.065102 0.268228,-0.097654 0.441407,-0.097656 0.02474,2.2e-6 0.05208,0.00196 0.08203,0.00586 0.02995,0.00261 0.06315,0.00716 0.09961,0.013672 l 0.002,0.3691406"
style="font-size:4px;fill:#ffffff"
id="path3988"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4647-6">
<path
d="m 62.632465,17.132706 0,0.384765 c -0.149741,-0.07161 -0.291017,-0.124997 -0.423828,-0.160156 -0.132814,-0.03515 -0.261069,-0.05273 -0.384765,-0.05273 -0.214845,2e-6 -0.380861,0.04167 -0.498047,0.125 -0.115886,0.08334 -0.173829,0.201825 -0.173828,0.355468 -1e-6,0.128909 0.03841,0.226565 0.115234,0.292969 0.07812,0.06511 0.225259,0.11784 0.441406,0.158203 l 0.238281,0.04883 c 0.29427,0.05599 0.511066,0.15495 0.650391,0.296875 0.140623,0.140627 0.210935,0.329429 0.210938,0.566407 -3e-6,0.282552 -0.09506,0.496745 -0.285157,0.642578 -0.188804,0.145833 -0.466147,0.21875 -0.832031,0.21875 -0.138022,0 -0.285157,-0.01563 -0.441406,-0.04687 -0.154949,-0.03125 -0.315756,-0.07747 -0.482422,-0.138672 l 0,-0.40625 c 0.160156,0.08984 0.317057,0.157552 0.470703,0.203125 0.153645,0.04557 0.304687,0.06836 0.453125,0.06836 0.225259,1e-6 0.399087,-0.04427 0.521484,-0.132812 0.122394,-0.08854 0.183592,-0.214843 0.183594,-0.378906 -2e-6,-0.143229 -0.04427,-0.255208 -0.132812,-0.335938 -0.08724,-0.08073 -0.231122,-0.141275 -0.431641,-0.181641 l -0.240234,-0.04687 c -0.294272,-0.05859 -0.507162,-0.150389 -0.638672,-0.27539 -0.131511,-0.124998 -0.197266,-0.298826 -0.197266,-0.521485 0,-0.25781 0.09049,-0.460934 0.271485,-0.609375 0.182291,-0.148434 0.432941,-0.222653 0.751953,-0.222656 0.136717,3e-6 0.27604,0.01237 0.417968,0.03711 0.141926,0.02474 0.287108,0.06185 0.435547,0.111328"
style="font-size:4px;fill:#ffffff"
id="path3931"
inkscape:connector-curvature="0" />
<path
d="m 63.818012,17.361221 0,1.095703 0.496094,0 c 0.183592,2e-6 0.325519,-0.04752 0.425781,-0.142578 0.100259,-0.09505 0.150389,-0.230467 0.150391,-0.40625 -2e-6,-0.174477 -0.05013,-0.309242 -0.150391,-0.404297 -0.100262,-0.09505 -0.242189,-0.142575 -0.425781,-0.142578 l -0.496094,0 m -0.394531,-0.324218 0.890625,0 c 0.326821,2e-6 0.573566,0.07422 0.740234,0.222656 0.167967,0.147138 0.251951,0.363283 0.251953,0.648437 -2e-6,0.287762 -0.08399,0.50521 -0.251953,0.652344 -0.166668,0.147137 -0.413413,0.220704 -0.740234,0.220703 l -0.496094,0 0,1.171875 -0.394531,0 0,-2.916015"
style="font-size:4px;fill:#ffffff"
id="path3933"
inkscape:connector-curvature="0" />
<path
d="m 65.837543,17.037003 0.394532,0 0,2.916015 -0.394532,0 0,-2.916015"
style="font-size:4px;fill:#ffffff"
id="path3935"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="I2C-Text">
<path
d="m 78.026871,4.3897209 0.394531,0 0,2.9160156 -0.394531,0 0,-2.9160156"
style="font-size:4px;fill:#ffffff"
id="path3924"
inkscape:connector-curvature="0" />
<path
d="m 79.581558,6.9737053 1.376953,0 0,0.3320312 -1.851562,0 0,-0.3320312 C 79.256688,6.8187579 79.460464,6.6110758 79.718277,6.3506584 79.97739,6.0889409 80.140151,5.9203213 80.206558,5.844799 80.332859,5.7028736 80.420749,5.583082 80.47023,5.485424 80.52101,5.386468 80.5464,5.2894625 80.5464,5.1944084 c -2e-6,-0.1549456 -0.05469,-0.2812476 -0.164063,-0.3789062 -0.108074,-0.097654 -0.24935,-0.1464818 -0.423828,-0.1464844 -0.123699,2.6e-6 -0.254558,0.021487 -0.392578,0.064453 -0.136719,0.042971 -0.283203,0.1080754 -0.439453,0.1953125 l 0,-0.3984375 c 0.158854,-0.063799 0.307291,-0.1119763 0.445313,-0.1445312 0.13802,-0.032549 0.264321,-0.048825 0.378906,-0.048828 0.302082,3e-6 0.542967,0.075524 0.722656,0.2265625 0.179686,0.1510443 0.269529,0.352867 0.269531,0.6054688 -2e-6,0.1197937 -0.02279,0.2337259 -0.06836,0.3417969 -0.04427,0.1067725 -0.125653,0.2330744 -0.244141,0.3789062 -0.03255,0.037762 -0.136069,0.1471367 -0.310547,0.328125 -0.17448,0.1796884 -0.420574,0.4316413 -0.738281,0.7558594"
style="font-size:4px;fill:#ffffff"
id="path3926"
inkscape:connector-curvature="0" />
<path
d="m 83.937027,4.6143303 0,0.4160156 C 83.804212,4.9066504 83.662285,4.8142026 83.511246,4.7530022 83.361504,4.6918069 83.201999,4.6612079 83.03273,4.6612053 c -0.333335,2.6e-6 -0.588543,0.1022161 -0.765625,0.3066406 -0.177084,0.2031272 -0.265626,0.4973977 -0.265625,0.8828125 -10e-7,0.3841157 0.08854,0.6783862 0.265625,0.8828125 0.177082,0.2031254 0.43229,0.3046878 0.765625,0.3046875 0.169269,3e-7 0.328774,-0.030599 0.478516,-0.091797 0.151039,-0.061198 0.292966,-0.1536453 0.425781,-0.2773437 l 0,0.4121094 c -0.138023,0.09375 -0.284508,0.1640625 -0.439453,0.2109375 -0.153648,0.046875 -0.316408,0.070312 -0.488281,0.070312 -0.441408,-1e-7 -0.789064,-0.1347656 -1.042969,-0.4042969 -0.253907,-0.2708327 -0.38086,-0.639973 -0.38086,-1.1074219 0,-0.4687481 0.126953,-0.8378883 0.38086,-1.1074219 0.253905,-0.2708305 0.601561,-0.406247 1.042969,-0.40625 0.174477,3e-6 0.338539,0.02344 0.492187,0.070312 0.154946,0.045576 0.300128,0.1145862 0.435547,0.2070313"
style="font-size:4px;fill:#ffffff"
id="path3928"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4647-0-2-6">
<path
d="m 73.102684,13.569345 1.850098,0 0,0.249024 -0.776368,0 0,1.937988 -0.297363,0 0,-1.937988 -0.776367,0 0,-0.249024"
style="font-size:3px;fill:#ffffff"
id="path3905"
inkscape:connector-curvature="0" />
<path
d="m 76.121727,14.868662 0,0.131836 -1.239258,0 c 0.01172,0.185547 0.06738,0.327149 0.166992,0.424805 0.100586,0.09668 0.240234,0.145019 0.418946,0.145019 0.103514,0 0.203612,-0.0127 0.300293,-0.03809 0.09765,-0.02539 0.194334,-0.06348 0.290039,-0.114258 l 0,0.254883 c -0.09668,0.04102 -0.195802,0.07227 -0.297364,0.09375 -0.101563,0.02148 -0.204591,0.03223 -0.309082,0.03223 -0.261719,0 -0.469238,-0.07617 -0.622558,-0.228516 -0.152344,-0.152343 -0.228516,-0.358398 -0.228516,-0.618164 0,-0.268554 0.07227,-0.481444 0.216797,-0.638672 0.145507,-0.158201 0.341308,-0.237303 0.587402,-0.237305 0.220702,2e-6 0.395019,0.07129 0.52295,0.213868 0.128904,0.141602 0.193357,0.334473 0.193359,0.578613 m -0.269531,-0.0791 c -0.002,-0.14746 -0.04346,-0.265135 -0.124512,-0.353027 -0.08008,-0.08789 -0.186525,-0.131835 -0.319336,-0.131836 -0.150391,10e-7 -0.270997,0.04248 -0.361816,0.127441 -0.08984,0.08496 -0.141602,0.204591 -0.155274,0.358887 l 0.960938,-0.0015"
style="font-size:3px;fill:#ffffff"
id="path3907"
inkscape:connector-curvature="0" />
<path
d="m 77.841454,14.430674 c 0.06738,-0.121093 0.147947,-0.210448 0.241699,-0.268067 0.09375,-0.05762 0.204099,-0.08642 0.331054,-0.08643 0.170897,2e-6 0.302732,0.06006 0.395508,0.180176 0.09277,0.119142 0.139158,0.289064 0.13916,0.509766 l 0,0.990234 -0.270996,0 0,-0.981445 c -2e-6,-0.157226 -0.02783,-0.273925 -0.0835,-0.350098 -0.05567,-0.07617 -0.140627,-0.114256 -0.254883,-0.114258 -0.13965,2e-6 -0.250001,0.04639 -0.331054,0.139161 -0.08106,0.09277 -0.121584,0.219239 -0.121582,0.379394 l 0,0.927246 -0.270996,0 0,-0.981445 c -2e-6,-0.158202 -0.02783,-0.274901 -0.0835,-0.350098 -0.05567,-0.07617 -0.141603,-0.114256 -0.257813,-0.114258 -0.137696,2e-6 -0.247071,0.04688 -0.328125,0.140625 -0.08105,0.09277 -0.121583,0.218751 -0.121582,0.37793 l 0,0.927246 -0.270996,0 0,-1.640625 0.270996,0 0,0.254883 c 0.06152,-0.100584 0.135253,-0.174803 0.221191,-0.222656 0.08594,-0.04785 0.187988,-0.07178 0.306153,-0.07178 0.119139,2e-6 0.220213,0.03027 0.303222,0.09082 0.08398,0.06055 0.145995,0.148439 0.186036,0.263672"
style="font-size:3px;fill:#ffffff"
id="path3909"
inkscape:connector-curvature="0" />
<path
d="m 79.74868,15.510263 0,0.870118 -0.270996,0 0,-2.264649 0.270996,0 0,0.249024 c 0.05664,-0.09765 0.127929,-0.169921 0.213867,-0.216797 0.08691,-0.04785 0.190429,-0.07178 0.310547,-0.07178 0.199218,2e-6 0.360839,0.0791 0.484863,0.237305 0.124999,0.158205 0.187499,0.366212 0.1875,0.624024 -1e-6,0.257813 -0.0625,0.46582 -0.1875,0.624023 -0.124024,0.158203 -0.285645,0.237305 -0.484863,0.237305 -0.120118,0 -0.223633,-0.02344 -0.310547,-0.07031 -0.08594,-0.04785 -0.157227,-0.120605 -0.213867,-0.218262 m 0.916992,-0.572753 c -10e-7,-0.198242 -0.04102,-0.353515 -0.123047,-0.465821 -0.08106,-0.11328 -0.192872,-0.16992 -0.335449,-0.169922 -0.142579,2e-6 -0.254883,0.05664 -0.336914,0.169922 -0.08105,0.112306 -0.121582,0.267579 -0.121582,0.465821 0,0.198242 0.04053,0.354004 0.121582,0.467285 0.08203,0.112305 0.194335,0.168457 0.336914,0.168457 0.142577,0 0.254393,-0.05615 0.335449,-0.168457 0.08203,-0.113281 0.123046,-0.269043 0.123047,-0.467285"
style="font-size:3px;fill:#ffffff"
id="path3911"
inkscape:connector-curvature="0" />
<path
d="m 81.871239,13.569345 0.249023,0 -0.761719,2.465333 -0.249023,0 0.761719,-2.465333"
style="font-size:3px;fill:#ffffff"
id="path3913"
inkscape:connector-curvature="0" />
<path
d="m 82.713524,14.711924 0,0.801269 0.474609,0 c 0.159179,0 0.276854,-0.03271 0.353028,-0.09814 0.07715,-0.06641 0.115721,-0.16748 0.115722,-0.303223 -10e-7,-0.136718 -0.03857,-0.237304 -0.115722,-0.301758 -0.07617,-0.06543 -0.193849,-0.09814 -0.353028,-0.09814 l -0.474609,0 m 0,-0.899414 0,0.659179 0.437988,0 c 0.14453,2e-6 0.251952,-0.02685 0.322266,-0.08057 0.07129,-0.05469 0.106932,-0.137694 0.106933,-0.249024 -10e-7,-0.110349 -0.03565,-0.192869 -0.106933,-0.247558 -0.07031,-0.05469 -0.177736,-0.08203 -0.322266,-0.08203 l -0.437988,0 m -0.295899,-0.243165 0.75586,0 c 0.225584,3e-6 0.399412,0.04688 0.521484,0.140625 0.122069,0.09375 0.183104,0.227053 0.183106,0.399903 -2e-6,0.13379 -0.03125,0.240236 -0.09375,0.319336 -0.0625,0.0791 -0.154299,0.128419 -0.275391,0.147949 0.145506,0.03125 0.258299,0.09668 0.338379,0.196289 0.08105,0.09863 0.12158,0.222169 0.121582,0.370606 -2e-6,0.195312 -0.06641,0.346191 -0.199219,0.452636 -0.132814,0.106446 -0.321778,0.159668 -0.566894,0.159668 l -0.785157,0 0,-2.187012"
style="font-size:3px;fill:#ffffff"
id="path3915"
inkscape:connector-curvature="0" />
<path
d="m 85.208153,14.93165 c -0.217774,1e-6 -0.368653,0.0249 -0.452637,0.07471 -0.08398,0.04981 -0.125977,0.134766 -0.125977,0.254883 0,0.0957 0.03125,0.171875 0.09375,0.228516 0.06348,0.05566 0.149414,0.0835 0.257813,0.0835 0.149413,0 0.269042,-0.05273 0.358887,-0.158203 0.09082,-0.106445 0.136229,-0.247558 0.13623,-0.42334 l 0,-0.06006 -0.268066,0 m 0.537597,-0.111328 0,0.936035 -0.269531,0 0,-0.249023 c -0.06152,0.09961 -0.138185,0.17334 -0.22998,0.221191 -0.0918,0.04687 -0.204103,0.07031 -0.336914,0.07031 -0.16797,0 -0.301759,-0.04687 -0.401368,-0.140625 -0.09863,-0.09473 -0.147949,-0.221191 -0.147949,-0.379395 0,-0.18457 0.06152,-0.32373 0.184571,-0.41748 0.124023,-0.09375 0.308593,-0.140624 0.55371,-0.140625 l 0.37793,0 0,-0.02637 c -10e-7,-0.124022 -0.04102,-0.219725 -0.123047,-0.287109 -0.08106,-0.06836 -0.195313,-0.102538 -0.342773,-0.102539 -0.09375,10e-7 -0.185059,0.01123 -0.273926,0.03369 -0.08887,0.02246 -0.174317,0.05615 -0.256348,0.101075 l 0,-0.249024 c 0.09863,-0.03808 0.194336,-0.0664 0.28711,-0.08496 0.09277,-0.01953 0.183105,-0.02929 0.270996,-0.0293 0.237303,2e-6 0.414549,0.06152 0.531738,0.184571 0.117186,0.123048 0.17578,0.309571 0.175781,0.55957"
style="font-size:3px;fill:#ffffff"
id="path3917"
inkscape:connector-curvature="0" />
<path
d="m 87.253075,14.367685 c -0.03027,-0.01758 -0.06348,-0.03027 -0.09961,-0.03809 -0.03516,-0.0088 -0.07422,-0.01318 -0.117187,-0.01318 -0.152345,1e-6 -0.269532,0.04981 -0.351563,0.149414 -0.08105,0.09863 -0.121582,0.240724 -0.121582,0.426269 l 0,0.864258 -0.270996,0 0,-1.640625 0.270996,0 0,0.254883 c 0.05664,-0.09961 0.130371,-0.173338 0.221192,-0.221191 0.09082,-0.04883 0.201171,-0.07324 0.331054,-0.07324 0.01855,2e-6 0.03906,0.0015 0.06152,0.0044 0.02246,0.002 0.04736,0.0054 0.07471,0.01025 l 0.0015,0.276855"
style="font-size:3px;fill:#ffffff"
id="path3919"
inkscape:connector-curvature="0" />
<path
d="m 88.110008,14.304697 c -0.144532,10e-7 -0.258789,0.05664 -0.342773,0.169922 -0.08398,0.112306 -0.125977,0.266602 -0.125977,0.462891 0,0.196289 0.0415,0.351074 0.124512,0.464355 0.08398,0.112305 0.19873,0.168457 0.344238,0.168457 0.143554,0 0.257323,-0.05664 0.341309,-0.169922 0.08398,-0.113281 0.125975,-0.267577 0.125976,-0.46289 -10e-7,-0.194335 -0.04199,-0.348144 -0.125976,-0.461426 -0.08399,-0.114257 -0.197755,-0.171386 -0.341309,-0.171387 m 0,-0.228516 c 0.234374,2e-6 0.418456,0.07617 0.552246,0.228516 0.133788,0.152345 0.200682,0.363282 0.200684,0.632813 -2e-6,0.268555 -0.0669,0.479492 -0.200684,0.632812 -0.13379,0.152344 -0.317872,0.228516 -0.552246,0.228516 -0.235352,0 -0.419922,-0.07617 -0.553711,-0.228516 -0.132812,-0.15332 -0.199219,-0.364257 -0.199218,-0.632812 -10e-7,-0.269531 0.06641,-0.480468 0.199218,-0.632813 0.133789,-0.152342 0.318359,-0.228514 0.553711,-0.228516"
style="font-size:3px;fill:#ffffff"
id="path3921"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text6268">
<path
d="m 25.05489,44.078304 0,0.416016 c -0.132815,-0.123696 -0.274742,-0.216143 -0.425782,-0.277344 -0.149741,-0.0612 -0.309246,-0.09179 -0.478515,-0.0918 -0.333335,3e-6 -0.588543,0.102216 -0.765625,0.306641 -0.177084,0.203127 -0.265626,0.497398 -0.265625,0.882812 -1e-6,0.384116 0.08854,0.678387 0.265625,0.882813 0.177082,0.203125 0.43229,0.304688 0.765625,0.304687 0.169269,1e-6 0.328774,-0.0306 0.478515,-0.0918 0.15104,-0.0612 0.292967,-0.153646 0.425782,-0.277344 l 0,0.412109 c -0.138024,0.09375 -0.284508,0.164063 -0.439453,0.210938 -0.153648,0.04687 -0.316409,0.07031 -0.488282,0.07031 -0.441407,0 -0.789063,-0.134765 -1.042968,-0.404297 -0.253907,-0.270832 -0.38086,-0.639973 -0.38086,-1.107422 0,-0.468748 0.126953,-0.837888 0.38086,-1.107421 0.253905,-0.270831 0.601561,-0.406247 1.042968,-0.40625 0.174478,3e-6 0.33854,0.02344 0.492188,0.07031 0.154945,0.04558 0.300128,0.114586 0.435547,0.207031"
style="font-size:4px;fill:#ffffff"
id="path4194"
inkscape:connector-curvature="0" />
<path
d="m 26.062702,44.177914 0,1.095703 0.496094,0 c 0.183592,10e-7 0.325519,-0.04753 0.425781,-0.142578 0.100259,-0.09505 0.150389,-0.230467 0.150391,-0.40625 -2e-6,-0.174477 -0.05013,-0.309243 -0.150391,-0.404297 -0.100262,-0.09505 -0.242189,-0.142576 -0.425781,-0.142578 l -0.496094,0 m -0.394531,-0.324219 0.890625,0 c 0.326821,3e-6 0.573566,0.07422 0.740234,0.222656 0.167967,0.147138 0.251951,0.363284 0.251953,0.648438 -2e-6,0.287762 -0.08399,0.50521 -0.251953,0.652343 -0.166668,0.147137 -0.413413,0.220705 -0.740234,0.220704 l -0.496094,0 0,1.171875 -0.394531,0 0,-2.916016"
style="font-size:4px;fill:#ffffff"
id="path4196"
inkscape:connector-curvature="0" />
<path
d="m 28.037312,43.853695 0.396484,0 0,1.771484 c -1e-6,0.312501 0.05664,0.537761 0.169922,0.675782 0.11328,0.136719 0.296874,0.205078 0.550781,0.205078 0.252603,0 0.435545,-0.06836 0.548828,-0.205078 0.113279,-0.138021 0.16992,-0.363281 0.169922,-0.675782 l 0,-1.771484 0.396484,0 0,1.820312 c -2e-6,0.380209 -0.0944,0.667319 -0.283203,0.861329 -0.187502,0.19401 -0.464845,0.291015 -0.832031,0.291015 -0.368491,0 -0.647136,-0.09701 -0.835937,-0.291015 -0.187501,-0.19401 -0.281251,-0.48112 -0.28125,-0.861329 l 0,-1.820312"
style="font-size:4px;fill:#ffffff"
id="path4198"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text6272">
<path
d="m 43.60281,44.008953 0,0.384766 c -0.149742,-0.07161 -0.291018,-0.124998 -0.423828,-0.160157 -0.132814,-0.03515 -0.261069,-0.05273 -0.384766,-0.05273 -0.214845,3e-6 -0.38086,0.04167 -0.498047,0.125 -0.115886,0.08334 -0.173829,0.201825 -0.173828,0.355469 -10e-7,0.128908 0.03841,0.226564 0.115235,0.292969 0.07812,0.06511 0.225259,0.11784 0.441406,0.158203 l 0.238281,0.04883 c 0.294269,0.05599 0.511066,0.154949 0.650391,0.296875 0.140622,0.140626 0.210935,0.329428 0.210937,0.566406 -2e-6,0.282553 -0.09505,0.496745 -0.285156,0.642578 -0.188804,0.145834 -0.466147,0.21875 -0.832031,0.21875 -0.138022,0 -0.285158,-0.01563 -0.441407,-0.04687 -0.154948,-0.03125 -0.315755,-0.07747 -0.482421,-0.138672 l 0,-0.40625 c 0.160155,0.08985 0.317056,0.157553 0.470703,0.203125 0.153645,0.04557 0.304686,0.06836 0.453125,0.06836 0.225259,0 0.399087,-0.04427 0.521484,-0.132813 0.122394,-0.08854 0.183592,-0.214843 0.183594,-0.378906 -2e-6,-0.143228 -0.04427,-0.255207 -0.132813,-0.335938 -0.08724,-0.08073 -0.231121,-0.141274 -0.43164,-0.18164 l -0.240235,-0.04687 c -0.294271,-0.05859 -0.507162,-0.150389 -0.638672,-0.275391 -0.13151,-0.124998 -0.197265,-0.298826 -0.197265,-0.521484 0,-0.25781 0.09049,-0.460935 0.271484,-0.609375 0.182291,-0.148435 0.432942,-0.222653 0.751953,-0.222656 0.136718,3e-6 0.27604,0.01237 0.417969,0.03711 0.141925,0.02474 0.287107,0.06185 0.435547,0.111328"
style="font-size:4px;fill:#ffffff"
id="path4201"
inkscape:connector-curvature="0" />
<path
d="m 44.733669,44.020672 0,0.621094 0.740235,0 0,0.279296 -0.740235,0 0,1.1875 c 0,0.178386 0.02409,0.29297 0.07227,0.34375 0.04948,0.05078 0.149087,0.07617 0.298828,0.07617 l 0.369141,0 0,0.300782 -0.369141,0 c -0.277345,0 -0.468751,-0.05143 -0.574219,-0.154297 C 44.425075,46.570802 44.372341,46.382 44.372341,46.108562 l 0,-1.1875 -0.263672,0 0,-0.279296 0.263672,0 0,-0.621094 0.361328,0"
style="font-size:4px;fill:#ffffff"
id="path4203"
inkscape:connector-curvature="0" />
<path
d="m 46.942654,45.729656 c -0.290366,1e-6 -0.491538,0.0332 -0.603516,0.09961 -0.11198,0.06641 -0.167969,0.179688 -0.167969,0.339843 0,0.127605 0.04167,0.229167 0.125,0.304688 0.08463,0.07422 0.199218,0.111328 0.34375,0.111328 0.199218,0 0.358723,-0.07031 0.478516,-0.210938 0.121092,-0.141926 0.181639,-0.330077 0.181641,-0.564453 l 0,-0.08008 -0.357422,0 m 0.716797,-0.148437 0,1.248047 -0.359375,0 0,-0.332032 c -0.08203,0.132813 -0.184247,0.23112 -0.306641,0.294922 -0.122397,0.0625 -0.272137,0.09375 -0.449219,0.09375 -0.223959,0 -0.402344,-0.0625 -0.535156,-0.1875 -0.131511,-0.126302 -0.197266,-0.294921 -0.197266,-0.505859 0,-0.246093 0.08203,-0.43164 0.246094,-0.556641 0.165364,-0.124998 0.411457,-0.187498 0.738281,-0.1875 l 0.503907,0 0,-0.03516 c -2e-6,-0.165363 -0.05469,-0.292967 -0.164063,-0.382813 -0.108074,-0.09114 -0.260418,-0.136716 -0.457031,-0.136718 -0.125001,2e-6 -0.246746,0.01498 -0.365235,0.04492 -0.11849,0.02995 -0.232422,0.07487 -0.341796,0.134765 l 0,-0.332031 c 0.131509,-0.05078 0.259113,-0.08854 0.382812,-0.113281 0.123697,-0.02604 0.24414,-0.03906 0.361328,-0.03906 0.316405,2e-6 0.552733,0.08203 0.708985,0.246094 0.156248,0.164064 0.234372,0.412762 0.234375,0.746094"
style="font-size:4px;fill:#ffffff"
id="path4205"
inkscape:connector-curvature="0" />
<path
d="m 49.975857,44.72575 0,0.335937 c -0.101565,-0.05599 -0.203778,-0.09765 -0.306641,-0.125 -0.101564,-0.02864 -0.204428,-0.04297 -0.308594,-0.04297 -0.233074,2e-6 -0.414063,0.07422 -0.542968,0.222656 -0.128907,0.147137 -0.19336,0.354168 -0.19336,0.621094 0,0.266928 0.06445,0.47461 0.19336,0.623047 0.128905,0.147135 0.309894,0.220703 0.542968,0.220703 0.104166,0 0.20703,-0.01367 0.308594,-0.04102 0.102863,-0.02864 0.205076,-0.07096 0.306641,-0.126953 l 0,0.332031 c -0.100262,0.04687 -0.204429,0.08203 -0.3125,0.105469 -0.106773,0.02344 -0.220705,0.03516 -0.341797,0.03516 -0.329428,0 -0.591147,-0.103515 -0.785156,-0.310547 -0.194011,-0.20703 -0.291016,-0.486327 -0.291016,-0.83789 0,-0.35677 0.09766,-0.637368 0.292969,-0.841797 0.196614,-0.204425 0.465494,-0.306639 0.80664,-0.306641 0.110676,2e-6 0.218749,0.01172 0.324219,0.03516 0.105467,0.02214 0.207681,0.05599 0.306641,0.101563"
style="font-size:4px;fill:#ffffff"
id="path4207"
inkscape:connector-curvature="0" />
<path
d="m 50.591091,43.790203 0.361328,0 0,1.794922 1.072266,-0.943359 0.458984,0 -1.160156,1.023437 1.208984,1.164063 -0.46875,0 -1.111328,-1.06836 0,1.06836 -0.361328,0 0,-3.039063"
style="font-size:4px;fill:#ffffff"
id="path4209"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="Mem">
<path
d="m 59.734768,43.432796 0.587891,0 0.74414,1.984375 0.748047,-1.984375 0.587891,0 0,2.916016 -0.384766,0 0,-2.560547 -0.751953,2 -0.396484,0 -0.751954,-2 0,2.560547 -0.382812,0 0,-2.916016"
style="font-size:4px;fill:#ffffff"
id="path4212"
inkscape:connector-curvature="0" />
<path
d="m 65.043362,45.165218 0,0.175782 -1.652344,0 c 0.01562,0.247396 0.08984,0.436198 0.222656,0.566406 0.134114,0.128906 0.320312,0.193359 0.558594,0.193359 0.138019,0 0.271483,-0.01693 0.400391,-0.05078 0.130206,-0.03385 0.259112,-0.08463 0.386718,-0.152344 l 0,0.339844 c -0.128908,0.05469 -0.261069,0.09635 -0.396484,0.125 -0.135418,0.02865 -0.272788,0.04297 -0.412109,0.04297 -0.34896,0 -0.625652,-0.101563 -0.830079,-0.304688 -0.203125,-0.203124 -0.304687,-0.477864 -0.304687,-0.824219 0,-0.358071 0.09635,-0.641925 0.289062,-0.851562 0.19401,-0.210935 0.455078,-0.316404 0.783204,-0.316406 0.294269,2e-6 0.52669,0.09505 0.697265,0.285156 0.171873,0.188804 0.25781,0.445965 0.257813,0.771484 m -0.359375,-0.10547 c -0.0026,-0.196613 -0.05795,-0.353514 -0.166016,-0.470704 -0.106772,-0.117185 -0.248699,-0.175779 -0.425781,-0.175781 -0.200522,2e-6 -0.361329,0.05664 -0.482422,0.169922 -0.119792,0.113283 -0.188803,0.272788 -0.207031,0.478516 l 1.28125,-0.002"
style="font-size:4px;fill:#ffffff"
id="path4214"
inkscape:connector-curvature="0" />
<path
d="m 67.33633,44.581234 c 0.08984,-0.161456 0.197264,-0.280597 0.322266,-0.357422 0.124998,-0.07682 0.272133,-0.115232 0.441406,-0.115234 0.227862,2e-6 0.403643,0.08008 0.527344,0.240234 0.123694,0.158856 0.185543,0.385418 0.185547,0.679688 l 0,1.320312 -0.361328,0 0,-1.308594 c -3e-6,-0.209634 -0.03711,-0.365232 -0.111328,-0.466797 -0.07422,-0.10156 -0.187503,-0.152341 -0.339844,-0.152343 -0.186201,2e-6 -0.333336,0.06185 -0.441406,0.185547 -0.108075,0.123699 -0.162112,0.292319 -0.16211,0.505859 l 0,1.236328 -0.361328,0 0,-1.308594 c -2e-6,-0.210936 -0.03711,-0.366534 -0.111328,-0.466797 -0.07422,-0.10156 -0.188804,-0.152341 -0.34375,-0.152343 -0.183595,2e-6 -0.329428,0.0625 -0.4375,0.1875 -0.108074,0.123699 -0.16211,0.291668 -0.162109,0.503906 l 0,1.236328 -0.361328,0 0,-2.1875 0.361328,0 0,0.339844 c 0.08203,-0.134113 0.180337,-0.233071 0.294922,-0.296875 0.114582,-0.0638 0.250649,-0.0957 0.408203,-0.0957 0.158852,2e-6 0.293618,0.04037 0.404297,0.121093 0.111977,0.08073 0.194659,0.197919 0.248046,0.351563"
style="font-size:4px;fill:#ffffff"
id="path4216"
inkscape:connector-curvature="0" />
<path
d="m 70.379299,44.413265 c -0.192709,2e-6 -0.345053,0.07552 -0.457031,0.226563 -0.11198,0.149741 -0.167969,0.35547 -0.167969,0.617187 0,0.26172 0.05534,0.4681 0.166016,0.619141 0.111978,0.14974 0.264973,0.224609 0.458984,0.224609 0.191405,0 0.343098,-0.07552 0.455078,-0.226562 0.111978,-0.151041 0.167967,-0.35677 0.167969,-0.617188 -2e-6,-0.259113 -0.05599,-0.464191 -0.167969,-0.615234 -0.11198,-0.152342 -0.263673,-0.228514 -0.455078,-0.228516 m 0,-0.304687 c 0.312499,2e-6 0.557941,0.101564 0.736328,0.304687 0.178384,0.203127 0.267576,0.484377 0.267578,0.84375 -2e-6,0.358074 -0.08919,0.639324 -0.267578,0.84375 -0.178387,0.203125 -0.423829,0.304688 -0.736328,0.304688 -0.313803,0 -0.559896,-0.101563 -0.738281,-0.304688 -0.177084,-0.204426 -0.265625,-0.485676 -0.265625,-0.84375 0,-0.359373 0.08854,-0.640623 0.265625,-0.84375 0.178385,-0.203123 0.424478,-0.304685 0.738281,-0.304687"
style="font-size:4px;fill:#ffffff"
id="path4218"
inkscape:connector-curvature="0" />
<path
d="m 73.244534,44.49725 c -0.04037,-0.02344 -0.08464,-0.04036 -0.132813,-0.05078 -0.04688,-0.01172 -0.09896,-0.01758 -0.15625,-0.01758 -0.203126,2e-6 -0.359376,0.06641 -0.46875,0.199219 -0.108074,0.131512 -0.16211,0.320965 -0.162109,0.568359 l 0,1.152344 -0.361328,0 0,-2.1875 0.361328,0 0,0.339844 c 0.07552,-0.132811 0.173827,-0.231118 0.294922,-0.294922 0.121092,-0.0651 0.268227,-0.09765 0.441406,-0.09766 0.02474,2e-6 0.05208,0.002 0.08203,0.0059 0.02995,0.0026 0.06315,0.0072 0.09961,0.01367 l 0.002,0.369141"
style="font-size:4px;fill:#ffffff"
id="path4220"
inkscape:connector-curvature="0" />
<path
d="m 74.535549,46.551937 c -0.101564,0.260416 -0.200522,0.430338 -0.296875,0.509766 -0.09636,0.07943 -0.225261,0.11914 -0.386719,0.11914 l -0.287109,0 0,-0.300781 0.210938,0 c 0.09896,0 0.17578,-0.02344 0.230468,-0.07031 0.05469,-0.04688 0.115234,-0.157553 0.181641,-0.332032 l 0.06445,-0.164062 -0.884766,-2.152344 0.38086,0 0.683594,1.710938 0.683593,-1.710938 0.38086,0 -0.960938,2.390625"
style="font-size:4px;fill:#ffffff"
id="path4222"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4548-2-7-0">
<path
d="m 73.367149,65.780605 0,-1.324218 0.359375,0 0,1.310546 c 0,0.207032 0.04036,0.362631 0.121094,0.466797 0.08073,0.102865 0.201822,0.154297 0.363281,0.154297 0.194009,0 0.347004,-0.06185 0.458985,-0.185547 0.113279,-0.123697 0.16992,-0.292317 0.169922,-0.505859 l 0,-1.240234 0.359375,0 0,2.1875 -0.359375,0 0,-0.335938 c -0.08724,0.132813 -0.188804,0.231771 -0.304688,0.296875 -0.114585,0.0638 -0.248048,0.0957 -0.400391,0.0957 -0.251302,0 -0.442057,-0.07813 -0.572265,-0.234375 -0.130209,-0.156249 -0.195313,-0.384765 -0.195313,-0.685547 m 0.904297,-1.376953 0,0"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
id="path4259"
inkscape:connector-curvature="0" />
<path
d="m 75.167931,68.479824 0,0.384766 c -0.149742,-0.07161 -0.291018,-0.124998 -0.423829,-0.160157 -0.132814,-0.03515 -0.261069,-0.05273 -0.384765,-0.05273 -0.214845,3e-6 -0.38086,0.04167 -0.498047,0.125 -0.115886,0.08334 -0.173829,0.201825 -0.173828,0.355469 -10e-7,0.128908 0.03841,0.226564 0.115234,0.292969 0.07812,0.06511 0.22526,0.11784 0.441406,0.158203 l 0.238282,0.04883 c 0.294269,0.05599 0.511065,0.154949 0.65039,0.296875 0.140623,0.140626 0.210936,0.329428 0.210938,0.566406 -2e-6,0.282553 -0.09505,0.496745 -0.285156,0.642578 -0.188804,0.145834 -0.466148,0.21875 -0.832032,0.21875 -0.138022,0 -0.285157,-0.01563 -0.441406,-0.04687 -0.154948,-0.03125 -0.315756,-0.07747 -0.482422,-0.138672 l 0,-0.40625 c 0.160156,0.08985 0.317057,0.157553 0.470703,0.203125 0.153645,0.04557 0.304687,0.06836 0.453125,0.06836 0.225259,0 0.399087,-0.04427 0.521485,-0.132813 0.122394,-0.08854 0.183592,-0.214843 0.183593,-0.378906 -10e-7,-0.143228 -0.04427,-0.255207 -0.132812,-0.335938 -0.08724,-0.08073 -0.231121,-0.141274 -0.431641,-0.18164 l -0.240234,-0.04687 c -0.294272,-0.05859 -0.507162,-0.150389 -0.638672,-0.275391 -0.131511,-0.124998 -0.197266,-0.298826 -0.197266,-0.521484 0,-0.25781 0.0905,-0.460935 0.271485,-0.609375 0.182291,-0.148435 0.432942,-0.222653 0.751953,-0.222656 0.136717,3e-6 0.27604,0.01237 0.417969,0.03711 0.141925,0.02474 0.287107,0.06185 0.435547,0.111328"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
id="path4261"
inkscape:connector-curvature="0" />
<path
d="m 73.544884,73.36459 0,2.267578 0.476562,0 c 0.402342,0 0.696613,-0.09115 0.882813,-0.273438 0.187497,-0.182291 0.281247,-0.470051 0.28125,-0.863281 -3e-6,-0.390623 -0.09375,-0.67643 -0.28125,-0.857422 -0.1862,-0.182289 -0.480471,-0.273435 -0.882813,-0.273437 l -0.476562,0 m -0.394532,-0.324219 0.810547,0 c 0.565103,3e-6 0.979816,0.117841 1.244141,0.353516 0.26432,0.234377 0.396482,0.601564 0.396484,1.101562 -2e-6,0.502605 -0.132815,0.871745 -0.398437,1.107422 -0.265627,0.235677 -0.679689,0.353516 -1.242188,0.353516 l -0.810547,0 0,-2.916016"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
id="path4263"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-0-7-4"
width="5.3263974"
height="5.9022241"
x="583.84381"
y="366.52393" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-2-3-4">
<path
d="m 585.62018,370.49521 0.64453,0 0,-2.22461 -0.70117,0.14062 0,-0.35937 0.69726,-0.14063 0.39453,0 0,2.58399 0.64454,0 0,0.33203 -1.67969,0 0,-0.33203"
style="font-size:4px;fill:#ffffff"
id="path4118"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-09-6-6"
width="5.3263974"
height="5.9022241"
x="583.84381"
y="373.38257" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-0-0-6">
<path
d="m 585.89166,377.35385 1.37696,0 0,0.33203 -1.85157,0 0,-0.33203 c 0.14974,-0.15495 0.35352,-0.36263 0.61133,-0.62305 0.25911,-0.26171 0.42188,-0.43033 0.48828,-0.50585 0.1263,-0.14193 0.21419,-0.26172 0.26367,-0.35938 0.0508,-0.099 0.0762,-0.19596 0.0762,-0.29102 -10e-6,-0.15494 -0.0547,-0.28124 -0.16407,-0.3789 -0.10807,-0.0977 -0.24935,-0.14648 -0.42382,-0.14649 -0.1237,1e-5 -0.25456,0.0215 -0.39258,0.0645 -0.13672,0.043 -0.28321,0.10807 -0.43946,0.19531 l 0,-0.39844 c 0.15886,-0.0638 0.3073,-0.11197 0.44532,-0.14453 0.13802,-0.0326 0.26432,-0.0488 0.3789,-0.0488 0.30209,1e-5 0.54297,0.0755 0.72266,0.22657 0.17968,0.15104 0.26953,0.35286 0.26953,0.60546 0,0.1198 -0.0228,0.23373 -0.0684,0.3418 -0.0443,0.10677 -0.12565,0.23308 -0.24414,0.37891 -0.0325,0.0378 -0.13607,0.14713 -0.31055,0.32812 -0.17448,0.17969 -0.42057,0.43164 -0.73828,0.75586"
style="font-size:4px;fill:#ffffff"
id="path4099"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-3-5-4"
width="5.3263974"
height="5.9022241"
x="583.84381"
y="380.24118" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-8-7-9">
<path
d="m 586.74713,382.97223 c 0.1888,0.0404 0.33594,0.12435 0.44141,0.25195 0.10677,0.12761 0.16015,0.28516 0.16015,0.47266 0,0.28776 -0.099,0.51042 -0.29687,0.66797 -0.19792,0.15755 -0.47917,0.23633 -0.84375,0.23633 -0.1224,0 -0.2487,-0.0124 -0.37891,-0.0371 -0.1289,-0.0234 -0.26237,-0.0593 -0.40039,-0.10743 l 0,-0.38086 c 0.10938,0.0638 0.22917,0.11198 0.35938,0.14454 0.1302,0.0326 0.26627,0.0488 0.4082,0.0488 0.24739,0 0.43555,-0.0488 0.56445,-0.14648 0.13021,-0.0977 0.19531,-0.23958 0.19532,-0.42578 -1e-5,-0.17188 -0.0606,-0.30599 -0.18164,-0.40235 -0.1198,-0.0976 -0.28712,-0.14648 -0.50196,-0.14648 l -0.33984,0 0,-0.32422 0.35547,0 c 0.19401,0 0.34244,-0.0384 0.44531,-0.11523 0.10286,-0.0781 0.15429,-0.19011 0.1543,-0.33594 -10e-6,-0.14974 -0.0534,-0.26432 -0.16016,-0.34375 -0.10547,-0.0807 -0.25716,-0.12109 -0.45508,-0.12109 -0.10807,0 -0.22396,0.0117 -0.34765,0.0351 -0.1237,0.0234 -0.25977,0.0599 -0.40821,0.10938 l 0,-0.35157 c 0.14974,-0.0417 0.28972,-0.0729 0.41992,-0.0937 0.13151,-0.0208 0.25521,-0.0312 0.3711,-0.0312 0.29948,10e-6 0.53645,0.0684 0.71094,0.20508 0.17447,0.13542 0.26171,0.31902 0.26171,0.55078 0,0.16146 -0.0462,0.29818 -0.13867,0.41016 -0.0924,0.11068 -0.22396,0.1875 -0.39453,0.23047"
style="font-size:4px;fill:#ffffff"
id="path4096"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-6-1-7"
width="5.3263974"
height="5.9022241"
x="583.84381"
y="387.09979" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-06-2-8">
<path
d="m 586.6358,388.83084 -0.99609,1.55664 0.99609,0 0,-1.55664 m -0.10351,-0.34375 0.49609,0 0,1.90039 0.41602,0 0,0.32813 -0.41602,0 0,0.6875 -0.39258,0 0,-0.6875 -1.3164,0 0,-0.38086 1.21289,-1.84766"
style="font-size:4px;fill:#ffffff"
id="path4093"
inkscape:connector-curvature="0" />
</g>
<rect
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-49-1-9"
width="5.3263974"
height="5.9022241"
x="583.84381"
y="393.9584"
transform="translate(-497.66563,-344.28037)" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-6-4-1">
<path
d="m 585.55573,395.3457 1.54882,0 0,0.33203 -1.1875,0 0,0.71485 c 0.0573,-0.0195 0.11459,-0.0339 0.17188,-0.043 0.0573,-0.0104 0.11458,-0.0156 0.17187,-0.0156 0.32552,10e-6 0.58333,0.0892 0.77344,0.26758 0.1901,0.17839 0.28515,0.41993 0.28516,0.72461 -10e-6,0.3138 -0.0977,0.55794 -0.29297,0.73242 -0.19532,0.17318 -0.47071,0.25977 -0.82617,0.25977 -0.1224,0 -0.2474,-0.0104 -0.375,-0.0312 -0.12631,-0.0208 -0.25717,-0.0521 -0.39258,-0.0937 l 0,-0.39649 c 0.11719,0.0638 0.23828,0.11133 0.36328,0.14258 0.125,0.0312 0.25716,0.0469 0.39648,0.0469 0.22526,0 0.40365,-0.0593 0.53516,-0.17774 0.13151,-0.11849 0.19726,-0.27929 0.19727,-0.48242 -1e-5,-0.20312 -0.0658,-0.36393 -0.19727,-0.48242 -0.13151,-0.11849 -0.3099,-0.17773 -0.53516,-0.17773 -0.10547,0 -0.21093,0.0117 -0.3164,0.0351 -0.10417,0.0234 -0.21094,0.0599 -0.32031,0.10938 l 0,-1.46485"
style="font-size:4px;fill:#ffffff"
id="path4090"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-2-7-9"
width="5.3263974"
height="5.9022241"
x="583.84381"
y="400.81705" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-9-1-8">
<path
d="m 586.4444,403.50513 c -0.17709,0 -0.31771,0.0605 -0.42188,0.18164 -0.10286,0.12109 -0.1543,0.28711 -0.15429,0.49804 -1e-5,0.20964 0.0514,0.37566 0.15429,0.49805 0.10417,0.1211 0.24479,0.18164 0.42188,0.18164 0.17708,0 0.31705,-0.0605 0.41992,-0.18164 0.10416,-0.12239 0.15625,-0.28841 0.15625,-0.49805 0,-0.21093 -0.0521,-0.37695 -0.15625,-0.49804 -0.10287,-0.12109 -0.24284,-0.18164 -0.41992,-0.18164 m 0.7832,-1.23633 0,0.35937 c -0.099,-0.0469 -0.19922,-0.0827 -0.30078,-0.10742 -0.10026,-0.0247 -0.19987,-0.0371 -0.29883,-0.0371 -0.26042,10e-6 -0.45964,0.0879 -0.59766,0.26367 -0.13672,0.17579 -0.21484,0.44141 -0.23437,0.79688 0.0768,-0.11328 0.17318,-0.19987 0.28906,-0.25977 0.11589,-0.0612 0.24349,-0.0918 0.38281,-0.0918 0.29297,0 0.52409,0.0892 0.69336,0.26758 0.17057,0.17708 0.25586,0.41862 0.25586,0.7246 0,0.29948 -0.0885,0.53972 -0.26562,0.72071 -0.17709,0.18099 -0.41276,0.27148 -0.70703,0.27148 -0.33724,0 -0.59506,-0.1289 -0.77344,-0.38672 -0.17839,-0.25911 -0.26758,-0.63411 -0.26758,-1.125 0,-0.46093 0.10938,-0.82812 0.32813,-1.10156 0.21875,-0.27474 0.51237,-0.41211 0.88086,-0.41211 0.0989,0 0.19856,0.01 0.29882,0.0293 0.10156,0.0195 0.20703,0.0488 0.31641,0.0879"
style="font-size:4px;fill:#ffffff"
id="path4087"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-9-7-7"
width="5.3263974"
height="5.9022241"
x="583.84381"
y="407.67563" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-84-7-6">
<path
d="m 585.45221,409.06293 1.875,0 0,0.16797 -1.05859,2.74804 -0.41211,0 0.99609,-2.58398 -1.40039,0 0,-0.33203"
style="font-size:4px;fill:#ffffff"
id="path4083"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-5-5-1"
width="5.3263974"
height="5.9022241"
x="583.84381"
y="414.53427" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-4-9-5">
<path
d="m 586.39557,417.45282 c -0.1875,0 -0.33529,0.0501 -0.44336,0.15039 -0.10677,0.10026 -0.16016,0.23828 -0.16016,0.41406 0,0.17578 0.0534,0.31381 0.16016,0.41407 0.10807,0.10026 0.25586,0.15039 0.44336,0.15039 0.1875,0 0.33528,-0.0501 0.44336,-0.15039 0.10807,-0.10157 0.16211,-0.23959 0.16211,-0.41407 0,-0.17578 -0.054,-0.3138 -0.16211,-0.41406 -0.10677,-0.10026 -0.25456,-0.15039 -0.44336,-0.15039 m -0.39453,-0.16797 c -0.16927,-0.0417 -0.30144,-0.12044 -0.39649,-0.23633 -0.0937,-0.11588 -0.14062,-0.25716 -0.14062,-0.42383 0,-0.23307 0.0827,-0.41731 0.24805,-0.55273 0.16666,-0.13541 0.39453,-0.20312 0.68359,-0.20312 0.29036,0 0.51823,0.0677 0.68359,0.20312 0.16537,0.13542 0.24805,0.31966 0.24805,0.55273 0,0.16667 -0.0475,0.30795 -0.14258,0.42383 -0.0937,0.11589 -0.22461,0.19467 -0.39258,0.23633 0.19011,0.0443 0.33789,0.13086 0.44336,0.25977 0.10677,0.1289 0.16016,0.28646 0.16016,0.47265 0,0.28256 -0.0866,0.49935 -0.25977,0.65039 -0.17187,0.15105 -0.41862,0.22657 -0.74023,0.22657 -0.32162,0 -0.56901,-0.0755 -0.74219,-0.22657 -0.17187,-0.15104 -0.25781,-0.36783 -0.25781,-0.65039 0,-0.18619 0.0534,-0.34375 0.16016,-0.47265 0.10677,-0.12891 0.2552,-0.2155 0.44531,-0.25977 m -0.14453,-0.62305 c 0,0.15105 0.0469,0.26889 0.14062,0.35352 0.0951,0.0846 0.22786,0.12695 0.39844,0.12695 0.16927,0 0.30143,-0.0423 0.39648,-0.12695 0.0964,-0.0846 0.14453,-0.20247 0.14453,-0.35352 0,-0.15104 -0.0482,-0.26887 -0.14453,-0.35351 -0.0951,-0.0846 -0.22721,-0.12695 -0.39648,-0.12695 -0.17058,0 -0.30339,0.0423 -0.39844,0.12695 -0.0937,0.0846 -0.14062,0.20247 -0.14062,0.35351"
style="font-size:4px;fill:#ffffff"
id="path4080"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4842-8-2">
<path
d="m 580.3844,377.1857 c 0.0846,0.0287 0.16666,0.0898 0.24609,0.18359 0.0807,0.0937 0.16146,0.22266 0.24219,0.38672 l 0.40039,0.79688 -0.42383,0 -0.37304,-0.74805 c -0.0964,-0.19531 -0.19011,-0.32487 -0.28125,-0.38867 -0.0898,-0.0638 -0.2129,-0.0957 -0.36914,-0.0957 l -0.42969,0 0,1.23242 -0.39453,0 0,-2.91602 0.89062,0 c 0.33333,0 0.58203,0.0697 0.7461,0.20899 0.16406,0.13932 0.24609,0.34961 0.24609,0.63086 0,0.18359 -0.043,0.33593 -0.12891,0.45703 -0.0846,0.12109 -0.20833,0.20508 -0.37109,0.25195 m -0.98828,-1.22461 0,1.03516 0.49609,0 c 0.1901,0 0.33333,-0.0436 0.42969,-0.13086 0.0976,-0.0885 0.14648,-0.2181 0.14648,-0.38867 0,-0.17058 -0.0488,-0.29883 -0.14648,-0.38477 -0.0964,-0.0872 -0.23959,-0.13086 -0.42969,-0.13086 l -0.49609,0"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
id="path4102"
inkscape:connector-curvature="0" />
<path
d="m 581.07971,380.51773 0,0.41602 c -0.13281,-0.1237 -0.27474,-0.21615 -0.42578,-0.27735 -0.14974,-0.0612 -0.30925,-0.0918 -0.47851,-0.0918 -0.33334,0 -0.58855,0.10221 -0.76563,0.30664 -0.17708,0.20312 -0.26563,0.49739 -0.26562,0.88281 -10e-6,0.38411 0.0885,0.67839 0.26562,0.88281 0.17708,0.20313 0.43229,0.30469 0.76563,0.30469 0.16926,0 0.32877,-0.0306 0.47851,-0.0918 0.15104,-0.0612 0.29297,-0.15364 0.42578,-0.27734 l 0,0.41211 c -0.13802,0.0937 -0.28451,0.16406 -0.43945,0.21094 -0.15365,0.0469 -0.31641,0.0703 -0.48828,0.0703 -0.44141,0 -0.78907,-0.13477 -1.04297,-0.4043 -0.25391,-0.27083 -0.38086,-0.63997 -0.38086,-1.10742 0,-0.46875 0.12695,-0.83789 0.38086,-1.10742 0.2539,-0.27083 0.60156,-0.40625 1.04297,-0.40625 0.17447,0 0.33854,0.0234 0.49219,0.0703 0.15494,0.0456 0.30012,0.11459 0.43554,0.20703"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
id="path4105"
inkscape:connector-curvature="0" />
<path
d="m 579.70471,389.60562 0.39453,0 0,2.91602 -0.39453,0 0,-2.91602"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
id="path4107"
inkscape:connector-curvature="0" />
<path
d="m 580.82776,395.85757 0,1.32032 -0.35938,0 0,-1.3086 c 0,-0.20703 -0.0404,-0.36197 -0.12109,-0.46484 -0.0807,-0.10286 -0.20182,-0.1543 -0.36328,-0.1543 -0.19401,0 -0.34701,0.0618 -0.45899,0.18555 -0.11198,0.1237 -0.16797,0.29232 -0.16796,0.50586 l 0,1.23633 -0.36133,0 0,-2.1875 0.36133,0 0,0.33984 c 0.0859,-0.13151 0.18684,-0.22981 0.30273,-0.29492 0.11719,-0.0651 0.25195,-0.0977 0.4043,-0.0977 0.2513,0 0.4414,0.0781 0.57031,0.23438 0.1289,0.15495 0.19336,0.38346 0.19336,0.68554"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
id="path4109"
inkscape:connector-curvature="0" />
<path
d="m 579.35706,401.50601 0,1.16016 -0.36133,0 0,-3.01953 0.36133,0 0,0.33203 c 0.0755,-0.13021 0.17057,-0.22656 0.28515,-0.28906 0.11589,-0.0638 0.25391,-0.0957 0.41406,-0.0957 0.26563,0 0.48112,0.10547 0.64649,0.31641 0.16666,0.21094 0.25,0.48828 0.25,0.83203 0,0.34375 -0.0833,0.62109 -0.25,0.83203 -0.16537,0.21094 -0.38086,0.31641 -0.64649,0.31641 -0.16015,0 -0.29817,-0.0312 -0.41406,-0.0937 -0.11458,-0.0638 -0.20963,-0.16081 -0.28515,-0.29102 m 1.22265,-0.76367 c 0,-0.26432 -0.0547,-0.47135 -0.16406,-0.62109 -0.10808,-0.15104 -0.25716,-0.22656 -0.44727,-0.22657 -0.1901,10e-6 -0.33984,0.0755 -0.44921,0.22657 -0.10808,0.14974 -0.16212,0.35677 -0.16211,0.62109 -1e-5,0.26432 0.054,0.47201 0.16211,0.62305 0.10937,0.14974 0.25911,0.22461 0.44921,0.22461 0.19011,0 0.33919,-0.0749 0.44727,-0.22461 0.10937,-0.15104 0.16406,-0.35873 0.16406,-0.62305"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
id="path4111"
inkscape:connector-curvature="0" />
<path
d="m 578.97229,405.62711 0,-1.32422 0.35938,0 0,1.31054 c -10e-6,0.20704 0.0404,0.36263 0.12109,0.4668 0.0807,0.10287 0.20182,0.1543 0.36328,0.1543 0.19401,0 0.347,-0.0618 0.45898,-0.18555 0.11328,-0.1237 0.16992,-0.29232 0.16993,-0.50586 l 0,-1.24023 0.35937,0 0,2.1875 -0.35937,0 0,-0.33594 c -0.0872,0.13281 -0.18881,0.23177 -0.30469,0.29687 -0.11459,0.0638 -0.24805,0.0957 -0.40039,0.0957 -0.2513,0 -0.44206,-0.0781 -0.57227,-0.23438 -0.13021,-0.15625 -0.19531,-0.38476 -0.19531,-0.68554 m 0.9043,-1.37696 0,0"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
id="path4113"
inkscape:connector-curvature="0" />
<path
d="m 579.84924,408.33804 0,0.6211 0.74024,0 0,0.27929 -0.74024,0 0,1.1875 c 0,0.17839 0.0241,0.29297 0.0723,0.34375 0.0495,0.0508 0.14909,0.0762 0.29883,0.0762 l 0.36914,0 0,0.30078 -0.36914,0 c -0.27735,0 -0.46875,-0.0514 -0.57422,-0.1543 -0.10547,-0.10417 -0.15821,-0.29297 -0.1582,-0.56641 l 0,-1.1875 -0.26368,0 0,-0.27929 0.26368,0 0,-0.6211 0.36132,0"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
id="path4115"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text5124-0-6">
<path
d="m 56.800373,65.694183 0.297363,0 0,1.328614 c 0,0.234375 0.04248,0.40332 0.127442,0.506836 0.08496,0.102539 0.222655,0.153808 0.413086,0.153808 0.189452,0 0.326658,-0.05127 0.411621,-0.153808 0.08496,-0.103516 0.12744,-0.272461 0.127441,-0.506836 l 0,-1.328614 0.297363,0 0,1.365235 c -10e-7,0.285157 -0.0708,0.500488 -0.212402,0.645996 -0.140626,0.145508 -0.348634,0.218261 -0.624023,0.218262 -0.276368,-10e-7 -0.485352,-0.07275 -0.626953,-0.218262 -0.140626,-0.145508 -0.210938,-0.360839 -0.210938,-0.645996 l 0,-1.365235"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path4275"
inkscape:connector-curvature="0" />
<path
d="m 58.291584,69.258148 0,0.288574 c -0.112306,-0.05371 -0.218263,-0.09375 -0.317871,-0.120117 -0.09961,-0.02636 -0.195802,-0.03955 -0.288574,-0.03955 -0.161134,2e-6 -0.285646,0.03125 -0.373535,0.09375 -0.08692,0.0625 -0.130372,0.151369 -0.130372,0.266602 0,0.09668 0.02881,0.169923 0.08643,0.219727 0.05859,0.04883 0.168945,0.08838 0.331055,0.118652 l 0.178711,0.03662 c 0.220702,0.04199 0.383299,0.116212 0.487793,0.222656 0.105467,0.10547 0.158201,0.247071 0.158203,0.424805 -2e-6,0.211914 -0.07129,0.372559 -0.213867,0.481934 -0.141603,0.109375 -0.349611,0.164062 -0.624024,0.164062 -0.103516,0 -0.213868,-0.01172 -0.331054,-0.03516 -0.116212,-0.02344 -0.236817,-0.05811 -0.361817,-0.104004 l 0,-0.304688 c 0.120117,0.06738 0.237793,0.118165 0.353028,0.152344 0.115233,0.03418 0.228514,0.05127 0.339843,0.05127 0.168945,0 0.299316,-0.0332 0.391114,-0.09961 0.09179,-0.06641 0.137693,-0.161132 0.137695,-0.284179 -2e-6,-0.107422 -0.0332,-0.191406 -0.09961,-0.251954 -0.06543,-0.06055 -0.173341,-0.105956 -0.323731,-0.13623 L 57.510822,70.3685 c -0.220703,-0.04394 -0.380371,-0.112792 -0.479004,-0.206543 -0.09863,-0.09375 -0.147949,-0.22412 -0.147949,-0.391113 0,-0.193358 0.06787,-0.345702 0.203613,-0.457032 0.136719,-0.111326 0.324707,-0.16699 0.563965,-0.166992 0.102538,2e-6 0.20703,0.0093 0.313477,0.02783 0.106444,0.01856 0.21533,0.04639 0.32666,0.0835"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path4277"
inkscape:connector-curvature="0" />
<path
d="m 57.200275,73.821136 0,0.80127 0.47461,0 c 0.159178,0 0.276854,-0.03271 0.353027,-0.09815 0.07715,-0.0664 0.115721,-0.167479 0.115723,-0.303222 -2e-6,-0.136718 -0.03858,-0.237304 -0.115723,-0.301758 -0.07617,-0.06543 -0.193849,-0.09814 -0.353027,-0.09815 l -0.47461,0 m 0,-0.899414 0,0.65918 0.437989,0 c 0.14453,10e-7 0.251952,-0.02685 0.322265,-0.08057 0.07129,-0.05469 0.106932,-0.137694 0.106934,-0.249024 -2e-6,-0.11035 -0.03565,-0.192869 -0.106934,-0.247558 -0.07031,-0.05469 -0.177735,-0.08203 -0.322265,-0.08203 l -0.437989,0 m -0.295898,-0.243164 0.755859,0 c 0.225585,3e-6 0.399413,0.04688 0.521485,0.140625 0.122068,0.09375 0.183103,0.227053 0.183105,0.399903 -2e-6,0.13379 -0.03125,0.240235 -0.09375,0.319336 -0.0625,0.0791 -0.154298,0.128419 -0.27539,0.147949 0.145506,0.03125 0.258299,0.09668 0.338378,0.196289 0.08105,0.09863 0.121581,0.222169 0.121583,0.370605 -2e-6,0.195313 -0.06641,0.346192 -0.199219,0.452637 -0.132814,0.106445 -0.321779,0.159668 -0.566895,0.159668 l -0.785156,0 0,-2.187012"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path4279"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text5124-0-1">
<path
d="m 65.825645,63.926846 0.295899,0 0,2.034668 c -10e-7,0.263671 -0.05029,0.455077 -0.150879,0.574218 -0.09961,0.11914 -0.260254,0.178711 -0.481934,0.178711 l -0.112793,0 0,-0.249023 0.09229,0 c 0.130859,-10e-7 0.223144,-0.03662 0.276855,-0.109864 0.05371,-0.07324 0.08057,-0.204589 0.08057,-0.394042 l 0,-2.034668"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path4266"
inkscape:connector-curvature="0" />
<path
d="m 65.165001,67.419033 1.850098,0 0,0.249023 -0.776368,0 0,1.937989 -0.297363,0 0,-1.937989 -0.776367,0 0,-0.249023"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path4268"
inkscape:connector-curvature="0" />
<path
d="m 65.999962,71.202724 -0.401367,1.088379 0.804199,0 -0.402832,-1.088379 m -0.166992,-0.291503 0.335449,0 0.833496,2.187011 -0.307617,0 -0.199219,-0.561035 -0.98584,0 -0.199219,0.561035 -0.312011,0 0.834961,-2.187011"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path4270"
inkscape:connector-curvature="0" />
<path
d="m 66.596153,76.278408 0,-0.587402 -0.483398,0 0,-0.243164 0.776367,0 0,0.938964 c -0.11426,0.08105 -0.240236,0.142579 -0.37793,0.184571 -0.137697,0.04102 -0.284669,0.06152 -0.440918,0.06152 -0.341797,0 -0.609375,-0.09961 -0.802734,-0.298828 -0.192383,-0.200195 -0.288574,-0.478515 -0.288574,-0.834961 0,-0.35742 0.09619,-0.63574 0.288574,-0.834961 0.193359,-0.200193 0.460937,-0.300291 0.802734,-0.300293 0.142577,2e-6 0.277831,0.01758 0.405762,0.05273 0.128905,0.03516 0.247557,0.08692 0.355957,0.155273 l 0,0.314941 c -0.109377,-0.09277 -0.225588,-0.162595 -0.348633,-0.209472 -0.123048,-0.04687 -0.252443,-0.07031 -0.388183,-0.07031 -0.267579,2e-6 -0.468751,0.07471 -0.603516,0.224121 -0.13379,0.149416 -0.200684,0.372072 -0.200684,0.667969 0,0.294923 0.06689,0.517091 0.200684,0.666504 0.134765,0.149414 0.335937,0.224121 0.603516,0.224121 0.10449,0 0.197752,-0.0088 0.279785,-0.02637 0.08203,-0.01855 0.15576,-0.04687 0.221191,-0.08496"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path4272"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text5124-0">
<path
d="m 547.35425,409.21243 0,-0.3916 -0.32227,0 0,-0.16211 0.51758,0 0,0.62598 c -0.0762,0.054 -0.16016,0.0951 -0.25195,0.12305 -0.0918,0.0273 -0.18978,0.041 -0.29395,0.041 -0.22786,0 -0.40625,-0.0664 -0.53515,-0.19922 -0.12826,-0.13346 -0.19239,-0.31901 -0.19239,-0.55664 0,-0.23828 0.0641,-0.42383 0.19239,-0.55664 0.1289,-0.13346 0.30729,-0.20019 0.53515,-0.20019 0.0951,0 0.18522,0.0117 0.27051,0.0352 0.0859,0.0234 0.16504,0.058 0.2373,0.10352 l 0,0.20996 c -0.0729,-0.0618 -0.15039,-0.1084 -0.23242,-0.13965 -0.082,-0.0312 -0.16829,-0.0469 -0.25879,-0.0469 -0.17838,0 -0.3125,0.0498 -0.40234,0.14941 -0.0892,0.0996 -0.13379,0.24805 -0.13379,0.44531 0,0.19662 0.0446,0.34473 0.13379,0.44434 0.0898,0.0996 0.22396,0.14941 0.40234,0.14941 0.0697,0 0.13184,-0.006 0.18653,-0.0176 0.0547,-0.0124 0.10384,-0.0312 0.14746,-0.0566"
style="font-size:2px;writing-mode:tb-rl;fill:#ffffff"
id="path4285"
inkscape:connector-curvature="0" />
<path
d="m 546.72925,410.45267 0,0.54785 0.24804,0 c 0.0918,0 0.16276,-0.0238 0.2129,-0.0713 0.0501,-0.0475 0.0752,-0.11523 0.0752,-0.20313 0,-0.0872 -0.0251,-0.15462 -0.0752,-0.20214 -0.0501,-0.0475 -0.1211,-0.0713 -0.2129,-0.0713 l -0.24804,0 m -0.19727,-0.16211 0.44531,0 c 0.16342,0 0.28679,0.0371 0.37012,0.11133 0.084,0.0736 0.12598,0.18164 0.12598,0.32421 0,0.14389 -0.042,0.25261 -0.12598,0.32618 -0.0833,0.0736 -0.2067,0.11035 -0.37012,0.11035 l -0.24804,0 0,0.58594 -0.19727,0 0,-1.45801"
style="font-size:2px;writing-mode:tb-rl;fill:#ffffff"
id="path4287"
inkscape:connector-curvature="0" />
<path
d="m 546.84058,412.61868 0.19726,0 0,1.45801 -0.19726,0 0,-1.45801"
style="font-size:2px;writing-mode:tb-rl;fill:#ffffff"
id="path4289"
inkscape:connector-curvature="0" />
<path
d="m 546.94019,415.0806 c -0.14323,0 -0.25717,0.0534 -0.3418,0.16015 -0.084,0.10678 -0.12598,0.25228 -0.12598,0.43653 0,0.18359 0.042,0.32877 0.12598,0.43554 0.0846,0.10677 0.19857,0.16016 0.3418,0.16016 0.14322,0 0.2565,-0.0534 0.33984,-0.16016 0.084,-0.10677 0.12597,-0.25195 0.12598,-0.43554 -1e-5,-0.18425 -0.042,-0.32975 -0.12598,-0.43653 -0.0833,-0.10677 -0.19662,-0.16015 -0.33984,-0.16015 m 0,-0.16016 c 0.20442,0 0.36783,0.0687 0.49023,0.20606 0.12239,0.13672 0.18359,0.32031 0.18359,0.55078 0,0.22981 -0.0612,0.41341 -0.18359,0.55078 -0.1224,0.13672 -0.28581,0.20508 -0.49023,0.20508 -0.20508,0 -0.36915,-0.0684 -0.49219,-0.20508 -0.1224,-0.13672 -0.1836,-0.32031 -0.1836,-0.55078 0,-0.23047 0.0612,-0.41406 0.1836,-0.55078 0.12304,-0.13737 0.28711,-0.20606 0.49219,-0.20606"
style="font-size:2px;writing-mode:tb-rl;fill:#ffffff"
id="path4291"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text5124-0-5">
<path
d="m 516.10529,408.09613 0,0.82178 0.37207,0 c 0.13769,0 0.24414,-0.0357 0.31933,-0.10694 0.0752,-0.0713 0.11279,-0.17285 0.11279,-0.30468 0,-0.13086 -0.0376,-0.23194 -0.11279,-0.30323 -0.0752,-0.0713 -0.18164,-0.10693 -0.31933,-0.10693 l -0.37207,0 m -0.2959,-0.24316 0.66797,0 c 0.24511,0 0.43017,0.0557 0.55517,0.16699 0.12598,0.11035 0.18896,0.27246 0.18897,0.48633 -10e-6,0.21582 -0.063,0.3789 -0.18897,0.48925 -0.125,0.11036 -0.31006,0.16553 -0.55517,0.16553 l -0.37207,0 0,0.87891 -0.2959,0 0,-2.18701"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
id="path4320"
inkscape:connector-curvature="0" />
<path
d="m 517.42511,407.85297 0.29883,0 0.45996,1.84863 0.4585,-1.84863 0.33251,0 0.45997,1.84863 0.45849,-1.84863 0.30029,0 -0.54931,2.18701 -0.37207,0 -0.46143,-1.89844 -0.46582,1.89844 -0.37207,0 -0.54785,-2.18701"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
id="path4322"
inkscape:connector-curvature="0" />
<path
d="m 521.62189,409.01459 c 0.0635,0.0215 0.125,0.0674 0.18457,0.13769 0.0605,0.0703 0.12109,0.167 0.18164,0.29004 l 0.30029,0.59766 -0.31787,0 -0.27979,-0.56104 c -0.0723,-0.14648 -0.14257,-0.24365 -0.21093,-0.2915 -0.0674,-0.0478 -0.15967,-0.0718 -0.27686,-0.0718 l -0.32226,0 0,0.92432 -0.2959,0 0,-2.18701 0.66797,0 c 0.25,0 0.43652,0.0522 0.55957,0.15673 0.12304,0.1045 0.18457,0.26221 0.18457,0.47315 0,0.1377 -0.0322,0.25195 -0.0967,0.34277 -0.0635,0.0908 -0.15625,0.15381 -0.27832,0.18897 m -0.74121,-0.91846 0,0.77637 0.37207,0 c 0.14257,0 0.25,-0.0327 0.32226,-0.0981 0.0732,-0.0664 0.10986,-0.16357 0.10987,-0.2915 -10e-6,-0.12793 -0.0366,-0.22412 -0.10987,-0.28858 -0.0723,-0.0654 -0.17969,-0.0981 -0.32226,-0.0981 l -0.37207,0"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
id="path4324"
inkscape:connector-curvature="0" />
<path
d="m 517.12042,411.67474 0,0.28858 c -0.1123,-0.0537 -0.21826,-0.0937 -0.31787,-0.12012 -0.0996,-0.0264 -0.1958,-0.0396 -0.28857,-0.0396 -0.16114,0 -0.28565,0.0312 -0.37354,0.0937 -0.0869,0.0625 -0.13037,0.15137 -0.13037,0.2666 0,0.0967 0.0288,0.16992 0.0864,0.21973 0.0586,0.0488 0.16894,0.0884 0.33105,0.11865 l 0.17871,0.0366 c 0.2207,0.042 0.3833,0.11621 0.4878,0.22266 0.10546,0.10547 0.1582,0.24707 0.1582,0.4248 0,0.21192 -0.0713,0.37256 -0.21387,0.48194 -0.1416,0.10937 -0.34961,0.16406 -0.62402,0.16406 -0.10352,0 -0.21387,-0.0117 -0.33106,-0.0352 -0.11621,-0.0234 -0.23681,-0.0581 -0.36181,-0.104 l 0,-0.30469 c 0.12011,0.0674 0.23779,0.11817 0.35302,0.15234 0.11524,0.0342 0.22852,0.0513 0.33985,0.0513 0.16894,0 0.29931,-0.0332 0.39111,-0.0996 0.0918,-0.0664 0.13769,-0.16113 0.1377,-0.28417 -10e-6,-0.10743 -0.0332,-0.19141 -0.0996,-0.25196 -0.0654,-0.0605 -0.17334,-0.10595 -0.32373,-0.13623 l -0.18018,-0.0351 c -0.2207,-0.0439 -0.38037,-0.1128 -0.479,-0.20655 -0.0986,-0.0937 -0.14795,-0.22412 -0.14795,-0.39111 0,-0.19336 0.0679,-0.3457 0.20361,-0.45703 0.13672,-0.11133 0.32471,-0.16699 0.56397,-0.16699 0.10253,0 0.20703,0.009 0.31347,0.0278 0.10645,0.0186 0.21533,0.0464 0.32666,0.0835"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
id="path4326"
inkscape:connector-curvature="0" />
<path
d="m 519.10529,412.90228 0,0.13184 -1.23926,0 c 0.0117,0.18555 0.0674,0.32715 0.16699,0.4248 0.10059,0.0967 0.24023,0.14502 0.41895,0.14502 0.10351,0 0.20361,-0.0127 0.30029,-0.0381 0.0977,-0.0254 0.19433,-0.0635 0.29004,-0.11426 l 0,0.25488 c -0.0967,0.041 -0.1958,0.0723 -0.29737,0.0937 -0.10156,0.0215 -0.20459,0.0322 -0.30908,0.0322 -0.26172,0 -0.46924,-0.0762 -0.62256,-0.22852 -0.15234,-0.15234 -0.22851,-0.3584 -0.22851,-0.61816 0,-0.26855 0.0723,-0.48145 0.21679,-0.63867 0.14551,-0.1582 0.34131,-0.23731 0.58741,-0.23731 0.2207,0 0.39502,0.0713 0.52295,0.21387 0.1289,0.1416 0.19335,0.33447 0.19336,0.57861 m -0.26954,-0.0791 c -0.002,-0.14746 -0.0435,-0.26513 -0.12451,-0.35303 -0.0801,-0.0879 -0.18652,-0.13183 -0.31933,-0.13183 -0.15039,0 -0.271,0.0425 -0.36182,0.12744 -0.0898,0.085 -0.1416,0.20459 -0.15527,0.35889 l 0.96093,-10e-4"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
id="path4328"
inkscape:connector-curvature="0" />
<path
d="m 520.91144,412.79974 0,0.99024 -0.26953,0 0,-0.98145 c 0,-0.15527 -0.0303,-0.27148 -0.0908,-0.34863 -0.0606,-0.0772 -0.15137,-0.11572 -0.27246,-0.11572 -0.14551,0 -0.26026,0.0464 -0.34424,0.13916 -0.084,0.0928 -0.12598,0.21924 -0.12598,0.37939 l 0,0.92725 -0.271,0 0,-1.64063 0.271,0 0,0.25489 c 0.0644,-0.0986 0.14014,-0.17237 0.22705,-0.2212 0.0879,-0.0488 0.18897,-0.0732 0.30322,-0.0732 0.18848,0 0.33106,0.0586 0.42774,0.17578 0.0967,0.11622 0.14502,0.2876 0.14502,0.51416"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
id="path4330"
inkscape:connector-curvature="0" />
<path
d="m 522.49786,412.19769 0,0.25489 c -0.0762,-0.0391 -0.15527,-0.0684 -0.2373,-0.0879 -0.082,-0.0195 -0.16699,-0.0293 -0.25488,-0.0293 -0.13379,0 -0.23438,0.0205 -0.30176,0.0615 -0.0664,0.041 -0.0996,0.10254 -0.0996,0.18457 0,0.0625 0.0239,0.11182 0.0718,0.14795 0.0478,0.0352 0.14404,0.0688 0.28857,0.10108 l 0.0923,0.0205 c 0.1914,0.041 0.32714,0.0991 0.40722,0.17432 0.0811,0.0742 0.12158,0.17822 0.12158,0.31201 0,0.15235 -0.0605,0.27295 -0.18164,0.36182 -0.12011,0.0889 -0.28564,0.1333 -0.49658,0.1333 -0.0879,0 -0.17969,-0.009 -0.27539,-0.0264 -0.0947,-0.0166 -0.19482,-0.042 -0.30029,-0.0762 l 0,-0.27832 c 0.0996,0.0518 0.19775,0.0908 0.29443,0.11719 0.0967,0.0254 0.19238,0.0381 0.28711,0.0381 0.12695,0 0.22461,-0.0215 0.29297,-0.0645 0.0684,-0.0439 0.10254,-0.10547 0.10254,-0.18457 0,-0.0732 -0.0249,-0.12939 -0.0747,-0.16846 -0.0488,-0.0391 -0.15674,-0.0767 -0.32373,-0.11279 l -0.0937,-0.022 c -0.16699,-0.0352 -0.2876,-0.0889 -0.36181,-0.16114 -0.0742,-0.0732 -0.11133,-0.17334 -0.11133,-0.30029 0,-0.15429 0.0547,-0.27344 0.16406,-0.35742 0.10937,-0.084 0.26465,-0.12598 0.46582,-0.12598 0.0996,0 0.19336,0.007 0.28125,0.022 0.0879,0.0146 0.16894,0.0366 0.24316,0.0659"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
id="path4332"
inkscape:connector-curvature="0" />
<path
d="m 524.41974,412.90228 0,0.13184 -1.23926,0 c 0.0117,0.18555 0.0674,0.32715 0.16699,0.4248 0.10059,0.0967 0.24024,0.14502 0.41895,0.14502 0.10351,0 0.20361,-0.0127 0.30029,-0.0381 0.0977,-0.0254 0.19434,-0.0635 0.29004,-0.11426 l 0,0.25488 c -0.0967,0.041 -0.1958,0.0723 -0.29736,0.0937 -0.10157,0.0215 -0.20459,0.0322 -0.30908,0.0322 -0.26172,0 -0.46924,-0.0762 -0.62256,-0.22852 -0.15235,-0.15234 -0.22852,-0.3584 -0.22852,-0.61816 0,-0.26855 0.0723,-0.48145 0.2168,-0.63867 0.14551,-0.1582 0.34131,-0.23731 0.5874,-0.23731 0.2207,0 0.39502,0.0713 0.52295,0.21387 0.1289,0.1416 0.19336,0.33447 0.19336,0.57861 m -0.26953,-0.0791 c -0.002,-0.14746 -0.0435,-0.26513 -0.12451,-0.35303 -0.0801,-0.0879 -0.18653,-0.13183 -0.31934,-0.13183 -0.15039,0 -0.271,0.0425 -0.36182,0.12744 -0.0898,0.085 -0.1416,0.20459 -0.15527,0.35889 l 0.96094,-10e-4"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
id="path4334"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4548-2-7">
<path
d="m 31.543343,65.534691 -0.535157,1.451172 1.072266,0 -0.537109,-1.451172 m -0.222657,-0.388672 0.447266,0 1.111328,2.916016 -0.410156,0 -0.265625,-0.748047 -1.314453,0 -0.265625,0.748047 -0.416016,0 1.113281,-2.916016"
style="font-size:4px;fill:#ffffff"
id="path4303"
inkscape:connector-curvature="0" />
<path
d="m 33.697639,65.470238 0,2.267578 0.476563,0 c 0.402342,0 0.696613,-0.09115 0.882812,-0.273438 0.187498,-0.182291 0.281248,-0.470051 0.28125,-0.863281 -2e-6,-0.390623 -0.09375,-0.67643 -0.28125,-0.857422 -0.186199,-0.182289 -0.48047,-0.273435 -0.882812,-0.273437 l -0.476563,0 m -0.394531,-0.324219 0.810547,0 c 0.565102,3e-6 0.979816,0.117841 1.244141,0.353516 0.26432,0.234377 0.396481,0.601564 0.396484,1.101562 -3e-6,0.502605 -0.132815,0.871745 -0.398437,1.107422 -0.265628,0.235677 -0.67969,0.353516 -1.242188,0.353516 l -0.810547,0 0,-2.916016"
style="font-size:4px;fill:#ffffff"
id="path4305"
inkscape:connector-curvature="0" />
<path
d="m 38.564827,65.370628 0,0.416016 C 38.432012,65.662948 38.290085,65.570501 38.139046,65.5093 37.989304,65.44811 37.829799,65.41751 37.66053,65.4175 c -0.333335,3e-6 -0.588543,0.102216 -0.765625,0.306641 -0.177084,0.203127 -0.265626,0.497398 -0.265625,0.882812 -1e-6,0.384116 0.08854,0.678387 0.265625,0.882813 0.177082,0.203125 0.43229,0.304688 0.765625,0.304687 0.169269,10e-7 0.328774,-0.0306 0.478516,-0.0918 0.151039,-0.0612 0.292966,-0.153646 0.425781,-0.277344 l 0,0.412109 c -0.138023,0.09375 -0.284508,0.164063 -0.439453,0.210938 -0.153648,0.04687 -0.316408,0.07031 -0.488281,0.07031 -0.441408,0 -0.789064,-0.134765 -1.042969,-0.404297 -0.253907,-0.270832 -0.38086,-0.639973 -0.38086,-1.107422 0,-0.468748 0.126953,-0.837888 0.38086,-1.107421 0.253905,-0.270831 0.601561,-0.406247 1.042969,-0.40625 0.174477,3e-6 0.338539,0.02344 0.492187,0.07031 0.154946,0.04558 0.300128,0.114586 0.435547,0.207031"
style="font-size:4px;fill:#ffffff"
id="path4307"
inkscape:connector-curvature="0" />
<path
d="m 40.451546,65.146019 0.394531,0 0,2.916016 -0.394531,0 0,-2.916016"
style="font-size:4px;fill:#ffffff"
id="path4309"
inkscape:connector-curvature="0" />
<path
d="m 43.433968,66.741722 0,1.320313 -0.359375,0 0,-1.308594 c -2e-6,-0.20703 -0.04037,-0.361978 -0.121094,-0.464844 -0.08073,-0.102863 -0.201825,-0.154295 -0.363281,-0.154297 -0.194012,2e-6 -0.347007,0.06185 -0.458985,0.185547 -0.11198,0.1237 -0.167969,0.292319 -0.167969,0.505859 l 0,1.236329 -0.361328,0 0,-2.1875 0.361328,0 0,0.339843 c 0.08594,-0.131508 0.186849,-0.229815 0.302735,-0.294922 0.117186,-0.0651 0.251952,-0.09765 0.404297,-0.09766 0.2513,2e-6 0.441404,0.07813 0.570312,0.234375 0.128904,0.15495 0.193357,0.383465 0.19336,0.685547"
style="font-size:4px;fill:#ffffff"
id="path4311"
inkscape:connector-curvature="0" />
</g>
<g
transform="scale(1.0193318,0.98103488)"
style="font-size:39.24139404px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4842-6">
<path
d="m 11.282518,23.899893 0,0.377468 c -0.146901,-0.07025 -0.285498,-0.122627 -0.41579,-0.157119 -0.130295,-0.03449 -0.256118,-0.05173 -0.377468,-0.05173 -0.21077,3e-6 -0.373637,0.04088 -0.488602,0.122629 -0.1136879,0.08176 -0.1705316,0.197998 -0.170531,0.348728 -6e-7,0.126463 0.037682,0.222267 0.113049,0.287412 0.076642,0.06387 0.220987,0.115606 0.433035,0.155203 l 0.233762,0.0479 c 0.288688,0.05493 0.501373,0.152011 0.638056,0.291245 0.137956,0.137959 0.206935,0.32318 0.206937,0.555664 -2e-6,0.277194 -0.09325,0.487324 -0.279748,0.630392 -0.185223,0.143067 -0.457307,0.214601 -0.816252,0.214601 -0.135404,0 -0.279749,-0.01533 -0.4330348,-0.04599 -0.1520099,-0.03066 -0.3097673,-0.076 -0.4732727,-0.136042 l 0,-0.398545 c 0.1571185,0.08814 0.3110437,0.154564 0.4617762,0.199272 0.1507313,0.04471 0.2989083,0.06706 0.4445313,0.06706 0.220987,0 0.391518,-0.04343 0.511594,-0.130293 0.120073,-0.08686 0.18011,-0.210769 0.180112,-0.371721 -2e-6,-0.140512 -0.04343,-0.250367 -0.130293,-0.329566 -0.08559,-0.0792 -0.226738,-0.138596 -0.423455,-0.178196 l -0.235678,-0.04599 C 9.9725551,25.294803 9.7637022,25.204747 9.6346865,25.082116 9.5056698,24.959489 9.4411618,24.788957 9.441162,24.570522 c -2e-7,-0.252921 0.088778,-0.452193 0.2663357,-0.597818 0.1788337,-0.14562 0.4247313,-0.218431 0.7376923,-0.218434 0.134124,3e-6 0.270805,0.01214 0.410042,0.03641 0.139233,0.02427 0.281662,0.06068 0.427286,0.109217"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4035"
inkscape:connector-curvature="0" />
<path
d="m 11.426225,30.073514 0,0.172448 -1.621007,0 c 0.015328,0.242705 0.088139,0.427926 0.218434,0.555664 0.13157,0.126462 0.314236,0.189693 0.547999,0.189692 0.135402,1e-6 0.266334,-0.0166 0.392798,-0.04982 0.127737,-0.03321 0.254198,-0.08303 0.379384,-0.149454 l 0,0.333398 c -0.126463,0.05365 -0.256118,0.09453 -0.388965,0.12263 -0.13285,0.0281 -0.267614,0.04215 -0.404293,0.04215 -0.342342,-1e-6 -0.6137867,-0.09964 -0.814336,-0.29891 -0.1992731,-0.199272 -0.2989093,-0.468801 -0.2989091,-0.808587 -2e-7,-0.35128 0.094527,-0.629751 0.2835804,-0.835412 0.1903303,-0.206935 0.4464467,-0.310404 0.7683497,-0.310406 0.288688,2e-6 0.516702,0.09325 0.684042,0.279748 0.168613,0.185223 0.252921,0.437508 0.252923,0.756853 m -0.35256,-0.103468 c -0.0026,-0.192884 -0.05685,-0.34681 -0.162867,-0.461776 -0.104747,-0.114964 -0.243982,-0.172446 -0.417706,-0.172448 -0.196719,2e-6 -0.354476,0.05557 -0.473273,0.166699 -0.1175201,0.111135 -0.1852217,0.267615 -0.2031045,0.469441 l 1.2569505,-0.0019"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4037"
inkscape:connector-curvature="0" />
<path
d="m 11.2327,33.986157 c -0.0396,-0.02299 -0.08303,-0.0396 -0.130293,-0.04982 -0.04599,-0.01149 -0.09708,-0.01724 -0.153287,-0.01724 -0.199274,2e-6 -0.35256,0.06515 -0.45986,0.195441 -0.106024,0.129018 -0.159036,0.314878 -0.159035,0.55758 l 0,1.13049 -0.3544756,0 0,-2.146014 0.3544756,0 0,0.333398 c 0.07409,-0.130291 0.17053,-0.226734 0.289329,-0.289328 0.118796,-0.06387 0.26314,-0.0958 0.433034,-0.0958 0.02427,2e-6 0.0511,0.0019 0.08048,0.0057 0.02938,0.0026 0.06195,0.007 0.09772,0.01341 l 0.0019,0.36214"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4039"
inkscape:connector-curvature="0" />
<path
d="m 9.3836795,38.224534 0.3736363,0 0.6706292,1.801119 0.670629,-1.801119 0.373637,0 -0.804755,2.146014 -0.479021,0 -0.8047555,-2.146014"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4041"
inkscape:connector-curvature="0" />
<path
d="m 10.429861,43.039653 c -0.189054,2e-6 -0.338509,0.07409 -0.4483633,0.222266 -0.1098561,0.146901 -0.1647838,0.348728 -0.1647832,0.605482 -6e-7,0.256756 0.054288,0.459222 0.1628671,0.607399 0.1098544,0.1469 0.2599474,0.220349 0.4502794,0.220349 0.187775,0 0.336591,-0.07409 0.446448,-0.222266 0.109853,-0.148176 0.164781,-0.350003 0.164783,-0.605482 -2e-6,-0.254199 -0.05493,-0.455388 -0.164783,-0.603566 -0.109857,-0.149453 -0.258673,-0.22418 -0.446448,-0.224182 m 0,-0.298909 c 0.306572,2e-6 0.54736,0.09964 0.722364,0.298909 0.175,0.199274 0.262501,0.47519 0.262503,0.827748 -2e-6,0.351283 -0.0875,0.627199 -0.262503,0.827748 -0.175004,0.199273 -0.415792,0.298909 -0.722364,0.298909 -0.307851,0 -0.5492777,-0.09964 -0.7242794,-0.298909 C 9.5318564,44.4946 9.444994,44.218684 9.4449942,43.867401 c -2e-7,-0.352558 0.086862,-0.628474 0.2605874,-0.827748 0.1750017,-0.199271 0.4164284,-0.298907 0.7242794,-0.298909"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4043"
inkscape:connector-curvature="0" />
<path
d="m 10.429861,51.476169 c -0.281027,3e-6 -0.5045695,0.104749 -0.6706291,0.314238 -0.1647839,0.209494 -0.2471754,0.49499 -0.2471748,0.85649 -6e-7,0.360224 0.082391,0.645082 0.2471748,0.854573 0.1660596,0.209492 0.3896021,0.314238 0.6706291,0.314238 0.281024,0 0.503289,-0.104746 0.666797,-0.314238 0.164781,-0.209491 0.247173,-0.494349 0.247175,-0.854573 -2e-6,-0.3615 -0.08239,-0.646996 -0.247175,-0.85649 -0.163508,-0.209489 -0.385773,-0.314235 -0.666797,-0.314238 m 0,-0.314237 c 0.401098,3e-6 0.721723,0.134767 0.961874,0.404293 0.240147,0.268254 0.360221,0.628478 0.360224,1.080672 -3e-6,0.450919 -0.120077,0.811142 -0.360224,1.080671 -0.240151,0.268252 -0.560776,0.402377 -0.961874,0.402377 -0.402379,0 -0.7242803,-0.134125 -0.965706,-0.402377 -0.2401495,-0.268251 -0.360224,-0.628475 -0.3602237,-1.080671 -3e-7,-0.452194 0.1200742,-0.812418 0.3602237,-1.080672 0.2414257,-0.269526 0.563327,-0.40429 0.965706,-0.404293"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4045"
inkscape:connector-curvature="0" />
<path
d="m 9.5158893,57.795414 0,-1.299105 0.3525594,0 0,1.285692 c -7e-7,0.203105 0.039598,0.355753 0.1187972,0.457944 0.079197,0.100914 0.1979941,0.151371 0.3563911,0.151371 0.19033,0 0.340423,-0.06068 0.45028,-0.182028 0.111131,-0.121352 0.166698,-0.286774 0.166699,-0.496266 l 0,-1.216713 0.35256,0 0,2.146014 -0.35256,0 0,-0.329567 c -0.08559,0.130294 -0.185223,0.227376 -0.298909,0.291245 -0.112411,0.06259 -0.243344,0.09389 -0.392797,0.09389 -0.246537,0 -0.4336741,-0.07664 -0.5614123,-0.22993 -0.1277394,-0.153288 -0.1916088,-0.37747 -0.1916084,-0.672547 m 0.8871467,-1.35084 0,0"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4047"
inkscape:connector-curvature="0" />
<path
d="m 10.376211,60.454938 0,0.609314 0.726196,0 0,0.274 -0.726196,0 0,1.164979 c -10e-7,0.175003 0.02363,0.287413 0.0709,0.337231 0.04854,0.04982 0.14626,0.07473 0.293161,0.07473 l 0.36214,0 0,0.295077 -0.36214,0 c -0.272085,0 -0.459861,-0.05046 -0.563329,-0.151371 -0.103469,-0.10219 -0.155203,-0.287412 -0.155203,-0.555664 l 0,-1.164979 -0.2586709,0 0,-0.274 0.2586709,0 0,-0.609314 0.354476,0"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4049"
inkscape:connector-curvature="0" />
<path
d="m 9.8933578,67.456308 0,1.138153 -0.3544755,0 0,-2.962265 0.3544755,0 0,0.325734 c 0.074088,-0.127737 0.1673372,-0.222264 0.2797482,-0.28358 0.113687,-0.06259 0.24909,-0.09389 0.40621,-0.09389 0.260585,2e-6 0.471993,0.10347 0.634223,0.310405 0.163504,0.206939 0.245257,0.479023 0.245259,0.816252 -2e-6,0.337231 -0.08175,0.609315 -0.245259,0.816252 -0.16223,0.206937 -0.373638,0.310405 -0.634223,0.310405 -0.15712,0 -0.292523,-0.03066 -0.40621,-0.09197 -0.112411,-0.06259 -0.2056604,-0.157757 -0.2797482,-0.285496 m 1.1994682,-0.749189 c -2e-6,-0.259309 -0.05365,-0.462413 -0.160951,-0.609315 -0.106025,-0.148175 -0.252286,-0.222264 -0.438783,-0.222265 -0.1865,10e-7 -0.3334,0.07409 -0.440699,0.222265 -0.1060243,0.146902 -0.1590359,0.350006 -0.1590352,0.609315 -7e-7,0.259311 0.053011,0.463054 0.1590352,0.611231 0.107299,0.1469 0.254199,0.220349 0.440699,0.220349 0.186497,0 0.332758,-0.07345 0.438783,-0.220349 0.107299,-0.148177 0.160949,-0.35192 0.160951,-0.611231"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4051"
inkscape:connector-curvature="0" />
<path
d="m 9.5158893,71.499244 0,-1.299105 0.3525594,0 0,1.285693 c -7e-7,0.203105 0.039598,0.355753 0.1187972,0.457944 0.079197,0.100914 0.1979941,0.151371 0.3563911,0.15137 0.19033,10e-7 0.340423,-0.06068 0.45028,-0.182028 0.111131,-0.121351 0.166698,-0.286773 0.166699,-0.496265 l 0,-1.216714 0.35256,0 0,2.146014 -0.35256,0 0,-0.329566 c -0.08559,0.130294 -0.185223,0.227375 -0.298909,0.291245 -0.112411,0.06259 -0.243344,0.09389 -0.392797,0.09389 -0.246537,0 -0.4336741,-0.07664 -0.5614123,-0.22993 -0.1277394,-0.153289 -0.1916088,-0.37747 -0.1916084,-0.672548 m 0.8871467,-1.350839 0,0"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4053"
inkscape:connector-curvature="0" />
<path
d="m 10.376211,74.158768 0,0.609315 0.726196,0 0,0.274 -0.726196,0 0,1.164979 c -10e-7,0.175003 0.02363,0.287413 0.0709,0.337231 0.04854,0.04982 0.14626,0.07473 0.293161,0.07473 l 0.36214,0 0,0.295077 -0.36214,0 c -0.272085,0 -0.459861,-0.05046 -0.563329,-0.151371 -0.103469,-0.102191 -0.155203,-0.287412 -0.155203,-0.555664 l 0,-1.164979 -0.2586709,0 0,-0.274 0.2586709,0 0,-0.609315 0.354476,0"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
id="path4055"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-0-3"
width="5.3263974"
height="5.9022241"
x="500.23694"
y="366.52393" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-2-1">
<path
d="m 502.01331,370.49521 0.64453,0 0,-2.22461 -0.70117,0.14062 0,-0.35937 0.69726,-0.14063 0.39453,0 0,2.58399 0.64453,0 0,0.33203 -1.67968,0 0,-0.33203"
style="font-size:4px;fill:#ffffff"
id="path4058"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-09-3"
width="5.3263974"
height="5.9022241"
x="500.23694"
y="373.38257" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-0-4">
<path
d="m 502.28479,377.35385 1.37695,0 0,0.33203 -1.85156,0 0,-0.33203 c 0.14974,-0.15495 0.35352,-0.36263 0.61133,-0.62305 0.25911,-0.26171 0.42187,-0.43033 0.48828,-0.50585 0.1263,-0.14193 0.21419,-0.26172 0.26367,-0.35938 0.0508,-0.099 0.0762,-0.19596 0.0762,-0.29102 0,-0.15494 -0.0547,-0.28124 -0.16406,-0.3789 -0.10807,-0.0977 -0.24935,-0.14648 -0.42383,-0.14649 -0.1237,1e-5 -0.25456,0.0215 -0.39257,0.0645 -0.13672,0.043 -0.28321,0.10807 -0.43946,0.19531 l 0,-0.39844 c 0.15886,-0.0638 0.30729,-0.11197 0.44531,-0.14453 0.13802,-0.0326 0.26433,-0.0488 0.37891,-0.0488 0.30208,1e-5 0.54297,0.0755 0.72266,0.22657 0.17968,0.15104 0.26953,0.35286 0.26953,0.60546 0,0.1198 -0.0228,0.23373 -0.0684,0.3418 -0.0443,0.10677 -0.12565,0.23308 -0.24414,0.37891 -0.0326,0.0378 -0.13607,0.14713 -0.31055,0.32812 -0.17448,0.17969 -0.42057,0.43164 -0.73828,0.75586"
style="font-size:4px;fill:#ffffff"
id="path4032"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-3-8"
width="5.3263974"
height="5.9022241"
x="500.23694"
y="380.24118" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-8-74">
<path
d="m 503.14026,382.97223 c 0.1888,0.0404 0.33593,0.12435 0.44141,0.25195 0.10676,0.12761 0.16015,0.28516 0.16015,0.47266 0,0.28776 -0.099,0.51042 -0.29687,0.66797 -0.19792,0.15755 -0.47917,0.23633 -0.84375,0.23633 -0.1224,0 -0.2487,-0.0124 -0.37891,-0.0371 -0.12891,-0.0234 -0.26237,-0.0593 -0.40039,-0.10743 l 0,-0.38086 c 0.10937,0.0638 0.22917,0.11198 0.35937,0.14454 0.13021,0.0326 0.26628,0.0488 0.40821,0.0488 0.24739,0 0.43554,-0.0488 0.56445,-0.14648 0.13021,-0.0977 0.19531,-0.23958 0.19531,-0.42578 0,-0.17188 -0.0606,-0.30599 -0.18164,-0.40235 -0.11979,-0.0976 -0.28711,-0.14648 -0.50195,-0.14648 l -0.33984,0 0,-0.32422 0.35546,0 c 0.19401,0 0.34245,-0.0384 0.44532,-0.11523 0.10286,-0.0781 0.15429,-0.19011 0.15429,-0.33594 0,-0.14974 -0.0534,-0.26432 -0.16015,-0.34375 -0.10547,-0.0807 -0.25717,-0.12109 -0.45508,-0.12109 -0.10807,0 -0.22396,0.0117 -0.34766,0.0351 -0.1237,0.0234 -0.25976,0.0599 -0.4082,0.10938 l 0,-0.35157 c 0.14974,-0.0417 0.28971,-0.0729 0.41992,-0.0937 0.13151,-0.0208 0.25521,-0.0312 0.3711,-0.0312 0.29947,10e-6 0.53645,0.0684 0.71093,0.20508 0.17448,0.13542 0.26172,0.31902 0.26172,0.55078 0,0.16146 -0.0462,0.29818 -0.13867,0.41016 -0.0924,0.11068 -0.22396,0.1875 -0.39453,0.23047"
style="font-size:4px;fill:#ffffff"
id="path4029"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-6-7"
width="5.3263974"
height="5.9022241"
x="500.23694"
y="387.09979" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-06-9">
<path
d="m 503.02893,388.83084 -0.99609,1.55664 0.99609,0 0,-1.55664 m -0.10351,-0.34375 0.49609,0 0,1.90039 0.41601,0 0,0.32813 -0.41601,0 0,0.6875 -0.39258,0 0,-0.6875 -1.31641,0 0,-0.38086 1.2129,-1.84766"
style="font-size:4px;fill:#ffffff"
id="path4026"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-49-9"
width="5.3263974"
height="5.9022241"
x="500.23694"
y="393.9584" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-6-8">
<path
d="m 501.94885,395.3457 1.54883,0 0,0.33203 -1.1875,0 0,0.71485 c 0.0573,-0.0195 0.11458,-0.0339 0.17188,-0.043 0.0573,-0.0104 0.11458,-0.0156 0.17187,-0.0156 0.32552,10e-6 0.58333,0.0892 0.77344,0.26758 0.1901,0.17839 0.28515,0.41993 0.28515,0.72461 0,0.3138 -0.0976,0.55794 -0.29296,0.73242 -0.19532,0.17318 -0.47071,0.25977 -0.82618,0.25977 -0.12239,0 -0.24739,-0.0104 -0.375,-0.0312 -0.1263,-0.0208 -0.25716,-0.0521 -0.39257,-0.0937 l 0,-0.39649 c 0.11718,0.0638 0.23828,0.11133 0.36328,0.14258 0.125,0.0312 0.25716,0.0469 0.39648,0.0469 0.22526,0 0.40365,-0.0593 0.53516,-0.17774 0.13151,-0.11849 0.19726,-0.27929 0.19726,-0.48242 0,-0.20312 -0.0658,-0.36393 -0.19726,-0.48242 -0.13151,-0.11849 -0.3099,-0.17773 -0.53516,-0.17773 -0.10547,0 -0.21094,0.0117 -0.3164,0.0351 -0.10417,0.0234 -0.21094,0.0599 -0.32032,0.10938 l 0,-1.46485"
style="font-size:4px;fill:#ffffff"
id="path4023"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-2-8"
width="5.3263974"
height="5.9022241"
x="500.23694"
y="400.81705" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-9-6">
<path
d="m 502.83752,403.50513 c -0.17708,0 -0.3177,0.0605 -0.42187,0.18164 -0.10287,0.12109 -0.1543,0.28711 -0.1543,0.49804 0,0.20964 0.0514,0.37566 0.1543,0.49805 0.10417,0.1211 0.24479,0.18164 0.42187,0.18164 0.17709,0 0.31706,-0.0605 0.41993,-0.18164 0.10416,-0.12239 0.15624,-0.28841 0.15625,-0.49805 -1e-5,-0.21093 -0.0521,-0.37695 -0.15625,-0.49804 -0.10287,-0.12109 -0.24284,-0.18164 -0.41993,-0.18164 m 0.78321,-1.23633 0,0.35937 c -0.099,-0.0469 -0.19922,-0.0827 -0.30078,-0.10742 -0.10027,-0.0247 -0.19988,-0.0371 -0.29883,-0.0371 -0.26042,10e-6 -0.45964,0.0879 -0.59766,0.26367 -0.13672,0.17579 -0.21484,0.44141 -0.23437,0.79688 0.0768,-0.11328 0.17317,-0.19987 0.28906,-0.25977 0.11588,-0.0612 0.24349,-0.0918 0.38281,-0.0918 0.29297,0 0.52409,0.0892 0.69336,0.26758 0.17057,0.17708 0.25586,0.41862 0.25586,0.7246 0,0.29948 -0.0885,0.53972 -0.26562,0.72071 -0.17709,0.18099 -0.41277,0.27148 -0.70704,0.27148 -0.33724,0 -0.59505,-0.1289 -0.77343,-0.38672 -0.17839,-0.25911 -0.26758,-0.63411 -0.26758,-1.125 0,-0.46093 0.10937,-0.82812 0.32812,-1.10156 0.21875,-0.27474 0.51237,-0.41211 0.88086,-0.41211 0.099,0 0.19857,0.01 0.29883,0.0293 0.10156,0.0195 0.20703,0.0488 0.31641,0.0879"
style="font-size:4px;fill:#ffffff"
id="path4020"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-9-4"
width="5.3263974"
height="5.9022241"
x="500.23694"
y="407.67563" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-84-8">
<path
d="m 501.84534,409.06293 1.875,0 0,0.16797 -1.0586,2.74804 -0.41211,0 0.9961,-2.58398 -1.40039,0 0,-0.33203"
style="font-size:4px;fill:#ffffff"
id="path4017"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-5-0"
width="5.3263974"
height="5.9022241"
x="500.23694"
y="414.53427" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-4-90">
<path
d="m 502.7887,417.45282 c -0.1875,0 -0.33529,0.0501 -0.44336,0.15039 -0.10677,0.10026 -0.16016,0.23828 -0.16016,0.41406 0,0.17578 0.0534,0.31381 0.16016,0.41407 0.10807,0.10026 0.25586,0.15039 0.44336,0.15039 0.18749,0 0.33528,-0.0501 0.44336,-0.15039 0.10807,-0.10157 0.1621,-0.23959 0.16211,-0.41407 -10e-6,-0.17578 -0.054,-0.3138 -0.16211,-0.41406 -0.10678,-0.10026 -0.25456,-0.15039 -0.44336,-0.15039 m -0.39453,-0.16797 c -0.16928,-0.0417 -0.30144,-0.12044 -0.39649,-0.23633 -0.0937,-0.11588 -0.14062,-0.25716 -0.14062,-0.42383 0,-0.23307 0.0827,-0.41731 0.24804,-0.55273 0.16667,-0.13541 0.39453,-0.20312 0.6836,-0.20312 0.29036,0 0.51822,0.0677 0.68359,0.20312 0.16536,0.13542 0.24804,0.31966 0.24805,0.55273 -1e-5,0.16667 -0.0475,0.30795 -0.14258,0.42383 -0.0937,0.11589 -0.22461,0.19467 -0.39258,0.23633 0.1901,0.0443 0.33789,0.13086 0.44336,0.25977 0.10677,0.1289 0.16015,0.28646 0.16016,0.47265 -1e-5,0.28256 -0.0866,0.49935 -0.25977,0.65039 -0.17188,0.15105 -0.41862,0.22657 -0.74023,0.22657 -0.32162,0 -0.56901,-0.0755 -0.74219,-0.22657 -0.17188,-0.15104 -0.25781,-0.36783 -0.25781,-0.65039 0,-0.18619 0.0534,-0.34375 0.16015,-0.47265 0.10677,-0.12891 0.25521,-0.2155 0.44532,-0.25977 m -0.14454,-0.62305 c 0,0.15105 0.0469,0.26889 0.14063,0.35352 0.0951,0.0846 0.22786,0.12695 0.39844,0.12695 0.16927,0 0.30143,-0.0423 0.39648,-0.12695 0.0963,-0.0846 0.14453,-0.20247 0.14453,-0.35352 0,-0.15104 -0.0482,-0.26887 -0.14453,-0.35351 -0.0951,-0.0846 -0.22721,-0.12695 -0.39648,-0.12695 -0.17058,0 -0.30339,0.0423 -0.39844,0.12695 -0.0937,0.0846 -0.14063,0.20247 -0.14063,0.35351"
style="font-size:4px;fill:#ffffff"
id="path4014"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-38-2-7"
width="3.8405941"
height="4.2557931"
x="544.98993"
y="417.05634" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-01-6-4">
<path
d="m 546.27079,419.91983 0.46474,0 0,-1.60405 -0.50558,0.10139 0,-0.25912 0.50277,-0.1014 0.28447,0 0,1.86318 0.46474,0 0,0.23941 -1.21114,0 0,-0.23941"
style="font-size:2.88419628px;fill:#ffffff"
id="path4282"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-38-2-7-7-5"
width="3.8405941"
height="4.2557931"
x="537.50421"
y="416.46304" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-01-6-4-1-76">
<path
d="m 539.59766,418.43227 c 0.13614,0.0291 0.24223,0.0897 0.31828,0.18167 0.077,0.092 0.11548,0.20561 0.11548,0.34081 0,0.20749 -0.0714,0.36803 -0.21406,0.48163 -0.14271,0.11361 -0.3455,0.17041 -0.60839,0.17041 -0.0883,0 -0.17932,-0.009 -0.27321,-0.0268 -0.0929,-0.0169 -0.18918,-0.0427 -0.2887,-0.0774 l 0,-0.27462 c 0.0789,0.046 0.16524,0.0807 0.25913,0.10421 0.0939,0.0235 0.192,0.0352 0.29433,0.0352 0.17839,0 0.31405,-0.0352 0.407,-0.10562 0.0939,-0.0704 0.14083,-0.17275 0.14083,-0.30701 0,-0.12393 -0.0437,-0.22064 -0.13097,-0.29011 -0.0864,-0.0704 -0.20702,-0.10562 -0.36193,-0.10563 l -0.24505,0 0,-0.23377 0.25631,0 c 0.13989,0 0.24693,-0.0277 0.3211,-0.0831 0.0742,-0.0563 0.11125,-0.13708 0.11125,-0.24223 0,-0.10797 -0.0385,-0.19059 -0.11548,-0.24786 -0.0761,-0.0582 -0.18543,-0.0873 -0.32813,-0.0873 -0.0779,10e-6 -0.16149,0.008 -0.25068,0.0254 -0.0892,0.0169 -0.1873,0.0432 -0.29433,0.0789 l 0,-0.25349 c 0.10797,-0.0301 0.20889,-0.0526 0.30278,-0.0676 0.0948,-0.015 0.18402,-0.0225 0.26758,-0.0225 0.21594,1e-5 0.38681,0.0493 0.51262,0.14788 0.1258,0.0976 0.18871,0.23002 0.18871,0.39714 0,0.11642 -0.0333,0.215 -0.1,0.29574 -0.0667,0.0798 -0.16149,0.1352 -0.28448,0.16618"
style="font-size:2.88419628px;fill:#ffffff"
id="path4294"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-38-2-7-7-23"
width="3.8405941"
height="4.2557931"
x="532.56604"
y="416.46304" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-01-6-4-1-2">
<path
d="m 534.0426,419.32654 0.99285,0 0,0.23941 -1.33507,0 0,-0.23941 c 0.10797,-0.11173 0.2549,-0.26148 0.4408,-0.44925 0.18683,-0.18871 0.30419,-0.31029 0.35207,-0.36475 0.0911,-0.10233 0.15445,-0.18871 0.19012,-0.25913 0.0366,-0.0713 0.0549,-0.14129 0.0549,-0.20983 0,-0.11173 -0.0394,-0.2028 -0.1183,-0.27321 -0.0779,-0.0704 -0.17979,-0.10562 -0.3056,-0.10563 -0.0892,1e-5 -0.18355,0.0155 -0.28307,0.0465 -0.0986,0.031 -0.2042,0.0779 -0.31687,0.14083 l 0,-0.28729 c 0.11454,-0.046 0.22158,-0.0807 0.3211,-0.10422 0.0995,-0.0235 0.19058,-0.0352 0.27321,-0.0352 0.21781,10e-6 0.3915,0.0545 0.52107,0.16337 0.12956,0.10891 0.19434,0.25443 0.19434,0.43657 0,0.0864 -0.0164,0.16853 -0.0493,0.24645 -0.0319,0.077 -0.0906,0.16806 -0.17604,0.27321 -0.0235,0.0272 -0.0981,0.10609 -0.22392,0.2366 -0.1258,0.12956 -0.30325,0.31123 -0.53233,0.54501"
style="font-size:2.88419628px;fill:#ffffff"
id="path4297"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-38-2-7-7-2"
width="3.8405941"
height="4.2557931"
x="527.62781"
y="416.46304" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-01-6-4-1-7">
<path
d="m 528.90867,419.32654 0.46474,0 0,-1.60405 -0.50558,0.10139 0,-0.25912 0.50276,-0.1014 0.28448,0 0,1.86318 0.46474,0 0,0.23941 -1.21114,0 0,-0.23941"
style="font-size:2.88419628px;fill:#ffffff"
id="path4300"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-38-2-7-7-2-9"
width="3.8405941"
height="4.2557931"
x="515.29425"
y="416.40854" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-01-6-4-1-7-2">
<path
d="m 516.57512,419.272 0.46473,0 0,-1.60405 -0.50558,0.1014 0,-0.25913 0.50277,-0.1014 0.28447,0 0,1.86318 0.46474,0 0,0.23941 -1.21113,0 0,-0.23941"
style="font-size:2.88419628px;fill:#ffffff"
id="path4317"
inkscape:connector-curvature="0" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4552-38-2-7-7-23-5"
width="3.8405941"
height="4.2557931"
x="520.23248"
y="416.40851" />
<g
transform="translate(-497.66563,-344.28037)"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text4554-01-6-4-1-2-4">
<path
d="m 521.70904,419.272 0.99285,0 0,0.23941 -1.33507,0 0,-0.23941 c 0.10797,-0.11172 0.25491,-0.26147 0.4408,-0.44924 0.18683,-0.18872 0.30419,-0.3103 0.35208,-0.36475 0.0911,-0.10234 0.15444,-0.18871 0.19012,-0.25913 0.0366,-0.0713 0.0549,-0.1413 0.0549,-0.20984 0,-0.11172 -0.0394,-0.20279 -0.1183,-0.27321 -0.0779,-0.0704 -0.17979,-0.10562 -0.3056,-0.10562 -0.0892,0 -0.18355,0.0155 -0.28307,0.0465 -0.0986,0.031 -0.2042,0.0779 -0.31686,0.14083 l 0,-0.28729 c 0.11454,-0.046 0.22157,-0.0807 0.32109,-0.10421 0.0995,-0.0235 0.19059,-0.0352 0.27321,-0.0352 0.21781,0 0.3915,0.0545 0.52107,0.16336 0.12956,0.10891 0.19434,0.25444 0.19434,0.43657 0,0.0864 -0.0164,0.16853 -0.0493,0.24646 -0.0319,0.077 -0.0906,0.16805 -0.17603,0.27321 -0.0235,0.0272 -0.0981,0.10609 -0.22392,0.23659 -0.12581,0.12957 -0.30326,0.31124 -0.53234,0.54501"
style="font-size:2.88419628px;fill:#ffffff"
id="path4314"
inkscape:connector-curvature="0" />
</g>
<rect
ry="1.628684"
y="344.5361"
x="497.92136"
height="79.063599"
width="93.746948"
id="outline"
style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect3054"
transform="translate(-497.66563,-344.28037)" />
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text3316">
<path
d="m 21.839687,52.218197 1.613282,0 0,0.290527 -1.268067,0 0,0.755371 1.215088,0 0,0.290528 -1.215088,0 0,0.92456 1.298828,0 0,0.290528 -1.644043,0 0,-2.551514"
style="font-size:3.5px;fill:#ffffff"
id="path4183"
inkscape:connector-curvature="0" />
<path
d="m 23.815273,52.855648 0.333252,0 0.598145,1.606445 0.598144,-1.606445 0.333252,0 -0.717773,1.914063 -0.427246,0 -0.717774,-1.914063"
style="font-size:3.5px;fill:#ffffff"
id="path4185"
inkscape:connector-curvature="0" />
<path
d="m 27.749355,53.734066 0,0.153809 -1.4458,0 c 0.01367,0.216472 0.07861,0.381673 0.194824,0.495605 0.117349,0.112793 0.280272,0.16919 0.488769,0.16919 0.120767,0 0.237548,-0.01481 0.350342,-0.04443 0.113931,-0.02962 0.226724,-0.07406 0.338379,-0.133301 l 0,0.297363 c -0.112795,0.04785 -0.228436,0.08431 -0.346924,0.109375 -0.118491,0.02507 -0.238689,0.0376 -0.360596,0.0376 -0.305339,0 -0.547445,-0.08887 -0.726318,-0.266601 -0.177735,-0.177734 -0.266602,-0.418131 -0.266601,-0.721192 -1e-6,-0.313312 0.08431,-0.561685 0.252929,-0.745117 0.169759,-0.184569 0.398193,-0.276854 0.685303,-0.276856 0.257486,2e-6 0.460854,0.08317 0.610107,0.249512 0.150389,0.165204 0.225584,0.39022 0.225586,0.675049 m -0.314453,-0.09228 c -0.0023,-0.172037 -0.0507,-0.309325 -0.145263,-0.411865 -0.09343,-0.102538 -0.217612,-0.153807 -0.372559,-0.153809 -0.175457,2e-6 -0.316163,0.04956 -0.422119,0.148682 -0.104819,0.09912 -0.165203,0.238689 -0.181153,0.418701 l 1.121094,-0.0017"
style="font-size:3.5px;fill:#ffffff"
id="path4187"
inkscape:connector-curvature="0" />
<path
d="m 29.856533,53.614437 0,1.155274 -0.314453,0 0,-1.14502 c -2e-6,-0.181151 -0.03532,-0.31673 -0.105957,-0.406738 -0.07064,-0.09 -0.176596,-0.135008 -0.317871,-0.13501 -0.16976,2e-6 -0.303631,0.05412 -0.401612,0.162353 -0.09798,0.108238 -0.146973,0.25578 -0.146972,0.442627 l 0,1.081788 -0.316162,0 0,-1.914063 0.316162,0 0,0.297363 c 0.07519,-0.11507 0.163492,-0.201088 0.264892,-0.258056 0.102538,-0.05697 0.220458,-0.08545 0.35376,-0.08545 0.219888,2e-6 0.386229,0.06836 0.499024,0.205079 0.112791,0.135581 0.169187,0.335532 0.169189,0.599853"
style="font-size:3.5px;fill:#ffffff"
id="path4189"
inkscape:connector-curvature="0" />
<path
d="m 30.798183,52.312191 0,0.543457 0.647706,0 0,0.244385 -0.647706,0 0,1.039062 c 0,0.156088 0.02108,0.256348 0.06323,0.300782 0.04329,0.04443 0.130452,0.06665 0.261474,0.06665 l 0.322999,0 0,0.263184 -0.322999,0 c -0.242676,0 -0.410156,-0.045 -0.502441,-0.13501 -0.09229,-0.09115 -0.138428,-0.256347 -0.138428,-0.495606 l 0,-1.039062 -0.230713,0 0,-0.244385 0.230713,0 0,-0.543457 0.316162,0"
style="font-size:3.5px;fill:#ffffff"
id="path4191"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text3320">
<path
d="m 22.021694,55.589386 0,0.33667 c -0.131024,-0.06266 -0.25464,-0.109373 -0.370849,-0.140137 -0.116213,-0.03076 -0.228436,-0.04614 -0.33667,-0.04614 -0.18799,2e-6 -0.333253,0.03646 -0.435791,0.109375 -0.101401,0.07292 -0.152101,0.176597 -0.1521,0.311035 -1e-6,0.112795 0.03361,0.198244 0.10083,0.256347 0.06836,0.05697 0.197102,0.103111 0.386231,0.138428 l 0.208496,0.04272 c 0.257485,0.04899 0.447182,0.135581 0.569091,0.259765 0.123045,0.123048 0.184569,0.28825 0.184571,0.495606 -2e-6,0.247233 -0.08317,0.434652 -0.249512,0.562256 -0.165203,0.127604 -0.407879,0.191406 -0.728027,0.191406 -0.120769,0 -0.249513,-0.01367 -0.386231,-0.04102 -0.13558,-0.02734 -0.276286,-0.06779 -0.422119,-0.121338 l 0,-0.355468 c 0.140136,0.07861 0.277425,0.137858 0.411865,0.177734 0.13444,0.03988 0.266601,0.05982 0.396485,0.05982 0.197101,0 0.349201,-0.03874 0.456299,-0.116211 0.107094,-0.07747 0.160642,-0.187988 0.160644,-0.331543 -2e-6,-0.125325 -0.03874,-0.223307 -0.116211,-0.293946 -0.07634,-0.07064 -0.202231,-0.123615 -0.377685,-0.158935 L 21.110806,56.88479 C 20.853318,56.83352 20.667039,56.7532 20.551968,56.643823 20.436896,56.53445 20.37936,56.38235 20.37936,56.187525 c 0,-0.225584 0.07918,-0.403319 0.237549,-0.533204 0.159505,-0.12988 0.378824,-0.194821 0.657959,-0.194824 0.119628,3e-6 0.241535,0.01083 0.365723,0.03247 0.124184,0.02165 0.251219,0.05412 0.381103,0.09741"
style="font-size:3.5px;fill:#ffffff"
id="path4143"
inkscape:connector-curvature="0" />
<path
d="m 23.496548,58.234894 c -0.08887,0.227864 -0.175457,0.376545 -0.259766,0.446045 -0.08431,0.0695 -0.197103,0.104247 -0.338379,0.104248 l -0.251221,0 0,-0.263184 0.184571,0 c 0.08659,0 0.153808,-0.02051 0.20166,-0.06152 0.04785,-0.04102 0.100829,-0.137859 0.158935,-0.290528 l 0.0564,-0.143554 -0.77417,-1.883301 0.333252,0 0.598145,1.49707 0.598144,-1.49707 0.333252,0 -0.84082,2.091797"
style="font-size:3.5px;fill:#ffffff"
id="path4145"
inkscape:connector-curvature="0" />
<path
d="m 25.991665,56.199493 0,0.297364 c -0.08887,-0.04557 -0.181154,-0.07975 -0.276856,-0.102539 -0.0957,-0.02278 -0.194825,-0.03418 -0.297363,-0.03418 -0.156088,2e-6 -0.273438,0.02393 -0.352051,0.07178 -0.07747,0.04785 -0.116211,0.119631 -0.116211,0.215332 0,0.07292 0.02791,0.130454 0.08374,0.172608 0.05583,0.04102 0.168049,0.08032 0.33667,0.11792 l 0.107666,0.02392 c 0.223306,0.04785 0.381671,0.115643 0.475097,0.20337 0.09456,0.08659 0.141844,0.207927 0.141846,0.364013 -2e-6,0.177735 -0.07064,0.318441 -0.211914,0.422119 -0.140138,0.103679 -0.333253,0.155518 -0.579346,0.155518 -0.10254,0 -0.209636,-0.01025 -0.321289,-0.03076 -0.110515,-0.01937 -0.227295,-0.04899 -0.350342,-0.08887 l 0,-0.324707 c 0.116211,0.06038 0.230713,0.105957 0.343506,0.136719 0.112793,0.02962 0.224446,0.04443 0.334961,0.04443 0.148111,10e-7 0.262043,-0.02506 0.341797,-0.0752 0.07975,-0.05127 0.119628,-0.123046 0.119629,-0.215332 -10e-7,-0.08545 -0.02905,-0.15096 -0.08716,-0.196533 -0.05697,-0.04557 -0.182863,-0.08944 -0.377686,-0.131592 l -0.109375,-0.02564 c -0.194825,-0.04101 -0.335531,-0.103677 -0.422119,-0.187988 -0.08659,-0.08545 -0.129883,-0.202229 -0.129883,-0.350342 0,-0.180011 0.0638,-0.319009 0.191406,-0.416992 0.127604,-0.09798 0.308756,-0.146971 0.543457,-0.146973 0.11621,2e-6 0.225585,0.0085 0.328125,0.02564 0.102538,0.01709 0.197102,0.04273 0.283692,0.0769"
style="font-size:3.5px;fill:#ffffff"
id="path4147"
inkscape:connector-curvature="0" />
<path
d="m 26.907681,55.59964 0,0.543457 0.647705,0 0,0.244385 -0.647705,0 0,1.039062 c -1e-6,0.156088 0.02108,0.256348 0.06323,0.300781 0.04329,0.04443 0.130452,0.06665 0.261475,0.06665 l 0.322998,0 0,0.263183 -0.322998,0 c -0.242677,0 -0.410157,-0.045 -0.502442,-0.135009 -0.09229,-0.09115 -0.138428,-0.256348 -0.138428,-0.495606 l 0,-1.039062 -0.230712,0 0,-0.244385 0.230712,0 0,-0.543457 0.316163,0"
style="font-size:3.5px;fill:#ffffff"
id="path4149"
inkscape:connector-curvature="0" />
<path
d="m 29.607876,57.021515 0,0.153808 -1.445801,0 c 0.01367,0.216473 0.07861,0.381674 0.194824,0.495606 0.11735,0.112793 0.280273,0.16919 0.48877,0.169189 0.120767,1e-6 0.237547,-0.01481 0.350342,-0.04443 0.11393,-0.02962 0.226723,-0.07406 0.338378,-0.133301 l 0,0.297363 c -0.112794,0.04785 -0.228435,0.08431 -0.346923,0.109375 -0.118491,0.02506 -0.23869,0.0376 -0.360596,0.0376 -0.305339,0 -0.547445,-0.08887 -0.726318,-0.266602 -0.177735,-0.177734 -0.266602,-0.41813 -0.266602,-0.721191 0,-0.313313 0.08431,-0.561685 0.25293,-0.745117 0.169758,-0.184569 0.398192,-0.276854 0.685302,-0.276856 0.257486,2e-6 0.460855,0.08317 0.610108,0.249512 0.150389,0.165203 0.225584,0.390219 0.225586,0.675049 m -0.314453,-0.09229 c -0.0023,-0.172037 -0.0507,-0.309325 -0.145264,-0.411865 -0.09343,-0.102538 -0.217612,-0.153807 -0.372559,-0.153809 -0.175456,2e-6 -0.316162,0.04956 -0.422119,0.148682 -0.104818,0.09912 -0.165202,0.238689 -0.181152,0.418701 l 1.121094,-0.0017"
style="font-size:3.5px;fill:#ffffff"
id="path4151"
inkscape:connector-curvature="0" />
<path
d="m 31.614223,56.510529 c 0.07861,-0.141275 0.172606,-0.245523 0.281983,-0.312745 0.109373,-0.06722 0.238116,-0.100828 0.38623,-0.10083 0.199379,2e-6 0.353188,0.07007 0.461426,0.210205 0.108233,0.138999 0.162351,0.337241 0.162354,0.594727 l 0,1.155273 -0.316162,0 0,-1.145019 c -3e-6,-0.18343 -0.03247,-0.319579 -0.09741,-0.408447 -0.06494,-0.08887 -0.164065,-0.133299 -0.297363,-0.133301 -0.162925,2e-6 -0.291669,0.05412 -0.38623,0.162353 -0.09457,0.108237 -0.141848,0.25578 -0.141846,0.442627 l 0,1.081787 -0.316162,0 0,-1.145019 c -2e-6,-0.184569 -0.03247,-0.320718 -0.09741,-0.408447 -0.06494,-0.08887 -0.165203,-0.133299 -0.300781,-0.133301 -0.160646,2e-6 -0.28825,0.05469 -0.382813,0.164062 -0.09456,0.108237 -0.141846,0.25521 -0.141846,0.440918 l 0,1.081787 -0.316162,0 0,-1.914062 0.316162,0 0,0.297363 c 0.07178,-0.117348 0.157796,-0.203937 0.258057,-0.259765 0.100259,-0.05582 0.219319,-0.08374 0.357178,-0.08374 0.138996,2e-6 0.256916,0.03532 0.353759,0.105957 0.09798,0.07064 0.170327,0.173179 0.217041,0.307618"
style="font-size:3.5px;fill:#ffffff"
id="path4153"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
id="text4548-7">
<path
d="m 51.41621,4.7088294 0.297363,0 0,1.3286133 c 0,0.2343756 0.04248,0.4033208 0.127442,0.5068359 0.08496,0.1025393 0.222655,0.1538088 0.413086,0.1538086 0.189452,2e-7 0.326659,-0.051269 0.411621,-0.1538086 0.08496,-0.1035151 0.12744,-0.2724603 0.127441,-0.5068359 l 0,-1.3286133 0.297364,0 0,1.3652344 c -2e-6,0.2851568 -0.0708,0.5004886 -0.212403,0.6459961 -0.140626,0.1455078 -0.348634,0.2182616 -0.624023,0.2182617 -0.276368,-1e-7 -0.485352,-0.072754 -0.626953,-0.2182617 C 51.486522,6.5745524 51.41621,6.3592206 51.41621,6.0740638 l 0,-1.3652344"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path3947"
inkscape:connector-curvature="0" />
<path
d="m 52.878124,8.2727942 0,0.2885743 c -0.112306,-0.053709 -0.218263,-0.093748 -0.317871,-0.1201172 -0.09961,-0.026365 -0.195802,-0.039549 -0.288574,-0.039551 -0.161134,2e-6 -0.285645,0.031252 -0.373535,0.09375 -0.08692,0.062502 -0.130372,0.1513689 -0.130371,0.2666016 -10e-7,0.096681 0.02881,0.1699233 0.08642,0.2197265 0.05859,0.04883 0.168945,0.08838 0.331055,0.1186524 l 0.178711,0.036621 c 0.220702,0.041993 0.383299,0.116212 0.487793,0.2226562 0.105467,0.1054697 0.158201,0.2470711 0.158203,0.4248047 -2e-6,0.2119145 -0.07129,0.3725593 -0.213867,0.4819343 -0.141603,0.109375 -0.349611,0.164062 -0.624023,0.164062 -0.103517,0 -0.213868,-0.01172 -0.331055,-0.03516 -0.116212,-0.02344 -0.236817,-0.05811 -0.361817,-0.104004 l 0,-0.3046879 c 0.120117,0.067384 0.237793,0.1181649 0.353028,0.1523439 0.115233,0.03418 0.228515,0.05127 0.339844,0.05127 0.168944,0 0.299315,-0.0332 0.391113,-0.09961 0.09179,-0.06641 0.137694,-0.1611323 0.137695,-0.2841796 -1e-6,-0.1074212 -0.0332,-0.1914055 -0.09961,-0.2519532 -0.06543,-0.060546 -0.173341,-0.1059561 -0.323731,-0.1362304 L 52.097357,9.3831418 C 51.876653,9.3391978 51.716985,9.27035 51.618353,9.1765988 c -0.09863,-0.093749 -0.14795,-0.2241196 -0.14795,-0.3911132 0,-0.1933576 0.06787,-0.3457012 0.203614,-0.4570313 0.136718,-0.1113259 0.324706,-0.16699 0.563965,-0.1669922 0.102538,2.2e-6 0.20703,0.00928 0.313476,0.027832 0.106444,0.018557 0.215331,0.046389 0.32666,0.083496"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path3949"
inkscape:connector-curvature="0" />
<path
d="m 52.254101,11.984708 -0.401367,1.088379 0.804199,0 -0.402832,-1.088379 m -0.166992,-0.291504 0.335449,0 0.833496,2.187012 -0.307617,0 -0.199219,-0.561035 -0.98584,0 -0.199219,0.561035 -0.312011,0 0.834961,-2.187012"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path3951"
inkscape:connector-curvature="0" />
<path
d="m 52.651073,16.347013 c 0.06348,0.02148 0.124999,0.06738 0.184571,0.137695 0.06054,0.07031 0.121092,0.166993 0.18164,0.290039 l 0.300293,0.597657 -0.317871,0 -0.279785,-0.561036 c -0.07227,-0.146483 -0.142579,-0.243651 -0.210937,-0.291503 -0.06738,-0.04785 -0.159669,-0.07178 -0.276856,-0.07178 l -0.322265,0 0,0.924317 -0.295899,0 0,-2.187012 0.667969,0 c 0.249999,2e-6 0.436522,0.05225 0.55957,0.156738 0.123045,0.104494 0.184569,0.262209 0.18457,0.473145 -10e-7,0.137696 -0.03223,0.251954 -0.09668,0.342773 -0.06348,0.09082 -0.156252,0.15381 -0.278321,0.188965 m -0.74121,-0.918457 0,0.776367 0.37207,0 c 0.142577,1e-6 0.249999,-0.03271 0.322265,-0.09814 0.07324,-0.0664 0.109862,-0.163573 0.109864,-0.291504 -2e-6,-0.127928 -0.03662,-0.22412 -0.109864,-0.288575 -0.07227,-0.06543 -0.179688,-0.09814 -0.322265,-0.09814 l -0.37207,0"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path3953"
inkscape:connector-curvature="0" />
<path
d="m 51.32832,18.677579 1.850097,0 0,0.249024 -0.776367,0 0,1.937988 -0.297363,0 0,-1.937988 -0.776367,0 0,-0.249024"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
id="path3955"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:35.79270172px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
id="text4554-61">
<path
d="m 27.717732,6.5908392 0.576738,0 0,-1.9906196 -0.627421,0.1258337 0,-0.321575 0.623926,-0.1258338 0.353033,0 0,2.3121947 0.576738,0 0,0.2971074 -1.503014,0 0,-0.2971074"
style="font-size:3.57927036px;fill:#ffffff"
id="path3991"
inkscape:connector-curvature="0" />
<path
d="m 29.972253,6.4440332 0.368763,0 0,0.4439134 -0.368763,0 0,-0.4439134 m 0,-1.4068909 0.368763,0 0,0.4439134 -0.368763,0 0,-0.4439134"
style="font-size:3.57927036px;fill:#ffffff"
id="path3993"
inkscape:connector-curvature="0" />
<path
d="m 30.751723,4.2786445 2.207334,0 0,0.2971074 -0.926277,0 0,2.3121947 -0.354781,0 0,-2.3121947 -0.926276,0 0,-0.2971074"
style="font-size:3.57927036px;fill:#ffffff"
id="path3995"
inkscape:connector-curvature="0" />
<path
d="m 34.353713,5.8288461 0,0.1572922 -1.478546,0 c 0.01398,0.2213748 0.08039,0.390318 0.199237,0.5068302 0.120007,0.1153479 0.28662,0.1730216 0.499839,0.1730214 0.123503,2e-7 0.242928,-0.015146 0.358277,-0.04544 0.116511,-0.030293 0.231859,-0.075733 0.346043,-0.1363198 l 0,0.3040981 c -0.11535,0.048935 -0.23361,0.08622 -0.354781,0.1118522 -0.121175,0.025633 -0.244096,0.038449 -0.368763,0.038449 -0.312255,0 -0.559844,-0.09088 -0.742769,-0.2726397 -0.18176,-0.1817594 -0.27264,-0.427601 -0.272639,-0.7375254 -10e-7,-0.3204087 0.08622,-0.5744061 0.258658,-0.7619931 0.173603,-0.1887487 0.407211,-0.2831239 0.700824,-0.2831259 0.263317,2e-6 0.471292,0.085056 0.623925,0.2551628 0.153795,0.168945 0.230693,0.3990574 0.230695,0.6903378 M 34.032138,5.7344709 C 34.029838,5.558538 33.980288,5.4181404 33.883585,5.3132775 33.788045,5.2084177 33.661044,5.155987 33.502588,5.1559853 c -0.17943,1.7e-6 -0.323323,0.050685 -0.431679,0.1520491 -0.107193,0.1013675 -0.168944,0.2440955 -0.185256,0.4281842 l 1.146485,-0.00175"
style="font-size:3.57927036px;fill:#ffffff"
id="path3997"
inkscape:connector-curvature="0" />
<path
d="m 34.881516,4.16854 0.321575,0 0,2.7194066 -0.321575,0 0,-2.7194066"
style="font-size:3.57927036px;fill:#ffffff"
id="path3999"
inkscape:connector-curvature="0" />
<path
d="m 37.548492,5.8288461 0,0.1572922 -1.478546,0 c 0.01398,0.2213748 0.08039,0.390318 0.199237,0.5068302 0.120007,0.1153479 0.28662,0.1730216 0.499839,0.1730214 0.123503,2e-7 0.242928,-0.015146 0.358277,-0.04544 0.116511,-0.030293 0.231858,-0.075733 0.346043,-0.1363198 l 0,0.3040981 c -0.11535,0.048935 -0.23361,0.08622 -0.354781,0.1118522 -0.121175,0.025633 -0.244096,0.038449 -0.368763,0.038449 -0.312255,0 -0.559844,-0.09088 -0.742769,-0.2726397 -0.18176,-0.1817594 -0.27264,-0.427601 -0.272639,-0.7375254 -10e-7,-0.3204087 0.08622,-0.5744061 0.258658,-0.7619931 0.173603,-0.1887487 0.407211,-0.2831239 0.700824,-0.2831259 0.263317,2e-6 0.471292,0.085056 0.623925,0.2551628 0.153795,0.168945 0.230693,0.3990574 0.230695,0.6903378 M 37.226917,5.7344709 C 37.224617,5.558538 37.175067,5.4181404 37.078364,5.3132775 36.982824,5.2084177 36.855823,5.155987 36.697367,5.1559853 c -0.17943,1.7e-6 -0.323324,0.050685 -0.431679,0.1520491 -0.107193,0.1013675 -0.168944,0.2440955 -0.185256,0.4281842 l 1.146485,-0.00175"
style="font-size:3.57927036px;fill:#ffffff"
id="path4001"
inkscape:connector-curvature="0" />
<path
d="m 39.600281,5.3062866 c 0.08039,-0.144474 0.176515,-0.251083 0.288369,-0.3198274 0.11185,-0.06874 0.243509,-0.1031117 0.394978,-0.1031137 0.203895,2e-6 0.361187,0.071657 0.471877,0.2149659 0.110684,0.1421472 0.166027,0.3448791 0.16603,0.6081964 l 0,1.1814388 -0.323322,0 0,-1.1709527 c -3e-6,-0.1875841 -0.03321,-0.3268166 -0.09962,-0.4176981 -0.06641,-0.090878 -0.167781,-0.1363181 -0.304098,-0.1363198 -0.166615,1.7e-6 -0.298275,0.055345 -0.394978,0.1660306 -0.09671,0.1106885 -0.14506,0.2615723 -0.145058,0.4526519 l 0,1.1062881 -0.323323,0 0,-1.1709527 c -2e-6,-0.1887492 -0.03321,-0.3279818 -0.09962,-0.4176981 -0.06641,-0.090878 -0.168945,-0.1363181 -0.307594,-0.1363198 -0.164284,1.7e-6 -0.294778,0.055928 -0.391483,0.1677783 -0.09671,0.1106885 -0.145059,0.2609897 -0.145058,0.4509042 l 0,1.1062881 -0.323323,0 0,-1.9574135 0.323323,0 0,0.3040982 c 0.0734,-0.1200063 0.161369,-0.2085559 0.263901,-0.265649 0.10253,-0.057089 0.224286,-0.085635 0.365268,-0.085637 0.142144,2e-6 0.262734,0.036121 0.361772,0.1083568 0.100199,0.07224 0.174184,0.177101 0.221956,0.3145843"
style="font-size:3.57927036px;fill:#ffffff"
id="path4003"
inkscape:connector-curvature="0" />
<path
d="m 43.238973,5.8288461 0,0.1572922 -1.478547,0 c 0.01398,0.2213748 0.08039,0.390318 0.199237,0.5068302 0.120007,0.1153479 0.28662,0.1730216 0.49984,0.1730214 0.123502,2e-7 0.242927,-0.015146 0.358276,-0.04544 0.116511,-0.030293 0.231859,-0.075733 0.346043,-0.1363198 l 0,0.3040981 c -0.115349,0.048935 -0.23361,0.08622 -0.354781,0.1118522 -0.121175,0.025633 -0.244096,0.038449 -0.368763,0.038449 -0.312255,0 -0.559844,-0.09088 -0.742768,-0.2726397 -0.181761,-0.1817594 -0.27264,-0.427601 -0.27264,-0.7375254 0,-0.3204087 0.08622,-0.5744061 0.258658,-0.7619931 0.173603,-0.1887487 0.407211,-0.2831239 0.700824,-0.2831259 0.263317,2e-6 0.471292,0.085056 0.623925,0.2551628 0.153795,0.168945 0.230694,0.3990574 0.230696,0.6903378 M 42.917398,5.7344709 C 42.915098,5.558538 42.865548,5.4181404 42.768844,5.3132775 42.673304,5.2084177 42.546303,5.155987 42.387847,5.1559853 c -0.17943,1.7e-6 -0.323323,0.050685 -0.431679,0.1520491 -0.107193,0.1013675 -0.168944,0.2440955 -0.185255,0.4281842 l 1.146485,-0.00175"
style="font-size:3.57927036px;fill:#ffffff"
id="path4005"
inkscape:connector-curvature="0" />
<path
d="m 44.084856,4.3747675 0,0.5557656 0.662375,0 0,0.2499198 -0.662375,0 0,1.0625959 c -1e-6,0.1596229 0.02155,0.2621539 0.06466,0.3075935 0.04427,0.04544 0.133407,0.06816 0.267397,0.06816 l 0.330314,0 0,0.2691443 -0.330314,0 c -0.248173,0 -0.419446,-0.046023 -0.513821,-0.1380676 -0.09438,-0.09321 -0.141563,-0.2621531 -0.141563,-0.5068302 l 0,-1.0625959 -0.235938,0 0,-0.2499198 0.235938,0 0,-0.5557656 0.323323,0"
style="font-size:3.57927036px;fill:#ffffff"
id="path4007"
inkscape:connector-curvature="0" />
<path
d="m 46.306169,5.2311359 c -0.03612,-0.020971 -0.07573,-0.036117 -0.118843,-0.04544 -0.04195,-0.010485 -0.08855,-0.015727 -0.139815,-0.015729 -0.181761,1.8e-6 -0.321576,0.059423 -0.419446,0.1782645 -0.09671,0.1176792 -0.145059,0.2872051 -0.145058,0.5085779 l 0,1.0311375 -0.323323,0 0,-1.9574135 0.323323,0 0,0.3040982 c 0.06758,-0.1188412 0.155544,-0.2068082 0.263901,-0.2639013 0.108356,-0.058254 0.240015,-0.087382 0.394978,-0.087384 0.02214,2e-6 0.0466,0.00175 0.0734,0.00524 0.0268,0.00233 0.05651,0.00641 0.08913,0.012234 l 0.0017,0.3303135"
style="font-size:3.57927036px;fill:#ffffff"
id="path4009"
inkscape:connector-curvature="0" />
<path
d="m 47.461394,7.0697064 c -0.09088,0.233025 -0.179431,0.385074 -0.265649,0.4561473 -0.08622,0.071072 -0.201568,0.1066084 -0.346043,0.1066091 l -0.25691,0 0,-0.2691443 0.18875,0 c 0.08855,-5e-7 0.157292,-0.020973 0.206228,-0.062917 0.04893,-0.041945 0.103113,-0.1409807 0.162535,-0.2971074 l 0.05767,-0.146806 -0.791704,-1.9259551 0.340799,0 0.611692,1.530977 0.611692,-1.530977 0.3408,0 -0.859864,2.1391733"
style="font-size:3.57927036px;fill:#ffffff"
id="path4011"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
id="text4554-7-2">
<path
d="m 28.610962,13.043303 1.376953,0 0,0.332031 -1.851562,0 0,-0.332031 c 0.149739,-0.154948 0.353515,-0.36263 0.611328,-0.623047 0.259113,-0.261718 0.421873,-0.430337 0.488281,-0.50586 0.1263,-0.141925 0.214191,-0.261717 0.263672,-0.359375 0.05078,-0.09896 0.07617,-0.195961 0.07617,-0.291015 -2e-6,-0.154946 -0.05469,-0.281248 -0.164063,-0.378907 -0.108074,-0.09765 -0.24935,-0.146481 -0.423828,-0.146484 -0.123699,3e-6 -0.254558,0.02149 -0.392578,0.06445 -0.136719,0.04297 -0.283204,0.108076 -0.439453,0.195313 l 0,-0.398438 c 0.158853,-0.0638 0.307291,-0.111976 0.445312,-0.144531 0.13802,-0.03255 0.264322,-0.04883 0.378907,-0.04883 0.302081,3e-6 0.542967,0.07552 0.722656,0.226562 0.179685,0.151045 0.269529,0.352867 0.269531,0.605469 -2e-6,0.119794 -0.02279,0.233726 -0.06836,0.341797 -0.04427,0.106772 -0.125653,0.233074 -0.244141,0.378906 -0.03255,0.03776 -0.136069,0.147137 -0.310547,0.328125 -0.17448,0.179689 -0.420574,0.431641 -0.738281,0.75586"
style="font-size:4px;fill:#ffffff"
id="path3969"
inkscape:connector-curvature="0" />
<path
d="m 30.859009,12.87924 0.412109,0 0,0.496094 -0.412109,0 0,-0.496094 m 0,-1.572266 0.412109,0 0,0.496094 -0.412109,0 0,-0.496094"
style="font-size:4px;fill:#ffffff"
id="path3971"
inkscape:connector-curvature="0" />
<path
d="m 34.122681,12.959318 0,-0.783203 -0.644532,0 0,-0.324219 1.035157,0 0,1.251953 c -0.152347,0.108073 -0.320315,0.190105 -0.503907,0.246094 -0.183595,0.05469 -0.379559,0.08203 -0.58789,0.08203 -0.455731,0 -0.812501,-0.132812 -1.070313,-0.398437 -0.25651,-0.266927 -0.384766,-0.63802 -0.384765,-1.113281 -1e-6,-0.476561 0.128255,-0.847654 0.384765,-1.113282 0.257812,-0.266924 0.614582,-0.400387 1.070313,-0.40039 0.190102,3e-6 0.37044,0.02344 0.541015,0.07031 0.171873,0.04688 0.330076,0.115888 0.47461,0.207032 l 0,0.419921 C 34.291298,10.980151 34.13635,10.887052 33.97229,10.82455 33.808225,10.76205 33.6357,10.7308 33.454712,10.7308 c -0.356772,2e-6 -0.625001,0.09961 -0.804688,0.298828 -0.178386,0.199221 -0.267578,0.496095 -0.267578,0.890625 0,0.39323 0.08919,0.689454 0.267578,0.888672 0.179687,0.199219 0.447916,0.298828 0.804688,0.298828 0.139321,0 0.26367,-0.01172 0.373047,-0.03516 0.109373,-0.02474 0.20768,-0.0625 0.294922,-0.113281"
style="font-size:4px;fill:#ffffff"
id="path3973"
inkscape:connector-curvature="0" />
<path
d="m 35.630493,10.783537 0,1.095703 0.496094,0 c 0.183592,2e-6 0.325519,-0.04752 0.425781,-0.142578 0.100259,-0.09505 0.150389,-0.230467 0.150391,-0.40625 -2e-6,-0.174477 -0.05013,-0.309243 -0.150391,-0.404297 -0.100262,-0.09505 -0.242189,-0.142575 -0.425781,-0.142578 l -0.496094,0 m -0.394531,-0.324219 0.890625,0 c 0.326821,3e-6 0.573566,0.07422 0.740234,0.222656 0.167967,0.147138 0.251951,0.363284 0.251953,0.648438 -2e-6,0.287762 -0.08399,0.50521 -0.251953,0.652344 -0.166668,0.147136 -0.413413,0.220704 -0.740234,0.220703 l -0.496094,0 0,1.171875 -0.394531,0 0,-2.916016"
style="font-size:4px;fill:#ffffff"
id="path3975"
inkscape:connector-curvature="0" />
<path
d="m 39.398071,10.555021 0,0.384766 c -0.149741,-0.07161 -0.291017,-0.124998 -0.423828,-0.160156 -0.132814,-0.03515 -0.261069,-0.05273 -0.384765,-0.05274 -0.214845,3e-6 -0.380861,0.04167 -0.498047,0.125 -0.115886,0.08334 -0.173829,0.201826 -0.173828,0.355469 -10e-7,0.128908 0.03841,0.226564 0.115234,0.292969 0.07812,0.06511 0.225259,0.11784 0.441406,0.158203 l 0.238281,0.04883 c 0.294269,0.05599 0.511066,0.154949 0.650391,0.296875 0.140623,0.140626 0.210935,0.329428 0.210938,0.566406 -3e-6,0.282553 -0.09506,0.496745 -0.285157,0.642578 -0.188804,0.145834 -0.466147,0.21875 -0.832031,0.21875 -0.138022,0 -0.285157,-0.01563 -0.441406,-0.04687 -0.154949,-0.03125 -0.315756,-0.07747 -0.482422,-0.138671 l 0,-0.40625 c 0.160156,0.08984 0.317057,0.157552 0.470703,0.203125 0.153645,0.04557 0.304686,0.06836 0.453125,0.06836 0.225259,0 0.399087,-0.04427 0.521484,-0.132813 0.122394,-0.08854 0.183592,-0.214843 0.183594,-0.378906 -2e-6,-0.143228 -0.04427,-0.255207 -0.132812,-0.335937 -0.08724,-0.08073 -0.231122,-0.141275 -0.431641,-0.181641 l -0.240234,-0.04687 c -0.294272,-0.05859 -0.507162,-0.150389 -0.638672,-0.275391 -0.131511,-0.124998 -0.197266,-0.298826 -0.197266,-0.521484 0,-0.25781 0.09049,-0.460935 0.271485,-0.609375 0.18229,-0.148435 0.432941,-0.222653 0.751953,-0.222656 0.136717,3e-6 0.27604,0.01237 0.417968,0.03711 0.141926,0.02474 0.287108,0.06185 0.435547,0.111328"
style="font-size:4px;fill:#ffffff"
id="path3977"
inkscape:connector-curvature="0" />
</g>
<rect
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4122"
width="23.347105"
height="5.6002355"
x="26.098318"
y="15.137716" />
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
id="text4124">
<path
d="m 29.466431,17.803068 c 0.1888,0.04037 0.335935,0.124351 0.441406,0.251953 0.106769,0.127606 0.160154,0.285158 0.160156,0.472657 -2e-6,0.287761 -0.09896,0.510417 -0.296875,0.667968 -0.197918,0.157552 -0.479168,0.236328 -0.84375,0.236328 -0.122397,0 -0.248699,-0.01237 -0.378906,-0.03711 -0.128907,-0.02344 -0.26237,-0.05925 -0.400391,-0.107422 l 0,-0.380859 c 0.109375,0.0638 0.229166,0.111979 0.359375,0.144531 0.130208,0.03255 0.266275,0.04883 0.408203,0.04883 0.247395,0 0.435546,-0.04883 0.564454,-0.146484 0.130206,-0.09766 0.19531,-0.239583 0.195312,-0.425781 -2e-6,-0.171874 -0.06055,-0.305989 -0.181641,-0.402344 -0.119793,-0.09765 -0.28711,-0.146483 -0.501953,-0.146485 l -0.339843,0 0,-0.324218 0.355468,0 c 0.194009,1e-6 0.342447,-0.03841 0.445313,-0.115235 0.102863,-0.07812 0.154295,-0.190102 0.154297,-0.335937 -2e-6,-0.149737 -0.05339,-0.264321 -0.160157,-0.34375 -0.10547,-0.08073 -0.257162,-0.121091 -0.455078,-0.121094 -0.108074,3e-6 -0.223959,0.01172 -0.347656,0.03516 -0.123699,0.02344 -0.259766,0.0599 -0.408203,0.109375 l 0,-0.351562 c 0.149739,-0.04166 0.289713,-0.07291 0.419922,-0.09375 0.131509,-0.02083 0.255207,-0.03125 0.371094,-0.03125 0.299477,3e-6 0.536456,0.06836 0.710937,0.205078 0.174477,0.135419 0.261717,0.319013 0.261719,0.550781 -2e-6,0.161461 -0.04623,0.298179 -0.138672,0.410156 -0.09245,0.110679 -0.22396,0.187502 -0.394531,0.230469"
style="font-size:4px;fill:#ffffff"
id="path3958"
inkscape:connector-curvature="0" />
<path
d="m 30.859009,18.87924 0.412109,0 0,0.496094 -0.412109,0 0,-0.496094 m 0,-1.572266 0.412109,0 0,0.496094 -0.412109,0 0,-0.496094"
style="font-size:4px;fill:#ffffff"
id="path3960"
inkscape:connector-curvature="0" />
<path
d="m 33.109009,16.84799 -0.535156,1.451172 1.072265,0 -0.537109,-1.451172 m -0.222656,-0.388672 0.447265,0 1.111328,2.916016 -0.410156,0 -0.265625,-0.748047 -1.314453,0 -0.265625,0.748047 -0.416016,0 1.113282,-2.916016"
style="font-size:4px;fill:#ffffff"
id="path3962"
inkscape:connector-curvature="0" />
<path
d="m 34.823853,16.459318 0.396484,0 0,1.771485 c -10e-7,0.3125 0.05664,0.537761 0.169922,0.675781 0.11328,0.136719 0.296874,0.205078 0.550781,0.205078 0.252602,0 0.435545,-0.06836 0.548828,-0.205078 0.113279,-0.13802 0.16992,-0.363281 0.169922,-0.675781 l 0,-1.771485 0.396484,0 0,1.820313 c -2e-6,0.380209 -0.0944,0.667318 -0.283203,0.861328 -0.187502,0.19401 -0.464845,0.291015 -0.832031,0.291015 -0.368491,0 -0.647136,-0.097 -0.835937,-0.291015 -0.187501,-0.19401 -0.281251,-0.481119 -0.28125,-0.861328 l 0,-1.820313"
style="font-size:4px;fill:#ffffff"
id="path3964"
inkscape:connector-curvature="0" />
<path
d="m 37.657837,16.459318 0.423828,0 0.724609,1.083985 0.728516,-1.083985 0.423828,0 -0.9375,1.400391 1,1.515625 -0.423828,0 -0.820312,-1.240235 -0.826172,1.240235 -0.425782,0 1.041016,-1.556641 -0.908203,-1.359375"
style="font-size:4px;fill:#ffffff"
id="path3966"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:26.84721947px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text3100">
<path
d="m 40.321019,54.44599 0,0.258247 c -0.100503,-0.04807 -0.195325,-0.0839 -0.284465,-0.107494 -0.08914,-0.02359 -0.175224,-0.03539 -0.258247,-0.03539 -0.1442,1e-6 -0.255626,0.02797 -0.334279,0.0839 -0.07778,0.05593 -0.116671,0.135461 -0.11667,0.238584 -10e-7,0.08652 0.02578,0.152066 0.07734,0.196635 0.05243,0.0437 0.151189,0.07909 0.296263,0.106183 l 0.15993,0.03277 c 0.197507,0.03758 0.343017,0.103999 0.436529,0.199257 0.09438,0.09438 0.141576,0.221106 0.141577,0.380161 -10e-7,0.189643 -0.0638,0.333405 -0.191391,0.431286 -0.126722,0.09788 -0.312869,0.14682 -0.558443,0.14682 -0.09264,0 -0.191392,-0.01049 -0.296264,-0.03146 -0.103998,-0.02097 -0.211929,-0.052 -0.323792,-0.09307 l 0,-0.272667 c 0.107494,0.0603 0.212803,0.105746 0.315927,0.136333 0.103124,0.03059 0.2045,0.04588 0.304129,0.04588 0.151189,0 0.267859,-0.02971 0.35001,-0.08914 0.08215,-0.05943 0.123223,-0.144199 0.123224,-0.254315 -10e-7,-0.09613 -0.02971,-0.17129 -0.08914,-0.225475 -0.05855,-0.05418 -0.155124,-0.09482 -0.289708,-0.121913 l -0.161241,-0.03146 c -0.197509,-0.03933 -0.340397,-0.100938 -0.428664,-0.184837 -0.08827,-0.0839 -0.132401,-0.200566 -0.132401,-0.35001 0,-0.173037 0.06074,-0.30937 0.182215,-0.409 0.12235,-0.09963 0.290582,-0.149441 0.504696,-0.149443 0.09176,2e-6 0.185273,0.0083 0.280533,0.02491 0.09526,0.01661 0.192701,0.04151 0.29233,0.07472"
style="font-size:2.68472195px;fill:#ffffff"
id="path4156"
inkscape:connector-curvature="0" />
<path
d="m 41.08003,54.453855 0,0.416866 0.496831,0 0,0.187459 -0.496831,0 0,0.797026 c -10e-7,0.11973 0.01617,0.196636 0.0485,0.230719 0.03321,0.03408 0.100065,0.05112 0.200568,0.05112 l 0.24776,0 0,0.201878 -0.24776,0 c -0.186148,0 -0.314616,-0.03452 -0.385405,-0.103561 -0.07079,-0.06991 -0.106183,-0.196634 -0.106182,-0.380161 l 0,-0.797026 -0.176972,0 0,-0.187459 0.176972,0 0,-0.416866 0.242516,0"
style="font-size:2.68472195px;fill:#ffffff"
id="path4158"
inkscape:connector-curvature="0" />
<path
d="m 42.562657,55.600892 c -0.194888,10e-7 -0.32991,0.02229 -0.405068,0.06686 -0.07516,0.04457 -0.112738,0.120603 -0.112737,0.228096 -10e-7,0.08565 0.02797,0.153813 0.0839,0.204501 0.05681,0.04981 0.133712,0.07472 0.230719,0.07472 0.133711,0 0.240767,-0.04719 0.32117,-0.141577 0.08127,-0.09526 0.121913,-0.221542 0.121914,-0.37885 l 0,-0.05375 -0.239895,0 m 0.4811,-0.09963 0,0.837664 -0.241205,0 0,-0.222853 c -0.05506,0.08914 -0.123663,0.155123 -0.205811,0.197946 -0.08215,0.04195 -0.182653,0.06292 -0.301507,0.06292 -0.150317,0 -0.270046,-0.04195 -0.359187,-0.125846 -0.08827,-0.08477 -0.132401,-0.197946 -0.132401,-0.339523 0,-0.165173 0.05506,-0.289708 0.165174,-0.373606 0.110989,-0.0839 0.276162,-0.125846 0.49552,-0.125847 l 0.338212,0 0,-0.0236 c -10e-7,-0.110988 -0.03671,-0.196634 -0.110116,-0.256936 -0.07254,-0.06117 -0.174787,-0.09176 -0.30675,-0.09176 -0.0839,10e-7 -0.165611,0.01005 -0.245138,0.03015 -0.07953,0.0201 -0.155998,0.05025 -0.229408,0.09045 l 0,-0.222853 c 0.08827,-0.03408 0.173912,-0.05943 0.256936,-0.07603 0.08302,-0.01748 0.163862,-0.02622 0.242517,-0.02622 0.212365,10e-7 0.370983,0.05506 0.475856,0.165173 0.104871,0.110117 0.157307,0.277038 0.157308,0.500764"
style="font-size:2.68472195px;fill:#ffffff"
id="path4160"
inkscape:connector-curvature="0" />
<path
d="m 44.595862,55.606135 c -10e-7,-0.177407 -0.03671,-0.316362 -0.110115,-0.416866 -0.07254,-0.101375 -0.172603,-0.152063 -0.300196,-0.152064 -0.127595,10e-7 -0.228097,0.05069 -0.301507,0.152064 -0.07254,0.100504 -0.108805,0.239459 -0.108805,0.416866 0,0.177409 0.03627,0.316802 0.108805,0.418177 0.07341,0.100503 0.173912,0.150754 0.301507,0.150754 0.127593,0 0.227658,-0.05025 0.300196,-0.150754 0.07341,-0.101375 0.110114,-0.240768 0.110115,-0.418177 m -0.820623,-0.512561 c 0.05069,-0.08739 0.114485,-0.152063 0.191392,-0.194013 0.07778,-0.04282 0.170416,-0.06423 0.27791,-0.06423 0.178281,1e-6 0.322917,0.07079 0.433908,0.212365 0.111862,0.141579 0.167794,0.327726 0.167795,0.558443 -10e-7,0.230719 -0.05593,0.416867 -0.167795,0.558444 -0.110991,0.141577 -0.255627,0.212365 -0.433908,0.212365 -0.107494,0 -0.200131,-0.02097 -0.27791,-0.06292 -0.07691,-0.04282 -0.140704,-0.10793 -0.191392,-0.195324 l 0,0.220231 -0.242516,0 0,-2.039759 0.242516,0 0,0.794405"
style="font-size:2.68472195px;fill:#ffffff"
id="path4162"
inkscape:connector-curvature="0" />
<path
d="m 45.246068,54.870721 0.241205,0 0,1.468207 -0.241205,0 0,-1.468207 m 0,-0.571552 0.241205,0 0,0.305439 -0.241205,0 0,-0.305439"
style="font-size:2.68472195px;fill:#ffffff"
id="path4164"
inkscape:connector-curvature="0" />
<path
d="m 45.990659,54.299169 0.241206,0 0,2.039759 -0.241206,0 0,-2.039759"
style="font-size:2.68472195px;fill:#ffffff"
id="path4166"
inkscape:connector-curvature="0" />
<path
d="m 46.73525,54.870721 0.241205,0 0,1.468207 -0.241205,0 0,-1.468207 m 0,-0.571552 0.241205,0 0,0.305439 -0.241205,0 0,-0.305439"
style="font-size:2.68472195px;fill:#ffffff"
id="path4168"
inkscape:connector-curvature="0" />
<path
d="m 47.374969,54.870721 1.145726,0 0,0.220231 -0.907143,1.055274 0.907143,0 0,0.192702 -1.178499,0 0,-0.220231 0.907143,-1.055274 -0.87437,0 0,-0.192702"
style="font-size:2.68472195px;fill:#ffffff"
id="path4170"
inkscape:connector-curvature="0" />
<path
d="m 49.557617,55.600892 c -0.194888,10e-7 -0.329911,0.02229 -0.405068,0.06686 -0.07516,0.04457 -0.112738,0.120603 -0.112738,0.228096 0,0.08565 0.02797,0.153813 0.0839,0.204501 0.05681,0.04981 0.133711,0.07472 0.230718,0.07472 0.133711,0 0.240768,-0.04719 0.321171,-0.141577 0.08127,-0.09526 0.121912,-0.221542 0.121913,-0.37885 l 0,-0.05375 -0.239894,0 m 0.4811,-0.09963 0,0.837664 -0.241206,0 0,-0.222853 c -0.05506,0.08914 -0.123662,0.155123 -0.205811,0.197946 -0.08215,0.04195 -0.182653,0.06292 -0.301507,0.06292 -0.150317,0 -0.270045,-0.04195 -0.359186,-0.125846 -0.08827,-0.08477 -0.132401,-0.197946 -0.132401,-0.339523 0,-0.165173 0.05506,-0.289708 0.165173,-0.373606 0.110989,-0.0839 0.276162,-0.125846 0.49552,-0.125847 l 0.338212,0 0,-0.0236 c -1e-6,-0.110988 -0.03671,-0.196634 -0.110115,-0.256936 -0.07254,-0.06117 -0.174788,-0.09176 -0.306751,-0.09176 -0.0839,10e-7 -0.165611,0.01005 -0.245138,0.03015 -0.07953,0.0201 -0.155997,0.05025 -0.229407,0.09045 l 0,-0.222853 c 0.08827,-0.03408 0.173912,-0.05943 0.256936,-0.07603 0.08302,-0.01748 0.163862,-0.02622 0.242516,-0.02622 0.212365,10e-7 0.370984,0.05506 0.475857,0.165173 0.10487,0.110117 0.157306,0.277038 0.157308,0.500764"
style="font-size:2.68472195px;fill:#ffffff"
id="path4172"
inkscape:connector-curvature="0" />
<path
d="m 50.775442,54.453855 0,0.416866 0.496831,0 0,0.187459 -0.496831,0 0,0.797026 c -10e-7,0.11973 0.01617,0.196636 0.0485,0.230719 0.03321,0.03408 0.100065,0.05112 0.200568,0.05112 l 0.24776,0 0,0.201878 -0.24776,0 c -0.186149,0 -0.314617,-0.03452 -0.385405,-0.103561 -0.07079,-0.06991 -0.106183,-0.196634 -0.106183,-0.380161 l 0,-0.797026 -0.176971,0 0,-0.187459 0.176971,0 0,-0.416866 0.242517,0"
style="font-size:2.68472195px;fill:#ffffff"
id="path4174"
inkscape:connector-curvature="0" />
<path
d="m 51.590821,54.870721 0.241205,0 0,1.468207 -0.241205,0 0,-1.468207 m 0,-0.571552 0.241205,0 0,0.305439 -0.241205,0 0,-0.305439"
style="font-size:2.68472195px;fill:#ffffff"
id="path4176"
inkscape:connector-curvature="0" />
<path
d="m 52.904343,55.039827 c -0.129343,10e-7 -0.231593,0.05069 -0.306751,0.152064 -0.07516,0.100504 -0.112737,0.238585 -0.112737,0.414244 0,0.175662 0.03714,0.31418 0.111426,0.415556 0.07516,0.100502 0.177845,0.150753 0.308062,0.150753 0.128467,0 0.23028,-0.05069 0.305439,-0.152064 0.07516,-0.101376 0.112736,-0.239457 0.112738,-0.414245 -2e-6,-0.173911 -0.03758,-0.311556 -0.112738,-0.412933 -0.07516,-0.102249 -0.176972,-0.153374 -0.305439,-0.153375 m 0,-0.2045 c 0.209743,10e-7 0.374479,0.06817 0.494209,0.2045 0.119727,0.136335 0.179592,0.325104 0.179593,0.566308 -10e-7,0.240333 -0.05987,0.429102 -0.179593,0.566309 -0.11973,0.136334 -0.284466,0.2045 -0.494209,0.2045 -0.210619,0 -0.375792,-0.06817 -0.49552,-0.2045 -0.118855,-0.137207 -0.178283,-0.325976 -0.178282,-0.566309 -1e-6,-0.241204 0.05943,-0.429973 0.178282,-0.566308 0.119728,-0.136332 0.284901,-0.204499 0.49552,-0.2045"
style="font-size:2.68472195px;fill:#ffffff"
id="path4178"
inkscape:connector-curvature="0" />
<path
d="m 55.197106,55.45276 0,0.886168 -0.241206,0 0,-0.878302 c -10e-7,-0.138955 -0.02709,-0.242953 -0.08128,-0.311994 -0.05418,-0.06904 -0.13546,-0.10356 -0.243827,-0.103561 -0.130217,10e-7 -0.232904,0.04151 -0.308061,0.124535 -0.07516,0.08302 -0.112738,0.196199 -0.112738,0.339523 l 0,0.829799 -0.242516,0 0,-1.468207 0.242516,0 0,0.228096 c 0.05768,-0.08826 0.125409,-0.154247 0.20319,-0.197945 0.07865,-0.0437 0.169105,-0.06554 0.271356,-0.06555 0.168668,1e-6 0.296262,0.05244 0.382783,0.157308 0.08652,0.103999 0.129777,0.257374 0.129779,0.460125"
style="font-size:2.68472195px;fill:#ffffff"
id="path4180"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:44.39514542px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
id="text4917">
<g
style="fill:#ffffff;display:inline;font-family:Bitstream Vera Sans"
id="text4917-3">
<path
d="m 63.372066,5.6438379 0.244676,0 0,1.8084264 -0.244676,0 0,-1.8084264"
style="font-size:2.48068142px;writing-mode:tb-rl;fill:#ffffff"
id="path3563"
inkscape:connector-curvature="0" />
<path
d="m 62.810036,8.531506 0.329466,0 0.801861,1.512877 0,-1.512877 0.237408,0 0,1.808426 -0.329465,0 -0.801861,-1.5128761 0,1.5128761 -0.237409,0 0,-1.808426"
style="font-size:2.48068142px;writing-mode:tb-rl;fill:#ffffff"
id="path3565"
inkscape:connector-curvature="0" />
<path
d="m 64.03463,11.478526 0,0.238621 c -0.09287,-0.04441 -0.18048,-0.07752 -0.262845,-0.09933 -0.08237,-0.0218 -0.161908,-0.0327 -0.23862,-0.0327 -0.133241,2e-6 -0.236199,0.02584 -0.308874,0.07752 -0.07187,0.05168 -0.107804,0.125166 -0.107803,0.220452 -10e-7,0.07995 0.02382,0.140508 0.07146,0.18169 0.04845,0.04038 0.1397,0.07308 0.273748,0.09811 l 0.147775,0.03028 c 0.182496,0.03472 0.316947,0.0961 0.403353,0.184113 0.08721,0.08721 0.130815,0.204301 0.130817,0.351268 -2e-6,0.175231 -0.05895,0.308067 -0.176846,0.398508 -0.11709,0.09044 -0.289091,0.135662 -0.516001,0.135662 -0.0856,0 -0.176846,-0.0097 -0.273747,-0.02907 -0.09609,-0.01938 -0.195822,-0.04805 -0.299184,-0.086 l 0,-0.251944 c 0.09932,0.05572 0.196629,0.09771 0.291916,0.125972 0.09529,0.02826 0.188958,0.04239 0.281015,0.04239 0.139699,0 0.247502,-0.02745 0.323409,-0.08237 0.07591,-0.05491 0.113859,-0.13324 0.11386,-0.234987 -1e-6,-0.08883 -0.02746,-0.158272 -0.08237,-0.208338 -0.0541,-0.05007 -0.143334,-0.08761 -0.26769,-0.112648 l -0.148987,-0.02907 c -0.182498,-0.03634 -0.314527,-0.09327 -0.396085,-0.170789 -0.08156,-0.07752 -0.122338,-0.185323 -0.122338,-0.323409 0,-0.159886 0.05612,-0.285858 0.168366,-0.377916 0.113052,-0.09206 0.268498,-0.138083 0.466339,-0.138085 0.08479,2e-6 0.171192,0.0077 0.259212,0.02301 0.08802,0.01534 0.178056,0.03836 0.270113,0.06904"
style="font-size:2.48068142px;writing-mode:tb-rl;fill:#ffffff"
id="path3567"
inkscape:connector-curvature="0" />
</g>
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text3316-4">
<path
d="m 62.94241,52.192474 1.466308,0 0,0.290528 -1.121094,0 0,0.751953 1.011719,0 0,0.290527 -1.011719,0 0,1.218506 -0.345214,0 0,-2.551514"
style="font-size:3.5px;fill:#ffffff"
id="path4130"
inkscape:connector-curvature="0" />
<path
d="m 64.945339,52.084808 0.314453,0 0,2.65918 -0.314453,0 0,-2.65918"
style="font-size:3.5px;fill:#ffffff"
id="path4132"
inkscape:connector-curvature="0" />
<path
d="m 65.916042,52.829926 0.314453,0 0,1.914062 -0.314453,0 0,-1.914062 m 0,-0.745118 0.314453,0 0,0.398194 -0.314453,0 0,-0.398194"
style="font-size:3.5px;fill:#ffffff"
id="path4134"
inkscape:connector-curvature="0" />
<path
d="m 68.146267,53.76474 c -2e-6,-0.227863 -0.04728,-0.404458 -0.141846,-0.529785 -0.09343,-0.125324 -0.225017,-0.187987 -0.394775,-0.187988 -0.168621,10e-7 -0.300212,0.06266 -0.394776,0.187988 -0.09343,0.125327 -0.140137,0.301922 -0.140136,0.529785 -1e-6,0.226726 0.04671,0.402751 0.140136,0.528076 0.09456,0.125326 0.226155,0.187989 0.394776,0.187988 0.169758,10e-7 0.301349,-0.06266 0.394775,-0.187988 0.09456,-0.125325 0.141844,-0.30135 0.141846,-0.528076 m 0.314453,0.741699 c -2e-6,0.325846 -0.07235,0.567952 -0.217041,0.726319 -0.144696,0.159504 -0.366294,0.239257 -0.664795,0.239257 -0.110515,0 -0.214763,-0.0085 -0.312744,-0.02563 -0.09798,-0.01595 -0.193116,-0.04102 -0.2854,-0.0752 l 0,-0.305908 c 0.09228,0.05013 0.18343,0.08716 0.273437,0.111084 0.09001,0.02392 0.181721,0.03589 0.275147,0.03589 0.206216,-1e-6 0.360594,-0.05412 0.463134,-0.162354 0.102538,-0.107096 0.153807,-0.26945 0.153809,-0.48706 l 0,-0.155518 c -0.06494,0.112793 -0.148113,0.197103 -0.249512,0.25293 -0.101401,0.05583 -0.222739,0.08374 -0.364013,0.08374 -0.234702,0 -0.423829,-0.08944 -0.567383,-0.268311 -0.143555,-0.178873 -0.215332,-0.415852 -0.215332,-0.710937 0,-0.296223 0.07178,-0.533771 0.215332,-0.712646 0.143554,-0.178872 0.332681,-0.268309 0.567383,-0.268311 0.141274,2e-6 0.262612,0.02792 0.364013,0.08374 0.101399,0.05583 0.184569,0.140139 0.249512,0.25293 l 0,-0.290527 0.314453,0 0,1.676513"
style="font-size:3.5px;fill:#ffffff"
id="path4136"
inkscape:connector-curvature="0" />
<path
d="m 70.69949,53.588715 0,1.155273 -0.314454,0 0,-1.145019 c -10e-7,-0.181152 -0.03532,-0.316731 -0.105957,-0.406739 -0.07064,-0.09001 -0.176596,-0.135008 -0.317871,-0.13501 -0.16976,2e-6 -0.30363,0.05412 -0.401611,0.162354 -0.09798,0.108237 -0.146973,0.255779 -0.146973,0.442627 l 0,1.081787 -0.316162,0 0,-2.65918 0.316162,0 0,1.042481 c 0.0752,-0.11507 0.163492,-0.201089 0.264893,-0.258057 0.102538,-0.05696 0.220458,-0.08545 0.35376,-0.08545 0.219888,2e-6 0.386229,0.06836 0.499023,0.205078 0.112791,0.135581 0.169188,0.335532 0.16919,0.599854"
style="font-size:3.5px;fill:#ffffff"
id="path4138"
inkscape:connector-curvature="0" />
<path
d="m 71.64114,52.286469 0,0.543457 0.647705,0 0,0.244384 -0.647705,0 0,1.039063 c -10e-7,0.156088 0.02108,0.256348 0.06323,0.300781 0.04329,0.04443 0.130452,0.06665 0.261475,0.06665 l 0.322998,0 0,0.263184 -0.322998,0 c -0.242676,0 -0.410157,-0.045 -0.502441,-0.13501 -0.09229,-0.09114 -0.138428,-0.256347 -0.138428,-0.495605 l 0,-1.039063 -0.230713,0 0,-0.244384 0.230713,0 0,-0.543457 0.316162,0"
style="font-size:3.5px;fill:#ffffff"
id="path4140"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text3316-4-1">
<path
d="m 63.420925,55.506077 2.158447,0 0,0.290527 -0.905761,0 0,2.260986 -0.346924,0 0,-2.260986 -0.905762,0 0,-0.290527"
style="font-size:3.5px;fill:#ffffff"
id="path4121"
inkscape:connector-curvature="0" />
<path
d="m 65.791286,56.143528 0.314454,0 0,1.914062 -0.314454,0 0,-1.914062 m 0,-0.745117 0.314454,0 0,0.398193 -0.314454,0 0,-0.398193"
style="font-size:3.5px;fill:#ffffff"
id="path4123"
inkscape:connector-curvature="0" />
<path
d="m 68.252224,56.51096 c 0.07861,-0.141275 0.172605,-0.245523 0.281982,-0.312745 0.109373,-0.06722 0.238117,-0.100828 0.386231,-0.10083 0.199379,2e-6 0.353187,0.07007 0.461426,0.210205 0.108232,0.138999 0.16235,0.337241 0.162353,0.594727 l 0,1.155273 -0.316162,0 0,-1.145019 c -3e-6,-0.18343 -0.03247,-0.319579 -0.09741,-0.408447 -0.06494,-0.08887 -0.164065,-0.133299 -0.297363,-0.133301 -0.162926,2e-6 -0.291669,0.05412 -0.386231,0.162353 -0.09457,0.108238 -0.141847,0.25578 -0.141846,0.442627 l 0,1.081787 -0.316162,0 0,-1.145019 c -10e-7,-0.184569 -0.03247,-0.320718 -0.09741,-0.408447 -0.06494,-0.08887 -0.165203,-0.133299 -0.300781,-0.133301 -0.160646,2e-6 -0.28825,0.05469 -0.382812,0.164062 -0.09456,0.108237 -0.141847,0.25521 -0.141846,0.440918 l 0,1.081787 -0.316162,0 0,-1.914062 0.316162,0 0,0.297363 c 0.07178,-0.117348 0.157795,-0.203937 0.258056,-0.259765 0.10026,-0.05582 0.219319,-0.08374 0.357178,-0.08374 0.138996,2e-6 0.256916,0.03532 0.35376,0.105957 0.09798,0.07064 0.170327,0.173179 0.217041,0.307618"
style="font-size:3.5px;fill:#ffffff"
id="path4125"
inkscape:connector-curvature="0" />
<path
d="m 71.810329,57.021946 0,0.153809 -1.4458,0 c 0.01367,0.216472 0.07861,0.381673 0.194824,0.495605 0.117349,0.112793 0.280272,0.16919 0.488769,0.169189 0.120767,10e-7 0.237548,-0.01481 0.350342,-0.04443 0.113931,-0.02962 0.226724,-0.07406 0.338379,-0.133301 l 0,0.297363 c -0.112795,0.04785 -0.228436,0.08431 -0.346924,0.109375 -0.118491,0.02506 -0.238689,0.0376 -0.360595,0.0376 -0.30534,0 -0.547446,-0.08887 -0.726319,-0.266602 -0.177734,-0.177734 -0.266602,-0.41813 -0.266601,-0.721191 -10e-7,-0.313312 0.08431,-0.561685 0.252929,-0.745117 0.169759,-0.184569 0.398193,-0.276854 0.685303,-0.276856 0.257486,2e-6 0.460855,0.08317 0.610107,0.249512 0.150389,0.165203 0.225584,0.39022 0.225586,0.675049 m -0.314453,-0.09228 c -0.0023,-0.172037 -0.0507,-0.309325 -0.145263,-0.411865 -0.09343,-0.102538 -0.217612,-0.153807 -0.372559,-0.153809 -0.175457,2e-6 -0.316163,0.04956 -0.422119,0.148682 -0.104818,0.09912 -0.165202,0.238689 -0.181152,0.418701 l 1.121093,-0.0017"
style="font-size:3.5px;fill:#ffffff"
id="path4127"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text3349">
<path
d="m 61.061916,34.301922 -0.535156,1.451172 1.072266,0 -0.53711,-1.451172 m -0.222656,-0.388672 0.447266,0 1.111328,2.916016 -0.410156,0 -0.265625,-0.748047 -1.314454,0 -0.265625,0.748047 -0.416015,0 1.113281,-2.916016"
style="font-size:4px;fill:#ffffff"
id="path4225"
inkscape:connector-curvature="0" />
<path
d="m 63.091213,34.020672 0,0.621094 0.740235,0 0,0.279296 -0.740235,0 0,1.1875 c -1e-6,0.178386 0.02409,0.29297 0.07227,0.34375 0.04948,0.05078 0.149087,0.07617 0.298828,0.07617 l 0.369141,0 0,0.300782 -0.369141,0 c -0.277345,0 -0.468751,-0.05143 -0.574219,-0.154297 C 62.782619,36.570802 62.729885,36.382 62.729885,36.108562 l 0,-1.1875 -0.263672,0 0,-0.279296 0.263672,0 0,-0.621094 0.361328,0"
style="font-size:4px;fill:#ffffff"
id="path4227"
inkscape:connector-curvature="0" />
<path
d="m 64.661526,34.020672 0,0.621094 0.740234,0 0,0.279296 -0.740234,0 0,1.1875 c -10e-7,0.178386 0.02409,0.29297 0.07227,0.34375 0.04948,0.05078 0.149088,0.07617 0.298828,0.07617 l 0.369141,0 0,0.300782 -0.369141,0 c -0.277344,0 -0.46875,-0.05143 -0.574218,-0.154297 C 64.352932,36.570802 64.300197,36.382 64.300198,36.108562 l 0,-1.1875 -0.263672,0 0,-0.279296 0.263672,0 0,-0.621094 0.361328,0"
style="font-size:4px;fill:#ffffff"
id="path4229"
inkscape:connector-curvature="0" />
<path
d="m 65.876369,34.641766 0.359375,0 0,2.1875 -0.359375,0 0,-2.1875 m 0,-0.851563 0.359375,0 0,0.455078 -0.359375,0 0,-0.455078"
style="font-size:4px;fill:#ffffff"
id="path4231"
inkscape:connector-curvature="0" />
<path
d="m 67.341213,34.020672 0,0.621094 0.740235,0 0,0.279296 -0.740235,0 0,1.1875 c -10e-7,0.178386 0.02409,0.29297 0.07227,0.34375 0.04948,0.05078 0.149087,0.07617 0.298828,0.07617 l 0.369141,0 0,0.300782 -0.369141,0 c -0.277345,0 -0.468751,-0.05143 -0.574219,-0.154297 C 67.032619,36.570802 66.979885,36.382 66.979885,36.108562 l 0,-1.1875 -0.263672,0 0,-0.279296 0.263672,0 0,-0.621094 0.361328,0"
style="font-size:4px;fill:#ffffff"
id="path4233"
inkscape:connector-curvature="0" />
<path
d="m 68.518948,35.965984 0,-1.324218 0.359375,0 0,1.310546 c -10e-7,0.207032 0.04036,0.362631 0.121093,0.466797 0.08073,0.102865 0.201822,0.154297 0.363282,0.154297 0.194009,0 0.347003,-0.06185 0.458984,-0.185547 0.113279,-0.123697 0.16992,-0.292317 0.169922,-0.505859 l 0,-1.240234 0.359375,0 0,2.1875 -0.359375,0 0,-0.335938 c -0.08724,0.132813 -0.188804,0.231771 -0.304688,0.296875 -0.114584,0.0638 -0.248048,0.0957 -0.40039,0.0957 -0.251303,0 -0.442058,-0.07813 -0.572266,-0.234375 -0.130209,-0.156249 -0.195313,-0.384765 -0.195312,-0.685547 m 0.904296,-1.376953 0,0"
style="font-size:4px;fill:#ffffff"
id="path4235"
inkscape:connector-curvature="0" />
<path
d="m 72.534573,34.973797 0,-1.183594 0.359375,0 0,3.039063 -0.359375,0 0,-0.328125 c -0.07552,0.130208 -0.171226,0.227213 -0.28711,0.291015 -0.114585,0.0625 -0.252605,0.09375 -0.414062,0.09375 -0.264324,0 -0.479819,-0.105468 -0.646485,-0.316406 -0.165365,-0.210937 -0.248047,-0.488281 -0.248047,-0.832031 0,-0.343749 0.08268,-0.621092 0.248047,-0.832032 0.166666,-0.210935 0.382161,-0.316404 0.646485,-0.316406 0.161457,2e-6 0.299477,0.0319 0.414062,0.0957 0.115884,0.0625 0.211587,0.158856 0.28711,0.289063 m -1.22461,0.763672 c 0,0.264323 0.05404,0.472006 0.16211,0.623047 0.109374,0.149739 0.259113,0.224609 0.449218,0.224609 0.190103,0 0.339843,-0.07487 0.449219,-0.224609 0.109373,-0.151041 0.164061,-0.358724 0.164063,-0.623047 -2e-6,-0.264322 -0.05469,-0.471353 -0.164063,-0.621094 -0.109376,-0.15104 -0.259116,-0.226561 -0.449219,-0.226563 -0.190105,2e-6 -0.339844,0.07552 -0.449218,0.226563 -0.108074,0.149741 -0.16211,0.356772 -0.16211,0.621094"
style="font-size:4px;fill:#ffffff"
id="path4237"
inkscape:connector-curvature="0" />
<path
d="m 75.505276,35.645672 0,0.175781 -1.652344,0 c 0.01562,0.247397 0.08984,0.436199 0.222656,0.566406 0.134114,0.128907 0.320312,0.19336 0.558594,0.19336 0.138019,0 0.271483,-0.01693 0.400391,-0.05078 0.130206,-0.03385 0.259112,-0.08463 0.386718,-0.152343 l 0,0.339843 c -0.128908,0.05469 -0.261069,0.09636 -0.396484,0.125 -0.135418,0.02865 -0.272788,0.04297 -0.412109,0.04297 -0.34896,0 -0.625652,-0.101562 -0.830079,-0.304687 -0.203125,-0.203125 -0.304687,-0.477864 -0.304687,-0.824219 0,-0.358072 0.09635,-0.641925 0.289062,-0.851563 0.19401,-0.210935 0.455078,-0.316404 0.783204,-0.316406 0.294269,2e-6 0.52669,0.09505 0.697265,0.285156 0.171873,0.188804 0.25781,0.445966 0.257813,0.771485 m -0.359375,-0.105469 c -0.0026,-0.196613 -0.05794,-0.353514 -0.166016,-0.470703 -0.106772,-0.117186 -0.248699,-0.175779 -0.425781,-0.175781 -0.200522,2e-6 -0.361329,0.05664 -0.482422,0.169922 -0.119792,0.113282 -0.188803,0.272788 -0.207031,0.478515 l 1.28125,-0.002"
style="font-size:4px;fill:#ffffff"
id="path4239"
inkscape:connector-curvature="0" />
</g>
<g
style="font-size:33.09410858px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
id="text3353">
<path
d="m 41.256912,36.22762 0,-0.647985 -0.533254,0 0,-0.268243 0.856439,0 0,1.035806 c -0.126044,0.08942 -0.265014,0.157284 -0.416908,0.203607 -0.151899,0.04525 -0.31403,0.06787 -0.486393,0.06787 -0.37705,0 -0.672225,-0.109882 -0.885526,-0.329648 -0.212225,-0.220842 -0.318337,-0.527867 -0.318337,-0.921076 0,-0.394284 0.106112,-0.701309 0.318337,-0.921076 0.213301,-0.220841 0.508476,-0.331262 0.885526,-0.331265 0.157281,3e-6 0.306485,0.01939 0.44761,0.05817 0.1422,0.03878 0.273089,0.09588 0.39267,0.171287 l 0,0.347424 c -0.120658,-0.10234 -0.248854,-0.179365 -0.38459,-0.231077 -0.135739,-0.05171 -0.278479,-0.07756 -0.42822,-0.07756 -0.295176,2e-6 -0.517096,0.08241 -0.66576,0.247236 -0.147588,0.164826 -0.221382,0.410446 -0.221381,0.736861 -10e-7,0.32534 0.07379,0.570421 0.221381,0.735245 0.148664,0.164824 0.370584,0.247236 0.66576,0.247236 0.115268,0 0.218148,-0.0097 0.308642,-0.02909 0.09049,-0.02047 0.171824,-0.05171 0.244004,-0.09372"
style="font-size:3.30941081px;fill:#ffffff"
id="path4242"
inkscape:connector-curvature="0" />
<path
d="m 42.134358,35.857574 0,-1.095596 0.29733,0 0,1.084284 c 0,0.171289 0.03339,0.300024 0.100188,0.386206 0.06679,0.08511 0.166977,0.127658 0.300561,0.127658 0.160514,0 0.287095,-0.05117 0.379742,-0.153513 0.09372,-0.102341 0.140584,-0.241849 0.140586,-0.418524 l 0,-1.026111 0.297329,0 0,1.809834 -0.297329,0 0,-0.277939 c -0.07218,0.109883 -0.156208,0.191756 -0.252084,0.24562 -0.0948,0.05279 -0.205224,0.07918 -0.331265,0.07918 -0.207916,0 -0.365738,-0.06464 -0.473465,-0.19391 -0.107729,-0.129274 -0.161593,-0.318337 -0.161593,-0.567189 m 0.748173,-1.139226 0,0"
style="font-size:3.30941081px;fill:#ffffff"
id="path4244"
inkscape:connector-curvature="0" />
<path
d="m 44.265761,34.761978 0.29733,0 0,1.809834 -0.29733,0 0,-1.809834 m 0,-0.704543 0.29733,0 0,0.37651 -0.29733,0 0,-0.37651"
style="font-size:3.30941081px;fill:#ffffff"
id="path4246"
inkscape:connector-curvature="0" />
<path
d="m 46.374541,35.036685 0,-0.97925 0.29733,0 0,2.514377 -0.29733,0 0,-0.271475 c -0.06248,0.107728 -0.141664,0.187985 -0.237541,0.240772 -0.0948,0.05171 -0.208994,0.07756 -0.342576,0.07756 -0.218689,0 -0.396979,-0.08726 -0.53487,-0.261779 -0.136815,-0.174519 -0.205223,-0.40398 -0.205222,-0.688383 -1e-6,-0.284402 0.06841,-0.513863 0.205222,-0.688384 0.137891,-0.174518 0.316181,-0.261777 0.53487,-0.261779 0.133582,2e-6 0.247774,0.0264 0.342576,0.07918 0.09588,0.05171 0.175057,0.13143 0.237541,0.239157 m -1.013184,0.631826 c -10e-7,0.218689 0.04471,0.390515 0.134122,0.515479 0.09049,0.123888 0.214378,0.185831 0.371662,0.185831 0.157282,0 0.281169,-0.06194 0.371662,-0.185831 0.09049,-0.124964 0.135736,-0.29679 0.135738,-0.515479 -2e-6,-0.218688 -0.04525,-0.389975 -0.135738,-0.513864 -0.09049,-0.124963 -0.21438,-0.187446 -0.371662,-0.187447 -0.157284,10e-7 -0.281171,0.06248 -0.371662,0.187447 -0.08942,0.123889 -0.134123,0.295176 -0.134122,0.513864"
style="font-size:3.30941081px;fill:#ffffff"
id="path4248"
inkscape:connector-curvature="0" />
<path
d="m 48.106811,35.662047 c -0.240235,10e-7 -0.406675,0.02747 -0.499321,0.08241 -0.09265,0.05494 -0.138969,0.148666 -0.138969,0.281171 0,0.105574 0.03447,0.189602 0.103419,0.252084 0.07002,0.0614 0.164824,0.09211 0.284403,0.09211 0.164823,0 0.29679,-0.05817 0.395901,-0.174519 0.100186,-0.117424 0.150279,-0.273091 0.150281,-0.467002 l 0,-0.06625 -0.295714,0 m 0.593044,-0.12281 0,1.032575 -0.29733,0 0,-0.274707 c -0.06787,0.109883 -0.152437,0.191217 -0.2537,0.244004 -0.101266,0.05171 -0.225153,0.07756 -0.371663,0.07756 -0.185293,0 -0.33288,-0.05171 -0.442763,-0.155128 -0.108805,-0.104496 -0.163208,-0.244004 -0.163208,-0.418524 0,-0.203606 0.06787,-0.357118 0.203607,-0.460538 0.136814,-0.103418 0.34042,-0.155128 0.610818,-0.155129 l 0.416909,0 0,-0.02909 c -2e-6,-0.136813 -0.04525,-0.242387 -0.135738,-0.316721 -0.08942,-0.07541 -0.215457,-0.113113 -0.378126,-0.113114 -0.10342,10e-7 -0.204146,0.01239 -0.302178,0.03717 -0.09803,0.02478 -0.192295,0.06195 -0.282786,0.111499 l 0,-0.274707 c 0.108805,-0.04201 0.214378,-0.07325 0.316721,-0.09372 0.102341,-0.02154 0.201989,-0.03232 0.298946,-0.03232 0.261778,2e-6 0.457305,0.06787 0.58658,0.203606 0.129272,0.135739 0.193909,0.3415 0.193911,0.617283"
style="font-size:3.30941081px;fill:#ffffff"
id="path4250"
inkscape:connector-curvature="0" />
<path
d="m 50.81833,35.479448 0,1.092364 -0.29733,0 0,-1.082669 c -10e-7,-0.171287 -0.0334,-0.299483 -0.100187,-0.38459 -0.06679,-0.0851 -0.16698,-0.127656 -0.300562,-0.127658 -0.160516,2e-6 -0.287096,0.05117 -0.379742,0.153513 -0.09265,0.102343 -0.13897,0.241851 -0.138969,0.418524 l 0,1.02288 -0.298946,0 0,-1.809834 0.298946,0 0,0.28117 c 0.0711,-0.108804 0.154589,-0.190138 0.250468,-0.244004 0.09695,-0.05386 0.208453,-0.08079 0.334496,-0.0808 0.207914,2e-6 0.365197,0.06464 0.47185,0.193911 0.106649,0.128198 0.159974,0.31726 0.159976,0.567189"
style="font-size:3.30941081px;fill:#ffffff"
id="path4252"
inkscape:connector-curvature="0" />
<path
d="m 52.71704,34.831462 0,0.277939 c -0.08403,-0.04632 -0.168596,-0.08079 -0.2537,-0.103419 -0.08403,-0.0237 -0.169134,-0.03555 -0.255316,-0.03555 -0.192834,10e-7 -0.342576,0.06141 -0.449227,0.184215 -0.106651,0.121734 -0.159976,0.293022 -0.159976,0.513864 0,0.220843 0.05333,0.392669 0.159976,0.515479 0.106651,0.121733 0.256393,0.1826 0.449227,0.182599 0.08618,1e-6 0.171287,-0.01131 0.255316,-0.03393 0.0851,-0.0237 0.16967,-0.05871 0.2537,-0.105035 l 0,0.274707 c -0.08295,0.03878 -0.169135,0.06787 -0.258548,0.08726 -0.08834,0.01939 -0.1826,0.02909 -0.282786,0.02909 -0.272553,0 -0.489087,-0.08564 -0.649601,-0.256931 -0.160516,-0.171288 -0.240773,-0.402365 -0.240773,-0.693231 0,-0.295175 0.0808,-0.527329 0.242388,-0.696463 0.162669,-0.169132 0.385128,-0.253698 0.667377,-0.2537 0.09157,2e-6 0.180982,0.0097 0.268243,0.02909 0.08726,0.01832 0.171825,0.04633 0.2537,0.08403"
style="font-size:3.30941081px;fill:#ffffff"
id="path4254"
inkscape:connector-curvature="0" />
<path
d="m 54.785421,35.592562 0,0.145433 -1.367071,0 c 0.01293,0.204685 0.07433,0.36089 0.184215,0.468618 0.110959,0.106651 0.265011,0.159977 0.462154,0.159976 0.114191,1e-6 0.224612,-0.014 0.331264,-0.04201 0.107727,-0.02801 0.214378,-0.07002 0.319953,-0.126042 l 0,0.281171 c -0.106652,0.04525 -0.215996,0.07972 -0.328032,0.103419 -0.112039,0.0237 -0.225692,0.03555 -0.34096,0.03555 -0.288712,0 -0.517635,-0.08403 -0.686767,-0.252084 -0.168057,-0.168055 -0.252085,-0.395362 -0.252084,-0.681919 -10e-7,-0.296252 0.07972,-0.531099 0.239156,-0.704543 0.160515,-0.174518 0.37651,-0.261777 0.647985,-0.261779 0.243465,2e-6 0.43576,0.07864 0.576885,0.235925 0.142199,0.156207 0.2133,0.36897 0.213302,0.638289 m -0.29733,-0.08726 c -0.0022,-0.162668 -0.04794,-0.29248 -0.137353,-0.389437 -0.08834,-0.09695 -0.205763,-0.145432 -0.352272,-0.145433 -0.165902,10e-7 -0.298946,0.04686 -0.399133,0.140585 -0.09911,0.09373 -0.156206,0.225692 -0.171288,0.395901 l 1.060046,-0.0016"
style="font-size:3.30941081px;fill:#ffffff"
id="path4256"
inkscape:connector-curvature="0" />
</g>
<text
xml:space="preserve"
style="font-size:4px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="20.861383"
y="28.857702"
id="text3554"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3556"
x="20.861383"
y="28.857702" /></text>
<text
id="text3353-9"
y="36.642929"
x="18.13113"
style="font-size:33.09410858px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
xml:space="preserve"><tspan
style="font-size:3.30941081px;fill:#ffffff;fill-opacity:1"
y="36.642929"
x="18.13113"
sodipodi:role="line"
id="tspan3381">Boot Fault</tspan></text>
</g>
<g
inkscape:groupmode="layer"
id="layer49"
inkscape:label="No Link"
id="g3385"
inkscape:label="Guidance-Error"
style="display:none">
<g
transform="translate(-497.66624,-344.27977)"
style="display:inline"
style="stroke:#cf0e0e;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="Guidance-Error"
transform="translate(34,29.56813)"
inkscape:label="#g3114">
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 3.9588091,1.7664579 22.097352,10.043968"
id="path3389"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#cf0e0e;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 4.2467224,10.043968 22.025374,1.8384362"
id="path3391"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="g3393"
inkscape:label="Guidance-Critical"
style="display:none">
<rect
y="31.101501"
x="38.134846"
height="8.2846708"
width="18.023544"
id="Guidance-Critical"
style="fill:#cf0e0e;fill-opacity:1;stroke:#f9f9f9;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect3108" />
</g>
<g
style="display:inline"
inkscape:label="Foreground"
id="foreground"
inkscape:groupmode="layer">
<g
id="text4522-4"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(0.21378587,-0.20358251)">
<path
inkscape:connector-curvature="0"
id="path3980"
style="font-size:4px;fill:#ffffff"
d="m 7.6886106,4.8015099 0,1.0957031 0.4960937,0 C 8.3682966,5.8972145 8.5102235,5.8496885 8.6104856,5.7546349 8.7107442,5.6595845 8.7608743,5.524168 8.7608762,5.3483849 8.7608743,5.1739079 8.7107442,5.0391424 8.6104856,4.944088 8.5102235,4.8490384 8.3682966,4.8015124 8.1847043,4.8015099 l -0.4960937,0 m -0.3945313,-0.3242188 0.890625,0 c 0.3268213,2.9e-6 0.5735659,0.074222 0.7402344,0.2226563 C 9.0929052,4.8470853 9.1768895,5.0632309 9.1768918,5.3483849 9.1768895,5.636147 9.0929052,5.8535947 8.9249387,6.0007286 8.7582702,6.1478653 8.5115256,6.2214329 8.1847043,6.2214317 l -0.4960937,0 0,1.171875 -0.3945313,0 0,-2.9160156" />
<path
inkscape:connector-curvature="0"
id="path3982"
style="font-size:4px;fill:#ffffff"
d="m 10.399548,5.4577599 c -0.192709,1.9e-6 -0.345053,0.075523 -0.4570312,0.2265625 -0.1119798,0.1497411 -0.1679693,0.3554701 -0.1679687,0.6171875 -6e-7,0.2617195 0.055338,0.4680995 0.1660156,0.6191406 0.1119783,0.1497399 0.2649733,0.2246096 0.4589843,0.2246094 0.191405,2e-7 0.343097,-0.075521 0.455078,-0.2265625 0.111978,-0.1510411 0.167967,-0.35677 0.167969,-0.6171875 -2e-6,-0.2591133 -0.05599,-0.4641912 -0.167969,-0.6152344 C 10.742645,5.5339336 10.590953,5.4577618 10.399548,5.4577599 m 0,-0.3046875 c 0.312499,2.2e-6 0.557941,0.1015646 0.736328,0.3046875 0.178383,0.2031267 0.267576,0.4843764 0.267578,0.84375 -2e-6,0.3580736 -0.0892,0.6393233 -0.267578,0.84375 -0.178387,0.203125 -0.423829,0.3046874 -0.736328,0.3046875 -0.313803,-1e-7 -0.5598964,-0.1015625 -0.7382812,-0.3046875 -0.1770836,-0.2044267 -0.2656252,-0.4856764 -0.265625,-0.84375 -2e-7,-0.3593736 0.088541,-0.6406233 0.265625,-0.84375 C 9.8396516,5.254637 10.085745,5.1530746 10.399548,5.1530724" />
<path
inkscape:connector-curvature="0"
id="path3984"
style="font-size:4px;fill:#ffffff"
d="m 11.78822,5.2058067 0.359375,0 0.449219,1.7070313 0.447265,-1.7070313 0.423828,0 0.449219,1.7070313 0.447266,-1.7070313 0.359375,0 -0.572266,2.1875 -0.423828,0 -0.470703,-1.7929687 -0.472656,1.7929687 -0.423828,0 -0.572266,-2.1875" />
<path
inkscape:connector-curvature="0"
id="path3986"
style="font-size:4px;fill:#ffffff"
d="m 17.141736,6.209713 0,0.1757812 -1.652344,0 c 0.01562,0.2473966 0.08984,0.4361985 0.222656,0.5664063 0.134114,0.1289065 0.320311,0.1933596 0.558594,0.1933594 0.138019,2e-7 0.271483,-0.016927 0.40039,-0.050781 0.130207,-0.033854 0.259113,-0.084635 0.386719,-0.1523437 l 0,0.3398437 c -0.128908,0.054688 -0.261069,0.096354 -0.396484,0.125 -0.135418,0.028646 -0.272788,0.042969 -0.41211,0.042969 -0.348959,-10e-8 -0.625651,-0.1015625 -0.830078,-0.3046875 -0.203125,-0.2031246 -0.304687,-0.4778639 -0.304687,-0.8242188 0,-0.3580715 0.09635,-0.6419254 0.289062,-0.8515625 0.19401,-0.2109354 0.455077,-0.316404 0.783203,-0.3164062 0.29427,2.2e-6 0.526691,0.095054 0.697266,0.2851562 0.171873,0.1888039 0.25781,0.4459651 0.257813,0.7714844 M 16.782361,6.1042442 c -0.0026,-0.1966131 -0.05795,-0.353514 -0.166016,-0.4707031 -0.106773,-0.1171856 -0.248699,-0.1757793 -0.425781,-0.1757812 -0.200522,1.9e-6 -0.361329,0.056642 -0.482422,0.1699218 -0.119793,0.1132829 -0.188803,0.272788 -0.207031,0.4785157 l 1.28125,-0.00195" />
<path
inkscape:connector-curvature="0"
id="path3988"
style="font-size:4px;fill:#ffffff"
d="m 18.999157,5.5417442 c -0.04037,-0.023436 -0.08464,-0.040363 -0.132812,-0.050781 -0.04688,-0.011717 -0.09896,-0.017576 -0.15625,-0.017578 -0.203126,1.9e-6 -0.359376,0.066408 -0.46875,0.1992187 -0.108074,0.131512 -0.16211,0.3209649 -0.162109,0.5683594 l 0,1.1523437 -0.361329,0 0,-2.1875 0.361329,0 0,0.3398438 c 0.07552,-0.1328105 0.173827,-0.2311177 0.294921,-0.2949219 0.121093,-0.065102 0.268228,-0.097654 0.441407,-0.097656 0.02474,2.2e-6 0.05208,0.00196 0.08203,0.00586 0.02995,0.00261 0.06315,0.00716 0.09961,0.013672 l 0.002,0.3691406" />
</g>
<g
id="I2C-Text"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path3924"
style="font-size:4px;fill:#ffffff"
d="m 78.026871,4.3897209 0.394531,0 0,2.9160156 -0.394531,0 0,-2.9160156" />
<path
inkscape:connector-curvature="0"
id="path3926"
style="font-size:4px;fill:#ffffff"
d="m 79.581558,6.9737053 1.376953,0 0,0.3320312 -1.851562,0 0,-0.3320312 C 79.256688,6.8187579 79.460464,6.6110758 79.718277,6.3506584 79.97739,6.0889409 80.140151,5.9203213 80.206558,5.844799 80.332859,5.7028736 80.420749,5.583082 80.47023,5.485424 80.52101,5.386468 80.5464,5.2894625 80.5464,5.1944084 c -2e-6,-0.1549456 -0.05469,-0.2812476 -0.164063,-0.3789062 -0.108074,-0.097654 -0.24935,-0.1464818 -0.423828,-0.1464844 -0.123699,2.6e-6 -0.254558,0.021487 -0.392578,0.064453 -0.136719,0.042971 -0.283203,0.1080754 -0.439453,0.1953125 l 0,-0.3984375 c 0.158854,-0.063799 0.307291,-0.1119763 0.445313,-0.1445312 0.13802,-0.032549 0.264321,-0.048825 0.378906,-0.048828 0.302082,3e-6 0.542967,0.075524 0.722656,0.2265625 0.179686,0.1510443 0.269529,0.352867 0.269531,0.6054688 -2e-6,0.1197937 -0.02279,0.2337259 -0.06836,0.3417969 -0.04427,0.1067725 -0.125653,0.2330744 -0.244141,0.3789062 -0.03255,0.037762 -0.136069,0.1471367 -0.310547,0.328125 -0.17448,0.1796884 -0.420574,0.4316413 -0.738281,0.7558594" />
<path
inkscape:connector-curvature="0"
id="path3928"
style="font-size:4px;fill:#ffffff"
d="m 83.937027,4.6143303 0,0.4160156 C 83.804212,4.9066504 83.662285,4.8142026 83.511246,4.7530022 83.361504,4.6918069 83.201999,4.6612079 83.03273,4.6612053 c -0.333335,2.6e-6 -0.588543,0.1022161 -0.765625,0.3066406 -0.177084,0.2031272 -0.265626,0.4973977 -0.265625,0.8828125 -10e-7,0.3841157 0.08854,0.6783862 0.265625,0.8828125 0.177082,0.2031254 0.43229,0.3046878 0.765625,0.3046875 0.169269,3e-7 0.328774,-0.030599 0.478516,-0.091797 0.151039,-0.061198 0.292966,-0.1536453 0.425781,-0.2773437 l 0,0.4121094 c -0.138023,0.09375 -0.284508,0.1640625 -0.439453,0.2109375 -0.153648,0.046875 -0.316408,0.070312 -0.488281,0.070312 -0.441408,-1e-7 -0.789064,-0.1347656 -1.042969,-0.4042969 -0.253907,-0.2708327 -0.38086,-0.639973 -0.38086,-1.1074219 0,-0.4687481 0.126953,-0.8378883 0.38086,-1.1074219 0.253905,-0.2708305 0.601561,-0.406247 1.042969,-0.40625 0.174477,3e-6 0.338539,0.02344 0.492187,0.070312 0.154946,0.045576 0.300128,0.1145862 0.435547,0.2070313" />
</g>
<g
id="text4647-0-2-6"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path3905"
style="font-size:3px;fill:#ffffff"
d="m 73.102684,13.569345 1.850098,0 0,0.249024 -0.776368,0 0,1.937988 -0.297363,0 0,-1.937988 -0.776367,0 0,-0.249024" />
<path
inkscape:connector-curvature="0"
id="path3907"
style="font-size:3px;fill:#ffffff"
d="m 76.121727,14.868662 0,0.131836 -1.239258,0 c 0.01172,0.185547 0.06738,0.327149 0.166992,0.424805 0.100586,0.09668 0.240234,0.145019 0.418946,0.145019 0.103514,0 0.203612,-0.0127 0.300293,-0.03809 0.09765,-0.02539 0.194334,-0.06348 0.290039,-0.114258 l 0,0.254883 c -0.09668,0.04102 -0.195802,0.07227 -0.297364,0.09375 -0.101563,0.02148 -0.204591,0.03223 -0.309082,0.03223 -0.261719,0 -0.469238,-0.07617 -0.622558,-0.228516 -0.152344,-0.152343 -0.228516,-0.358398 -0.228516,-0.618164 0,-0.268554 0.07227,-0.481444 0.216797,-0.638672 0.145507,-0.158201 0.341308,-0.237303 0.587402,-0.237305 0.220702,2e-6 0.395019,0.07129 0.52295,0.213868 0.128904,0.141602 0.193357,0.334473 0.193359,0.578613 m -0.269531,-0.0791 c -0.002,-0.14746 -0.04346,-0.265135 -0.124512,-0.353027 -0.08008,-0.08789 -0.186525,-0.131835 -0.319336,-0.131836 -0.150391,10e-7 -0.270997,0.04248 -0.361816,0.127441 -0.08984,0.08496 -0.141602,0.204591 -0.155274,0.358887 l 0.960938,-0.0015" />
<path
inkscape:connector-curvature="0"
id="path3909"
style="font-size:3px;fill:#ffffff"
d="m 77.841454,14.430674 c 0.06738,-0.121093 0.147947,-0.210448 0.241699,-0.268067 0.09375,-0.05762 0.204099,-0.08642 0.331054,-0.08643 0.170897,2e-6 0.302732,0.06006 0.395508,0.180176 0.09277,0.119142 0.139158,0.289064 0.13916,0.509766 l 0,0.990234 -0.270996,0 0,-0.981445 c -2e-6,-0.157226 -0.02783,-0.273925 -0.0835,-0.350098 -0.05567,-0.07617 -0.140627,-0.114256 -0.254883,-0.114258 -0.13965,2e-6 -0.250001,0.04639 -0.331054,0.139161 -0.08106,0.09277 -0.121584,0.219239 -0.121582,0.379394 l 0,0.927246 -0.270996,0 0,-0.981445 c -2e-6,-0.158202 -0.02783,-0.274901 -0.0835,-0.350098 -0.05567,-0.07617 -0.141603,-0.114256 -0.257813,-0.114258 -0.137696,2e-6 -0.247071,0.04688 -0.328125,0.140625 -0.08105,0.09277 -0.121583,0.218751 -0.121582,0.37793 l 0,0.927246 -0.270996,0 0,-1.640625 0.270996,0 0,0.254883 c 0.06152,-0.100584 0.135253,-0.174803 0.221191,-0.222656 0.08594,-0.04785 0.187988,-0.07178 0.306153,-0.07178 0.119139,2e-6 0.220213,0.03027 0.303222,0.09082 0.08398,0.06055 0.145995,0.148439 0.186036,0.263672" />
<path
inkscape:connector-curvature="0"
id="path3911"
style="font-size:3px;fill:#ffffff"
d="m 79.74868,15.510263 0,0.870118 -0.270996,0 0,-2.264649 0.270996,0 0,0.249024 c 0.05664,-0.09765 0.127929,-0.169921 0.213867,-0.216797 0.08691,-0.04785 0.190429,-0.07178 0.310547,-0.07178 0.199218,2e-6 0.360839,0.0791 0.484863,0.237305 0.124999,0.158205 0.187499,0.366212 0.1875,0.624024 -1e-6,0.257813 -0.0625,0.46582 -0.1875,0.624023 -0.124024,0.158203 -0.285645,0.237305 -0.484863,0.237305 -0.120118,0 -0.223633,-0.02344 -0.310547,-0.07031 -0.08594,-0.04785 -0.157227,-0.120605 -0.213867,-0.218262 m 0.916992,-0.572753 c -10e-7,-0.198242 -0.04102,-0.353515 -0.123047,-0.465821 -0.08106,-0.11328 -0.192872,-0.16992 -0.335449,-0.169922 -0.142579,2e-6 -0.254883,0.05664 -0.336914,0.169922 -0.08105,0.112306 -0.121582,0.267579 -0.121582,0.465821 0,0.198242 0.04053,0.354004 0.121582,0.467285 0.08203,0.112305 0.194335,0.168457 0.336914,0.168457 0.142577,0 0.254393,-0.05615 0.335449,-0.168457 0.08203,-0.113281 0.123046,-0.269043 0.123047,-0.467285" />
<path
inkscape:connector-curvature="0"
id="path3913"
style="font-size:3px;fill:#ffffff"
d="m 81.871239,13.569345 0.249023,0 -0.761719,2.465333 -0.249023,0 0.761719,-2.465333" />
<path
inkscape:connector-curvature="0"
id="path3915"
style="font-size:3px;fill:#ffffff"
d="m 82.713524,14.711924 0,0.801269 0.474609,0 c 0.159179,0 0.276854,-0.03271 0.353028,-0.09814 0.07715,-0.06641 0.115721,-0.16748 0.115722,-0.303223 -10e-7,-0.136718 -0.03857,-0.237304 -0.115722,-0.301758 -0.07617,-0.06543 -0.193849,-0.09814 -0.353028,-0.09814 l -0.474609,0 m 0,-0.899414 0,0.659179 0.437988,0 c 0.14453,2e-6 0.251952,-0.02685 0.322266,-0.08057 0.07129,-0.05469 0.106932,-0.137694 0.106933,-0.249024 -10e-7,-0.110349 -0.03565,-0.192869 -0.106933,-0.247558 -0.07031,-0.05469 -0.177736,-0.08203 -0.322266,-0.08203 l -0.437988,0 m -0.295899,-0.243165 0.75586,0 c 0.225584,3e-6 0.399412,0.04688 0.521484,0.140625 0.122069,0.09375 0.183104,0.227053 0.183106,0.399903 -2e-6,0.13379 -0.03125,0.240236 -0.09375,0.319336 -0.0625,0.0791 -0.154299,0.128419 -0.275391,0.147949 0.145506,0.03125 0.258299,0.09668 0.338379,0.196289 0.08105,0.09863 0.12158,0.222169 0.121582,0.370606 -2e-6,0.195312 -0.06641,0.346191 -0.199219,0.452636 -0.132814,0.106446 -0.321778,0.159668 -0.566894,0.159668 l -0.785157,0 0,-2.187012" />
<path
inkscape:connector-curvature="0"
id="path3917"
style="font-size:3px;fill:#ffffff"
d="m 85.208153,14.93165 c -0.217774,1e-6 -0.368653,0.0249 -0.452637,0.07471 -0.08398,0.04981 -0.125977,0.134766 -0.125977,0.254883 0,0.0957 0.03125,0.171875 0.09375,0.228516 0.06348,0.05566 0.149414,0.0835 0.257813,0.0835 0.149413,0 0.269042,-0.05273 0.358887,-0.158203 0.09082,-0.106445 0.136229,-0.247558 0.13623,-0.42334 l 0,-0.06006 -0.268066,0 m 0.537597,-0.111328 0,0.936035 -0.269531,0 0,-0.249023 c -0.06152,0.09961 -0.138185,0.17334 -0.22998,0.221191 -0.0918,0.04687 -0.204103,0.07031 -0.336914,0.07031 -0.16797,0 -0.301759,-0.04687 -0.401368,-0.140625 -0.09863,-0.09473 -0.147949,-0.221191 -0.147949,-0.379395 0,-0.18457 0.06152,-0.32373 0.184571,-0.41748 0.124023,-0.09375 0.308593,-0.140624 0.55371,-0.140625 l 0.37793,0 0,-0.02637 c -10e-7,-0.124022 -0.04102,-0.219725 -0.123047,-0.287109 -0.08106,-0.06836 -0.195313,-0.102538 -0.342773,-0.102539 -0.09375,10e-7 -0.185059,0.01123 -0.273926,0.03369 -0.08887,0.02246 -0.174317,0.05615 -0.256348,0.101075 l 0,-0.249024 c 0.09863,-0.03808 0.194336,-0.0664 0.28711,-0.08496 0.09277,-0.01953 0.183105,-0.02929 0.270996,-0.0293 0.237303,2e-6 0.414549,0.06152 0.531738,0.184571 0.117186,0.123048 0.17578,0.309571 0.175781,0.55957" />
<path
inkscape:connector-curvature="0"
id="path3919"
style="font-size:3px;fill:#ffffff"
d="m 87.253075,14.367685 c -0.03027,-0.01758 -0.06348,-0.03027 -0.09961,-0.03809 -0.03516,-0.0088 -0.07422,-0.01318 -0.117187,-0.01318 -0.152345,1e-6 -0.269532,0.04981 -0.351563,0.149414 -0.08105,0.09863 -0.121582,0.240724 -0.121582,0.426269 l 0,0.864258 -0.270996,0 0,-1.640625 0.270996,0 0,0.254883 c 0.05664,-0.09961 0.130371,-0.173338 0.221192,-0.221191 0.09082,-0.04883 0.201171,-0.07324 0.331054,-0.07324 0.01855,2e-6 0.03906,0.0015 0.06152,0.0044 0.02246,0.002 0.04736,0.0054 0.07471,0.01025 l 0.0015,0.276855" />
<path
inkscape:connector-curvature="0"
id="path3921"
style="font-size:3px;fill:#ffffff"
d="m 88.110008,14.304697 c -0.144532,10e-7 -0.258789,0.05664 -0.342773,0.169922 -0.08398,0.112306 -0.125977,0.266602 -0.125977,0.462891 0,0.196289 0.0415,0.351074 0.124512,0.464355 0.08398,0.112305 0.19873,0.168457 0.344238,0.168457 0.143554,0 0.257323,-0.05664 0.341309,-0.169922 0.08398,-0.113281 0.125975,-0.267577 0.125976,-0.46289 -10e-7,-0.194335 -0.04199,-0.348144 -0.125976,-0.461426 -0.08399,-0.114257 -0.197755,-0.171386 -0.341309,-0.171387 m 0,-0.228516 c 0.234374,2e-6 0.418456,0.07617 0.552246,0.228516 0.133788,0.152345 0.200682,0.363282 0.200684,0.632813 -2e-6,0.268555 -0.0669,0.479492 -0.200684,0.632812 -0.13379,0.152344 -0.317872,0.228516 -0.552246,0.228516 -0.235352,0 -0.419922,-0.07617 -0.553711,-0.228516 -0.132812,-0.15332 -0.199219,-0.364257 -0.199218,-0.632812 -10e-7,-0.269531 0.06641,-0.480468 0.199218,-0.632813 0.133789,-0.152342 0.318359,-0.228514 0.553711,-0.228516" />
</g>
<g
id="text6268"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4194"
style="font-size:4px;fill:#ffffff"
d="m 25.05489,44.078304 0,0.416016 c -0.132815,-0.123696 -0.274742,-0.216143 -0.425782,-0.277344 -0.149741,-0.0612 -0.309246,-0.09179 -0.478515,-0.0918 -0.333335,3e-6 -0.588543,0.102216 -0.765625,0.306641 -0.177084,0.203127 -0.265626,0.497398 -0.265625,0.882812 -1e-6,0.384116 0.08854,0.678387 0.265625,0.882813 0.177082,0.203125 0.43229,0.304688 0.765625,0.304687 0.169269,1e-6 0.328774,-0.0306 0.478515,-0.0918 0.15104,-0.0612 0.292967,-0.153646 0.425782,-0.277344 l 0,0.412109 c -0.138024,0.09375 -0.284508,0.164063 -0.439453,0.210938 -0.153648,0.04687 -0.316409,0.07031 -0.488282,0.07031 -0.441407,0 -0.789063,-0.134765 -1.042968,-0.404297 -0.253907,-0.270832 -0.38086,-0.639973 -0.38086,-1.107422 0,-0.468748 0.126953,-0.837888 0.38086,-1.107421 0.253905,-0.270831 0.601561,-0.406247 1.042968,-0.40625 0.174478,3e-6 0.33854,0.02344 0.492188,0.07031 0.154945,0.04558 0.300128,0.114586 0.435547,0.207031" />
<path
inkscape:connector-curvature="0"
id="path4196"
style="font-size:4px;fill:#ffffff"
d="m 26.062702,44.177914 0,1.095703 0.496094,0 c 0.183592,10e-7 0.325519,-0.04753 0.425781,-0.142578 0.100259,-0.09505 0.150389,-0.230467 0.150391,-0.40625 -2e-6,-0.174477 -0.05013,-0.309243 -0.150391,-0.404297 -0.100262,-0.09505 -0.242189,-0.142576 -0.425781,-0.142578 l -0.496094,0 m -0.394531,-0.324219 0.890625,0 c 0.326821,3e-6 0.573566,0.07422 0.740234,0.222656 0.167967,0.147138 0.251951,0.363284 0.251953,0.648438 -2e-6,0.287762 -0.08399,0.50521 -0.251953,0.652343 -0.166668,0.147137 -0.413413,0.220705 -0.740234,0.220704 l -0.496094,0 0,1.171875 -0.394531,0 0,-2.916016" />
<path
inkscape:connector-curvature="0"
id="path4198"
style="font-size:4px;fill:#ffffff"
d="m 28.037312,43.853695 0.396484,0 0,1.771484 c -1e-6,0.312501 0.05664,0.537761 0.169922,0.675782 0.11328,0.136719 0.296874,0.205078 0.550781,0.205078 0.252603,0 0.435545,-0.06836 0.548828,-0.205078 0.113279,-0.138021 0.16992,-0.363281 0.169922,-0.675782 l 0,-1.771484 0.396484,0 0,1.820312 c -2e-6,0.380209 -0.0944,0.667319 -0.283203,0.861329 -0.187502,0.19401 -0.464845,0.291015 -0.832031,0.291015 -0.368491,0 -0.647136,-0.09701 -0.835937,-0.291015 -0.187501,-0.19401 -0.281251,-0.48112 -0.28125,-0.861329 l 0,-1.820312" />
</g>
<g
id="text6272"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4201"
style="font-size:4px;fill:#ffffff"
d="m 43.60281,44.008953 0,0.384766 c -0.149742,-0.07161 -0.291018,-0.124998 -0.423828,-0.160157 -0.132814,-0.03515 -0.261069,-0.05273 -0.384766,-0.05273 -0.214845,3e-6 -0.38086,0.04167 -0.498047,0.125 -0.115886,0.08334 -0.173829,0.201825 -0.173828,0.355469 -10e-7,0.128908 0.03841,0.226564 0.115235,0.292969 0.07812,0.06511 0.225259,0.11784 0.441406,0.158203 l 0.238281,0.04883 c 0.294269,0.05599 0.511066,0.154949 0.650391,0.296875 0.140622,0.140626 0.210935,0.329428 0.210937,0.566406 -2e-6,0.282553 -0.09505,0.496745 -0.285156,0.642578 -0.188804,0.145834 -0.466147,0.21875 -0.832031,0.21875 -0.138022,0 -0.285158,-0.01563 -0.441407,-0.04687 -0.154948,-0.03125 -0.315755,-0.07747 -0.482421,-0.138672 l 0,-0.40625 c 0.160155,0.08985 0.317056,0.157553 0.470703,0.203125 0.153645,0.04557 0.304686,0.06836 0.453125,0.06836 0.225259,0 0.399087,-0.04427 0.521484,-0.132813 0.122394,-0.08854 0.183592,-0.214843 0.183594,-0.378906 -2e-6,-0.143228 -0.04427,-0.255207 -0.132813,-0.335938 -0.08724,-0.08073 -0.231121,-0.141274 -0.43164,-0.18164 l -0.240235,-0.04687 c -0.294271,-0.05859 -0.507162,-0.150389 -0.638672,-0.275391 -0.13151,-0.124998 -0.197265,-0.298826 -0.197265,-0.521484 0,-0.25781 0.09049,-0.460935 0.271484,-0.609375 0.182291,-0.148435 0.432942,-0.222653 0.751953,-0.222656 0.136718,3e-6 0.27604,0.01237 0.417969,0.03711 0.141925,0.02474 0.287107,0.06185 0.435547,0.111328" />
<path
inkscape:connector-curvature="0"
id="path4203"
style="font-size:4px;fill:#ffffff"
d="m 44.733669,44.020672 0,0.621094 0.740235,0 0,0.279296 -0.740235,0 0,1.1875 c 0,0.178386 0.02409,0.29297 0.07227,0.34375 0.04948,0.05078 0.149087,0.07617 0.298828,0.07617 l 0.369141,0 0,0.300782 -0.369141,0 c -0.277345,0 -0.468751,-0.05143 -0.574219,-0.154297 C 44.425075,46.570802 44.372341,46.382 44.372341,46.108562 l 0,-1.1875 -0.263672,0 0,-0.279296 0.263672,0 0,-0.621094 0.361328,0" />
<path
inkscape:connector-curvature="0"
id="path4205"
style="font-size:4px;fill:#ffffff"
d="m 46.942654,45.729656 c -0.290366,1e-6 -0.491538,0.0332 -0.603516,0.09961 -0.11198,0.06641 -0.167969,0.179688 -0.167969,0.339843 0,0.127605 0.04167,0.229167 0.125,0.304688 0.08463,0.07422 0.199218,0.111328 0.34375,0.111328 0.199218,0 0.358723,-0.07031 0.478516,-0.210938 0.121092,-0.141926 0.181639,-0.330077 0.181641,-0.564453 l 0,-0.08008 -0.357422,0 m 0.716797,-0.148437 0,1.248047 -0.359375,0 0,-0.332032 c -0.08203,0.132813 -0.184247,0.23112 -0.306641,0.294922 -0.122397,0.0625 -0.272137,0.09375 -0.449219,0.09375 -0.223959,0 -0.402344,-0.0625 -0.535156,-0.1875 -0.131511,-0.126302 -0.197266,-0.294921 -0.197266,-0.505859 0,-0.246093 0.08203,-0.43164 0.246094,-0.556641 0.165364,-0.124998 0.411457,-0.187498 0.738281,-0.1875 l 0.503907,0 0,-0.03516 c -2e-6,-0.165363 -0.05469,-0.292967 -0.164063,-0.382813 -0.108074,-0.09114 -0.260418,-0.136716 -0.457031,-0.136718 -0.125001,2e-6 -0.246746,0.01498 -0.365235,0.04492 -0.11849,0.02995 -0.232422,0.07487 -0.341796,0.134765 l 0,-0.332031 c 0.131509,-0.05078 0.259113,-0.08854 0.382812,-0.113281 0.123697,-0.02604 0.24414,-0.03906 0.361328,-0.03906 0.316405,2e-6 0.552733,0.08203 0.708985,0.246094 0.156248,0.164064 0.234372,0.412762 0.234375,0.746094" />
<path
inkscape:connector-curvature="0"
id="path4207"
style="font-size:4px;fill:#ffffff"
d="m 49.975857,44.72575 0,0.335937 c -0.101565,-0.05599 -0.203778,-0.09765 -0.306641,-0.125 -0.101564,-0.02864 -0.204428,-0.04297 -0.308594,-0.04297 -0.233074,2e-6 -0.414063,0.07422 -0.542968,0.222656 -0.128907,0.147137 -0.19336,0.354168 -0.19336,0.621094 0,0.266928 0.06445,0.47461 0.19336,0.623047 0.128905,0.147135 0.309894,0.220703 0.542968,0.220703 0.104166,0 0.20703,-0.01367 0.308594,-0.04102 0.102863,-0.02864 0.205076,-0.07096 0.306641,-0.126953 l 0,0.332031 c -0.100262,0.04687 -0.204429,0.08203 -0.3125,0.105469 -0.106773,0.02344 -0.220705,0.03516 -0.341797,0.03516 -0.329428,0 -0.591147,-0.103515 -0.785156,-0.310547 -0.194011,-0.20703 -0.291016,-0.486327 -0.291016,-0.83789 0,-0.35677 0.09766,-0.637368 0.292969,-0.841797 0.196614,-0.204425 0.465494,-0.306639 0.80664,-0.306641 0.110676,2e-6 0.218749,0.01172 0.324219,0.03516 0.105467,0.02214 0.207681,0.05599 0.306641,0.101563" />
<path
inkscape:connector-curvature="0"
id="path4209"
style="font-size:4px;fill:#ffffff"
d="m 50.591091,43.790203 0.361328,0 0,1.794922 1.072266,-0.943359 0.458984,0 -1.160156,1.023437 1.208984,1.164063 -0.46875,0 -1.111328,-1.06836 0,1.06836 -0.361328,0 0,-3.039063" />
</g>
<g
id="Mem"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4212"
style="font-size:4px;fill:#ffffff"
d="m 59.734768,43.432796 0.587891,0 0.74414,1.984375 0.748047,-1.984375 0.587891,0 0,2.916016 -0.384766,0 0,-2.560547 -0.751953,2 -0.396484,0 -0.751954,-2 0,2.560547 -0.382812,0 0,-2.916016" />
<path
inkscape:connector-curvature="0"
id="path4214"
style="font-size:4px;fill:#ffffff"
d="m 65.043362,45.165218 0,0.175782 -1.652344,0 c 0.01562,0.247396 0.08984,0.436198 0.222656,0.566406 0.134114,0.128906 0.320312,0.193359 0.558594,0.193359 0.138019,0 0.271483,-0.01693 0.400391,-0.05078 0.130206,-0.03385 0.259112,-0.08463 0.386718,-0.152344 l 0,0.339844 c -0.128908,0.05469 -0.261069,0.09635 -0.396484,0.125 -0.135418,0.02865 -0.272788,0.04297 -0.412109,0.04297 -0.34896,0 -0.625652,-0.101563 -0.830079,-0.304688 -0.203125,-0.203124 -0.304687,-0.477864 -0.304687,-0.824219 0,-0.358071 0.09635,-0.641925 0.289062,-0.851562 0.19401,-0.210935 0.455078,-0.316404 0.783204,-0.316406 0.294269,2e-6 0.52669,0.09505 0.697265,0.285156 0.171873,0.188804 0.25781,0.445965 0.257813,0.771484 m -0.359375,-0.10547 c -0.0026,-0.196613 -0.05795,-0.353514 -0.166016,-0.470704 -0.106772,-0.117185 -0.248699,-0.175779 -0.425781,-0.175781 -0.200522,2e-6 -0.361329,0.05664 -0.482422,0.169922 -0.119792,0.113283 -0.188803,0.272788 -0.207031,0.478516 l 1.28125,-0.002" />
<path
inkscape:connector-curvature="0"
id="path4216"
style="font-size:4px;fill:#ffffff"
d="m 67.33633,44.581234 c 0.08984,-0.161456 0.197264,-0.280597 0.322266,-0.357422 0.124998,-0.07682 0.272133,-0.115232 0.441406,-0.115234 0.227862,2e-6 0.403643,0.08008 0.527344,0.240234 0.123694,0.158856 0.185543,0.385418 0.185547,0.679688 l 0,1.320312 -0.361328,0 0,-1.308594 c -3e-6,-0.209634 -0.03711,-0.365232 -0.111328,-0.466797 -0.07422,-0.10156 -0.187503,-0.152341 -0.339844,-0.152343 -0.186201,2e-6 -0.333336,0.06185 -0.441406,0.185547 -0.108075,0.123699 -0.162112,0.292319 -0.16211,0.505859 l 0,1.236328 -0.361328,0 0,-1.308594 c -2e-6,-0.210936 -0.03711,-0.366534 -0.111328,-0.466797 -0.07422,-0.10156 -0.188804,-0.152341 -0.34375,-0.152343 -0.183595,2e-6 -0.329428,0.0625 -0.4375,0.1875 -0.108074,0.123699 -0.16211,0.291668 -0.162109,0.503906 l 0,1.236328 -0.361328,0 0,-2.1875 0.361328,0 0,0.339844 c 0.08203,-0.134113 0.180337,-0.233071 0.294922,-0.296875 0.114582,-0.0638 0.250649,-0.0957 0.408203,-0.0957 0.158852,2e-6 0.293618,0.04037 0.404297,0.121093 0.111977,0.08073 0.194659,0.197919 0.248046,0.351563" />
<path
inkscape:connector-curvature="0"
id="path4218"
style="font-size:4px;fill:#ffffff"
d="m 70.379299,44.413265 c -0.192709,2e-6 -0.345053,0.07552 -0.457031,0.226563 -0.11198,0.149741 -0.167969,0.35547 -0.167969,0.617187 0,0.26172 0.05534,0.4681 0.166016,0.619141 0.111978,0.14974 0.264973,0.224609 0.458984,0.224609 0.191405,0 0.343098,-0.07552 0.455078,-0.226562 0.111978,-0.151041 0.167967,-0.35677 0.167969,-0.617188 -2e-6,-0.259113 -0.05599,-0.464191 -0.167969,-0.615234 -0.11198,-0.152342 -0.263673,-0.228514 -0.455078,-0.228516 m 0,-0.304687 c 0.312499,2e-6 0.557941,0.101564 0.736328,0.304687 0.178384,0.203127 0.267576,0.484377 0.267578,0.84375 -2e-6,0.358074 -0.08919,0.639324 -0.267578,0.84375 -0.178387,0.203125 -0.423829,0.304688 -0.736328,0.304688 -0.313803,0 -0.559896,-0.101563 -0.738281,-0.304688 -0.177084,-0.204426 -0.265625,-0.485676 -0.265625,-0.84375 0,-0.359373 0.08854,-0.640623 0.265625,-0.84375 0.178385,-0.203123 0.424478,-0.304685 0.738281,-0.304687" />
<path
inkscape:connector-curvature="0"
id="path4220"
style="font-size:4px;fill:#ffffff"
d="m 73.244534,44.49725 c -0.04037,-0.02344 -0.08464,-0.04036 -0.132813,-0.05078 -0.04688,-0.01172 -0.09896,-0.01758 -0.15625,-0.01758 -0.203126,2e-6 -0.359376,0.06641 -0.46875,0.199219 -0.108074,0.131512 -0.16211,0.320965 -0.162109,0.568359 l 0,1.152344 -0.361328,0 0,-2.1875 0.361328,0 0,0.339844 c 0.07552,-0.132811 0.173827,-0.231118 0.294922,-0.294922 0.121092,-0.0651 0.268227,-0.09765 0.441406,-0.09766 0.02474,2e-6 0.05208,0.002 0.08203,0.0059 0.02995,0.0026 0.06315,0.0072 0.09961,0.01367 l 0.002,0.369141" />
<path
inkscape:connector-curvature="0"
id="path4222"
style="font-size:4px;fill:#ffffff"
d="m 74.535549,46.551937 c -0.101564,0.260416 -0.200522,0.430338 -0.296875,0.509766 -0.09636,0.07943 -0.225261,0.11914 -0.386719,0.11914 l -0.287109,0 0,-0.300781 0.210938,0 c 0.09896,0 0.17578,-0.02344 0.230468,-0.07031 0.05469,-0.04688 0.115234,-0.157553 0.181641,-0.332032 l 0.06445,-0.164062 -0.884766,-2.152344 0.38086,0 0.683594,1.710938 0.683593,-1.710938 0.38086,0 -0.960938,2.390625" />
</g>
<rect
y="366.52393"
x="583.84381"
height="5.9022241"
width="5.3263974"
id="rect4552-0-7-4"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-2-3-4"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4118"
style="font-size:4px;fill:#ffffff"
d="m 585.62018,370.49521 0.64453,0 0,-2.22461 -0.70117,0.14062 0,-0.35937 0.69726,-0.14063 0.39453,0 0,2.58399 0.64454,0 0,0.33203 -1.67969,0 0,-0.33203" />
</g>
<rect
y="373.38257"
x="583.84381"
height="5.9022241"
width="5.3263974"
id="rect4552-09-6-6"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-0-0-6"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4099"
style="font-size:4px;fill:#ffffff"
d="m 585.89166,377.35385 1.37696,0 0,0.33203 -1.85157,0 0,-0.33203 c 0.14974,-0.15495 0.35352,-0.36263 0.61133,-0.62305 0.25911,-0.26171 0.42188,-0.43033 0.48828,-0.50585 0.1263,-0.14193 0.21419,-0.26172 0.26367,-0.35938 0.0508,-0.099 0.0762,-0.19596 0.0762,-0.29102 -10e-6,-0.15494 -0.0547,-0.28124 -0.16407,-0.3789 -0.10807,-0.0977 -0.24935,-0.14648 -0.42382,-0.14649 -0.1237,1e-5 -0.25456,0.0215 -0.39258,0.0645 -0.13672,0.043 -0.28321,0.10807 -0.43946,0.19531 l 0,-0.39844 c 0.15886,-0.0638 0.3073,-0.11197 0.44532,-0.14453 0.13802,-0.0326 0.26432,-0.0488 0.3789,-0.0488 0.30209,1e-5 0.54297,0.0755 0.72266,0.22657 0.17968,0.15104 0.26953,0.35286 0.26953,0.60546 0,0.1198 -0.0228,0.23373 -0.0684,0.3418 -0.0443,0.10677 -0.12565,0.23308 -0.24414,0.37891 -0.0325,0.0378 -0.13607,0.14713 -0.31055,0.32812 -0.17448,0.17969 -0.42057,0.43164 -0.73828,0.75586" />
</g>
<rect
y="380.24118"
x="583.84381"
height="5.9022241"
width="5.3263974"
id="rect4552-3-5-4"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-8-7-9"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4096"
style="font-size:4px;fill:#ffffff"
d="m 586.74713,382.97223 c 0.1888,0.0404 0.33594,0.12435 0.44141,0.25195 0.10677,0.12761 0.16015,0.28516 0.16015,0.47266 0,0.28776 -0.099,0.51042 -0.29687,0.66797 -0.19792,0.15755 -0.47917,0.23633 -0.84375,0.23633 -0.1224,0 -0.2487,-0.0124 -0.37891,-0.0371 -0.1289,-0.0234 -0.26237,-0.0593 -0.40039,-0.10743 l 0,-0.38086 c 0.10938,0.0638 0.22917,0.11198 0.35938,0.14454 0.1302,0.0326 0.26627,0.0488 0.4082,0.0488 0.24739,0 0.43555,-0.0488 0.56445,-0.14648 0.13021,-0.0977 0.19531,-0.23958 0.19532,-0.42578 -1e-5,-0.17188 -0.0606,-0.30599 -0.18164,-0.40235 -0.1198,-0.0976 -0.28712,-0.14648 -0.50196,-0.14648 l -0.33984,0 0,-0.32422 0.35547,0 c 0.19401,0 0.34244,-0.0384 0.44531,-0.11523 0.10286,-0.0781 0.15429,-0.19011 0.1543,-0.33594 -10e-6,-0.14974 -0.0534,-0.26432 -0.16016,-0.34375 -0.10547,-0.0807 -0.25716,-0.12109 -0.45508,-0.12109 -0.10807,0 -0.22396,0.0117 -0.34765,0.0351 -0.1237,0.0234 -0.25977,0.0599 -0.40821,0.10938 l 0,-0.35157 c 0.14974,-0.0417 0.28972,-0.0729 0.41992,-0.0937 0.13151,-0.0208 0.25521,-0.0312 0.3711,-0.0312 0.29948,10e-6 0.53645,0.0684 0.71094,0.20508 0.17447,0.13542 0.26171,0.31902 0.26171,0.55078 0,0.16146 -0.0462,0.29818 -0.13867,0.41016 -0.0924,0.11068 -0.22396,0.1875 -0.39453,0.23047" />
</g>
<rect
y="387.09979"
x="583.84381"
height="5.9022241"
width="5.3263974"
id="rect4552-6-1-7"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-06-2-8"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4093"
style="font-size:4px;fill:#ffffff"
d="m 586.6358,388.83084 -0.99609,1.55664 0.99609,0 0,-1.55664 m -0.10351,-0.34375 0.49609,0 0,1.90039 0.41602,0 0,0.32813 -0.41602,0 0,0.6875 -0.39258,0 0,-0.6875 -1.3164,0 0,-0.38086 1.21289,-1.84766" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
y="393.9584"
x="583.84381"
height="5.9022241"
width="5.3263974"
id="rect4552-49-1-9"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<g
id="text4554-6-4-1"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4090"
style="font-size:4px;fill:#ffffff"
d="m 585.55573,395.3457 1.54882,0 0,0.33203 -1.1875,0 0,0.71485 c 0.0573,-0.0195 0.11459,-0.0339 0.17188,-0.043 0.0573,-0.0104 0.11458,-0.0156 0.17187,-0.0156 0.32552,10e-6 0.58333,0.0892 0.77344,0.26758 0.1901,0.17839 0.28515,0.41993 0.28516,0.72461 -10e-6,0.3138 -0.0977,0.55794 -0.29297,0.73242 -0.19532,0.17318 -0.47071,0.25977 -0.82617,0.25977 -0.1224,0 -0.2474,-0.0104 -0.375,-0.0312 -0.12631,-0.0208 -0.25717,-0.0521 -0.39258,-0.0937 l 0,-0.39649 c 0.11719,0.0638 0.23828,0.11133 0.36328,0.14258 0.125,0.0312 0.25716,0.0469 0.39648,0.0469 0.22526,0 0.40365,-0.0593 0.53516,-0.17774 0.13151,-0.11849 0.19726,-0.27929 0.19727,-0.48242 -1e-5,-0.20312 -0.0658,-0.36393 -0.19727,-0.48242 -0.13151,-0.11849 -0.3099,-0.17773 -0.53516,-0.17773 -0.10547,0 -0.21093,0.0117 -0.3164,0.0351 -0.10417,0.0234 -0.21094,0.0599 -0.32031,0.10938 l 0,-1.46485" />
</g>
<rect
y="400.81705"
x="583.84381"
height="5.9022241"
width="5.3263974"
id="rect4552-2-7-9"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-9-1-8"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4087"
style="font-size:4px;fill:#ffffff"
d="m 586.4444,403.50513 c -0.17709,0 -0.31771,0.0605 -0.42188,0.18164 -0.10286,0.12109 -0.1543,0.28711 -0.15429,0.49804 -1e-5,0.20964 0.0514,0.37566 0.15429,0.49805 0.10417,0.1211 0.24479,0.18164 0.42188,0.18164 0.17708,0 0.31705,-0.0605 0.41992,-0.18164 0.10416,-0.12239 0.15625,-0.28841 0.15625,-0.49805 0,-0.21093 -0.0521,-0.37695 -0.15625,-0.49804 -0.10287,-0.12109 -0.24284,-0.18164 -0.41992,-0.18164 m 0.7832,-1.23633 0,0.35937 c -0.099,-0.0469 -0.19922,-0.0827 -0.30078,-0.10742 -0.10026,-0.0247 -0.19987,-0.0371 -0.29883,-0.0371 -0.26042,10e-6 -0.45964,0.0879 -0.59766,0.26367 -0.13672,0.17579 -0.21484,0.44141 -0.23437,0.79688 0.0768,-0.11328 0.17318,-0.19987 0.28906,-0.25977 0.11589,-0.0612 0.24349,-0.0918 0.38281,-0.0918 0.29297,0 0.52409,0.0892 0.69336,0.26758 0.17057,0.17708 0.25586,0.41862 0.25586,0.7246 0,0.29948 -0.0885,0.53972 -0.26562,0.72071 -0.17709,0.18099 -0.41276,0.27148 -0.70703,0.27148 -0.33724,0 -0.59506,-0.1289 -0.77344,-0.38672 -0.17839,-0.25911 -0.26758,-0.63411 -0.26758,-1.125 0,-0.46093 0.10938,-0.82812 0.32813,-1.10156 0.21875,-0.27474 0.51237,-0.41211 0.88086,-0.41211 0.0989,0 0.19856,0.01 0.29882,0.0293 0.10156,0.0195 0.20703,0.0488 0.31641,0.0879" />
</g>
<rect
y="407.67563"
x="583.84381"
height="5.9022241"
width="5.3263974"
id="rect4552-9-7-7"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-84-7-6"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4083"
style="font-size:4px;fill:#ffffff"
d="m 585.45221,409.06293 1.875,0 0,0.16797 -1.05859,2.74804 -0.41211,0 0.99609,-2.58398 -1.40039,0 0,-0.33203" />
</g>
<rect
y="414.53427"
x="583.84381"
height="5.9022241"
width="5.3263974"
id="rect4552-5-5-1"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-4-9-5"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4080"
style="font-size:4px;fill:#ffffff"
d="m 586.39557,417.45282 c -0.1875,0 -0.33529,0.0501 -0.44336,0.15039 -0.10677,0.10026 -0.16016,0.23828 -0.16016,0.41406 0,0.17578 0.0534,0.31381 0.16016,0.41407 0.10807,0.10026 0.25586,0.15039 0.44336,0.15039 0.1875,0 0.33528,-0.0501 0.44336,-0.15039 0.10807,-0.10157 0.16211,-0.23959 0.16211,-0.41407 0,-0.17578 -0.054,-0.3138 -0.16211,-0.41406 -0.10677,-0.10026 -0.25456,-0.15039 -0.44336,-0.15039 m -0.39453,-0.16797 c -0.16927,-0.0417 -0.30144,-0.12044 -0.39649,-0.23633 -0.0937,-0.11588 -0.14062,-0.25716 -0.14062,-0.42383 0,-0.23307 0.0827,-0.41731 0.24805,-0.55273 0.16666,-0.13541 0.39453,-0.20312 0.68359,-0.20312 0.29036,0 0.51823,0.0677 0.68359,0.20312 0.16537,0.13542 0.24805,0.31966 0.24805,0.55273 0,0.16667 -0.0475,0.30795 -0.14258,0.42383 -0.0937,0.11589 -0.22461,0.19467 -0.39258,0.23633 0.19011,0.0443 0.33789,0.13086 0.44336,0.25977 0.10677,0.1289 0.16016,0.28646 0.16016,0.47265 0,0.28256 -0.0866,0.49935 -0.25977,0.65039 -0.17187,0.15105 -0.41862,0.22657 -0.74023,0.22657 -0.32162,0 -0.56901,-0.0755 -0.74219,-0.22657 -0.17187,-0.15104 -0.25781,-0.36783 -0.25781,-0.65039 0,-0.18619 0.0534,-0.34375 0.16016,-0.47265 0.10677,-0.12891 0.2552,-0.2155 0.44531,-0.25977 m -0.14453,-0.62305 c 0,0.15105 0.0469,0.26889 0.14062,0.35352 0.0951,0.0846 0.22786,0.12695 0.39844,0.12695 0.16927,0 0.30143,-0.0423 0.39648,-0.12695 0.0964,-0.0846 0.14453,-0.20247 0.14453,-0.35352 0,-0.15104 -0.0482,-0.26887 -0.14453,-0.35351 -0.0951,-0.0846 -0.22721,-0.12695 -0.39648,-0.12695 -0.17058,0 -0.30339,0.0423 -0.39844,0.12695 -0.0937,0.0846 -0.14062,0.20247 -0.14062,0.35351" />
</g>
<g
id="text4842-8-2"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4102"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
d="m 580.3844,377.1857 c 0.0846,0.0287 0.16666,0.0898 0.24609,0.18359 0.0807,0.0937 0.16146,0.22266 0.24219,0.38672 l 0.40039,0.79688 -0.42383,0 -0.37304,-0.74805 c -0.0964,-0.19531 -0.19011,-0.32487 -0.28125,-0.38867 -0.0898,-0.0638 -0.2129,-0.0957 -0.36914,-0.0957 l -0.42969,0 0,1.23242 -0.39453,0 0,-2.91602 0.89062,0 c 0.33333,0 0.58203,0.0697 0.7461,0.20899 0.16406,0.13932 0.24609,0.34961 0.24609,0.63086 0,0.18359 -0.043,0.33593 -0.12891,0.45703 -0.0846,0.12109 -0.20833,0.20508 -0.37109,0.25195 m -0.98828,-1.22461 0,1.03516 0.49609,0 c 0.1901,0 0.33333,-0.0436 0.42969,-0.13086 0.0976,-0.0885 0.14648,-0.2181 0.14648,-0.38867 0,-0.17058 -0.0488,-0.29883 -0.14648,-0.38477 -0.0964,-0.0872 -0.23959,-0.13086 -0.42969,-0.13086 l -0.49609,0" />
<path
inkscape:connector-curvature="0"
id="path4105"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
d="m 581.07971,380.51773 0,0.41602 c -0.13281,-0.1237 -0.27474,-0.21615 -0.42578,-0.27735 -0.14974,-0.0612 -0.30925,-0.0918 -0.47851,-0.0918 -0.33334,0 -0.58855,0.10221 -0.76563,0.30664 -0.17708,0.20312 -0.26563,0.49739 -0.26562,0.88281 -10e-6,0.38411 0.0885,0.67839 0.26562,0.88281 0.17708,0.20313 0.43229,0.30469 0.76563,0.30469 0.16926,0 0.32877,-0.0306 0.47851,-0.0918 0.15104,-0.0612 0.29297,-0.15364 0.42578,-0.27734 l 0,0.41211 c -0.13802,0.0937 -0.28451,0.16406 -0.43945,0.21094 -0.15365,0.0469 -0.31641,0.0703 -0.48828,0.0703 -0.44141,0 -0.78907,-0.13477 -1.04297,-0.4043 -0.25391,-0.27083 -0.38086,-0.63997 -0.38086,-1.10742 0,-0.46875 0.12695,-0.83789 0.38086,-1.10742 0.2539,-0.27083 0.60156,-0.40625 1.04297,-0.40625 0.17447,0 0.33854,0.0234 0.49219,0.0703 0.15494,0.0456 0.30012,0.11459 0.43554,0.20703" />
<path
inkscape:connector-curvature="0"
id="path4107"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
d="m 579.70471,389.60562 0.39453,0 0,2.91602 -0.39453,0 0,-2.91602" />
<path
inkscape:connector-curvature="0"
id="path4109"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
d="m 580.82776,395.85757 0,1.32032 -0.35938,0 0,-1.3086 c 0,-0.20703 -0.0404,-0.36197 -0.12109,-0.46484 -0.0807,-0.10286 -0.20182,-0.1543 -0.36328,-0.1543 -0.19401,0 -0.34701,0.0618 -0.45899,0.18555 -0.11198,0.1237 -0.16797,0.29232 -0.16796,0.50586 l 0,1.23633 -0.36133,0 0,-2.1875 0.36133,0 0,0.33984 c 0.0859,-0.13151 0.18684,-0.22981 0.30273,-0.29492 0.11719,-0.0651 0.25195,-0.0977 0.4043,-0.0977 0.2513,0 0.4414,0.0781 0.57031,0.23438 0.1289,0.15495 0.19336,0.38346 0.19336,0.68554" />
<path
inkscape:connector-curvature="0"
id="path4111"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
d="m 579.35706,401.50601 0,1.16016 -0.36133,0 0,-3.01953 0.36133,0 0,0.33203 c 0.0755,-0.13021 0.17057,-0.22656 0.28515,-0.28906 0.11589,-0.0638 0.25391,-0.0957 0.41406,-0.0957 0.26563,0 0.48112,0.10547 0.64649,0.31641 0.16666,0.21094 0.25,0.48828 0.25,0.83203 0,0.34375 -0.0833,0.62109 -0.25,0.83203 -0.16537,0.21094 -0.38086,0.31641 -0.64649,0.31641 -0.16015,0 -0.29817,-0.0312 -0.41406,-0.0937 -0.11458,-0.0638 -0.20963,-0.16081 -0.28515,-0.29102 m 1.22265,-0.76367 c 0,-0.26432 -0.0547,-0.47135 -0.16406,-0.62109 -0.10808,-0.15104 -0.25716,-0.22656 -0.44727,-0.22657 -0.1901,10e-6 -0.33984,0.0755 -0.44921,0.22657 -0.10808,0.14974 -0.16212,0.35677 -0.16211,0.62109 -1e-5,0.26432 0.054,0.47201 0.16211,0.62305 0.10937,0.14974 0.25911,0.22461 0.44921,0.22461 0.19011,0 0.33919,-0.0749 0.44727,-0.22461 0.10937,-0.15104 0.16406,-0.35873 0.16406,-0.62305" />
<path
inkscape:connector-curvature="0"
id="path4113"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
d="m 578.97229,405.62711 0,-1.32422 0.35938,0 0,1.31054 c -10e-6,0.20704 0.0404,0.36263 0.12109,0.4668 0.0807,0.10287 0.20182,0.1543 0.36328,0.1543 0.19401,0 0.347,-0.0618 0.45898,-0.18555 0.11328,-0.1237 0.16992,-0.29232 0.16993,-0.50586 l 0,-1.24023 0.35937,0 0,2.1875 -0.35937,0 0,-0.33594 c -0.0872,0.13281 -0.18881,0.23177 -0.30469,0.29687 -0.11459,0.0638 -0.24805,0.0957 -0.40039,0.0957 -0.2513,0 -0.44206,-0.0781 -0.57227,-0.23438 -0.13021,-0.15625 -0.19531,-0.38476 -0.19531,-0.68554 m 0.9043,-1.37696 0,0" />
<path
inkscape:connector-curvature="0"
id="path4115"
style="font-size:4px;writing-mode:tb-rl;fill:#ffffff"
d="m 579.84924,408.33804 0,0.6211 0.74024,0 0,0.27929 -0.74024,0 0,1.1875 c 0,0.17839 0.0241,0.29297 0.0723,0.34375 0.0495,0.0508 0.14909,0.0762 0.29883,0.0762 l 0.36914,0 0,0.30078 -0.36914,0 c -0.27735,0 -0.46875,-0.0514 -0.57422,-0.1543 -0.10547,-0.10417 -0.15821,-0.29297 -0.1582,-0.56641 l 0,-1.1875 -0.26368,0 0,-0.27929 0.26368,0 0,-0.6211 0.36132,0" />
</g>
<g
id="text5124-0-6"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4275"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 56.800373,65.694183 0.297363,0 0,1.328614 c 0,0.234375 0.04248,0.40332 0.127442,0.506836 0.08496,0.102539 0.222655,0.153808 0.413086,0.153808 0.189452,0 0.326658,-0.05127 0.411621,-0.153808 0.08496,-0.103516 0.12744,-0.272461 0.127441,-0.506836 l 0,-1.328614 0.297363,0 0,1.365235 c -10e-7,0.285157 -0.0708,0.500488 -0.212402,0.645996 -0.140626,0.145508 -0.348634,0.218261 -0.624023,0.218262 -0.276368,-10e-7 -0.485352,-0.07275 -0.626953,-0.218262 -0.140626,-0.145508 -0.210938,-0.360839 -0.210938,-0.645996 l 0,-1.365235" />
<path
inkscape:connector-curvature="0"
id="path4277"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 58.291584,69.258148 0,0.288574 c -0.112306,-0.05371 -0.218263,-0.09375 -0.317871,-0.120117 -0.09961,-0.02636 -0.195802,-0.03955 -0.288574,-0.03955 -0.161134,2e-6 -0.285646,0.03125 -0.373535,0.09375 -0.08692,0.0625 -0.130372,0.151369 -0.130372,0.266602 0,0.09668 0.02881,0.169923 0.08643,0.219727 0.05859,0.04883 0.168945,0.08838 0.331055,0.118652 l 0.178711,0.03662 c 0.220702,0.04199 0.383299,0.116212 0.487793,0.222656 0.105467,0.10547 0.158201,0.247071 0.158203,0.424805 -2e-6,0.211914 -0.07129,0.372559 -0.213867,0.481934 -0.141603,0.109375 -0.349611,0.164062 -0.624024,0.164062 -0.103516,0 -0.213868,-0.01172 -0.331054,-0.03516 -0.116212,-0.02344 -0.236817,-0.05811 -0.361817,-0.104004 l 0,-0.304688 c 0.120117,0.06738 0.237793,0.118165 0.353028,0.152344 0.115233,0.03418 0.228514,0.05127 0.339843,0.05127 0.168945,0 0.299316,-0.0332 0.391114,-0.09961 0.09179,-0.06641 0.137693,-0.161132 0.137695,-0.284179 -2e-6,-0.107422 -0.0332,-0.191406 -0.09961,-0.251954 -0.06543,-0.06055 -0.173341,-0.105956 -0.323731,-0.13623 L 57.510822,70.3685 c -0.220703,-0.04394 -0.380371,-0.112792 -0.479004,-0.206543 -0.09863,-0.09375 -0.147949,-0.22412 -0.147949,-0.391113 0,-0.193358 0.06787,-0.345702 0.203613,-0.457032 0.136719,-0.111326 0.324707,-0.16699 0.563965,-0.166992 0.102538,2e-6 0.20703,0.0093 0.313477,0.02783 0.106444,0.01856 0.21533,0.04639 0.32666,0.0835" />
<path
inkscape:connector-curvature="0"
id="path4279"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 57.200275,73.821136 0,0.80127 0.47461,0 c 0.159178,0 0.276854,-0.03271 0.353027,-0.09815 0.07715,-0.0664 0.115721,-0.167479 0.115723,-0.303222 -2e-6,-0.136718 -0.03858,-0.237304 -0.115723,-0.301758 -0.07617,-0.06543 -0.193849,-0.09814 -0.353027,-0.09815 l -0.47461,0 m 0,-0.899414 0,0.65918 0.437989,0 c 0.14453,10e-7 0.251952,-0.02685 0.322265,-0.08057 0.07129,-0.05469 0.106932,-0.137694 0.106934,-0.249024 -2e-6,-0.11035 -0.03565,-0.192869 -0.106934,-0.247558 -0.07031,-0.05469 -0.177735,-0.08203 -0.322265,-0.08203 l -0.437989,0 m -0.295898,-0.243164 0.755859,0 c 0.225585,3e-6 0.399413,0.04688 0.521485,0.140625 0.122068,0.09375 0.183103,0.227053 0.183105,0.399903 -2e-6,0.13379 -0.03125,0.240235 -0.09375,0.319336 -0.0625,0.0791 -0.154298,0.128419 -0.27539,0.147949 0.145506,0.03125 0.258299,0.09668 0.338378,0.196289 0.08105,0.09863 0.121581,0.222169 0.121583,0.370605 -2e-6,0.195313 -0.06641,0.346192 -0.199219,0.452637 -0.132814,0.106445 -0.321779,0.159668 -0.566895,0.159668 l -0.785156,0 0,-2.187012" />
</g>
<g
id="text5124-0-1"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4266"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 65.825645,63.926846 0.295899,0 0,2.034668 c -10e-7,0.263671 -0.05029,0.455077 -0.150879,0.574218 -0.09961,0.11914 -0.260254,0.178711 -0.481934,0.178711 l -0.112793,0 0,-0.249023 0.09229,0 c 0.130859,-10e-7 0.223144,-0.03662 0.276855,-0.109864 0.05371,-0.07324 0.08057,-0.204589 0.08057,-0.394042 l 0,-2.034668" />
<path
inkscape:connector-curvature="0"
id="path4268"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 65.165001,67.419033 1.850098,0 0,0.249023 -0.776368,0 0,1.937989 -0.297363,0 0,-1.937989 -0.776367,0 0,-0.249023" />
<path
inkscape:connector-curvature="0"
id="path4270"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 65.999962,71.202724 -0.401367,1.088379 0.804199,0 -0.402832,-1.088379 m -0.166992,-0.291503 0.335449,0 0.833496,2.187011 -0.307617,0 -0.199219,-0.561035 -0.98584,0 -0.199219,0.561035 -0.312011,0 0.834961,-2.187011" />
<path
inkscape:connector-curvature="0"
id="path4272"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 66.596153,76.278408 0,-0.587402 -0.483398,0 0,-0.243164 0.776367,0 0,0.938964 c -0.11426,0.08105 -0.240236,0.142579 -0.37793,0.184571 -0.137697,0.04102 -0.284669,0.06152 -0.440918,0.06152 -0.341797,0 -0.609375,-0.09961 -0.802734,-0.298828 -0.192383,-0.200195 -0.288574,-0.478515 -0.288574,-0.834961 0,-0.35742 0.09619,-0.63574 0.288574,-0.834961 0.193359,-0.200193 0.460937,-0.300291 0.802734,-0.300293 0.142577,2e-6 0.277831,0.01758 0.405762,0.05273 0.128905,0.03516 0.247557,0.08692 0.355957,0.155273 l 0,0.314941 c -0.109377,-0.09277 -0.225588,-0.162595 -0.348633,-0.209472 -0.123048,-0.04687 -0.252443,-0.07031 -0.388183,-0.07031 -0.267579,2e-6 -0.468751,0.07471 -0.603516,0.224121 -0.13379,0.149416 -0.200684,0.372072 -0.200684,0.667969 0,0.294923 0.06689,0.517091 0.200684,0.666504 0.134765,0.149414 0.335937,0.224121 0.603516,0.224121 0.10449,0 0.197752,-0.0088 0.279785,-0.02637 0.08203,-0.01855 0.15576,-0.04687 0.221191,-0.08496" />
</g>
<g
id="text5124-0"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4285"
style="font-size:2px;writing-mode:tb-rl;fill:#ffffff"
d="m 547.35425,409.21243 0,-0.3916 -0.32227,0 0,-0.16211 0.51758,0 0,0.62598 c -0.0762,0.054 -0.16016,0.0951 -0.25195,0.12305 -0.0918,0.0273 -0.18978,0.041 -0.29395,0.041 -0.22786,0 -0.40625,-0.0664 -0.53515,-0.19922 -0.12826,-0.13346 -0.19239,-0.31901 -0.19239,-0.55664 0,-0.23828 0.0641,-0.42383 0.19239,-0.55664 0.1289,-0.13346 0.30729,-0.20019 0.53515,-0.20019 0.0951,0 0.18522,0.0117 0.27051,0.0352 0.0859,0.0234 0.16504,0.058 0.2373,0.10352 l 0,0.20996 c -0.0729,-0.0618 -0.15039,-0.1084 -0.23242,-0.13965 -0.082,-0.0312 -0.16829,-0.0469 -0.25879,-0.0469 -0.17838,0 -0.3125,0.0498 -0.40234,0.14941 -0.0892,0.0996 -0.13379,0.24805 -0.13379,0.44531 0,0.19662 0.0446,0.34473 0.13379,0.44434 0.0898,0.0996 0.22396,0.14941 0.40234,0.14941 0.0697,0 0.13184,-0.006 0.18653,-0.0176 0.0547,-0.0124 0.10384,-0.0312 0.14746,-0.0566" />
<path
inkscape:connector-curvature="0"
id="path4287"
style="font-size:2px;writing-mode:tb-rl;fill:#ffffff"
d="m 546.72925,410.45267 0,0.54785 0.24804,0 c 0.0918,0 0.16276,-0.0238 0.2129,-0.0713 0.0501,-0.0475 0.0752,-0.11523 0.0752,-0.20313 0,-0.0872 -0.0251,-0.15462 -0.0752,-0.20214 -0.0501,-0.0475 -0.1211,-0.0713 -0.2129,-0.0713 l -0.24804,0 m -0.19727,-0.16211 0.44531,0 c 0.16342,0 0.28679,0.0371 0.37012,0.11133 0.084,0.0736 0.12598,0.18164 0.12598,0.32421 0,0.14389 -0.042,0.25261 -0.12598,0.32618 -0.0833,0.0736 -0.2067,0.11035 -0.37012,0.11035 l -0.24804,0 0,0.58594 -0.19727,0 0,-1.45801" />
<path
inkscape:connector-curvature="0"
id="path4289"
style="font-size:2px;writing-mode:tb-rl;fill:#ffffff"
d="m 546.84058,412.61868 0.19726,0 0,1.45801 -0.19726,0 0,-1.45801" />
<path
inkscape:connector-curvature="0"
id="path4291"
style="font-size:2px;writing-mode:tb-rl;fill:#ffffff"
d="m 546.94019,415.0806 c -0.14323,0 -0.25717,0.0534 -0.3418,0.16015 -0.084,0.10678 -0.12598,0.25228 -0.12598,0.43653 0,0.18359 0.042,0.32877 0.12598,0.43554 0.0846,0.10677 0.19857,0.16016 0.3418,0.16016 0.14322,0 0.2565,-0.0534 0.33984,-0.16016 0.084,-0.10677 0.12597,-0.25195 0.12598,-0.43554 -1e-5,-0.18425 -0.042,-0.32975 -0.12598,-0.43653 -0.0833,-0.10677 -0.19662,-0.16015 -0.33984,-0.16015 m 0,-0.16016 c 0.20442,0 0.36783,0.0687 0.49023,0.20606 0.12239,0.13672 0.18359,0.32031 0.18359,0.55078 0,0.22981 -0.0612,0.41341 -0.18359,0.55078 -0.1224,0.13672 -0.28581,0.20508 -0.49023,0.20508 -0.20508,0 -0.36915,-0.0684 -0.49219,-0.20508 -0.1224,-0.13672 -0.1836,-0.32031 -0.1836,-0.55078 0,-0.23047 0.0612,-0.41406 0.1836,-0.55078 0.12304,-0.13737 0.28711,-0.20606 0.49219,-0.20606" />
</g>
<g
id="text5124-0-5"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4320"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
d="m 516.10529,408.09613 0,0.82178 0.37207,0 c 0.13769,0 0.24414,-0.0357 0.31933,-0.10694 0.0752,-0.0713 0.11279,-0.17285 0.11279,-0.30468 0,-0.13086 -0.0376,-0.23194 -0.11279,-0.30323 -0.0752,-0.0713 -0.18164,-0.10693 -0.31933,-0.10693 l -0.37207,0 m -0.2959,-0.24316 0.66797,0 c 0.24511,0 0.43017,0.0557 0.55517,0.16699 0.12598,0.11035 0.18896,0.27246 0.18897,0.48633 -10e-6,0.21582 -0.063,0.3789 -0.18897,0.48925 -0.125,0.11036 -0.31006,0.16553 -0.55517,0.16553 l -0.37207,0 0,0.87891 -0.2959,0 0,-2.18701" />
<path
inkscape:connector-curvature="0"
id="path4322"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
d="m 517.42511,407.85297 0.29883,0 0.45996,1.84863 0.4585,-1.84863 0.33251,0 0.45997,1.84863 0.45849,-1.84863 0.30029,0 -0.54931,2.18701 -0.37207,0 -0.46143,-1.89844 -0.46582,1.89844 -0.37207,0 -0.54785,-2.18701" />
<path
inkscape:connector-curvature="0"
id="path4324"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
d="m 521.62189,409.01459 c 0.0635,0.0215 0.125,0.0674 0.18457,0.13769 0.0605,0.0703 0.12109,0.167 0.18164,0.29004 l 0.30029,0.59766 -0.31787,0 -0.27979,-0.56104 c -0.0723,-0.14648 -0.14257,-0.24365 -0.21093,-0.2915 -0.0674,-0.0478 -0.15967,-0.0718 -0.27686,-0.0718 l -0.32226,0 0,0.92432 -0.2959,0 0,-2.18701 0.66797,0 c 0.25,0 0.43652,0.0522 0.55957,0.15673 0.12304,0.1045 0.18457,0.26221 0.18457,0.47315 0,0.1377 -0.0322,0.25195 -0.0967,0.34277 -0.0635,0.0908 -0.15625,0.15381 -0.27832,0.18897 m -0.74121,-0.91846 0,0.77637 0.37207,0 c 0.14257,0 0.25,-0.0327 0.32226,-0.0981 0.0732,-0.0664 0.10986,-0.16357 0.10987,-0.2915 -10e-6,-0.12793 -0.0366,-0.22412 -0.10987,-0.28858 -0.0723,-0.0654 -0.17969,-0.0981 -0.32226,-0.0981 l -0.37207,0" />
<path
inkscape:connector-curvature="0"
id="path4326"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
d="m 517.12042,411.67474 0,0.28858 c -0.1123,-0.0537 -0.21826,-0.0937 -0.31787,-0.12012 -0.0996,-0.0264 -0.1958,-0.0396 -0.28857,-0.0396 -0.16114,0 -0.28565,0.0312 -0.37354,0.0937 -0.0869,0.0625 -0.13037,0.15137 -0.13037,0.2666 0,0.0967 0.0288,0.16992 0.0864,0.21973 0.0586,0.0488 0.16894,0.0884 0.33105,0.11865 l 0.17871,0.0366 c 0.2207,0.042 0.3833,0.11621 0.4878,0.22266 0.10546,0.10547 0.1582,0.24707 0.1582,0.4248 0,0.21192 -0.0713,0.37256 -0.21387,0.48194 -0.1416,0.10937 -0.34961,0.16406 -0.62402,0.16406 -0.10352,0 -0.21387,-0.0117 -0.33106,-0.0352 -0.11621,-0.0234 -0.23681,-0.0581 -0.36181,-0.104 l 0,-0.30469 c 0.12011,0.0674 0.23779,0.11817 0.35302,0.15234 0.11524,0.0342 0.22852,0.0513 0.33985,0.0513 0.16894,0 0.29931,-0.0332 0.39111,-0.0996 0.0918,-0.0664 0.13769,-0.16113 0.1377,-0.28417 -10e-6,-0.10743 -0.0332,-0.19141 -0.0996,-0.25196 -0.0654,-0.0605 -0.17334,-0.10595 -0.32373,-0.13623 l -0.18018,-0.0351 c -0.2207,-0.0439 -0.38037,-0.1128 -0.479,-0.20655 -0.0986,-0.0937 -0.14795,-0.22412 -0.14795,-0.39111 0,-0.19336 0.0679,-0.3457 0.20361,-0.45703 0.13672,-0.11133 0.32471,-0.16699 0.56397,-0.16699 0.10253,0 0.20703,0.009 0.31347,0.0278 0.10645,0.0186 0.21533,0.0464 0.32666,0.0835" />
<path
inkscape:connector-curvature="0"
id="path4328"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
d="m 519.10529,412.90228 0,0.13184 -1.23926,0 c 0.0117,0.18555 0.0674,0.32715 0.16699,0.4248 0.10059,0.0967 0.24023,0.14502 0.41895,0.14502 0.10351,0 0.20361,-0.0127 0.30029,-0.0381 0.0977,-0.0254 0.19433,-0.0635 0.29004,-0.11426 l 0,0.25488 c -0.0967,0.041 -0.1958,0.0723 -0.29737,0.0937 -0.10156,0.0215 -0.20459,0.0322 -0.30908,0.0322 -0.26172,0 -0.46924,-0.0762 -0.62256,-0.22852 -0.15234,-0.15234 -0.22851,-0.3584 -0.22851,-0.61816 0,-0.26855 0.0723,-0.48145 0.21679,-0.63867 0.14551,-0.1582 0.34131,-0.23731 0.58741,-0.23731 0.2207,0 0.39502,0.0713 0.52295,0.21387 0.1289,0.1416 0.19335,0.33447 0.19336,0.57861 m -0.26954,-0.0791 c -0.002,-0.14746 -0.0435,-0.26513 -0.12451,-0.35303 -0.0801,-0.0879 -0.18652,-0.13183 -0.31933,-0.13183 -0.15039,0 -0.271,0.0425 -0.36182,0.12744 -0.0898,0.085 -0.1416,0.20459 -0.15527,0.35889 l 0.96093,-10e-4" />
<path
inkscape:connector-curvature="0"
id="path4330"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
d="m 520.91144,412.79974 0,0.99024 -0.26953,0 0,-0.98145 c 0,-0.15527 -0.0303,-0.27148 -0.0908,-0.34863 -0.0606,-0.0772 -0.15137,-0.11572 -0.27246,-0.11572 -0.14551,0 -0.26026,0.0464 -0.34424,0.13916 -0.084,0.0928 -0.12598,0.21924 -0.12598,0.37939 l 0,0.92725 -0.271,0 0,-1.64063 0.271,0 0,0.25489 c 0.0644,-0.0986 0.14014,-0.17237 0.22705,-0.2212 0.0879,-0.0488 0.18897,-0.0732 0.30322,-0.0732 0.18848,0 0.33106,0.0586 0.42774,0.17578 0.0967,0.11622 0.14502,0.2876 0.14502,0.51416" />
<path
inkscape:connector-curvature="0"
id="path4332"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
d="m 522.49786,412.19769 0,0.25489 c -0.0762,-0.0391 -0.15527,-0.0684 -0.2373,-0.0879 -0.082,-0.0195 -0.16699,-0.0293 -0.25488,-0.0293 -0.13379,0 -0.23438,0.0205 -0.30176,0.0615 -0.0664,0.041 -0.0996,0.10254 -0.0996,0.18457 0,0.0625 0.0239,0.11182 0.0718,0.14795 0.0478,0.0352 0.14404,0.0688 0.28857,0.10108 l 0.0923,0.0205 c 0.1914,0.041 0.32714,0.0991 0.40722,0.17432 0.0811,0.0742 0.12158,0.17822 0.12158,0.31201 0,0.15235 -0.0605,0.27295 -0.18164,0.36182 -0.12011,0.0889 -0.28564,0.1333 -0.49658,0.1333 -0.0879,0 -0.17969,-0.009 -0.27539,-0.0264 -0.0947,-0.0166 -0.19482,-0.042 -0.30029,-0.0762 l 0,-0.27832 c 0.0996,0.0518 0.19775,0.0908 0.29443,0.11719 0.0967,0.0254 0.19238,0.0381 0.28711,0.0381 0.12695,0 0.22461,-0.0215 0.29297,-0.0645 0.0684,-0.0439 0.10254,-0.10547 0.10254,-0.18457 0,-0.0732 -0.0249,-0.12939 -0.0747,-0.16846 -0.0488,-0.0391 -0.15674,-0.0767 -0.32373,-0.11279 l -0.0937,-0.022 c -0.16699,-0.0352 -0.2876,-0.0889 -0.36181,-0.16114 -0.0742,-0.0732 -0.11133,-0.17334 -0.11133,-0.30029 0,-0.15429 0.0547,-0.27344 0.16406,-0.35742 0.10937,-0.084 0.26465,-0.12598 0.46582,-0.12598 0.0996,0 0.19336,0.007 0.28125,0.022 0.0879,0.0146 0.16894,0.0366 0.24316,0.0659" />
<path
inkscape:connector-curvature="0"
id="path4334"
style="font-size:3px;writing-mode:lr-tb;fill:#ffffff"
d="m 524.41974,412.90228 0,0.13184 -1.23926,0 c 0.0117,0.18555 0.0674,0.32715 0.16699,0.4248 0.10059,0.0967 0.24024,0.14502 0.41895,0.14502 0.10351,0 0.20361,-0.0127 0.30029,-0.0381 0.0977,-0.0254 0.19434,-0.0635 0.29004,-0.11426 l 0,0.25488 c -0.0967,0.041 -0.1958,0.0723 -0.29736,0.0937 -0.10157,0.0215 -0.20459,0.0322 -0.30908,0.0322 -0.26172,0 -0.46924,-0.0762 -0.62256,-0.22852 -0.15235,-0.15234 -0.22852,-0.3584 -0.22852,-0.61816 0,-0.26855 0.0723,-0.48145 0.2168,-0.63867 0.14551,-0.1582 0.34131,-0.23731 0.5874,-0.23731 0.2207,0 0.39502,0.0713 0.52295,0.21387 0.1289,0.1416 0.19336,0.33447 0.19336,0.57861 m -0.26953,-0.0791 c -0.002,-0.14746 -0.0435,-0.26513 -0.12451,-0.35303 -0.0801,-0.0879 -0.18653,-0.13183 -0.31934,-0.13183 -0.15039,0 -0.271,0.0425 -0.36182,0.12744 -0.0898,0.085 -0.1416,0.20459 -0.15527,0.35889 l 0.96094,-10e-4" />
</g>
<g
id="text4548-2-7"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4303"
style="font-size:4px;fill:#ffffff"
d="m 31.543343,65.534691 -0.535157,1.451172 1.072266,0 -0.537109,-1.451172 m -0.222657,-0.388672 0.447266,0 1.111328,2.916016 -0.410156,0 -0.265625,-0.748047 -1.314453,0 -0.265625,0.748047 -0.416016,0 1.113281,-2.916016" />
<path
inkscape:connector-curvature="0"
id="path4305"
style="font-size:4px;fill:#ffffff"
d="m 33.697639,65.470238 0,2.267578 0.476563,0 c 0.402342,0 0.696613,-0.09115 0.882812,-0.273438 0.187498,-0.182291 0.281248,-0.470051 0.28125,-0.863281 -2e-6,-0.390623 -0.09375,-0.67643 -0.28125,-0.857422 -0.186199,-0.182289 -0.48047,-0.273435 -0.882812,-0.273437 l -0.476563,0 m -0.394531,-0.324219 0.810547,0 c 0.565102,3e-6 0.979816,0.117841 1.244141,0.353516 0.26432,0.234377 0.396481,0.601564 0.396484,1.101562 -3e-6,0.502605 -0.132815,0.871745 -0.398437,1.107422 -0.265628,0.235677 -0.67969,0.353516 -1.242188,0.353516 l -0.810547,0 0,-2.916016" />
<path
inkscape:connector-curvature="0"
id="path4307"
style="font-size:4px;fill:#ffffff"
d="m 38.564827,65.370628 0,0.416016 C 38.432012,65.662948 38.290085,65.570501 38.139046,65.5093 37.989304,65.44811 37.829799,65.41751 37.66053,65.4175 c -0.333335,3e-6 -0.588543,0.102216 -0.765625,0.306641 -0.177084,0.203127 -0.265626,0.497398 -0.265625,0.882812 -1e-6,0.384116 0.08854,0.678387 0.265625,0.882813 0.177082,0.203125 0.43229,0.304688 0.765625,0.304687 0.169269,10e-7 0.328774,-0.0306 0.478516,-0.0918 0.151039,-0.0612 0.292966,-0.153646 0.425781,-0.277344 l 0,0.412109 c -0.138023,0.09375 -0.284508,0.164063 -0.439453,0.210938 -0.153648,0.04687 -0.316408,0.07031 -0.488281,0.07031 -0.441408,0 -0.789064,-0.134765 -1.042969,-0.404297 -0.253907,-0.270832 -0.38086,-0.639973 -0.38086,-1.107422 0,-0.468748 0.126953,-0.837888 0.38086,-1.107421 0.253905,-0.270831 0.601561,-0.406247 1.042969,-0.40625 0.174477,3e-6 0.338539,0.02344 0.492187,0.07031 0.154946,0.04558 0.300128,0.114586 0.435547,0.207031" />
<path
inkscape:connector-curvature="0"
id="path4309"
style="font-size:4px;fill:#ffffff"
d="m 40.451546,65.146019 0.394531,0 0,2.916016 -0.394531,0 0,-2.916016" />
<path
inkscape:connector-curvature="0"
id="path4311"
style="font-size:4px;fill:#ffffff"
d="m 43.433968,66.741722 0,1.320313 -0.359375,0 0,-1.308594 c -2e-6,-0.20703 -0.04037,-0.361978 -0.121094,-0.464844 -0.08073,-0.102863 -0.201825,-0.154295 -0.363281,-0.154297 -0.194012,2e-6 -0.347007,0.06185 -0.458985,0.185547 -0.11198,0.1237 -0.167969,0.292319 -0.167969,0.505859 l 0,1.236329 -0.361328,0 0,-2.1875 0.361328,0 0,0.339843 c 0.08594,-0.131508 0.186849,-0.229815 0.302735,-0.294922 0.117186,-0.0651 0.251952,-0.09765 0.404297,-0.09766 0.2513,2e-6 0.441404,0.07813 0.570312,0.234375 0.128904,0.15495 0.193357,0.383465 0.19336,0.685547" />
</g>
<g
id="text4842-6"
style="font-size:39.24139404px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="scale(1.0193318,0.98103488)">
<path
inkscape:connector-curvature="0"
id="path4035"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 11.282518,23.899893 0,0.377468 c -0.146901,-0.07025 -0.285498,-0.122627 -0.41579,-0.157119 -0.130295,-0.03449 -0.256118,-0.05173 -0.377468,-0.05173 -0.21077,3e-6 -0.373637,0.04088 -0.488602,0.122629 -0.1136879,0.08176 -0.1705316,0.197998 -0.170531,0.348728 -6e-7,0.126463 0.037682,0.222267 0.113049,0.287412 0.076642,0.06387 0.220987,0.115606 0.433035,0.155203 l 0.233762,0.0479 c 0.288688,0.05493 0.501373,0.152011 0.638056,0.291245 0.137956,0.137959 0.206935,0.32318 0.206937,0.555664 -2e-6,0.277194 -0.09325,0.487324 -0.279748,0.630392 -0.185223,0.143067 -0.457307,0.214601 -0.816252,0.214601 -0.135404,0 -0.279749,-0.01533 -0.4330348,-0.04599 -0.1520099,-0.03066 -0.3097673,-0.076 -0.4732727,-0.136042 l 0,-0.398545 c 0.1571185,0.08814 0.3110437,0.154564 0.4617762,0.199272 0.1507313,0.04471 0.2989083,0.06706 0.4445313,0.06706 0.220987,0 0.391518,-0.04343 0.511594,-0.130293 0.120073,-0.08686 0.18011,-0.210769 0.180112,-0.371721 -2e-6,-0.140512 -0.04343,-0.250367 -0.130293,-0.329566 -0.08559,-0.0792 -0.226738,-0.138596 -0.423455,-0.178196 l -0.235678,-0.04599 C 9.9725551,25.294803 9.7637022,25.204747 9.6346865,25.082116 9.5056698,24.959489 9.4411618,24.788957 9.441162,24.570522 c -2e-7,-0.252921 0.088778,-0.452193 0.2663357,-0.597818 0.1788337,-0.14562 0.4247313,-0.218431 0.7376923,-0.218434 0.134124,3e-6 0.270805,0.01214 0.410042,0.03641 0.139233,0.02427 0.281662,0.06068 0.427286,0.109217" />
<path
inkscape:connector-curvature="0"
id="path4037"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 11.426225,30.073514 0,0.172448 -1.621007,0 c 0.015328,0.242705 0.088139,0.427926 0.218434,0.555664 0.13157,0.126462 0.314236,0.189693 0.547999,0.189692 0.135402,1e-6 0.266334,-0.0166 0.392798,-0.04982 0.127737,-0.03321 0.254198,-0.08303 0.379384,-0.149454 l 0,0.333398 c -0.126463,0.05365 -0.256118,0.09453 -0.388965,0.12263 -0.13285,0.0281 -0.267614,0.04215 -0.404293,0.04215 -0.342342,-1e-6 -0.6137867,-0.09964 -0.814336,-0.29891 -0.1992731,-0.199272 -0.2989093,-0.468801 -0.2989091,-0.808587 -2e-7,-0.35128 0.094527,-0.629751 0.2835804,-0.835412 0.1903303,-0.206935 0.4464467,-0.310404 0.7683497,-0.310406 0.288688,2e-6 0.516702,0.09325 0.684042,0.279748 0.168613,0.185223 0.252921,0.437508 0.252923,0.756853 m -0.35256,-0.103468 c -0.0026,-0.192884 -0.05685,-0.34681 -0.162867,-0.461776 -0.104747,-0.114964 -0.243982,-0.172446 -0.417706,-0.172448 -0.196719,2e-6 -0.354476,0.05557 -0.473273,0.166699 -0.1175201,0.111135 -0.1852217,0.267615 -0.2031045,0.469441 l 1.2569505,-0.0019" />
<path
inkscape:connector-curvature="0"
id="path4039"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 11.2327,33.986157 c -0.0396,-0.02299 -0.08303,-0.0396 -0.130293,-0.04982 -0.04599,-0.01149 -0.09708,-0.01724 -0.153287,-0.01724 -0.199274,2e-6 -0.35256,0.06515 -0.45986,0.195441 -0.106024,0.129018 -0.159036,0.314878 -0.159035,0.55758 l 0,1.13049 -0.3544756,0 0,-2.146014 0.3544756,0 0,0.333398 c 0.07409,-0.130291 0.17053,-0.226734 0.289329,-0.289328 0.118796,-0.06387 0.26314,-0.0958 0.433034,-0.0958 0.02427,2e-6 0.0511,0.0019 0.08048,0.0057 0.02938,0.0026 0.06195,0.007 0.09772,0.01341 l 0.0019,0.36214" />
<path
inkscape:connector-curvature="0"
id="path4041"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 9.3836795,38.224534 0.3736363,0 0.6706292,1.801119 0.670629,-1.801119 0.373637,0 -0.804755,2.146014 -0.479021,0 -0.8047555,-2.146014" />
<path
inkscape:connector-curvature="0"
id="path4043"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 10.429861,43.039653 c -0.189054,2e-6 -0.338509,0.07409 -0.4483633,0.222266 -0.1098561,0.146901 -0.1647838,0.348728 -0.1647832,0.605482 -6e-7,0.256756 0.054288,0.459222 0.1628671,0.607399 0.1098544,0.1469 0.2599474,0.220349 0.4502794,0.220349 0.187775,0 0.336591,-0.07409 0.446448,-0.222266 0.109853,-0.148176 0.164781,-0.350003 0.164783,-0.605482 -2e-6,-0.254199 -0.05493,-0.455388 -0.164783,-0.603566 -0.109857,-0.149453 -0.258673,-0.22418 -0.446448,-0.224182 m 0,-0.298909 c 0.306572,2e-6 0.54736,0.09964 0.722364,0.298909 0.175,0.199274 0.262501,0.47519 0.262503,0.827748 -2e-6,0.351283 -0.0875,0.627199 -0.262503,0.827748 -0.175004,0.199273 -0.415792,0.298909 -0.722364,0.298909 -0.307851,0 -0.5492777,-0.09964 -0.7242794,-0.298909 C 9.5318564,44.4946 9.444994,44.218684 9.4449942,43.867401 c -2e-7,-0.352558 0.086862,-0.628474 0.2605874,-0.827748 0.1750017,-0.199271 0.4164284,-0.298907 0.7242794,-0.298909" />
<path
inkscape:connector-curvature="0"
id="path4045"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 10.429861,51.476169 c -0.281027,3e-6 -0.5045695,0.104749 -0.6706291,0.314238 -0.1647839,0.209494 -0.2471754,0.49499 -0.2471748,0.85649 -6e-7,0.360224 0.082391,0.645082 0.2471748,0.854573 0.1660596,0.209492 0.3896021,0.314238 0.6706291,0.314238 0.281024,0 0.503289,-0.104746 0.666797,-0.314238 0.164781,-0.209491 0.247173,-0.494349 0.247175,-0.854573 -2e-6,-0.3615 -0.08239,-0.646996 -0.247175,-0.85649 -0.163508,-0.209489 -0.385773,-0.314235 -0.666797,-0.314238 m 0,-0.314237 c 0.401098,3e-6 0.721723,0.134767 0.961874,0.404293 0.240147,0.268254 0.360221,0.628478 0.360224,1.080672 -3e-6,0.450919 -0.120077,0.811142 -0.360224,1.080671 -0.240151,0.268252 -0.560776,0.402377 -0.961874,0.402377 -0.402379,0 -0.7242803,-0.134125 -0.965706,-0.402377 -0.2401495,-0.268251 -0.360224,-0.628475 -0.3602237,-1.080671 -3e-7,-0.452194 0.1200742,-0.812418 0.3602237,-1.080672 0.2414257,-0.269526 0.563327,-0.40429 0.965706,-0.404293" />
<path
inkscape:connector-curvature="0"
id="path4047"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 9.5158893,57.795414 0,-1.299105 0.3525594,0 0,1.285692 c -7e-7,0.203105 0.039598,0.355753 0.1187972,0.457944 0.079197,0.100914 0.1979941,0.151371 0.3563911,0.151371 0.19033,0 0.340423,-0.06068 0.45028,-0.182028 0.111131,-0.121352 0.166698,-0.286774 0.166699,-0.496266 l 0,-1.216713 0.35256,0 0,2.146014 -0.35256,0 0,-0.329567 c -0.08559,0.130294 -0.185223,0.227376 -0.298909,0.291245 -0.112411,0.06259 -0.243344,0.09389 -0.392797,0.09389 -0.246537,0 -0.4336741,-0.07664 -0.5614123,-0.22993 -0.1277394,-0.153288 -0.1916088,-0.37747 -0.1916084,-0.672547 m 0.8871467,-1.35084 0,0" />
<path
inkscape:connector-curvature="0"
id="path4049"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 10.376211,60.454938 0,0.609314 0.726196,0 0,0.274 -0.726196,0 0,1.164979 c -10e-7,0.175003 0.02363,0.287413 0.0709,0.337231 0.04854,0.04982 0.14626,0.07473 0.293161,0.07473 l 0.36214,0 0,0.295077 -0.36214,0 c -0.272085,0 -0.459861,-0.05046 -0.563329,-0.151371 -0.103469,-0.10219 -0.155203,-0.287412 -0.155203,-0.555664 l 0,-1.164979 -0.2586709,0 0,-0.274 0.2586709,0 0,-0.609314 0.354476,0" />
<path
inkscape:connector-curvature="0"
id="path4051"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 9.8933578,67.456308 0,1.138153 -0.3544755,0 0,-2.962265 0.3544755,0 0,0.325734 c 0.074088,-0.127737 0.1673372,-0.222264 0.2797482,-0.28358 0.113687,-0.06259 0.24909,-0.09389 0.40621,-0.09389 0.260585,2e-6 0.471993,0.10347 0.634223,0.310405 0.163504,0.206939 0.245257,0.479023 0.245259,0.816252 -2e-6,0.337231 -0.08175,0.609315 -0.245259,0.816252 -0.16223,0.206937 -0.373638,0.310405 -0.634223,0.310405 -0.15712,0 -0.292523,-0.03066 -0.40621,-0.09197 -0.112411,-0.06259 -0.2056604,-0.157757 -0.2797482,-0.285496 m 1.1994682,-0.749189 c -2e-6,-0.259309 -0.05365,-0.462413 -0.160951,-0.609315 -0.106025,-0.148175 -0.252286,-0.222264 -0.438783,-0.222265 -0.1865,10e-7 -0.3334,0.07409 -0.440699,0.222265 -0.1060243,0.146902 -0.1590359,0.350006 -0.1590352,0.609315 -7e-7,0.259311 0.053011,0.463054 0.1590352,0.611231 0.107299,0.1469 0.254199,0.220349 0.440699,0.220349 0.186497,0 0.332758,-0.07345 0.438783,-0.220349 0.107299,-0.148177 0.160949,-0.35192 0.160951,-0.611231" />
<path
inkscape:connector-curvature="0"
id="path4053"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 9.5158893,71.499244 0,-1.299105 0.3525594,0 0,1.285693 c -7e-7,0.203105 0.039598,0.355753 0.1187972,0.457944 0.079197,0.100914 0.1979941,0.151371 0.3563911,0.15137 0.19033,10e-7 0.340423,-0.06068 0.45028,-0.182028 0.111131,-0.121351 0.166698,-0.286773 0.166699,-0.496265 l 0,-1.216714 0.35256,0 0,2.146014 -0.35256,0 0,-0.329566 c -0.08559,0.130294 -0.185223,0.227375 -0.298909,0.291245 -0.112411,0.06259 -0.243344,0.09389 -0.392797,0.09389 -0.246537,0 -0.4336741,-0.07664 -0.5614123,-0.22993 -0.1277394,-0.153289 -0.1916088,-0.37747 -0.1916084,-0.672548 m 0.8871467,-1.350839 0,0" />
<path
inkscape:connector-curvature="0"
id="path4055"
style="font-size:3.9241395px;writing-mode:tb-rl;fill:#ffffff"
d="m 10.376211,74.158768 0,0.609315 0.726196,0 0,0.274 -0.726196,0 0,1.164979 c -10e-7,0.175003 0.02363,0.287413 0.0709,0.337231 0.04854,0.04982 0.14626,0.07473 0.293161,0.07473 l 0.36214,0 0,0.295077 -0.36214,0 c -0.272085,0 -0.459861,-0.05046 -0.563329,-0.151371 -0.103469,-0.102191 -0.155203,-0.287412 -0.155203,-0.555664 l 0,-1.164979 -0.2586709,0 0,-0.274 0.2586709,0 0,-0.609315 0.354476,0" />
</g>
<rect
y="366.52393"
x="500.23694"
height="5.9022241"
width="5.3263974"
id="rect4552-0-3"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-2-1"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4058"
style="font-size:4px;fill:#ffffff"
d="m 502.01331,370.49521 0.64453,0 0,-2.22461 -0.70117,0.14062 0,-0.35937 0.69726,-0.14063 0.39453,0 0,2.58399 0.64453,0 0,0.33203 -1.67968,0 0,-0.33203" />
</g>
<rect
y="373.38257"
x="500.23694"
height="5.9022241"
width="5.3263974"
id="rect4552-09-3"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-0-4"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4032"
style="font-size:4px;fill:#ffffff"
d="m 502.28479,377.35385 1.37695,0 0,0.33203 -1.85156,0 0,-0.33203 c 0.14974,-0.15495 0.35352,-0.36263 0.61133,-0.62305 0.25911,-0.26171 0.42187,-0.43033 0.48828,-0.50585 0.1263,-0.14193 0.21419,-0.26172 0.26367,-0.35938 0.0508,-0.099 0.0762,-0.19596 0.0762,-0.29102 0,-0.15494 -0.0547,-0.28124 -0.16406,-0.3789 -0.10807,-0.0977 -0.24935,-0.14648 -0.42383,-0.14649 -0.1237,1e-5 -0.25456,0.0215 -0.39257,0.0645 -0.13672,0.043 -0.28321,0.10807 -0.43946,0.19531 l 0,-0.39844 c 0.15886,-0.0638 0.30729,-0.11197 0.44531,-0.14453 0.13802,-0.0326 0.26433,-0.0488 0.37891,-0.0488 0.30208,1e-5 0.54297,0.0755 0.72266,0.22657 0.17968,0.15104 0.26953,0.35286 0.26953,0.60546 0,0.1198 -0.0228,0.23373 -0.0684,0.3418 -0.0443,0.10677 -0.12565,0.23308 -0.24414,0.37891 -0.0326,0.0378 -0.13607,0.14713 -0.31055,0.32812 -0.17448,0.17969 -0.42057,0.43164 -0.73828,0.75586" />
</g>
<rect
y="380.24118"
x="500.23694"
height="5.9022241"
width="5.3263974"
id="rect4552-3-8"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-8-74"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4029"
style="font-size:4px;fill:#ffffff"
d="m 503.14026,382.97223 c 0.1888,0.0404 0.33593,0.12435 0.44141,0.25195 0.10676,0.12761 0.16015,0.28516 0.16015,0.47266 0,0.28776 -0.099,0.51042 -0.29687,0.66797 -0.19792,0.15755 -0.47917,0.23633 -0.84375,0.23633 -0.1224,0 -0.2487,-0.0124 -0.37891,-0.0371 -0.12891,-0.0234 -0.26237,-0.0593 -0.40039,-0.10743 l 0,-0.38086 c 0.10937,0.0638 0.22917,0.11198 0.35937,0.14454 0.13021,0.0326 0.26628,0.0488 0.40821,0.0488 0.24739,0 0.43554,-0.0488 0.56445,-0.14648 0.13021,-0.0977 0.19531,-0.23958 0.19531,-0.42578 0,-0.17188 -0.0606,-0.30599 -0.18164,-0.40235 -0.11979,-0.0976 -0.28711,-0.14648 -0.50195,-0.14648 l -0.33984,0 0,-0.32422 0.35546,0 c 0.19401,0 0.34245,-0.0384 0.44532,-0.11523 0.10286,-0.0781 0.15429,-0.19011 0.15429,-0.33594 0,-0.14974 -0.0534,-0.26432 -0.16015,-0.34375 -0.10547,-0.0807 -0.25717,-0.12109 -0.45508,-0.12109 -0.10807,0 -0.22396,0.0117 -0.34766,0.0351 -0.1237,0.0234 -0.25976,0.0599 -0.4082,0.10938 l 0,-0.35157 c 0.14974,-0.0417 0.28971,-0.0729 0.41992,-0.0937 0.13151,-0.0208 0.25521,-0.0312 0.3711,-0.0312 0.29947,10e-6 0.53645,0.0684 0.71093,0.20508 0.17448,0.13542 0.26172,0.31902 0.26172,0.55078 0,0.16146 -0.0462,0.29818 -0.13867,0.41016 -0.0924,0.11068 -0.22396,0.1875 -0.39453,0.23047" />
</g>
<rect
y="387.09979"
x="500.23694"
height="5.9022241"
width="5.3263974"
id="rect4552-6-7"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-06-9"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4026"
style="font-size:4px;fill:#ffffff"
d="m 503.02893,388.83084 -0.99609,1.55664 0.99609,0 0,-1.55664 m -0.10351,-0.34375 0.49609,0 0,1.90039 0.41601,0 0,0.32813 -0.41601,0 0,0.6875 -0.39258,0 0,-0.6875 -1.31641,0 0,-0.38086 1.2129,-1.84766" />
</g>
<rect
y="393.9584"
x="500.23694"
height="5.9022241"
width="5.3263974"
id="rect4552-49-9"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-6-8"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4023"
style="font-size:4px;fill:#ffffff"
d="m 501.94885,395.3457 1.54883,0 0,0.33203 -1.1875,0 0,0.71485 c 0.0573,-0.0195 0.11458,-0.0339 0.17188,-0.043 0.0573,-0.0104 0.11458,-0.0156 0.17187,-0.0156 0.32552,10e-6 0.58333,0.0892 0.77344,0.26758 0.1901,0.17839 0.28515,0.41993 0.28515,0.72461 0,0.3138 -0.0976,0.55794 -0.29296,0.73242 -0.19532,0.17318 -0.47071,0.25977 -0.82618,0.25977 -0.12239,0 -0.24739,-0.0104 -0.375,-0.0312 -0.1263,-0.0208 -0.25716,-0.0521 -0.39257,-0.0937 l 0,-0.39649 c 0.11718,0.0638 0.23828,0.11133 0.36328,0.14258 0.125,0.0312 0.25716,0.0469 0.39648,0.0469 0.22526,0 0.40365,-0.0593 0.53516,-0.17774 0.13151,-0.11849 0.19726,-0.27929 0.19726,-0.48242 0,-0.20312 -0.0658,-0.36393 -0.19726,-0.48242 -0.13151,-0.11849 -0.3099,-0.17773 -0.53516,-0.17773 -0.10547,0 -0.21094,0.0117 -0.3164,0.0351 -0.10417,0.0234 -0.21094,0.0599 -0.32032,0.10938 l 0,-1.46485" />
</g>
<rect
y="400.81705"
x="500.23694"
height="5.9022241"
width="5.3263974"
id="rect4552-2-8"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-9-6"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4020"
style="font-size:4px;fill:#ffffff"
d="m 502.83752,403.50513 c -0.17708,0 -0.3177,0.0605 -0.42187,0.18164 -0.10287,0.12109 -0.1543,0.28711 -0.1543,0.49804 0,0.20964 0.0514,0.37566 0.1543,0.49805 0.10417,0.1211 0.24479,0.18164 0.42187,0.18164 0.17709,0 0.31706,-0.0605 0.41993,-0.18164 0.10416,-0.12239 0.15624,-0.28841 0.15625,-0.49805 -1e-5,-0.21093 -0.0521,-0.37695 -0.15625,-0.49804 -0.10287,-0.12109 -0.24284,-0.18164 -0.41993,-0.18164 m 0.78321,-1.23633 0,0.35937 c -0.099,-0.0469 -0.19922,-0.0827 -0.30078,-0.10742 -0.10027,-0.0247 -0.19988,-0.0371 -0.29883,-0.0371 -0.26042,10e-6 -0.45964,0.0879 -0.59766,0.26367 -0.13672,0.17579 -0.21484,0.44141 -0.23437,0.79688 0.0768,-0.11328 0.17317,-0.19987 0.28906,-0.25977 0.11588,-0.0612 0.24349,-0.0918 0.38281,-0.0918 0.29297,0 0.52409,0.0892 0.69336,0.26758 0.17057,0.17708 0.25586,0.41862 0.25586,0.7246 0,0.29948 -0.0885,0.53972 -0.26562,0.72071 -0.17709,0.18099 -0.41277,0.27148 -0.70704,0.27148 -0.33724,0 -0.59505,-0.1289 -0.77343,-0.38672 -0.17839,-0.25911 -0.26758,-0.63411 -0.26758,-1.125 0,-0.46093 0.10937,-0.82812 0.32812,-1.10156 0.21875,-0.27474 0.51237,-0.41211 0.88086,-0.41211 0.099,0 0.19857,0.01 0.29883,0.0293 0.10156,0.0195 0.20703,0.0488 0.31641,0.0879" />
</g>
<rect
y="407.67563"
x="500.23694"
height="5.9022241"
width="5.3263974"
id="rect4552-9-4"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-84-8"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4017"
style="font-size:4px;fill:#ffffff"
d="m 501.84534,409.06293 1.875,0 0,0.16797 -1.0586,2.74804 -0.41211,0 0.9961,-2.58398 -1.40039,0 0,-0.33203" />
</g>
<rect
y="414.53427"
x="500.23694"
height="5.9022241"
width="5.3263974"
id="rect4552-5-0"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-4-90"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4014"
style="font-size:4px;fill:#ffffff"
d="m 502.7887,417.45282 c -0.1875,0 -0.33529,0.0501 -0.44336,0.15039 -0.10677,0.10026 -0.16016,0.23828 -0.16016,0.41406 0,0.17578 0.0534,0.31381 0.16016,0.41407 0.10807,0.10026 0.25586,0.15039 0.44336,0.15039 0.18749,0 0.33528,-0.0501 0.44336,-0.15039 0.10807,-0.10157 0.1621,-0.23959 0.16211,-0.41407 -10e-6,-0.17578 -0.054,-0.3138 -0.16211,-0.41406 -0.10678,-0.10026 -0.25456,-0.15039 -0.44336,-0.15039 m -0.39453,-0.16797 c -0.16928,-0.0417 -0.30144,-0.12044 -0.39649,-0.23633 -0.0937,-0.11588 -0.14062,-0.25716 -0.14062,-0.42383 0,-0.23307 0.0827,-0.41731 0.24804,-0.55273 0.16667,-0.13541 0.39453,-0.20312 0.6836,-0.20312 0.29036,0 0.51822,0.0677 0.68359,0.20312 0.16536,0.13542 0.24804,0.31966 0.24805,0.55273 -1e-5,0.16667 -0.0475,0.30795 -0.14258,0.42383 -0.0937,0.11589 -0.22461,0.19467 -0.39258,0.23633 0.1901,0.0443 0.33789,0.13086 0.44336,0.25977 0.10677,0.1289 0.16015,0.28646 0.16016,0.47265 -1e-5,0.28256 -0.0866,0.49935 -0.25977,0.65039 -0.17188,0.15105 -0.41862,0.22657 -0.74023,0.22657 -0.32162,0 -0.56901,-0.0755 -0.74219,-0.22657 -0.17188,-0.15104 -0.25781,-0.36783 -0.25781,-0.65039 0,-0.18619 0.0534,-0.34375 0.16015,-0.47265 0.10677,-0.12891 0.25521,-0.2155 0.44532,-0.25977 m -0.14454,-0.62305 c 0,0.15105 0.0469,0.26889 0.14063,0.35352 0.0951,0.0846 0.22786,0.12695 0.39844,0.12695 0.16927,0 0.30143,-0.0423 0.39648,-0.12695 0.0963,-0.0846 0.14453,-0.20247 0.14453,-0.35352 0,-0.15104 -0.0482,-0.26887 -0.14453,-0.35351 -0.0951,-0.0846 -0.22721,-0.12695 -0.39648,-0.12695 -0.17058,0 -0.30339,0.0423 -0.39844,0.12695 -0.0937,0.0846 -0.14063,0.20247 -0.14063,0.35351" />
</g>
<rect
y="417.05634"
x="544.98993"
height="4.2557931"
width="3.8405941"
id="rect4552-38-2-7"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-01-6-4"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4282"
style="font-size:2.88419628px;fill:#ffffff"
d="m 546.27079,419.91983 0.46474,0 0,-1.60405 -0.50558,0.10139 0,-0.25912 0.50277,-0.1014 0.28447,0 0,1.86318 0.46474,0 0,0.23941 -1.21114,0 0,-0.23941" />
</g>
<rect
y="416.46304"
x="537.50421"
height="4.2557931"
width="3.8405941"
id="rect4552-38-2-7-7-5"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-01-6-4-1-76"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4294"
style="font-size:2.88419628px;fill:#ffffff"
d="m 539.59766,418.43227 c 0.13614,0.0291 0.24223,0.0897 0.31828,0.18167 0.077,0.092 0.11548,0.20561 0.11548,0.34081 0,0.20749 -0.0714,0.36803 -0.21406,0.48163 -0.14271,0.11361 -0.3455,0.17041 -0.60839,0.17041 -0.0883,0 -0.17932,-0.009 -0.27321,-0.0268 -0.0929,-0.0169 -0.18918,-0.0427 -0.2887,-0.0774 l 0,-0.27462 c 0.0789,0.046 0.16524,0.0807 0.25913,0.10421 0.0939,0.0235 0.192,0.0352 0.29433,0.0352 0.17839,0 0.31405,-0.0352 0.407,-0.10562 0.0939,-0.0704 0.14083,-0.17275 0.14083,-0.30701 0,-0.12393 -0.0437,-0.22064 -0.13097,-0.29011 -0.0864,-0.0704 -0.20702,-0.10562 -0.36193,-0.10563 l -0.24505,0 0,-0.23377 0.25631,0 c 0.13989,0 0.24693,-0.0277 0.3211,-0.0831 0.0742,-0.0563 0.11125,-0.13708 0.11125,-0.24223 0,-0.10797 -0.0385,-0.19059 -0.11548,-0.24786 -0.0761,-0.0582 -0.18543,-0.0873 -0.32813,-0.0873 -0.0779,10e-6 -0.16149,0.008 -0.25068,0.0254 -0.0892,0.0169 -0.1873,0.0432 -0.29433,0.0789 l 0,-0.25349 c 0.10797,-0.0301 0.20889,-0.0526 0.30278,-0.0676 0.0948,-0.015 0.18402,-0.0225 0.26758,-0.0225 0.21594,1e-5 0.38681,0.0493 0.51262,0.14788 0.1258,0.0976 0.18871,0.23002 0.18871,0.39714 0,0.11642 -0.0333,0.215 -0.1,0.29574 -0.0667,0.0798 -0.16149,0.1352 -0.28448,0.16618" />
</g>
<rect
y="416.46304"
x="532.56604"
height="4.2557931"
width="3.8405941"
id="rect4552-38-2-7-7-23"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-01-6-4-1-2"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4297"
style="font-size:2.88419628px;fill:#ffffff"
d="m 534.0426,419.32654 0.99285,0 0,0.23941 -1.33507,0 0,-0.23941 c 0.10797,-0.11173 0.2549,-0.26148 0.4408,-0.44925 0.18683,-0.18871 0.30419,-0.31029 0.35207,-0.36475 0.0911,-0.10233 0.15445,-0.18871 0.19012,-0.25913 0.0366,-0.0713 0.0549,-0.14129 0.0549,-0.20983 0,-0.11173 -0.0394,-0.2028 -0.1183,-0.27321 -0.0779,-0.0704 -0.17979,-0.10562 -0.3056,-0.10563 -0.0892,1e-5 -0.18355,0.0155 -0.28307,0.0465 -0.0986,0.031 -0.2042,0.0779 -0.31687,0.14083 l 0,-0.28729 c 0.11454,-0.046 0.22158,-0.0807 0.3211,-0.10422 0.0995,-0.0235 0.19058,-0.0352 0.27321,-0.0352 0.21781,10e-6 0.3915,0.0545 0.52107,0.16337 0.12956,0.10891 0.19434,0.25443 0.19434,0.43657 0,0.0864 -0.0164,0.16853 -0.0493,0.24645 -0.0319,0.077 -0.0906,0.16806 -0.17604,0.27321 -0.0235,0.0272 -0.0981,0.10609 -0.22392,0.2366 -0.1258,0.12956 -0.30325,0.31123 -0.53233,0.54501" />
</g>
<rect
y="416.46304"
x="527.62781"
height="4.2557931"
width="3.8405941"
id="rect4552-38-2-7-7-2"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-01-6-4-1-7"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4300"
style="font-size:2.88419628px;fill:#ffffff"
d="m 528.90867,419.32654 0.46474,0 0,-1.60405 -0.50558,0.10139 0,-0.25912 0.50276,-0.1014 0.28448,0 0,1.86318 0.46474,0 0,0.23941 -1.21114,0 0,-0.23941" />
</g>
<rect
y="416.40854"
x="515.29425"
height="4.2557931"
width="3.8405941"
id="rect4552-38-2-7-7-2-9"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-01-6-4-1-7-2"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4317"
style="font-size:2.88419628px;fill:#ffffff"
d="m 516.57512,419.272 0.46473,0 0,-1.60405 -0.50558,0.1014 0,-0.25913 0.50277,-0.1014 0.28447,0 0,1.86318 0.46474,0 0,0.23941 -1.21113,0 0,-0.23941" />
</g>
<rect
y="416.40851"
x="520.23248"
height="4.2557931"
width="3.8405941"
id="rect4552-38-2-7-7-23-5"
style="fill:none;stroke:#ffffff;stroke-width:0.20950167;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
transform="translate(-497.66563,-344.28037)" />
<g
id="text4554-01-6-4-1-2-4"
style="font-size:28.84196281px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
transform="translate(-497.66563,-344.28037)">
<path
inkscape:connector-curvature="0"
id="path4314"
style="font-size:2.88419628px;fill:#ffffff"
d="m 521.70904,419.272 0.99285,0 0,0.23941 -1.33507,0 0,-0.23941 c 0.10797,-0.11172 0.25491,-0.26147 0.4408,-0.44924 0.18683,-0.18872 0.30419,-0.3103 0.35208,-0.36475 0.0911,-0.10234 0.15444,-0.18871 0.19012,-0.25913 0.0366,-0.0713 0.0549,-0.1413 0.0549,-0.20984 0,-0.11172 -0.0394,-0.20279 -0.1183,-0.27321 -0.0779,-0.0704 -0.17979,-0.10562 -0.3056,-0.10562 -0.0892,0 -0.18355,0.0155 -0.28307,0.0465 -0.0986,0.031 -0.2042,0.0779 -0.31686,0.14083 l 0,-0.28729 c 0.11454,-0.046 0.22157,-0.0807 0.32109,-0.10421 0.0995,-0.0235 0.19059,-0.0352 0.27321,-0.0352 0.21781,0 0.3915,0.0545 0.52107,0.16336 0.12956,0.10891 0.19434,0.25444 0.19434,0.43657 0,0.0864 -0.0164,0.16853 -0.0493,0.24646 -0.0319,0.077 -0.0906,0.16805 -0.17603,0.27321 -0.0235,0.0272 -0.0981,0.10609 -0.22392,0.23659 -0.12581,0.12957 -0.30326,0.31124 -0.53234,0.54501" />
</g>
<rect
transform="translate(-497.66563,-344.28037)"
inkscape:label="#rect3054"
style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="outline"
width="93.746948"
height="79.063599"
x="497.92136"
y="344.5361"
ry="1.628684" />
<g
id="text3316"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4183"
style="font-size:3.5px;fill:#ffffff"
d="m 21.839687,52.218197 1.613282,0 0,0.290527 -1.268067,0 0,0.755371 1.215088,0 0,0.290528 -1.215088,0 0,0.92456 1.298828,0 0,0.290528 -1.644043,0 0,-2.551514" />
<path
inkscape:connector-curvature="0"
id="path4185"
style="font-size:3.5px;fill:#ffffff"
d="m 23.815273,52.855648 0.333252,0 0.598145,1.606445 0.598144,-1.606445 0.333252,0 -0.717773,1.914063 -0.427246,0 -0.717774,-1.914063" />
<path
inkscape:connector-curvature="0"
id="path4187"
style="font-size:3.5px;fill:#ffffff"
d="m 27.749355,53.734066 0,0.153809 -1.4458,0 c 0.01367,0.216472 0.07861,0.381673 0.194824,0.495605 0.117349,0.112793 0.280272,0.16919 0.488769,0.16919 0.120767,0 0.237548,-0.01481 0.350342,-0.04443 0.113931,-0.02962 0.226724,-0.07406 0.338379,-0.133301 l 0,0.297363 c -0.112795,0.04785 -0.228436,0.08431 -0.346924,0.109375 -0.118491,0.02507 -0.238689,0.0376 -0.360596,0.0376 -0.305339,0 -0.547445,-0.08887 -0.726318,-0.266601 -0.177735,-0.177734 -0.266602,-0.418131 -0.266601,-0.721192 -1e-6,-0.313312 0.08431,-0.561685 0.252929,-0.745117 0.169759,-0.184569 0.398193,-0.276854 0.685303,-0.276856 0.257486,2e-6 0.460854,0.08317 0.610107,0.249512 0.150389,0.165204 0.225584,0.39022 0.225586,0.675049 m -0.314453,-0.09228 c -0.0023,-0.172037 -0.0507,-0.309325 -0.145263,-0.411865 -0.09343,-0.102538 -0.217612,-0.153807 -0.372559,-0.153809 -0.175457,2e-6 -0.316163,0.04956 -0.422119,0.148682 -0.104819,0.09912 -0.165203,0.238689 -0.181153,0.418701 l 1.121094,-0.0017" />
<path
inkscape:connector-curvature="0"
id="path4189"
style="font-size:3.5px;fill:#ffffff"
d="m 29.856533,53.614437 0,1.155274 -0.314453,0 0,-1.14502 c -2e-6,-0.181151 -0.03532,-0.31673 -0.105957,-0.406738 -0.07064,-0.09 -0.176596,-0.135008 -0.317871,-0.13501 -0.16976,2e-6 -0.303631,0.05412 -0.401612,0.162353 -0.09798,0.108238 -0.146973,0.25578 -0.146972,0.442627 l 0,1.081788 -0.316162,0 0,-1.914063 0.316162,0 0,0.297363 c 0.07519,-0.11507 0.163492,-0.201088 0.264892,-0.258056 0.102538,-0.05697 0.220458,-0.08545 0.35376,-0.08545 0.219888,2e-6 0.386229,0.06836 0.499024,0.205079 0.112791,0.135581 0.169187,0.335532 0.169189,0.599853" />
<path
inkscape:connector-curvature="0"
id="path4191"
style="font-size:3.5px;fill:#ffffff"
d="m 30.798183,52.312191 0,0.543457 0.647706,0 0,0.244385 -0.647706,0 0,1.039062 c 0,0.156088 0.02108,0.256348 0.06323,0.300782 0.04329,0.04443 0.130452,0.06665 0.261474,0.06665 l 0.322999,0 0,0.263184 -0.322999,0 c -0.242676,0 -0.410156,-0.045 -0.502441,-0.13501 -0.09229,-0.09115 -0.138428,-0.256347 -0.138428,-0.495606 l 0,-1.039062 -0.230713,0 0,-0.244385 0.230713,0 0,-0.543457 0.316162,0" />
</g>
<g
id="text3320"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4143"
style="font-size:3.5px;fill:#ffffff"
d="m 22.021694,55.589386 0,0.33667 c -0.131024,-0.06266 -0.25464,-0.109373 -0.370849,-0.140137 -0.116213,-0.03076 -0.228436,-0.04614 -0.33667,-0.04614 -0.18799,2e-6 -0.333253,0.03646 -0.435791,0.109375 -0.101401,0.07292 -0.152101,0.176597 -0.1521,0.311035 -1e-6,0.112795 0.03361,0.198244 0.10083,0.256347 0.06836,0.05697 0.197102,0.103111 0.386231,0.138428 l 0.208496,0.04272 c 0.257485,0.04899 0.447182,0.135581 0.569091,0.259765 0.123045,0.123048 0.184569,0.28825 0.184571,0.495606 -2e-6,0.247233 -0.08317,0.434652 -0.249512,0.562256 -0.165203,0.127604 -0.407879,0.191406 -0.728027,0.191406 -0.120769,0 -0.249513,-0.01367 -0.386231,-0.04102 -0.13558,-0.02734 -0.276286,-0.06779 -0.422119,-0.121338 l 0,-0.355468 c 0.140136,0.07861 0.277425,0.137858 0.411865,0.177734 0.13444,0.03988 0.266601,0.05982 0.396485,0.05982 0.197101,0 0.349201,-0.03874 0.456299,-0.116211 0.107094,-0.07747 0.160642,-0.187988 0.160644,-0.331543 -2e-6,-0.125325 -0.03874,-0.223307 -0.116211,-0.293946 -0.07634,-0.07064 -0.202231,-0.123615 -0.377685,-0.158935 L 21.110806,56.88479 C 20.853318,56.83352 20.667039,56.7532 20.551968,56.643823 20.436896,56.53445 20.37936,56.38235 20.37936,56.187525 c 0,-0.225584 0.07918,-0.403319 0.237549,-0.533204 0.159505,-0.12988 0.378824,-0.194821 0.657959,-0.194824 0.119628,3e-6 0.241535,0.01083 0.365723,0.03247 0.124184,0.02165 0.251219,0.05412 0.381103,0.09741" />
<path
inkscape:connector-curvature="0"
id="path4145"
style="font-size:3.5px;fill:#ffffff"
d="m 23.496548,58.234894 c -0.08887,0.227864 -0.175457,0.376545 -0.259766,0.446045 -0.08431,0.0695 -0.197103,0.104247 -0.338379,0.104248 l -0.251221,0 0,-0.263184 0.184571,0 c 0.08659,0 0.153808,-0.02051 0.20166,-0.06152 0.04785,-0.04102 0.100829,-0.137859 0.158935,-0.290528 l 0.0564,-0.143554 -0.77417,-1.883301 0.333252,0 0.598145,1.49707 0.598144,-1.49707 0.333252,0 -0.84082,2.091797" />
<path
inkscape:connector-curvature="0"
id="path4147"
style="font-size:3.5px;fill:#ffffff"
d="m 25.991665,56.199493 0,0.297364 c -0.08887,-0.04557 -0.181154,-0.07975 -0.276856,-0.102539 -0.0957,-0.02278 -0.194825,-0.03418 -0.297363,-0.03418 -0.156088,2e-6 -0.273438,0.02393 -0.352051,0.07178 -0.07747,0.04785 -0.116211,0.119631 -0.116211,0.215332 0,0.07292 0.02791,0.130454 0.08374,0.172608 0.05583,0.04102 0.168049,0.08032 0.33667,0.11792 l 0.107666,0.02392 c 0.223306,0.04785 0.381671,0.115643 0.475097,0.20337 0.09456,0.08659 0.141844,0.207927 0.141846,0.364013 -2e-6,0.177735 -0.07064,0.318441 -0.211914,0.422119 -0.140138,0.103679 -0.333253,0.155518 -0.579346,0.155518 -0.10254,0 -0.209636,-0.01025 -0.321289,-0.03076 -0.110515,-0.01937 -0.227295,-0.04899 -0.350342,-0.08887 l 0,-0.324707 c 0.116211,0.06038 0.230713,0.105957 0.343506,0.136719 0.112793,0.02962 0.224446,0.04443 0.334961,0.04443 0.148111,10e-7 0.262043,-0.02506 0.341797,-0.0752 0.07975,-0.05127 0.119628,-0.123046 0.119629,-0.215332 -10e-7,-0.08545 -0.02905,-0.15096 -0.08716,-0.196533 -0.05697,-0.04557 -0.182863,-0.08944 -0.377686,-0.131592 l -0.109375,-0.02564 c -0.194825,-0.04101 -0.335531,-0.103677 -0.422119,-0.187988 -0.08659,-0.08545 -0.129883,-0.202229 -0.129883,-0.350342 0,-0.180011 0.0638,-0.319009 0.191406,-0.416992 0.127604,-0.09798 0.308756,-0.146971 0.543457,-0.146973 0.11621,2e-6 0.225585,0.0085 0.328125,0.02564 0.102538,0.01709 0.197102,0.04273 0.283692,0.0769" />
<path
inkscape:connector-curvature="0"
id="path4149"
style="font-size:3.5px;fill:#ffffff"
d="m 26.907681,55.59964 0,0.543457 0.647705,0 0,0.244385 -0.647705,0 0,1.039062 c -1e-6,0.156088 0.02108,0.256348 0.06323,0.300781 0.04329,0.04443 0.130452,0.06665 0.261475,0.06665 l 0.322998,0 0,0.263183 -0.322998,0 c -0.242677,0 -0.410157,-0.045 -0.502442,-0.135009 -0.09229,-0.09115 -0.138428,-0.256348 -0.138428,-0.495606 l 0,-1.039062 -0.230712,0 0,-0.244385 0.230712,0 0,-0.543457 0.316163,0" />
<path
inkscape:connector-curvature="0"
id="path4151"
style="font-size:3.5px;fill:#ffffff"
d="m 29.607876,57.021515 0,0.153808 -1.445801,0 c 0.01367,0.216473 0.07861,0.381674 0.194824,0.495606 0.11735,0.112793 0.280273,0.16919 0.48877,0.169189 0.120767,1e-6 0.237547,-0.01481 0.350342,-0.04443 0.11393,-0.02962 0.226723,-0.07406 0.338378,-0.133301 l 0,0.297363 c -0.112794,0.04785 -0.228435,0.08431 -0.346923,0.109375 -0.118491,0.02506 -0.23869,0.0376 -0.360596,0.0376 -0.305339,0 -0.547445,-0.08887 -0.726318,-0.266602 -0.177735,-0.177734 -0.266602,-0.41813 -0.266602,-0.721191 0,-0.313313 0.08431,-0.561685 0.25293,-0.745117 0.169758,-0.184569 0.398192,-0.276854 0.685302,-0.276856 0.257486,2e-6 0.460855,0.08317 0.610108,0.249512 0.150389,0.165203 0.225584,0.390219 0.225586,0.675049 m -0.314453,-0.09229 c -0.0023,-0.172037 -0.0507,-0.309325 -0.145264,-0.411865 -0.09343,-0.102538 -0.217612,-0.153807 -0.372559,-0.153809 -0.175456,2e-6 -0.316162,0.04956 -0.422119,0.148682 -0.104818,0.09912 -0.165202,0.238689 -0.181152,0.418701 l 1.121094,-0.0017" />
<path
inkscape:connector-curvature="0"
id="path4153"
style="font-size:3.5px;fill:#ffffff"
d="m 31.614223,56.510529 c 0.07861,-0.141275 0.172606,-0.245523 0.281983,-0.312745 0.109373,-0.06722 0.238116,-0.100828 0.38623,-0.10083 0.199379,2e-6 0.353188,0.07007 0.461426,0.210205 0.108233,0.138999 0.162351,0.337241 0.162354,0.594727 l 0,1.155273 -0.316162,0 0,-1.145019 c -3e-6,-0.18343 -0.03247,-0.319579 -0.09741,-0.408447 -0.06494,-0.08887 -0.164065,-0.133299 -0.297363,-0.133301 -0.162925,2e-6 -0.291669,0.05412 -0.38623,0.162353 -0.09457,0.108237 -0.141848,0.25578 -0.141846,0.442627 l 0,1.081787 -0.316162,0 0,-1.145019 c -2e-6,-0.184569 -0.03247,-0.320718 -0.09741,-0.408447 -0.06494,-0.08887 -0.165203,-0.133299 -0.300781,-0.133301 -0.160646,2e-6 -0.28825,0.05469 -0.382813,0.164062 -0.09456,0.108237 -0.141846,0.25521 -0.141846,0.440918 l 0,1.081787 -0.316162,0 0,-1.914062 0.316162,0 0,0.297363 c 0.07178,-0.117348 0.157796,-0.203937 0.258057,-0.259765 0.100259,-0.05582 0.219319,-0.08374 0.357178,-0.08374 0.138996,2e-6 0.256916,0.03532 0.353759,0.105957 0.09798,0.07064 0.170327,0.173179 0.217041,0.307618" />
</g>
<g
id="text4548-7"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path3947"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 51.41621,4.7088294 0.297363,0 0,1.3286133 c 0,0.2343756 0.04248,0.4033208 0.127442,0.5068359 0.08496,0.1025393 0.222655,0.1538088 0.413086,0.1538086 0.189452,2e-7 0.326659,-0.051269 0.411621,-0.1538086 0.08496,-0.1035151 0.12744,-0.2724603 0.127441,-0.5068359 l 0,-1.3286133 0.297364,0 0,1.3652344 c -2e-6,0.2851568 -0.0708,0.5004886 -0.212403,0.6459961 -0.140626,0.1455078 -0.348634,0.2182616 -0.624023,0.2182617 -0.276368,-1e-7 -0.485352,-0.072754 -0.626953,-0.2182617 C 51.486522,6.5745524 51.41621,6.3592206 51.41621,6.0740638 l 0,-1.3652344" />
<path
inkscape:connector-curvature="0"
id="path3949"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 52.878124,8.2727942 0,0.2885743 c -0.112306,-0.053709 -0.218263,-0.093748 -0.317871,-0.1201172 -0.09961,-0.026365 -0.195802,-0.039549 -0.288574,-0.039551 -0.161134,2e-6 -0.285645,0.031252 -0.373535,0.09375 -0.08692,0.062502 -0.130372,0.1513689 -0.130371,0.2666016 -10e-7,0.096681 0.02881,0.1699233 0.08642,0.2197265 0.05859,0.04883 0.168945,0.08838 0.331055,0.1186524 l 0.178711,0.036621 c 0.220702,0.041993 0.383299,0.116212 0.487793,0.2226562 0.105467,0.1054697 0.158201,0.2470711 0.158203,0.4248047 -2e-6,0.2119145 -0.07129,0.3725593 -0.213867,0.4819343 -0.141603,0.109375 -0.349611,0.164062 -0.624023,0.164062 -0.103517,0 -0.213868,-0.01172 -0.331055,-0.03516 -0.116212,-0.02344 -0.236817,-0.05811 -0.361817,-0.104004 l 0,-0.3046879 c 0.120117,0.067384 0.237793,0.1181649 0.353028,0.1523439 0.115233,0.03418 0.228515,0.05127 0.339844,0.05127 0.168944,0 0.299315,-0.0332 0.391113,-0.09961 0.09179,-0.06641 0.137694,-0.1611323 0.137695,-0.2841796 -1e-6,-0.1074212 -0.0332,-0.1914055 -0.09961,-0.2519532 -0.06543,-0.060546 -0.173341,-0.1059561 -0.323731,-0.1362304 L 52.097357,9.3831418 C 51.876653,9.3391978 51.716985,9.27035 51.618353,9.1765988 c -0.09863,-0.093749 -0.14795,-0.2241196 -0.14795,-0.3911132 0,-0.1933576 0.06787,-0.3457012 0.203614,-0.4570313 0.136718,-0.1113259 0.324706,-0.16699 0.563965,-0.1669922 0.102538,2.2e-6 0.20703,0.00928 0.313476,0.027832 0.106444,0.018557 0.215331,0.046389 0.32666,0.083496" />
<path
inkscape:connector-curvature="0"
id="path3951"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 52.254101,11.984708 -0.401367,1.088379 0.804199,0 -0.402832,-1.088379 m -0.166992,-0.291504 0.335449,0 0.833496,2.187012 -0.307617,0 -0.199219,-0.561035 -0.98584,0 -0.199219,0.561035 -0.312011,0 0.834961,-2.187012" />
<path
inkscape:connector-curvature="0"
id="path3953"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 52.651073,16.347013 c 0.06348,0.02148 0.124999,0.06738 0.184571,0.137695 0.06054,0.07031 0.121092,0.166993 0.18164,0.290039 l 0.300293,0.597657 -0.317871,0 -0.279785,-0.561036 c -0.07227,-0.146483 -0.142579,-0.243651 -0.210937,-0.291503 -0.06738,-0.04785 -0.159669,-0.07178 -0.276856,-0.07178 l -0.322265,0 0,0.924317 -0.295899,0 0,-2.187012 0.667969,0 c 0.249999,2e-6 0.436522,0.05225 0.55957,0.156738 0.123045,0.104494 0.184569,0.262209 0.18457,0.473145 -10e-7,0.137696 -0.03223,0.251954 -0.09668,0.342773 -0.06348,0.09082 -0.156252,0.15381 -0.278321,0.188965 m -0.74121,-0.918457 0,0.776367 0.37207,0 c 0.142577,1e-6 0.249999,-0.03271 0.322265,-0.09814 0.07324,-0.0664 0.109862,-0.163573 0.109864,-0.291504 -2e-6,-0.127928 -0.03662,-0.22412 -0.109864,-0.288575 -0.07227,-0.06543 -0.179688,-0.09814 -0.322265,-0.09814 l -0.37207,0" />
<path
inkscape:connector-curvature="0"
id="path3955"
style="font-size:3px;writing-mode:tb-rl;fill:#ffffff"
d="m 51.32832,18.677579 1.850097,0 0,0.249024 -0.776367,0 0,1.937988 -0.297363,0 0,-1.937988 -0.776367,0 0,-0.249024" />
</g>
<g
id="text4554-61"
style="font-size:35.79270172px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path3991"
style="font-size:3.57927036px;fill:#ffffff"
d="m 27.717732,6.5908392 0.576738,0 0,-1.9906196 -0.627421,0.1258337 0,-0.321575 0.623926,-0.1258338 0.353033,0 0,2.3121947 0.576738,0 0,0.2971074 -1.503014,0 0,-0.2971074" />
<path
inkscape:connector-curvature="0"
id="path3993"
style="font-size:3.57927036px;fill:#ffffff"
d="m 29.972253,6.4440332 0.368763,0 0,0.4439134 -0.368763,0 0,-0.4439134 m 0,-1.4068909 0.368763,0 0,0.4439134 -0.368763,0 0,-0.4439134" />
<path
inkscape:connector-curvature="0"
id="path3995"
style="font-size:3.57927036px;fill:#ffffff"
d="m 30.751723,4.2786445 2.207334,0 0,0.2971074 -0.926277,0 0,2.3121947 -0.354781,0 0,-2.3121947 -0.926276,0 0,-0.2971074" />
<path
inkscape:connector-curvature="0"
id="path3997"
style="font-size:3.57927036px;fill:#ffffff"
d="m 34.353713,5.8288461 0,0.1572922 -1.478546,0 c 0.01398,0.2213748 0.08039,0.390318 0.199237,0.5068302 0.120007,0.1153479 0.28662,0.1730216 0.499839,0.1730214 0.123503,2e-7 0.242928,-0.015146 0.358277,-0.04544 0.116511,-0.030293 0.231859,-0.075733 0.346043,-0.1363198 l 0,0.3040981 c -0.11535,0.048935 -0.23361,0.08622 -0.354781,0.1118522 -0.121175,0.025633 -0.244096,0.038449 -0.368763,0.038449 -0.312255,0 -0.559844,-0.09088 -0.742769,-0.2726397 -0.18176,-0.1817594 -0.27264,-0.427601 -0.272639,-0.7375254 -10e-7,-0.3204087 0.08622,-0.5744061 0.258658,-0.7619931 0.173603,-0.1887487 0.407211,-0.2831239 0.700824,-0.2831259 0.263317,2e-6 0.471292,0.085056 0.623925,0.2551628 0.153795,0.168945 0.230693,0.3990574 0.230695,0.6903378 M 34.032138,5.7344709 C 34.029838,5.558538 33.980288,5.4181404 33.883585,5.3132775 33.788045,5.2084177 33.661044,5.155987 33.502588,5.1559853 c -0.17943,1.7e-6 -0.323323,0.050685 -0.431679,0.1520491 -0.107193,0.1013675 -0.168944,0.2440955 -0.185256,0.4281842 l 1.146485,-0.00175" />
<path
inkscape:connector-curvature="0"
id="path3999"
style="font-size:3.57927036px;fill:#ffffff"
d="m 34.881516,4.16854 0.321575,0 0,2.7194066 -0.321575,0 0,-2.7194066" />
<path
inkscape:connector-curvature="0"
id="path4001"
style="font-size:3.57927036px;fill:#ffffff"
d="m 37.548492,5.8288461 0,0.1572922 -1.478546,0 c 0.01398,0.2213748 0.08039,0.390318 0.199237,0.5068302 0.120007,0.1153479 0.28662,0.1730216 0.499839,0.1730214 0.123503,2e-7 0.242928,-0.015146 0.358277,-0.04544 0.116511,-0.030293 0.231858,-0.075733 0.346043,-0.1363198 l 0,0.3040981 c -0.11535,0.048935 -0.23361,0.08622 -0.354781,0.1118522 -0.121175,0.025633 -0.244096,0.038449 -0.368763,0.038449 -0.312255,0 -0.559844,-0.09088 -0.742769,-0.2726397 -0.18176,-0.1817594 -0.27264,-0.427601 -0.272639,-0.7375254 -10e-7,-0.3204087 0.08622,-0.5744061 0.258658,-0.7619931 0.173603,-0.1887487 0.407211,-0.2831239 0.700824,-0.2831259 0.263317,2e-6 0.471292,0.085056 0.623925,0.2551628 0.153795,0.168945 0.230693,0.3990574 0.230695,0.6903378 M 37.226917,5.7344709 C 37.224617,5.558538 37.175067,5.4181404 37.078364,5.3132775 36.982824,5.2084177 36.855823,5.155987 36.697367,5.1559853 c -0.17943,1.7e-6 -0.323324,0.050685 -0.431679,0.1520491 -0.107193,0.1013675 -0.168944,0.2440955 -0.185256,0.4281842 l 1.146485,-0.00175" />
<path
inkscape:connector-curvature="0"
id="path4003"
style="font-size:3.57927036px;fill:#ffffff"
d="m 39.600281,5.3062866 c 0.08039,-0.144474 0.176515,-0.251083 0.288369,-0.3198274 0.11185,-0.06874 0.243509,-0.1031117 0.394978,-0.1031137 0.203895,2e-6 0.361187,0.071657 0.471877,0.2149659 0.110684,0.1421472 0.166027,0.3448791 0.16603,0.6081964 l 0,1.1814388 -0.323322,0 0,-1.1709527 c -3e-6,-0.1875841 -0.03321,-0.3268166 -0.09962,-0.4176981 -0.06641,-0.090878 -0.167781,-0.1363181 -0.304098,-0.1363198 -0.166615,1.7e-6 -0.298275,0.055345 -0.394978,0.1660306 -0.09671,0.1106885 -0.14506,0.2615723 -0.145058,0.4526519 l 0,1.1062881 -0.323323,0 0,-1.1709527 c -2e-6,-0.1887492 -0.03321,-0.3279818 -0.09962,-0.4176981 -0.06641,-0.090878 -0.168945,-0.1363181 -0.307594,-0.1363198 -0.164284,1.7e-6 -0.294778,0.055928 -0.391483,0.1677783 -0.09671,0.1106885 -0.145059,0.2609897 -0.145058,0.4509042 l 0,1.1062881 -0.323323,0 0,-1.9574135 0.323323,0 0,0.3040982 c 0.0734,-0.1200063 0.161369,-0.2085559 0.263901,-0.265649 0.10253,-0.057089 0.224286,-0.085635 0.365268,-0.085637 0.142144,2e-6 0.262734,0.036121 0.361772,0.1083568 0.100199,0.07224 0.174184,0.177101 0.221956,0.3145843" />
<path
inkscape:connector-curvature="0"
id="path4005"
style="font-size:3.57927036px;fill:#ffffff"
d="m 43.238973,5.8288461 0,0.1572922 -1.478547,0 c 0.01398,0.2213748 0.08039,0.390318 0.199237,0.5068302 0.120007,0.1153479 0.28662,0.1730216 0.49984,0.1730214 0.123502,2e-7 0.242927,-0.015146 0.358276,-0.04544 0.116511,-0.030293 0.231859,-0.075733 0.346043,-0.1363198 l 0,0.3040981 c -0.115349,0.048935 -0.23361,0.08622 -0.354781,0.1118522 -0.121175,0.025633 -0.244096,0.038449 -0.368763,0.038449 -0.312255,0 -0.559844,-0.09088 -0.742768,-0.2726397 -0.181761,-0.1817594 -0.27264,-0.427601 -0.27264,-0.7375254 0,-0.3204087 0.08622,-0.5744061 0.258658,-0.7619931 0.173603,-0.1887487 0.407211,-0.2831239 0.700824,-0.2831259 0.263317,2e-6 0.471292,0.085056 0.623925,0.2551628 0.153795,0.168945 0.230694,0.3990574 0.230696,0.6903378 M 42.917398,5.7344709 C 42.915098,5.558538 42.865548,5.4181404 42.768844,5.3132775 42.673304,5.2084177 42.546303,5.155987 42.387847,5.1559853 c -0.17943,1.7e-6 -0.323323,0.050685 -0.431679,0.1520491 -0.107193,0.1013675 -0.168944,0.2440955 -0.185255,0.4281842 l 1.146485,-0.00175" />
<path
inkscape:connector-curvature="0"
id="path4007"
style="font-size:3.57927036px;fill:#ffffff"
d="m 44.084856,4.3747675 0,0.5557656 0.662375,0 0,0.2499198 -0.662375,0 0,1.0625959 c -1e-6,0.1596229 0.02155,0.2621539 0.06466,0.3075935 0.04427,0.04544 0.133407,0.06816 0.267397,0.06816 l 0.330314,0 0,0.2691443 -0.330314,0 c -0.248173,0 -0.419446,-0.046023 -0.513821,-0.1380676 -0.09438,-0.09321 -0.141563,-0.2621531 -0.141563,-0.5068302 l 0,-1.0625959 -0.235938,0 0,-0.2499198 0.235938,0 0,-0.5557656 0.323323,0" />
<path
inkscape:connector-curvature="0"
id="path4009"
style="font-size:3.57927036px;fill:#ffffff"
d="m 46.306169,5.2311359 c -0.03612,-0.020971 -0.07573,-0.036117 -0.118843,-0.04544 -0.04195,-0.010485 -0.08855,-0.015727 -0.139815,-0.015729 -0.181761,1.8e-6 -0.321576,0.059423 -0.419446,0.1782645 -0.09671,0.1176792 -0.145059,0.2872051 -0.145058,0.5085779 l 0,1.0311375 -0.323323,0 0,-1.9574135 0.323323,0 0,0.3040982 c 0.06758,-0.1188412 0.155544,-0.2068082 0.263901,-0.2639013 0.108356,-0.058254 0.240015,-0.087382 0.394978,-0.087384 0.02214,2e-6 0.0466,0.00175 0.0734,0.00524 0.0268,0.00233 0.05651,0.00641 0.08913,0.012234 l 0.0017,0.3303135" />
<path
inkscape:connector-curvature="0"
id="path4011"
style="font-size:3.57927036px;fill:#ffffff"
d="m 47.461394,7.0697064 c -0.09088,0.233025 -0.179431,0.385074 -0.265649,0.4561473 -0.08622,0.071072 -0.201568,0.1066084 -0.346043,0.1066091 l -0.25691,0 0,-0.2691443 0.18875,0 c 0.08855,-5e-7 0.157292,-0.020973 0.206228,-0.062917 0.04893,-0.041945 0.103113,-0.1409807 0.162535,-0.2971074 l 0.05767,-0.146806 -0.791704,-1.9259551 0.340799,0 0.611692,1.530977 0.611692,-1.530977 0.3408,0 -0.859864,2.1391733" />
</g>
<g
id="text4554-7-2"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path3969"
style="font-size:4px;fill:#ffffff"
d="m 28.610962,13.043303 1.376953,0 0,0.332031 -1.851562,0 0,-0.332031 c 0.149739,-0.154948 0.353515,-0.36263 0.611328,-0.623047 0.259113,-0.261718 0.421873,-0.430337 0.488281,-0.50586 0.1263,-0.141925 0.214191,-0.261717 0.263672,-0.359375 0.05078,-0.09896 0.07617,-0.195961 0.07617,-0.291015 -2e-6,-0.154946 -0.05469,-0.281248 -0.164063,-0.378907 -0.108074,-0.09765 -0.24935,-0.146481 -0.423828,-0.146484 -0.123699,3e-6 -0.254558,0.02149 -0.392578,0.06445 -0.136719,0.04297 -0.283204,0.108076 -0.439453,0.195313 l 0,-0.398438 c 0.158853,-0.0638 0.307291,-0.111976 0.445312,-0.144531 0.13802,-0.03255 0.264322,-0.04883 0.378907,-0.04883 0.302081,3e-6 0.542967,0.07552 0.722656,0.226562 0.179685,0.151045 0.269529,0.352867 0.269531,0.605469 -2e-6,0.119794 -0.02279,0.233726 -0.06836,0.341797 -0.04427,0.106772 -0.125653,0.233074 -0.244141,0.378906 -0.03255,0.03776 -0.136069,0.147137 -0.310547,0.328125 -0.17448,0.179689 -0.420574,0.431641 -0.738281,0.75586" />
<path
inkscape:connector-curvature="0"
id="path3971"
style="font-size:4px;fill:#ffffff"
d="m 30.859009,12.87924 0.412109,0 0,0.496094 -0.412109,0 0,-0.496094 m 0,-1.572266 0.412109,0 0,0.496094 -0.412109,0 0,-0.496094" />
<path
inkscape:connector-curvature="0"
id="path3973"
style="font-size:4px;fill:#ffffff"
d="m 34.122681,12.959318 0,-0.783203 -0.644532,0 0,-0.324219 1.035157,0 0,1.251953 c -0.152347,0.108073 -0.320315,0.190105 -0.503907,0.246094 -0.183595,0.05469 -0.379559,0.08203 -0.58789,0.08203 -0.455731,0 -0.812501,-0.132812 -1.070313,-0.398437 -0.25651,-0.266927 -0.384766,-0.63802 -0.384765,-1.113281 -1e-6,-0.476561 0.128255,-0.847654 0.384765,-1.113282 0.257812,-0.266924 0.614582,-0.400387 1.070313,-0.40039 0.190102,3e-6 0.37044,0.02344 0.541015,0.07031 0.171873,0.04688 0.330076,0.115888 0.47461,0.207032 l 0,0.419921 C 34.291298,10.980151 34.13635,10.887052 33.97229,10.82455 33.808225,10.76205 33.6357,10.7308 33.454712,10.7308 c -0.356772,2e-6 -0.625001,0.09961 -0.804688,0.298828 -0.178386,0.199221 -0.267578,0.496095 -0.267578,0.890625 0,0.39323 0.08919,0.689454 0.267578,0.888672 0.179687,0.199219 0.447916,0.298828 0.804688,0.298828 0.139321,0 0.26367,-0.01172 0.373047,-0.03516 0.109373,-0.02474 0.20768,-0.0625 0.294922,-0.113281" />
<path
inkscape:connector-curvature="0"
id="path3975"
style="font-size:4px;fill:#ffffff"
d="m 35.630493,10.783537 0,1.095703 0.496094,0 c 0.183592,2e-6 0.325519,-0.04752 0.425781,-0.142578 0.100259,-0.09505 0.150389,-0.230467 0.150391,-0.40625 -2e-6,-0.174477 -0.05013,-0.309243 -0.150391,-0.404297 -0.100262,-0.09505 -0.242189,-0.142575 -0.425781,-0.142578 l -0.496094,0 m -0.394531,-0.324219 0.890625,0 c 0.326821,3e-6 0.573566,0.07422 0.740234,0.222656 0.167967,0.147138 0.251951,0.363284 0.251953,0.648438 -2e-6,0.287762 -0.08399,0.50521 -0.251953,0.652344 -0.166668,0.147136 -0.413413,0.220704 -0.740234,0.220703 l -0.496094,0 0,1.171875 -0.394531,0 0,-2.916016" />
<path
inkscape:connector-curvature="0"
id="path3977"
style="font-size:4px;fill:#ffffff"
d="m 39.398071,10.555021 0,0.384766 c -0.149741,-0.07161 -0.291017,-0.124998 -0.423828,-0.160156 -0.132814,-0.03515 -0.261069,-0.05273 -0.384765,-0.05274 -0.214845,3e-6 -0.380861,0.04167 -0.498047,0.125 -0.115886,0.08334 -0.173829,0.201826 -0.173828,0.355469 -10e-7,0.128908 0.03841,0.226564 0.115234,0.292969 0.07812,0.06511 0.225259,0.11784 0.441406,0.158203 l 0.238281,0.04883 c 0.294269,0.05599 0.511066,0.154949 0.650391,0.296875 0.140623,0.140626 0.210935,0.329428 0.210938,0.566406 -3e-6,0.282553 -0.09506,0.496745 -0.285157,0.642578 -0.188804,0.145834 -0.466147,0.21875 -0.832031,0.21875 -0.138022,0 -0.285157,-0.01563 -0.441406,-0.04687 -0.154949,-0.03125 -0.315756,-0.07747 -0.482422,-0.138671 l 0,-0.40625 c 0.160156,0.08984 0.317057,0.157552 0.470703,0.203125 0.153645,0.04557 0.304686,0.06836 0.453125,0.06836 0.225259,0 0.399087,-0.04427 0.521484,-0.132813 0.122394,-0.08854 0.183592,-0.214843 0.183594,-0.378906 -2e-6,-0.143228 -0.04427,-0.255207 -0.132812,-0.335937 -0.08724,-0.08073 -0.231122,-0.141275 -0.431641,-0.181641 l -0.240234,-0.04687 c -0.294272,-0.05859 -0.507162,-0.150389 -0.638672,-0.275391 -0.131511,-0.124998 -0.197266,-0.298826 -0.197266,-0.521484 0,-0.25781 0.09049,-0.460935 0.271485,-0.609375 0.18229,-0.148435 0.432941,-0.222653 0.751953,-0.222656 0.136717,3e-6 0.27604,0.01237 0.417968,0.03711 0.141926,0.02474 0.287108,0.06185 0.435547,0.111328" />
</g>
<rect
y="15.137716"
x="26.098318"
height="5.6002355"
width="23.347105"
id="rect4122"
style="fill:none;stroke:#ffffff;stroke-width:0.29055119;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<g
id="text4124"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path3958"
style="font-size:4px;fill:#ffffff"
d="m 29.466431,17.803068 c 0.1888,0.04037 0.335935,0.124351 0.441406,0.251953 0.106769,0.127606 0.160154,0.285158 0.160156,0.472657 -2e-6,0.287761 -0.09896,0.510417 -0.296875,0.667968 -0.197918,0.157552 -0.479168,0.236328 -0.84375,0.236328 -0.122397,0 -0.248699,-0.01237 -0.378906,-0.03711 -0.128907,-0.02344 -0.26237,-0.05925 -0.400391,-0.107422 l 0,-0.380859 c 0.109375,0.0638 0.229166,0.111979 0.359375,0.144531 0.130208,0.03255 0.266275,0.04883 0.408203,0.04883 0.247395,0 0.435546,-0.04883 0.564454,-0.146484 0.130206,-0.09766 0.19531,-0.239583 0.195312,-0.425781 -2e-6,-0.171874 -0.06055,-0.305989 -0.181641,-0.402344 -0.119793,-0.09765 -0.28711,-0.146483 -0.501953,-0.146485 l -0.339843,0 0,-0.324218 0.355468,0 c 0.194009,1e-6 0.342447,-0.03841 0.445313,-0.115235 0.102863,-0.07812 0.154295,-0.190102 0.154297,-0.335937 -2e-6,-0.149737 -0.05339,-0.264321 -0.160157,-0.34375 -0.10547,-0.08073 -0.257162,-0.121091 -0.455078,-0.121094 -0.108074,3e-6 -0.223959,0.01172 -0.347656,0.03516 -0.123699,0.02344 -0.259766,0.0599 -0.408203,0.109375 l 0,-0.351562 c 0.149739,-0.04166 0.289713,-0.07291 0.419922,-0.09375 0.131509,-0.02083 0.255207,-0.03125 0.371094,-0.03125 0.299477,3e-6 0.536456,0.06836 0.710937,0.205078 0.174477,0.135419 0.261717,0.319013 0.261719,0.550781 -2e-6,0.161461 -0.04623,0.298179 -0.138672,0.410156 -0.09245,0.110679 -0.22396,0.187502 -0.394531,0.230469" />
<path
inkscape:connector-curvature="0"
id="path3960"
style="font-size:4px;fill:#ffffff"
d="m 30.859009,18.87924 0.412109,0 0,0.496094 -0.412109,0 0,-0.496094 m 0,-1.572266 0.412109,0 0,0.496094 -0.412109,0 0,-0.496094" />
<path
inkscape:connector-curvature="0"
id="path3962"
style="font-size:4px;fill:#ffffff"
d="m 33.109009,16.84799 -0.535156,1.451172 1.072265,0 -0.537109,-1.451172 m -0.222656,-0.388672 0.447265,0 1.111328,2.916016 -0.410156,0 -0.265625,-0.748047 -1.314453,0 -0.265625,0.748047 -0.416016,0 1.113282,-2.916016" />
<path
inkscape:connector-curvature="0"
id="path3964"
style="font-size:4px;fill:#ffffff"
d="m 34.823853,16.459318 0.396484,0 0,1.771485 c -10e-7,0.3125 0.05664,0.537761 0.169922,0.675781 0.11328,0.136719 0.296874,0.205078 0.550781,0.205078 0.252602,0 0.435545,-0.06836 0.548828,-0.205078 0.113279,-0.13802 0.16992,-0.363281 0.169922,-0.675781 l 0,-1.771485 0.396484,0 0,1.820313 c -2e-6,0.380209 -0.0944,0.667318 -0.283203,0.861328 -0.187502,0.19401 -0.464845,0.291015 -0.832031,0.291015 -0.368491,0 -0.647136,-0.097 -0.835937,-0.291015 -0.187501,-0.19401 -0.281251,-0.481119 -0.28125,-0.861328 l 0,-1.820313" />
<path
inkscape:connector-curvature="0"
id="path3966"
style="font-size:4px;fill:#ffffff"
d="m 37.657837,16.459318 0.423828,0 0.724609,1.083985 0.728516,-1.083985 0.423828,0 -0.9375,1.400391 1,1.515625 -0.423828,0 -0.820312,-1.240235 -0.826172,1.240235 -0.425782,0 1.041016,-1.556641 -0.908203,-1.359375" />
</g>
<g
id="text3100"
style="font-size:26.84721947px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4156"
style="font-size:2.68472195px;fill:#ffffff"
d="m 40.321019,54.44599 0,0.258247 c -0.100503,-0.04807 -0.195325,-0.0839 -0.284465,-0.107494 -0.08914,-0.02359 -0.175224,-0.03539 -0.258247,-0.03539 -0.1442,1e-6 -0.255626,0.02797 -0.334279,0.0839 -0.07778,0.05593 -0.116671,0.135461 -0.11667,0.238584 -10e-7,0.08652 0.02578,0.152066 0.07734,0.196635 0.05243,0.0437 0.151189,0.07909 0.296263,0.106183 l 0.15993,0.03277 c 0.197507,0.03758 0.343017,0.103999 0.436529,0.199257 0.09438,0.09438 0.141576,0.221106 0.141577,0.380161 -10e-7,0.189643 -0.0638,0.333405 -0.191391,0.431286 -0.126722,0.09788 -0.312869,0.14682 -0.558443,0.14682 -0.09264,0 -0.191392,-0.01049 -0.296264,-0.03146 -0.103998,-0.02097 -0.211929,-0.052 -0.323792,-0.09307 l 0,-0.272667 c 0.107494,0.0603 0.212803,0.105746 0.315927,0.136333 0.103124,0.03059 0.2045,0.04588 0.304129,0.04588 0.151189,0 0.267859,-0.02971 0.35001,-0.08914 0.08215,-0.05943 0.123223,-0.144199 0.123224,-0.254315 -10e-7,-0.09613 -0.02971,-0.17129 -0.08914,-0.225475 -0.05855,-0.05418 -0.155124,-0.09482 -0.289708,-0.121913 l -0.161241,-0.03146 c -0.197509,-0.03933 -0.340397,-0.100938 -0.428664,-0.184837 -0.08827,-0.0839 -0.132401,-0.200566 -0.132401,-0.35001 0,-0.173037 0.06074,-0.30937 0.182215,-0.409 0.12235,-0.09963 0.290582,-0.149441 0.504696,-0.149443 0.09176,2e-6 0.185273,0.0083 0.280533,0.02491 0.09526,0.01661 0.192701,0.04151 0.29233,0.07472" />
<path
inkscape:connector-curvature="0"
id="path4158"
style="font-size:2.68472195px;fill:#ffffff"
d="m 41.08003,54.453855 0,0.416866 0.496831,0 0,0.187459 -0.496831,0 0,0.797026 c -10e-7,0.11973 0.01617,0.196636 0.0485,0.230719 0.03321,0.03408 0.100065,0.05112 0.200568,0.05112 l 0.24776,0 0,0.201878 -0.24776,0 c -0.186148,0 -0.314616,-0.03452 -0.385405,-0.103561 -0.07079,-0.06991 -0.106183,-0.196634 -0.106182,-0.380161 l 0,-0.797026 -0.176972,0 0,-0.187459 0.176972,0 0,-0.416866 0.242516,0" />
<path
inkscape:connector-curvature="0"
id="path4160"
style="font-size:2.68472195px;fill:#ffffff"
d="m 42.562657,55.600892 c -0.194888,10e-7 -0.32991,0.02229 -0.405068,0.06686 -0.07516,0.04457 -0.112738,0.120603 -0.112737,0.228096 -10e-7,0.08565 0.02797,0.153813 0.0839,0.204501 0.05681,0.04981 0.133712,0.07472 0.230719,0.07472 0.133711,0 0.240767,-0.04719 0.32117,-0.141577 0.08127,-0.09526 0.121913,-0.221542 0.121914,-0.37885 l 0,-0.05375 -0.239895,0 m 0.4811,-0.09963 0,0.837664 -0.241205,0 0,-0.222853 c -0.05506,0.08914 -0.123663,0.155123 -0.205811,0.197946 -0.08215,0.04195 -0.182653,0.06292 -0.301507,0.06292 -0.150317,0 -0.270046,-0.04195 -0.359187,-0.125846 -0.08827,-0.08477 -0.132401,-0.197946 -0.132401,-0.339523 0,-0.165173 0.05506,-0.289708 0.165174,-0.373606 0.110989,-0.0839 0.276162,-0.125846 0.49552,-0.125847 l 0.338212,0 0,-0.0236 c -10e-7,-0.110988 -0.03671,-0.196634 -0.110116,-0.256936 -0.07254,-0.06117 -0.174787,-0.09176 -0.30675,-0.09176 -0.0839,10e-7 -0.165611,0.01005 -0.245138,0.03015 -0.07953,0.0201 -0.155998,0.05025 -0.229408,0.09045 l 0,-0.222853 c 0.08827,-0.03408 0.173912,-0.05943 0.256936,-0.07603 0.08302,-0.01748 0.163862,-0.02622 0.242517,-0.02622 0.212365,10e-7 0.370983,0.05506 0.475856,0.165173 0.104871,0.110117 0.157307,0.277038 0.157308,0.500764" />
<path
inkscape:connector-curvature="0"
id="path4162"
style="font-size:2.68472195px;fill:#ffffff"
d="m 44.595862,55.606135 c -10e-7,-0.177407 -0.03671,-0.316362 -0.110115,-0.416866 -0.07254,-0.101375 -0.172603,-0.152063 -0.300196,-0.152064 -0.127595,10e-7 -0.228097,0.05069 -0.301507,0.152064 -0.07254,0.100504 -0.108805,0.239459 -0.108805,0.416866 0,0.177409 0.03627,0.316802 0.108805,0.418177 0.07341,0.100503 0.173912,0.150754 0.301507,0.150754 0.127593,0 0.227658,-0.05025 0.300196,-0.150754 0.07341,-0.101375 0.110114,-0.240768 0.110115,-0.418177 m -0.820623,-0.512561 c 0.05069,-0.08739 0.114485,-0.152063 0.191392,-0.194013 0.07778,-0.04282 0.170416,-0.06423 0.27791,-0.06423 0.178281,1e-6 0.322917,0.07079 0.433908,0.212365 0.111862,0.141579 0.167794,0.327726 0.167795,0.558443 -10e-7,0.230719 -0.05593,0.416867 -0.167795,0.558444 -0.110991,0.141577 -0.255627,0.212365 -0.433908,0.212365 -0.107494,0 -0.200131,-0.02097 -0.27791,-0.06292 -0.07691,-0.04282 -0.140704,-0.10793 -0.191392,-0.195324 l 0,0.220231 -0.242516,0 0,-2.039759 0.242516,0 0,0.794405" />
<path
inkscape:connector-curvature="0"
id="path4164"
style="font-size:2.68472195px;fill:#ffffff"
d="m 45.246068,54.870721 0.241205,0 0,1.468207 -0.241205,0 0,-1.468207 m 0,-0.571552 0.241205,0 0,0.305439 -0.241205,0 0,-0.305439" />
<path
inkscape:connector-curvature="0"
id="path4166"
style="font-size:2.68472195px;fill:#ffffff"
d="m 45.990659,54.299169 0.241206,0 0,2.039759 -0.241206,0 0,-2.039759" />
<path
inkscape:connector-curvature="0"
id="path4168"
style="font-size:2.68472195px;fill:#ffffff"
d="m 46.73525,54.870721 0.241205,0 0,1.468207 -0.241205,0 0,-1.468207 m 0,-0.571552 0.241205,0 0,0.305439 -0.241205,0 0,-0.305439" />
<path
inkscape:connector-curvature="0"
id="path4170"
style="font-size:2.68472195px;fill:#ffffff"
d="m 47.374969,54.870721 1.145726,0 0,0.220231 -0.907143,1.055274 0.907143,0 0,0.192702 -1.178499,0 0,-0.220231 0.907143,-1.055274 -0.87437,0 0,-0.192702" />
<path
inkscape:connector-curvature="0"
id="path4172"
style="font-size:2.68472195px;fill:#ffffff"
d="m 49.557617,55.600892 c -0.194888,10e-7 -0.329911,0.02229 -0.405068,0.06686 -0.07516,0.04457 -0.112738,0.120603 -0.112738,0.228096 0,0.08565 0.02797,0.153813 0.0839,0.204501 0.05681,0.04981 0.133711,0.07472 0.230718,0.07472 0.133711,0 0.240768,-0.04719 0.321171,-0.141577 0.08127,-0.09526 0.121912,-0.221542 0.121913,-0.37885 l 0,-0.05375 -0.239894,0 m 0.4811,-0.09963 0,0.837664 -0.241206,0 0,-0.222853 c -0.05506,0.08914 -0.123662,0.155123 -0.205811,0.197946 -0.08215,0.04195 -0.182653,0.06292 -0.301507,0.06292 -0.150317,0 -0.270045,-0.04195 -0.359186,-0.125846 -0.08827,-0.08477 -0.132401,-0.197946 -0.132401,-0.339523 0,-0.165173 0.05506,-0.289708 0.165173,-0.373606 0.110989,-0.0839 0.276162,-0.125846 0.49552,-0.125847 l 0.338212,0 0,-0.0236 c -1e-6,-0.110988 -0.03671,-0.196634 -0.110115,-0.256936 -0.07254,-0.06117 -0.174788,-0.09176 -0.306751,-0.09176 -0.0839,10e-7 -0.165611,0.01005 -0.245138,0.03015 -0.07953,0.0201 -0.155997,0.05025 -0.229407,0.09045 l 0,-0.222853 c 0.08827,-0.03408 0.173912,-0.05943 0.256936,-0.07603 0.08302,-0.01748 0.163862,-0.02622 0.242516,-0.02622 0.212365,10e-7 0.370984,0.05506 0.475857,0.165173 0.10487,0.110117 0.157306,0.277038 0.157308,0.500764" />
<path
inkscape:connector-curvature="0"
id="path4174"
style="font-size:2.68472195px;fill:#ffffff"
d="m 50.775442,54.453855 0,0.416866 0.496831,0 0,0.187459 -0.496831,0 0,0.797026 c -10e-7,0.11973 0.01617,0.196636 0.0485,0.230719 0.03321,0.03408 0.100065,0.05112 0.200568,0.05112 l 0.24776,0 0,0.201878 -0.24776,0 c -0.186149,0 -0.314617,-0.03452 -0.385405,-0.103561 -0.07079,-0.06991 -0.106183,-0.196634 -0.106183,-0.380161 l 0,-0.797026 -0.176971,0 0,-0.187459 0.176971,0 0,-0.416866 0.242517,0" />
<path
inkscape:connector-curvature="0"
id="path4176"
style="font-size:2.68472195px;fill:#ffffff"
d="m 51.590821,54.870721 0.241205,0 0,1.468207 -0.241205,0 0,-1.468207 m 0,-0.571552 0.241205,0 0,0.305439 -0.241205,0 0,-0.305439" />
<path
inkscape:connector-curvature="0"
id="path4178"
style="font-size:2.68472195px;fill:#ffffff"
d="m 52.904343,55.039827 c -0.129343,10e-7 -0.231593,0.05069 -0.306751,0.152064 -0.07516,0.100504 -0.112737,0.238585 -0.112737,0.414244 0,0.175662 0.03714,0.31418 0.111426,0.415556 0.07516,0.100502 0.177845,0.150753 0.308062,0.150753 0.128467,0 0.23028,-0.05069 0.305439,-0.152064 0.07516,-0.101376 0.112736,-0.239457 0.112738,-0.414245 -2e-6,-0.173911 -0.03758,-0.311556 -0.112738,-0.412933 -0.07516,-0.102249 -0.176972,-0.153374 -0.305439,-0.153375 m 0,-0.2045 c 0.209743,10e-7 0.374479,0.06817 0.494209,0.2045 0.119727,0.136335 0.179592,0.325104 0.179593,0.566308 -10e-7,0.240333 -0.05987,0.429102 -0.179593,0.566309 -0.11973,0.136334 -0.284466,0.2045 -0.494209,0.2045 -0.210619,0 -0.375792,-0.06817 -0.49552,-0.2045 -0.118855,-0.137207 -0.178283,-0.325976 -0.178282,-0.566309 -1e-6,-0.241204 0.05943,-0.429973 0.178282,-0.566308 0.119728,-0.136332 0.284901,-0.204499 0.49552,-0.2045" />
<path
inkscape:connector-curvature="0"
id="path4180"
style="font-size:2.68472195px;fill:#ffffff"
d="m 55.197106,55.45276 0,0.886168 -0.241206,0 0,-0.878302 c -10e-7,-0.138955 -0.02709,-0.242953 -0.08128,-0.311994 -0.05418,-0.06904 -0.13546,-0.10356 -0.243827,-0.103561 -0.130217,10e-7 -0.232904,0.04151 -0.308061,0.124535 -0.07516,0.08302 -0.112738,0.196199 -0.112738,0.339523 l 0,0.829799 -0.242516,0 0,-1.468207 0.242516,0 0,0.228096 c 0.05768,-0.08826 0.125409,-0.154247 0.20319,-0.197945 0.07865,-0.0437 0.169105,-0.06554 0.271356,-0.06555 0.168668,1e-6 0.296262,0.05244 0.382783,0.157308 0.08652,0.103999 0.129777,0.257374 0.129779,0.460125" />
</g>
<g
id="text3316-4"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4130"
style="font-size:3.5px;fill:#ffffff"
d="m 62.94241,52.192474 1.466308,0 0,0.290528 -1.121094,0 0,0.751953 1.011719,0 0,0.290527 -1.011719,0 0,1.218506 -0.345214,0 0,-2.551514" />
<path
inkscape:connector-curvature="0"
id="path4132"
style="font-size:3.5px;fill:#ffffff"
d="m 64.945339,52.084808 0.314453,0 0,2.65918 -0.314453,0 0,-2.65918" />
<path
inkscape:connector-curvature="0"
id="path4134"
style="font-size:3.5px;fill:#ffffff"
d="m 65.916042,52.829926 0.314453,0 0,1.914062 -0.314453,0 0,-1.914062 m 0,-0.745118 0.314453,0 0,0.398194 -0.314453,0 0,-0.398194" />
<path
inkscape:connector-curvature="0"
id="path4136"
style="font-size:3.5px;fill:#ffffff"
d="m 68.146267,53.76474 c -2e-6,-0.227863 -0.04728,-0.404458 -0.141846,-0.529785 -0.09343,-0.125324 -0.225017,-0.187987 -0.394775,-0.187988 -0.168621,10e-7 -0.300212,0.06266 -0.394776,0.187988 -0.09343,0.125327 -0.140137,0.301922 -0.140136,0.529785 -1e-6,0.226726 0.04671,0.402751 0.140136,0.528076 0.09456,0.125326 0.226155,0.187989 0.394776,0.187988 0.169758,10e-7 0.301349,-0.06266 0.394775,-0.187988 0.09456,-0.125325 0.141844,-0.30135 0.141846,-0.528076 m 0.314453,0.741699 c -2e-6,0.325846 -0.07235,0.567952 -0.217041,0.726319 -0.144696,0.159504 -0.366294,0.239257 -0.664795,0.239257 -0.110515,0 -0.214763,-0.0085 -0.312744,-0.02563 -0.09798,-0.01595 -0.193116,-0.04102 -0.2854,-0.0752 l 0,-0.305908 c 0.09228,0.05013 0.18343,0.08716 0.273437,0.111084 0.09001,0.02392 0.181721,0.03589 0.275147,0.03589 0.206216,-1e-6 0.360594,-0.05412 0.463134,-0.162354 0.102538,-0.107096 0.153807,-0.26945 0.153809,-0.48706 l 0,-0.155518 c -0.06494,0.112793 -0.148113,0.197103 -0.249512,0.25293 -0.101401,0.05583 -0.222739,0.08374 -0.364013,0.08374 -0.234702,0 -0.423829,-0.08944 -0.567383,-0.268311 -0.143555,-0.178873 -0.215332,-0.415852 -0.215332,-0.710937 0,-0.296223 0.07178,-0.533771 0.215332,-0.712646 0.143554,-0.178872 0.332681,-0.268309 0.567383,-0.268311 0.141274,2e-6 0.262612,0.02792 0.364013,0.08374 0.101399,0.05583 0.184569,0.140139 0.249512,0.25293 l 0,-0.290527 0.314453,0 0,1.676513" />
<path
inkscape:connector-curvature="0"
id="path4138"
style="font-size:3.5px;fill:#ffffff"
d="m 70.69949,53.588715 0,1.155273 -0.314454,0 0,-1.145019 c -10e-7,-0.181152 -0.03532,-0.316731 -0.105957,-0.406739 -0.07064,-0.09001 -0.176596,-0.135008 -0.317871,-0.13501 -0.16976,2e-6 -0.30363,0.05412 -0.401611,0.162354 -0.09798,0.108237 -0.146973,0.255779 -0.146973,0.442627 l 0,1.081787 -0.316162,0 0,-2.65918 0.316162,0 0,1.042481 c 0.0752,-0.11507 0.163492,-0.201089 0.264893,-0.258057 0.102538,-0.05696 0.220458,-0.08545 0.35376,-0.08545 0.219888,2e-6 0.386229,0.06836 0.499023,0.205078 0.112791,0.135581 0.169188,0.335532 0.16919,0.599854" />
<path
inkscape:connector-curvature="0"
id="path4140"
style="font-size:3.5px;fill:#ffffff"
d="m 71.64114,52.286469 0,0.543457 0.647705,0 0,0.244384 -0.647705,0 0,1.039063 c -10e-7,0.156088 0.02108,0.256348 0.06323,0.300781 0.04329,0.04443 0.130452,0.06665 0.261475,0.06665 l 0.322998,0 0,0.263184 -0.322998,0 c -0.242676,0 -0.410157,-0.045 -0.502441,-0.13501 -0.09229,-0.09114 -0.138428,-0.256347 -0.138428,-0.495605 l 0,-1.039063 -0.230713,0 0,-0.244384 0.230713,0 0,-0.543457 0.316162,0" />
</g>
<g
id="text3316-4-1"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4121"
style="font-size:3.5px;fill:#ffffff"
d="m 63.420925,55.506077 2.158447,0 0,0.290527 -0.905761,0 0,2.260986 -0.346924,0 0,-2.260986 -0.905762,0 0,-0.290527" />
<path
inkscape:connector-curvature="0"
id="path4123"
style="font-size:3.5px;fill:#ffffff"
d="m 65.791286,56.143528 0.314454,0 0,1.914062 -0.314454,0 0,-1.914062 m 0,-0.745117 0.314454,0 0,0.398193 -0.314454,0 0,-0.398193" />
<path
inkscape:connector-curvature="0"
id="path4125"
style="font-size:3.5px;fill:#ffffff"
d="m 68.252224,56.51096 c 0.07861,-0.141275 0.172605,-0.245523 0.281982,-0.312745 0.109373,-0.06722 0.238117,-0.100828 0.386231,-0.10083 0.199379,2e-6 0.353187,0.07007 0.461426,0.210205 0.108232,0.138999 0.16235,0.337241 0.162353,0.594727 l 0,1.155273 -0.316162,0 0,-1.145019 c -3e-6,-0.18343 -0.03247,-0.319579 -0.09741,-0.408447 -0.06494,-0.08887 -0.164065,-0.133299 -0.297363,-0.133301 -0.162926,2e-6 -0.291669,0.05412 -0.386231,0.162353 -0.09457,0.108238 -0.141847,0.25578 -0.141846,0.442627 l 0,1.081787 -0.316162,0 0,-1.145019 c -10e-7,-0.184569 -0.03247,-0.320718 -0.09741,-0.408447 -0.06494,-0.08887 -0.165203,-0.133299 -0.300781,-0.133301 -0.160646,2e-6 -0.28825,0.05469 -0.382812,0.164062 -0.09456,0.108237 -0.141847,0.25521 -0.141846,0.440918 l 0,1.081787 -0.316162,0 0,-1.914062 0.316162,0 0,0.297363 c 0.07178,-0.117348 0.157795,-0.203937 0.258056,-0.259765 0.10026,-0.05582 0.219319,-0.08374 0.357178,-0.08374 0.138996,2e-6 0.256916,0.03532 0.35376,0.105957 0.09798,0.07064 0.170327,0.173179 0.217041,0.307618" />
<path
inkscape:connector-curvature="0"
id="path4127"
style="font-size:3.5px;fill:#ffffff"
d="m 71.810329,57.021946 0,0.153809 -1.4458,0 c 0.01367,0.216472 0.07861,0.381673 0.194824,0.495605 0.117349,0.112793 0.280272,0.16919 0.488769,0.169189 0.120767,10e-7 0.237548,-0.01481 0.350342,-0.04443 0.113931,-0.02962 0.226724,-0.07406 0.338379,-0.133301 l 0,0.297363 c -0.112795,0.04785 -0.228436,0.08431 -0.346924,0.109375 -0.118491,0.02506 -0.238689,0.0376 -0.360595,0.0376 -0.30534,0 -0.547446,-0.08887 -0.726319,-0.266602 -0.177734,-0.177734 -0.266602,-0.41813 -0.266601,-0.721191 -10e-7,-0.313312 0.08431,-0.561685 0.252929,-0.745117 0.169759,-0.184569 0.398193,-0.276854 0.685303,-0.276856 0.257486,2e-6 0.460855,0.08317 0.610107,0.249512 0.150389,0.165203 0.225584,0.39022 0.225586,0.675049 m -0.314453,-0.09228 c -0.0023,-0.172037 -0.0507,-0.309325 -0.145263,-0.411865 -0.09343,-0.102538 -0.217612,-0.153807 -0.372559,-0.153809 -0.175457,2e-6 -0.316163,0.04956 -0.422119,0.148682 -0.104818,0.09912 -0.165202,0.238689 -0.181152,0.418701 l 1.121093,-0.0017" />
</g>
<g
id="text3349"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4225"
style="font-size:4px;fill:#ffffff"
d="m 61.061916,34.301922 -0.535156,1.451172 1.072266,0 -0.53711,-1.451172 m -0.222656,-0.388672 0.447266,0 1.111328,2.916016 -0.410156,0 -0.265625,-0.748047 -1.314454,0 -0.265625,0.748047 -0.416015,0 1.113281,-2.916016" />
<path
inkscape:connector-curvature="0"
id="path4227"
style="font-size:4px;fill:#ffffff"
d="m 63.091213,34.020672 0,0.621094 0.740235,0 0,0.279296 -0.740235,0 0,1.1875 c -1e-6,0.178386 0.02409,0.29297 0.07227,0.34375 0.04948,0.05078 0.149087,0.07617 0.298828,0.07617 l 0.369141,0 0,0.300782 -0.369141,0 c -0.277345,0 -0.468751,-0.05143 -0.574219,-0.154297 C 62.782619,36.570802 62.729885,36.382 62.729885,36.108562 l 0,-1.1875 -0.263672,0 0,-0.279296 0.263672,0 0,-0.621094 0.361328,0" />
<path
inkscape:connector-curvature="0"
id="path4229"
style="font-size:4px;fill:#ffffff"
d="m 64.661526,34.020672 0,0.621094 0.740234,0 0,0.279296 -0.740234,0 0,1.1875 c -10e-7,0.178386 0.02409,0.29297 0.07227,0.34375 0.04948,0.05078 0.149088,0.07617 0.298828,0.07617 l 0.369141,0 0,0.300782 -0.369141,0 c -0.277344,0 -0.46875,-0.05143 -0.574218,-0.154297 C 64.352932,36.570802 64.300197,36.382 64.300198,36.108562 l 0,-1.1875 -0.263672,0 0,-0.279296 0.263672,0 0,-0.621094 0.361328,0" />
<path
inkscape:connector-curvature="0"
id="path4231"
style="font-size:4px;fill:#ffffff"
d="m 65.876369,34.641766 0.359375,0 0,2.1875 -0.359375,0 0,-2.1875 m 0,-0.851563 0.359375,0 0,0.455078 -0.359375,0 0,-0.455078" />
<path
inkscape:connector-curvature="0"
id="path4233"
style="font-size:4px;fill:#ffffff"
d="m 67.341213,34.020672 0,0.621094 0.740235,0 0,0.279296 -0.740235,0 0,1.1875 c -10e-7,0.178386 0.02409,0.29297 0.07227,0.34375 0.04948,0.05078 0.149087,0.07617 0.298828,0.07617 l 0.369141,0 0,0.300782 -0.369141,0 c -0.277345,0 -0.468751,-0.05143 -0.574219,-0.154297 C 67.032619,36.570802 66.979885,36.382 66.979885,36.108562 l 0,-1.1875 -0.263672,0 0,-0.279296 0.263672,0 0,-0.621094 0.361328,0" />
<path
inkscape:connector-curvature="0"
id="path4235"
style="font-size:4px;fill:#ffffff"
d="m 68.518948,35.965984 0,-1.324218 0.359375,0 0,1.310546 c -10e-7,0.207032 0.04036,0.362631 0.121093,0.466797 0.08073,0.102865 0.201822,0.154297 0.363282,0.154297 0.194009,0 0.347003,-0.06185 0.458984,-0.185547 0.113279,-0.123697 0.16992,-0.292317 0.169922,-0.505859 l 0,-1.240234 0.359375,0 0,2.1875 -0.359375,0 0,-0.335938 c -0.08724,0.132813 -0.188804,0.231771 -0.304688,0.296875 -0.114584,0.0638 -0.248048,0.0957 -0.40039,0.0957 -0.251303,0 -0.442058,-0.07813 -0.572266,-0.234375 -0.130209,-0.156249 -0.195313,-0.384765 -0.195312,-0.685547 m 0.904296,-1.376953 0,0" />
<path
inkscape:connector-curvature="0"
id="path4237"
style="font-size:4px;fill:#ffffff"
d="m 72.534573,34.973797 0,-1.183594 0.359375,0 0,3.039063 -0.359375,0 0,-0.328125 c -0.07552,0.130208 -0.171226,0.227213 -0.28711,0.291015 -0.114585,0.0625 -0.252605,0.09375 -0.414062,0.09375 -0.264324,0 -0.479819,-0.105468 -0.646485,-0.316406 -0.165365,-0.210937 -0.248047,-0.488281 -0.248047,-0.832031 0,-0.343749 0.08268,-0.621092 0.248047,-0.832032 0.166666,-0.210935 0.382161,-0.316404 0.646485,-0.316406 0.161457,2e-6 0.299477,0.0319 0.414062,0.0957 0.115884,0.0625 0.211587,0.158856 0.28711,0.289063 m -1.22461,0.763672 c 0,0.264323 0.05404,0.472006 0.16211,0.623047 0.109374,0.149739 0.259113,0.224609 0.449218,0.224609 0.190103,0 0.339843,-0.07487 0.449219,-0.224609 0.109373,-0.151041 0.164061,-0.358724 0.164063,-0.623047 -2e-6,-0.264322 -0.05469,-0.471353 -0.164063,-0.621094 -0.109376,-0.15104 -0.259116,-0.226561 -0.449219,-0.226563 -0.190105,2e-6 -0.339844,0.07552 -0.449218,0.226563 -0.108074,0.149741 -0.16211,0.356772 -0.16211,0.621094" />
<path
inkscape:connector-curvature="0"
id="path4239"
style="font-size:4px;fill:#ffffff"
d="m 75.505276,35.645672 0,0.175781 -1.652344,0 c 0.01562,0.247397 0.08984,0.436199 0.222656,0.566406 0.134114,0.128907 0.320312,0.19336 0.558594,0.19336 0.138019,0 0.271483,-0.01693 0.400391,-0.05078 0.130206,-0.03385 0.259112,-0.08463 0.386718,-0.152343 l 0,0.339843 c -0.128908,0.05469 -0.261069,0.09636 -0.396484,0.125 -0.135418,0.02865 -0.272788,0.04297 -0.412109,0.04297 -0.34896,0 -0.625652,-0.101562 -0.830079,-0.304687 -0.203125,-0.203125 -0.304687,-0.477864 -0.304687,-0.824219 0,-0.358072 0.09635,-0.641925 0.289062,-0.851563 0.19401,-0.210935 0.455078,-0.316404 0.783204,-0.316406 0.294269,2e-6 0.52669,0.09505 0.697265,0.285156 0.171873,0.188804 0.25781,0.445966 0.257813,0.771485 m -0.359375,-0.105469 c -0.0026,-0.196613 -0.05794,-0.353514 -0.166016,-0.470703 -0.106772,-0.117186 -0.248699,-0.175779 -0.425781,-0.175781 -0.200522,2e-6 -0.361329,0.05664 -0.482422,0.169922 -0.119792,0.113282 -0.188803,0.272788 -0.207031,0.478515 l 1.28125,-0.002" />
</g>
<g
id="text3353"
style="font-size:33.09410858px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans">
<path
inkscape:connector-curvature="0"
id="path4242"
style="font-size:3.30941081px;fill:#ffffff"
d="m 41.256912,36.22762 0,-0.647985 -0.533254,0 0,-0.268243 0.856439,0 0,1.035806 c -0.126044,0.08942 -0.265014,0.157284 -0.416908,0.203607 -0.151899,0.04525 -0.31403,0.06787 -0.486393,0.06787 -0.37705,0 -0.672225,-0.109882 -0.885526,-0.329648 -0.212225,-0.220842 -0.318337,-0.527867 -0.318337,-0.921076 0,-0.394284 0.106112,-0.701309 0.318337,-0.921076 0.213301,-0.220841 0.508476,-0.331262 0.885526,-0.331265 0.157281,3e-6 0.306485,0.01939 0.44761,0.05817 0.1422,0.03878 0.273089,0.09588 0.39267,0.171287 l 0,0.347424 c -0.120658,-0.10234 -0.248854,-0.179365 -0.38459,-0.231077 -0.135739,-0.05171 -0.278479,-0.07756 -0.42822,-0.07756 -0.295176,2e-6 -0.517096,0.08241 -0.66576,0.247236 -0.147588,0.164826 -0.221382,0.410446 -0.221381,0.736861 -10e-7,0.32534 0.07379,0.570421 0.221381,0.735245 0.148664,0.164824 0.370584,0.247236 0.66576,0.247236 0.115268,0 0.218148,-0.0097 0.308642,-0.02909 0.09049,-0.02047 0.171824,-0.05171 0.244004,-0.09372" />
<path
inkscape:connector-curvature="0"
id="path4244"
style="font-size:3.30941081px;fill:#ffffff"
d="m 42.134358,35.857574 0,-1.095596 0.29733,0 0,1.084284 c 0,0.171289 0.03339,0.300024 0.100188,0.386206 0.06679,0.08511 0.166977,0.127658 0.300561,0.127658 0.160514,0 0.287095,-0.05117 0.379742,-0.153513 0.09372,-0.102341 0.140584,-0.241849 0.140586,-0.418524 l 0,-1.026111 0.297329,0 0,1.809834 -0.297329,0 0,-0.277939 c -0.07218,0.109883 -0.156208,0.191756 -0.252084,0.24562 -0.0948,0.05279 -0.205224,0.07918 -0.331265,0.07918 -0.207916,0 -0.365738,-0.06464 -0.473465,-0.19391 -0.107729,-0.129274 -0.161593,-0.318337 -0.161593,-0.567189 m 0.748173,-1.139226 0,0" />
<path
inkscape:connector-curvature="0"
id="path4246"
style="font-size:3.30941081px;fill:#ffffff"
d="m 44.265761,34.761978 0.29733,0 0,1.809834 -0.29733,0 0,-1.809834 m 0,-0.704543 0.29733,0 0,0.37651 -0.29733,0 0,-0.37651" />
<path
inkscape:connector-curvature="0"
id="path4248"
style="font-size:3.30941081px;fill:#ffffff"
d="m 46.374541,35.036685 0,-0.97925 0.29733,0 0,2.514377 -0.29733,0 0,-0.271475 c -0.06248,0.107728 -0.141664,0.187985 -0.237541,0.240772 -0.0948,0.05171 -0.208994,0.07756 -0.342576,0.07756 -0.218689,0 -0.396979,-0.08726 -0.53487,-0.261779 -0.136815,-0.174519 -0.205223,-0.40398 -0.205222,-0.688383 -1e-6,-0.284402 0.06841,-0.513863 0.205222,-0.688384 0.137891,-0.174518 0.316181,-0.261777 0.53487,-0.261779 0.133582,2e-6 0.247774,0.0264 0.342576,0.07918 0.09588,0.05171 0.175057,0.13143 0.237541,0.239157 m -1.013184,0.631826 c -10e-7,0.218689 0.04471,0.390515 0.134122,0.515479 0.09049,0.123888 0.214378,0.185831 0.371662,0.185831 0.157282,0 0.281169,-0.06194 0.371662,-0.185831 0.09049,-0.124964 0.135736,-0.29679 0.135738,-0.515479 -2e-6,-0.218688 -0.04525,-0.389975 -0.135738,-0.513864 -0.09049,-0.124963 -0.21438,-0.187446 -0.371662,-0.187447 -0.157284,10e-7 -0.281171,0.06248 -0.371662,0.187447 -0.08942,0.123889 -0.134123,0.295176 -0.134122,0.513864" />
<path
inkscape:connector-curvature="0"
id="path4250"
style="font-size:3.30941081px;fill:#ffffff"
d="m 48.106811,35.662047 c -0.240235,10e-7 -0.406675,0.02747 -0.499321,0.08241 -0.09265,0.05494 -0.138969,0.148666 -0.138969,0.281171 0,0.105574 0.03447,0.189602 0.103419,0.252084 0.07002,0.0614 0.164824,0.09211 0.284403,0.09211 0.164823,0 0.29679,-0.05817 0.395901,-0.174519 0.100186,-0.117424 0.150279,-0.273091 0.150281,-0.467002 l 0,-0.06625 -0.295714,0 m 0.593044,-0.12281 0,1.032575 -0.29733,0 0,-0.274707 c -0.06787,0.109883 -0.152437,0.191217 -0.2537,0.244004 -0.101266,0.05171 -0.225153,0.07756 -0.371663,0.07756 -0.185293,0 -0.33288,-0.05171 -0.442763,-0.155128 -0.108805,-0.104496 -0.163208,-0.244004 -0.163208,-0.418524 0,-0.203606 0.06787,-0.357118 0.203607,-0.460538 0.136814,-0.103418 0.34042,-0.155128 0.610818,-0.155129 l 0.416909,0 0,-0.02909 c -2e-6,-0.136813 -0.04525,-0.242387 -0.135738,-0.316721 -0.08942,-0.07541 -0.215457,-0.113113 -0.378126,-0.113114 -0.10342,10e-7 -0.204146,0.01239 -0.302178,0.03717 -0.09803,0.02478 -0.192295,0.06195 -0.282786,0.111499 l 0,-0.274707 c 0.108805,-0.04201 0.214378,-0.07325 0.316721,-0.09372 0.102341,-0.02154 0.201989,-0.03232 0.298946,-0.03232 0.261778,2e-6 0.457305,0.06787 0.58658,0.203606 0.129272,0.135739 0.193909,0.3415 0.193911,0.617283" />
<path
inkscape:connector-curvature="0"
id="path4252"
style="font-size:3.30941081px;fill:#ffffff"
d="m 50.81833,35.479448 0,1.092364 -0.29733,0 0,-1.082669 c -10e-7,-0.171287 -0.0334,-0.299483 -0.100187,-0.38459 -0.06679,-0.0851 -0.16698,-0.127656 -0.300562,-0.127658 -0.160516,2e-6 -0.287096,0.05117 -0.379742,0.153513 -0.09265,0.102343 -0.13897,0.241851 -0.138969,0.418524 l 0,1.02288 -0.298946,0 0,-1.809834 0.298946,0 0,0.28117 c 0.0711,-0.108804 0.154589,-0.190138 0.250468,-0.244004 0.09695,-0.05386 0.208453,-0.08079 0.334496,-0.0808 0.207914,2e-6 0.365197,0.06464 0.47185,0.193911 0.106649,0.128198 0.159974,0.31726 0.159976,0.567189" />
<path
inkscape:connector-curvature="0"
id="path4254"
style="font-size:3.30941081px;fill:#ffffff"
d="m 52.71704,34.831462 0,0.277939 c -0.08403,-0.04632 -0.168596,-0.08079 -0.2537,-0.103419 -0.08403,-0.0237 -0.169134,-0.03555 -0.255316,-0.03555 -0.192834,10e-7 -0.342576,0.06141 -0.449227,0.184215 -0.106651,0.121734 -0.159976,0.293022 -0.159976,0.513864 0,0.220843 0.05333,0.392669 0.159976,0.515479 0.106651,0.121733 0.256393,0.1826 0.449227,0.182599 0.08618,1e-6 0.171287,-0.01131 0.255316,-0.03393 0.0851,-0.0237 0.16967,-0.05871 0.2537,-0.105035 l 0,0.274707 c -0.08295,0.03878 -0.169135,0.06787 -0.258548,0.08726 -0.08834,0.01939 -0.1826,0.02909 -0.282786,0.02909 -0.272553,0 -0.489087,-0.08564 -0.649601,-0.256931 -0.160516,-0.171288 -0.240773,-0.402365 -0.240773,-0.693231 0,-0.295175 0.0808,-0.527329 0.242388,-0.696463 0.162669,-0.169132 0.385128,-0.253698 0.667377,-0.2537 0.09157,2e-6 0.180982,0.0097 0.268243,0.02909 0.08726,0.01832 0.171825,0.04633 0.2537,0.08403" />
<path
inkscape:connector-curvature="0"
id="path4256"
style="font-size:3.30941081px;fill:#ffffff"
d="m 54.785421,35.592562 0,0.145433 -1.367071,0 c 0.01293,0.204685 0.07433,0.36089 0.184215,0.468618 0.110959,0.106651 0.265011,0.159977 0.462154,0.159976 0.114191,1e-6 0.224612,-0.014 0.331264,-0.04201 0.107727,-0.02801 0.214378,-0.07002 0.319953,-0.126042 l 0,0.281171 c -0.106652,0.04525 -0.215996,0.07972 -0.328032,0.103419 -0.112039,0.0237 -0.225692,0.03555 -0.34096,0.03555 -0.288712,0 -0.517635,-0.08403 -0.686767,-0.252084 -0.168057,-0.168055 -0.252085,-0.395362 -0.252084,-0.681919 -10e-7,-0.296252 0.07972,-0.531099 0.239156,-0.704543 0.160515,-0.174518 0.37651,-0.261777 0.647985,-0.261779 0.243465,2e-6 0.43576,0.07864 0.576885,0.235925 0.142199,0.156207 0.2133,0.36897 0.213302,0.638289 m -0.29733,-0.08726 c -0.0022,-0.162668 -0.04794,-0.29248 -0.137353,-0.389437 -0.08834,-0.09695 -0.205763,-0.145432 -0.352272,-0.145433 -0.165902,10e-7 -0.298946,0.04686 -0.399133,0.140585 -0.09911,0.09373 -0.156206,0.225692 -0.171288,0.395901 l 1.060046,-0.0016" />
</g>
<text
sodipodi:linespacing="125%"
id="text3554"
y="28.857702"
x="20.861383"
style="font-size:4px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="28.857702"
x="20.861383"
id="tspan3556"
sodipodi:role="line" /></text>
<text
xml:space="preserve"
style="font-size:33.09410858px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
x="18.13113"
y="36.642929"
id="text3353-9"><tspan
id="tspan3381"
sodipodi:role="line"
x="18.13113"
y="36.642929"
style="font-size:3.30941081px;fill:#ffffff;fill-opacity:1">Boot Fault</tspan></text>
<text
xml:space="preserve"
style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
x="5.6416268"
y="16.60899"
id="text6573"
sodipodi:linespacing="125%"><tspan
id="tspan6575"
sodipodi:role="line"
x="5.6416268"
y="16.60899"
style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">Battery</tspan></text>
<text
xml:space="preserve"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:80.00000119%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Sans Bold"
x="4.2995572"
y="-62.471176"
id="text3565"
sodipodi:linespacing="80.000001%"
transform="matrix(0,1,-1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan3567"
x="4.2995572"
y="-62.471176"
style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:80.00000119%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Arial;-inkscape-font-specification:Arial">Sensors</tspan></text>
</g>
<g
style="display:none"
inkscape:label="No Link"
id="layer49"
inkscape:groupmode="layer">
<g
inkscape:label="#g10909"
id="nolink"
inkscape:label="#g10909">
style="display:inline"
transform="translate(-497.66624,-344.27977)">
<rect
style="fill:#453e3e;fill-opacity:0.86363639;fill-rule:evenodd;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3370"
width="93.746948"
height="79.063599"
x="497.92136"
ry="1.628684"
y="344.5361"
ry="1.628684" />
x="497.92136"
height="79.063599"
width="93.746948"
id="rect3370"
style="fill:#453e3e;fill-opacity:0.86363639;fill-rule:evenodd;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<g
transform="translate(0.5633316,0)"
id="g10888">
id="g10888"
transform="translate(0.5633316,0)">
<rect
inkscape:label="#rect4000-7-6-7-1"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect3347-3"
width="58.986313"
height="7.2664709"
y="367.34116"
x="514.73834"
y="367.34116" />
height="7.2664709"
width="58.986313"
id="rect3347-3"
style="fill:#332d2d;fill-opacity:1;stroke:#ffffff;stroke-width:0.53149605;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:label="#rect4000-7-6-7-1" />
<g
style="font-size:19.60106087px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
id="text10783">
id="text10783"
style="font-size:19.60106087px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans">
<path
d="m 532.6868,368.56211 0.84606,0 2.05916,3.88504 0,-3.88504 0.60967,0 0,4.64401 -0.84606,0 -2.05917,-3.88504 0,3.88504 -0.60966,0 0,-4.64401"
style="font-size:6.37034512px;fill:#ff0000"
inkscape:connector-curvature="0"
id="path12765"
inkscape:connector-curvature="0" />
<path
d="m 538.7772,370.12359 c -0.30691,0 -0.54953,0.12028 -0.72786,0.36082 -0.17834,0.23848 -0.26751,0.56612 -0.26751,0.98293 0,0.41681 0.0881,0.74548 0.2644,0.98603 0.17833,0.23847 0.42199,0.35771 0.73097,0.35771 0.30483,0 0.54641,-0.12027 0.72475,-0.36082 0.17833,-0.24055 0.2675,-0.56819 0.2675,-0.98292 0,-0.41267 -0.0892,-0.73927 -0.2675,-0.97982 -0.17834,-0.24262 -0.41992,-0.36393 -0.72475,-0.36393 m 0,-0.48524 c 0.49768,0 0.88857,0.16175 1.17266,0.48524 0.28409,0.3235 0.42614,0.77141 0.42614,1.34375 0,0.57026 -0.14205,1.01817 -0.42614,1.34374 -0.28409,0.32349 -0.67498,0.48524 -1.17266,0.48524 -0.49976,0 -0.89169,-0.16175 -1.17578,-0.48524 -0.28202,-0.32557 -0.42303,-0.77348 -0.42303,-1.34374 0,-0.57234 0.14101,-1.02025 0.42303,-1.34375 0.28409,-0.32349 0.67602,-0.48524 1.17578,-0.48524"
style="font-size:6.37034512px;fill:#ff0000"
d="m 532.6868,368.56211 0.84606,0 2.05916,3.88504 0,-3.88504 0.60967,0 0,4.64401 -0.84606,0 -2.05917,-3.88504 0,3.88504 -0.60966,0 0,-4.64401" />
<path
inkscape:connector-curvature="0"
id="path12767"
inkscape:connector-curvature="0" />
<path
d="m 543.37455,368.56211 0.62832,0 0,4.11522 2.26135,0 0,0.52879 -2.88967,0 0,-4.64401"
style="font-size:6.37034512px;fill:#ff0000"
d="m 538.7772,370.12359 c -0.30691,0 -0.54953,0.12028 -0.72786,0.36082 -0.17834,0.23848 -0.26751,0.56612 -0.26751,0.98293 0,0.41681 0.0881,0.74548 0.2644,0.98603 0.17833,0.23847 0.42199,0.35771 0.73097,0.35771 0.30483,0 0.54641,-0.12027 0.72475,-0.36082 0.17833,-0.24055 0.2675,-0.56819 0.2675,-0.98292 0,-0.41267 -0.0892,-0.73927 -0.2675,-0.97982 -0.17834,-0.24262 -0.41992,-0.36393 -0.72475,-0.36393 m 0,-0.48524 c 0.49768,0 0.88857,0.16175 1.17266,0.48524 0.28409,0.3235 0.42614,0.77141 0.42614,1.34375 0,0.57026 -0.14205,1.01817 -0.42614,1.34374 -0.28409,0.32349 -0.67498,0.48524 -1.17266,0.48524 -0.49976,0 -0.89169,-0.16175 -1.17578,-0.48524 -0.28202,-0.32557 -0.42303,-0.77348 -0.42303,-1.34374 0,-0.57234 0.14101,-1.02025 0.42303,-1.34375 0.28409,-0.32349 0.67602,-0.48524 1.17578,-0.48524" />
<path
inkscape:connector-curvature="0"
id="path12769"
inkscape:connector-curvature="0" />
<path
d="m 546.89565,369.72233 0.57234,0 0,3.48379 -0.57234,0 0,-3.48379 m 0,-1.35618 0.57234,0 0,0.72475 -0.57234,0 0,-0.72475"
style="font-size:6.37034512px;fill:#ff0000"
d="m 543.37455,368.56211 0.62832,0 0,4.11522 2.26135,0 0,0.52879 -2.88967,0 0,-4.64401" />
<path
inkscape:connector-curvature="0"
id="path12771"
inkscape:connector-curvature="0" />
<path
d="m 551.55832,371.1034 0,2.10272 -0.57233,0 0,-2.08405 c 0,-0.32972 -0.0643,-0.57648 -0.19285,-0.74031 -0.12857,-0.16381 -0.32143,-0.24572 -0.57856,-0.24573 -0.30898,10e-6 -0.55264,0.0985 -0.73097,0.2955 -0.17834,0.197 -0.26751,0.46555 -0.26751,0.80563 l 0,1.96896 -0.57544,0 0,-3.48379 0.57544,0 0,0.54123 c 0.13686,-0.20943 0.29757,-0.366 0.48213,-0.46968 0.18663,-0.10369 0.40126,-0.15553 0.64388,-0.15553 0.40022,0 0.70298,0.12442 0.90827,0.37326 0.20529,0.24677 0.30794,0.6107 0.30794,1.09179"
style="font-size:6.37034512px;fill:#ff0000"
d="m 546.89565,369.72233 0.57234,0 0,3.48379 -0.57234,0 0,-3.48379 m 0,-1.35618 0.57234,0 0,0.72475 -0.57234,0 0,-0.72475" />
<path
inkscape:connector-curvature="0"
id="path12773"
inkscape:connector-curvature="0" />
<path
d="m 552.68433,368.36615 0.57545,0 0,2.85856 1.70767,-1.50238 0.73098,0 -1.84765,1.62992 1.92541,1.85387 -0.74653,0 -1.76988,-1.70146 0,1.70146 -0.57545,0 0,-4.83997"
style="font-size:6.37034512px;fill:#ff0000"
d="m 551.55832,371.1034 0,2.10272 -0.57233,0 0,-2.08405 c 0,-0.32972 -0.0643,-0.57648 -0.19285,-0.74031 -0.12857,-0.16381 -0.32143,-0.24572 -0.57856,-0.24573 -0.30898,10e-6 -0.55264,0.0985 -0.73097,0.2955 -0.17834,0.197 -0.26751,0.46555 -0.26751,0.80563 l 0,1.96896 -0.57544,0 0,-3.48379 0.57544,0 0,0.54123 c 0.13686,-0.20943 0.29757,-0.366 0.48213,-0.46968 0.18663,-0.10369 0.40126,-0.15553 0.64388,-0.15553 0.40022,0 0.70298,0.12442 0.90827,0.37326 0.20529,0.24677 0.30794,0.6107 0.30794,1.09179" />
<path
inkscape:connector-curvature="0"
id="path12775"
inkscape:connector-curvature="0" />
style="font-size:6.37034512px;fill:#ff0000"
d="m 552.68433,368.36615 0.57545,0 0,2.85856 1.70767,-1.50238 0.73098,0 -1.84765,1.62992 1.92541,1.85387 -0.74653,0 -1.76988,-1.70146 0,1.70146 -0.57545,0 0,-4.83997" />
</g>
<g
id="g10867"
transform="matrix(0.44255352,0,0,0.44255352,312.84845,210.43308)">
transform="matrix(0.44255352,0,0,0.44255352,312.84845,210.43308)"
id="g10867">
<path
style="fill:url(#radialGradient10901);fill-opacity:1;stroke:url(#linearGradient10903);stroke-width:0.68692255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
inkscape:connector-curvature="0"
d="m 466.346,356.14361 c -3.62458,0 -6.56905,2.94447 -6.56905,6.56905 0,3.62458 2.94447,6.56906 6.56905,6.56905 3.62458,0 6.56906,-2.94447 6.56905,-6.56905 0,-3.62458 -2.94447,-6.56905 -6.56905,-6.56905 z"
id="path2555-8"
d="m 466.346,356.14361 c -3.62458,0 -6.56905,2.94447 -6.56905,6.56905 0,3.62458 2.94447,6.56906 6.56905,6.56905 3.62458,0 6.56906,-2.94447 6.56905,-6.56905 0,-3.62458 -2.94447,-6.56905 -6.56905,-6.56905 z"
inkscape:connector-curvature="0" />
style="fill:url(#radialGradient10901);fill-opacity:1;stroke:url(#linearGradient10903);stroke-width:0.68692255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
<path
style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
inkscape:connector-curvature="0"
d="m 464.17717,359.06987 -1.00019,1.00019 2.06355,2.05302 c 0.0634,0.0642 0.0634,0.16742 0,0.23162 l -2.06355,2.05302 1.00019,1.00019 2.05302,-2.05302 c 0.0642,-0.0634 0.16743,-0.0634 0.23162,0 l 2.05302,2.05302 1.00019,-1.00019 -2.05302,-2.05302 c -0.0634,-0.0642 -0.0634,-0.16743 0,-0.23162 l 2.05302,-2.05302 -1.00019,-1.00019 -2.05302,2.05302 c -0.0642,0.0634 -0.16743,0.0634 -0.23162,0 l -2.05302,-2.05302 z"
id="path3243-2"
d="m 464.17717,359.06987 -1.00019,1.00019 2.06355,2.05302 c 0.0634,0.0642 0.0634,0.16742 0,0.23162 l -2.06355,2.05302 1.00019,1.00019 2.05302,-2.05302 c 0.0642,-0.0634 0.16743,-0.0634 0.23162,0 l 2.05302,2.05302 1.00019,-1.00019 -2.05302,-2.05302 c -0.0634,-0.0642 -0.0634,-0.16743 0,-0.23162 l 2.05302,-2.05302 -1.00019,-1.00019 -2.05302,2.05302 c -0.0642,0.0634 -0.16743,0.0634 -0.23162,0 l -2.05302,-2.05302 z"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
id="path3256-7"
d="m 464.17717,359.40677 -1.00019,1.00019 2.06355,2.05302 c 0.0634,0.0642 0.0634,0.16743 0,0.23162 l -2.06355,2.05302 1.00019,1.00019 2.05302,-2.05302 c 0.0642,-0.0634 0.16743,-0.0634 0.23162,0 l 2.05302,2.05302 1.00019,-1.00019 -2.05302,-2.05302 c -0.0634,-0.0642 -0.0634,-0.16742 0,-0.23162 l 2.05302,-2.05302 -1.00019,-1.00019 -2.05302,2.05302 c -0.0642,0.0634 -0.16743,0.0634 -0.23162,0 l -2.05302,-2.05302 z"
inkscape:connector-curvature="0" />
</g>
<g
transform="matrix(0.44255352,0,0,0.44255352,362.84845,210.43308)"
id="g10876">
<path
inkscape:connector-curvature="0"
d="m 466.346,356.14361 c -3.62458,0 -6.56905,2.94447 -6.56905,6.56905 0,3.62458 2.94447,6.56906 6.56905,6.56905 3.62458,0 6.56906,-2.94447 6.56905,-6.56905 0,-3.62458 -2.94447,-6.56905 -6.56905,-6.56905 z"
id="path10878"
style="fill:url(#radialGradient10905);fill-opacity:1;stroke:url(#linearGradient10907);stroke-width:0.68692255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
<path
inkscape:connector-curvature="0"
d="m 464.17717,359.06987 -1.00019,1.00019 2.06355,2.05302 c 0.0634,0.0642 0.0634,0.16742 0,0.23162 l -2.06355,2.05302 1.00019,1.00019 2.05302,-2.05302 c 0.0642,-0.0634 0.16743,-0.0634 0.23162,0 l 2.05302,2.05302 1.00019,-1.00019 -2.05302,-2.05302 c -0.0634,-0.0642 -0.0634,-0.16743 0,-0.23162 l 2.05302,-2.05302 -1.00019,-1.00019 -2.05302,2.05302 c -0.0642,0.0634 -0.16743,0.0634 -0.23162,0 l -2.05302,-2.05302 z"
id="path10880"
style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
<path
inkscape:connector-curvature="0"
d="m 464.17717,359.40677 -1.00019,1.00019 2.06355,2.05302 c 0.0634,0.0642 0.0634,0.16743 0,0.23162 l -2.06355,2.05302 1.00019,1.00019 2.05302,-2.05302 c 0.0642,-0.0634 0.16743,-0.0634 0.23162,0 l 2.05302,2.05302 1.00019,-1.00019 -2.05302,-2.05302 c -0.0634,-0.0642 -0.0634,-0.16742 0,-0.23162 l 2.05302,-2.05302 -1.00019,-1.00019 -2.05302,2.05302 c -0.0642,0.0634 -0.16743,0.0634 -0.23162,0 l -2.05302,-2.05302 z"
id="path10882"
id="path3256-7"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
</g>
<g
id="g10876"
transform="matrix(0.44255352,0,0,0.44255352,362.84845,210.43308)">
<path
style="fill:url(#radialGradient10905);fill-opacity:1;stroke:url(#linearGradient10907);stroke-width:0.68692255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="path10878"
d="m 466.346,356.14361 c -3.62458,0 -6.56905,2.94447 -6.56905,6.56905 0,3.62458 2.94447,6.56906 6.56905,6.56905 3.62458,0 6.56906,-2.94447 6.56905,-6.56905 0,-3.62458 -2.94447,-6.56905 -6.56905,-6.56905 z"
inkscape:connector-curvature="0" />
<path
style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
id="path10880"
d="m 464.17717,359.06987 -1.00019,1.00019 2.06355,2.05302 c 0.0634,0.0642 0.0634,0.16742 0,0.23162 l -2.06355,2.05302 1.00019,1.00019 2.05302,-2.05302 c 0.0642,-0.0634 0.16743,-0.0634 0.23162,0 l 2.05302,2.05302 1.00019,-1.00019 -2.05302,-2.05302 c -0.0634,-0.0642 -0.0634,-0.16743 0,-0.23162 l 2.05302,-2.05302 -1.00019,-1.00019 -2.05302,2.05302 c -0.0642,0.0634 -0.16743,0.0634 -0.23162,0 l -2.05302,-2.05302 z"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
id="path10882"
d="m 464.17717,359.40677 -1.00019,1.00019 2.06355,2.05302 c 0.0634,0.0642 0.0634,0.16743 0,0.23162 l -2.06355,2.05302 1.00019,1.00019 2.05302,-2.05302 c 0.0642,-0.0634 0.16743,-0.0634 0.23162,0 l 2.05302,2.05302 1.00019,-1.00019 -2.05302,-2.05302 c -0.0634,-0.0642 -0.0634,-0.16742 0,-0.23162 l 2.05302,-2.05302 -1.00019,-1.00019 -2.05302,2.05302 c -0.0642,0.0634 -0.16743,0.0634 -0.23162,0 l -2.05302,-2.05302 z"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 240 KiB

After

Width:  |  Height:  |  Size: 236 KiB

View File

@ -132,16 +132,11 @@ ConfigCcpmWidget::ConfigCcpmWidget(QWidget *parent) : VehicleConfig(parent)
}
m_ccpm->PitchCurve->setMin(-1);
resetMixer(m_ccpm->PitchCurve, 5);
resetMixer(m_ccpm->ThrottleCurve, 5);
MixerSettings * mixerSettings = MixerSettings::GetInstance(getObjectManager());
Q_ASSERT(mixerSettings);
UAVObjectField * curve2source = mixerSettings->getField("Curve2Source");
Q_ASSERT(curve2source);
//initialize our two mixer curves
m_ccpm->PitchCurve->initLinearCurve(5, 1.0, -1.0);
m_ccpm->ThrottleCurve->initLinearCurve(5, 1.0);
//initialize channel names
m_ccpm->ccpmEngineChannel->addItems(channelNames);
m_ccpm->ccpmEngineChannel->setCurrentIndex(0);
m_ccpm->ccpmTailChannel->addItems(channelNames);
@ -474,14 +469,6 @@ void ConfigCcpmWidget::UpdateType()
}
/**
Resets a mixer curve
*/
void ConfigCcpmWidget::resetMixer(MixerCurveWidget *mixer, int numElements)
{
mixer->initLinearCurve(numElements,(double)1);
}
void ConfigCcpmWidget::UpdateCurveWidgets()
{
int NumCurvePoints,i,Changed;
@ -501,7 +488,8 @@ void ConfigCcpmWidget::UpdateCurveWidgets()
if (ThisValue!=OldCurveValues.at(i))Changed=1;
}
// Setup all Throttle1 curves for all types of airframes
if (Changed==1)m_ccpm->ThrottleCurve->setCurve(curveValues);
if (Changed==1)
m_ccpm->ThrottleCurve->setCurve(&curveValues);
curveValues.clear();
Changed=0;
@ -513,7 +501,8 @@ void ConfigCcpmWidget::UpdateCurveWidgets()
if (ThisValue!=OldCurveValues.at(i))Changed=1;
}
// Setup all Throttle1 curves for all types of airframes
if (Changed==1)m_ccpm->PitchCurve->setCurve(curveValues);
if (Changed==1)
m_ccpm->PitchCurve->setCurve(&curveValues);
}
void ConfigCcpmWidget::updatePitchCurveValue(QList<double> curveValues0,double Value0)
@ -606,50 +595,40 @@ void ConfigCcpmWidget::UpdateCurveSettings()
m_ccpm->CurveValue2->setCorrectionMode(QAbstractSpinBox::CorrectToNearestValue);
m_ccpm->CurveValue3->setCorrectionMode(QAbstractSpinBox::CorrectToNearestValue);
//set default visible
m_ccpm->CurveLabel1->setVisible(true);
m_ccpm->CurveValue1->setVisible(true);
m_ccpm->CurveLabel2->setVisible(false);
m_ccpm->CurveValue2->setVisible(false);
m_ccpm->CurveLabel3->setVisible(false);
m_ccpm->CurveValue3->setVisible(false);
m_ccpm->ccpmGenerateCurve->setVisible(true);
m_ccpm->CurveToGenerate->setVisible(true);
if ( CurveType.compare("Flat")==0)
{
m_ccpm->CurveLabel1->setText("Value");
m_ccpm->CurveLabel1->setVisible(true);
m_ccpm->CurveValue1->setVisible(true);
m_ccpm->CurveLabel2->setVisible(false);
m_ccpm->CurveValue2->setVisible(false);
m_ccpm->CurveLabel3->setVisible(false);
m_ccpm->CurveValue3->setVisible(false);
m_ccpm->ccpmGenerateCurve->setVisible(true);
m_ccpm->CurveToGenerate->setVisible(true);
}
if ( CurveType.compare("Linear")==0)
{
m_ccpm->CurveLabel1->setText("Min");
m_ccpm->CurveLabel1->setVisible(true);
m_ccpm->CurveValue1->setVisible(true);
m_ccpm->CurveLabel2->setText("Max");
m_ccpm->CurveLabel2->setVisible(true);
m_ccpm->CurveValue2->setVisible(true);
m_ccpm->CurveLabel3->setVisible(false);
m_ccpm->CurveValue3->setVisible(false);
m_ccpm->ccpmGenerateCurve->setVisible(true);
m_ccpm->CurveToGenerate->setVisible(true);
}
if ( CurveType.compare("Step")==0)
{
m_ccpm->CurveLabel1->setText("Min");
m_ccpm->CurveLabel1->setVisible(true);
m_ccpm->CurveValue1->setVisible(true);
m_ccpm->CurveLabel2->setText("Max");
m_ccpm->CurveLabel2->setVisible(true);
m_ccpm->CurveValue2->setVisible(true);
m_ccpm->CurveLabel3->setText("Step at");
m_ccpm->CurveLabel3->setVisible(true);
m_ccpm->CurveValue3->setVisible(true);
m_ccpm->ccpmGenerateCurve->setVisible(true);
m_ccpm->CurveToGenerate->setVisible(true);
}
if ( CurveType.compare("Exp")==0)
{
m_ccpm->CurveLabel1->setText("Min");
m_ccpm->CurveLabel1->setVisible(true);
m_ccpm->CurveValue1->setVisible(true);
m_ccpm->CurveLabel2->setText("Max");
m_ccpm->CurveLabel2->setVisible(true);
m_ccpm->CurveValue2->setVisible(true);
@ -660,14 +639,10 @@ void ConfigCcpmWidget::UpdateCurveSettings()
m_ccpm->CurveValue3->setMaximum(100.0);
m_ccpm->CurveValue3->setSingleStep(1.0);
m_ccpm->CurveValue3->setCorrectionMode(QAbstractSpinBox::CorrectToNearestValue);;
m_ccpm->ccpmGenerateCurve->setVisible(true);
m_ccpm->CurveToGenerate->setVisible(true);
}
if ( CurveType.compare("Log")==0)
{
m_ccpm->CurveLabel1->setText("Min");
m_ccpm->CurveLabel1->setVisible(true);
m_ccpm->CurveValue1->setVisible(true);
m_ccpm->CurveLabel2->setText("Max");
m_ccpm->CurveLabel2->setVisible(true);
m_ccpm->CurveValue2->setVisible(true);
@ -677,22 +652,17 @@ void ConfigCcpmWidget::UpdateCurveSettings()
m_ccpm->CurveValue3->setMinimum(1.0);
m_ccpm->CurveValue3->setMaximum(100.0);
m_ccpm->CurveValue3->setSingleStep(1.0);
m_ccpm->CurveValue3->setCorrectionMode(QAbstractSpinBox::CorrectToNearestValue);;
m_ccpm->ccpmGenerateCurve->setVisible(true);
m_ccpm->CurveToGenerate->setVisible(true);
m_ccpm->CurveValue3->setCorrectionMode(QAbstractSpinBox::CorrectToNearestValue);
}
if ( CurveType.compare("Custom")==0)
{
m_ccpm->CurveLabel1->setVisible(false);
m_ccpm->CurveValue1->setVisible(false);
m_ccpm->CurveLabel2->setVisible(false);
m_ccpm->CurveValue2->setVisible(false);
m_ccpm->CurveLabel3->setVisible(false);
m_ccpm->CurveValue3->setVisible(false);
m_ccpm->ccpmGenerateCurve->setVisible(false);
m_ccpm->CurveToGenerate->setVisible(false);
}
UpdateCurveWidgets();
UpdateCurveWidgets();
}
void ConfigCcpmWidget::GenerateCurve()
@ -881,7 +851,8 @@ void ConfigCcpmWidget::UpdateMixer()
float CollectiveConstant,PitchConstant,RollConstant,ThisAngle[6];
QString Channel;
throwConfigError(QString("HeliCP"));
if (throwConfigError(QString("HeliCP")))
return;
GUIConfigDataUnion config = GetConfigData();
@ -1744,13 +1715,16 @@ void ConfigCcpmWidget::SwashLvlSpinBoxChanged(int value)
/**
This function displays text and color formatting in order to help the user understand what channels have not yet been configured.
*/
void ConfigCcpmWidget::throwConfigError(QString airframeType)
bool ConfigCcpmWidget::throwConfigError(QString airframeType)
{
Q_UNUSED(airframeType);
bool error = false;
if((m_ccpm->ccpmServoWChannel->currentIndex()==0)&&(m_ccpm->ccpmServoWChannel->isEnabled()))
{
m_ccpm->ccpmServoWLabel->setText("<font color=red>Servo W</font>");
error = true;
}
else
{
@ -1759,6 +1733,7 @@ void ConfigCcpmWidget::throwConfigError(QString airframeType)
if((m_ccpm->ccpmServoXChannel->currentIndex()==0)&&(m_ccpm->ccpmServoXChannel->isEnabled()))
{
m_ccpm->ccpmServoXLabel->setText("<font color=red>Servo X</font>");
error = true;
}
else
{
@ -1767,6 +1742,7 @@ void ConfigCcpmWidget::throwConfigError(QString airframeType)
if((m_ccpm->ccpmServoYChannel->currentIndex()==0)&&(m_ccpm->ccpmServoYChannel->isEnabled()))
{
m_ccpm->ccpmServoYLabel->setText("<font color=red>Servo Y</font>");
error = true;
}
else
{
@ -1775,6 +1751,7 @@ void ConfigCcpmWidget::throwConfigError(QString airframeType)
if((m_ccpm->ccpmServoZChannel->currentIndex()==0)&&(m_ccpm->ccpmServoZChannel->isEnabled()))
{
m_ccpm->ccpmServoZLabel->setText("<font color=red>Servo Z</font>");
error = true;
}
else
{
@ -1793,10 +1770,12 @@ void ConfigCcpmWidget::throwConfigError(QString airframeType)
if((m_ccpm->ccpmTailChannel->currentIndex()==0)&&(m_ccpm->ccpmTailChannel->isEnabled()))
{
m_ccpm->ccpmTailLabel->setText("<font color=red>Tail Rotor</font>");
error = true;
}
else
{
m_ccpm->ccpmTailLabel->setText("<font color=black>Tail Rotor</font>");
}
return error;
}

View File

@ -95,7 +95,7 @@ private:
virtual void setupUI(QString airframeType);
virtual void refreshWidgetsValues(QString frameType);
virtual QString updateConfigObjectsFromWidgets();
virtual void throwConfigError(QString airframeType);
virtual bool throwConfigError(QString airframeType);
void ccpmSwashplateUpdate();
void ccpmSwashplateRedraw();
@ -103,7 +103,6 @@ private:
void GenerateCurve();
void UpdateMixer();
void UpdateType();
void resetMixer(MixerCurveWidget *mixer, int numElements);
void UpdateCurveWidgets();
void updatePitchCurveValue(QList<double>,double);
void updateThrottleCurveValue(QList<double>,double);

View File

@ -262,15 +262,7 @@ bool ConfigFixedWingWidget::setupFrameFixedWing(QString airframeType)
{
// Check coherence:
//Show any config errors in GUI
throwConfigError(airframeType);
// - At least Pitch and either Roll or Yaw
if (m_aircraft->fwEngineChannelBox->currentText() == "None" ||
m_aircraft->fwElevator1ChannelBox->currentText() == "None" ||
((m_aircraft->fwAileron1ChannelBox->currentText() == "None") &&
(m_aircraft->fwRudder1ChannelBox->currentText() == "None"))) {
// TODO: explain the problem in the UI
// m_aircraft->fwStatusLabel->setText("ERROR: check channel assignment");
if (throwConfigError(airframeType)) {
return false;
}
@ -351,14 +343,7 @@ bool ConfigFixedWingWidget::setupFrameElevon(QString airframeType)
{
// Check coherence:
//Show any config errors in GUI
throwConfigError(airframeType);
// - At least Aileron1 and Aileron 2, and engine
if (m_aircraft->fwEngineChannelBox->currentText() == "None" ||
m_aircraft->fwAileron1ChannelBox->currentText() == "None" ||
m_aircraft->fwAileron2ChannelBox->currentText() == "None") {
// TODO: explain the problem in the UI
// m_aircraft->fwStatusLabel->setText("ERROR: check channel assignment");
if (throwConfigError(airframeType)) {
return false;
}
@ -436,14 +421,7 @@ bool ConfigFixedWingWidget::setupFrameVtail(QString airframeType)
{
// Check coherence:
//Show any config errors in GUI
throwConfigError(airframeType);
// - At least Pitch1 and Pitch2, and engine
if (m_aircraft->fwEngineChannelBox->currentText() == "None" ||
m_aircraft->fwElevator1ChannelBox->currentText() == "None" ||
m_aircraft->fwElevator2ChannelBox->currentText() == "None") {
// TODO: explain the problem in the UI
// m_aircraft->fwStatusLabel->setText("WARNING: check channel assignment");
if (throwConfigError(airframeType)) {
return false;
}
@ -526,7 +504,7 @@ bool ConfigFixedWingWidget::setupFrameVtail(QString airframeType)
/**
This function displays text and color formatting in order to help the user understand what channels have not yet been configured.
*/
void ConfigFixedWingWidget::throwConfigError(QString airframeType)
bool ConfigFixedWingWidget::throwConfigError(QString airframeType)
{
//Initialize configuration error flag
bool error=false;
@ -618,4 +596,6 @@ void ConfigFixedWingWidget::throwConfigError(QString airframeType)
if (error){
m_aircraft->fwStatusLabel->setText(QString("<font color='red'>ERROR: Assign all necessary channels</font>"));
}
return error;
}

View File

@ -63,7 +63,7 @@ private slots:
virtual void setupUI(QString airframeType);
virtual void refreshWidgetsValues(QString frameType);
virtual QString updateConfigObjectsFromWidgets();
virtual void throwConfigError(QString airframeType);
virtual bool throwConfigError(QString airframeType);
protected:

View File

@ -289,16 +289,9 @@ void ConfigGroundVehicleWidget::refreshWidgetsValues(QString frameType)
bool ConfigGroundVehicleWidget::setupGroundVehicleMotorcycle(QString airframeType){
// Check coherence:
//Show any config errors in GUI
throwConfigError(airframeType);
// - Motor, steering, and balance
if (m_aircraft->gvMotor2ChannelBox->currentText() == "None" ||
(m_aircraft->gvSteering1ChannelBox->currentText() == "None" ||
m_aircraft->gvSteering2ChannelBox->currentText() == "None") )
{
if (throwConfigError(airframeType)) {
return false;
}
}
// Now setup the channels:
GUIConfigDataUnion config = GetConfigData();
@ -352,16 +345,11 @@ bool ConfigGroundVehicleWidget::setupGroundVehicleMotorcycle(QString airframeTyp
bool ConfigGroundVehicleWidget::setupGroundVehicleDifferential(QString airframeType){
// Check coherence:
//Show any config errors in GUI
throwConfigError(airframeType);
// - Left and right steering
if ( m_aircraft->gvMotor2ChannelBox->currentText() == "None" ||
m_aircraft->gvSteering1ChannelBox->currentText() == "None")
{
if (throwConfigError(airframeType)) {
return false;
}
// Now setup the channels:
GUIConfigDataUnion config = GetConfigData();
ResetActuators(&config);
@ -411,14 +399,7 @@ bool ConfigGroundVehicleWidget::setupGroundVehicleCar(QString airframeType)
{
// Check coherence:
//Show any config errors in GUI
throwConfigError(airframeType);
// - At least one motor and one steering servo
if ((m_aircraft->gvMotor1ChannelBox->currentText() == "None" &&
m_aircraft->gvMotor2ChannelBox->currentText() == "None") ||
(m_aircraft->gvSteering1ChannelBox->currentText() == "None" &&
m_aircraft->gvSteering2ChannelBox->currentText() == "None"))
{
if (throwConfigError(airframeType)) {
return false;
}
@ -468,7 +449,7 @@ bool ConfigGroundVehicleWidget::setupGroundVehicleCar(QString airframeType)
/**
This function displays text and color formatting in order to help the user understand what channels have not yet been configured.
*/
void ConfigGroundVehicleWidget::throwConfigError(QString airframeType)
bool ConfigGroundVehicleWidget::throwConfigError(QString airframeType)
{
//Initialize configuration error flag
bool error=false;
@ -558,5 +539,6 @@ void ConfigGroundVehicleWidget::throwConfigError(QString airframeType)
if (error){
m_aircraft->gvStatusLabel->setText(QString("<font color='red'>ERROR: Assign all necessary channels</font>"));
}
return error;
}

View File

@ -63,7 +63,7 @@ private slots:
virtual void setupUI(QString airframeType);
virtual void refreshWidgetsValues(QString frameType);
virtual QString updateConfigObjectsFromWidgets();
virtual void throwConfigError(QString airframeType);
virtual bool throwConfigError(QString airframeType);
protected:

View File

@ -93,17 +93,22 @@ void ConfigMultiRotorWidget::setupUI(QString frameType)
enableComboBox(uiowner, QString("multiMotorChannelBox%0").arg(i), true);
}
m_aircraft->mrRollMixLevel->setValue(100);
m_aircraft->mrPitchMixLevel->setValue(100);
m_aircraft->mrYawMixLevel->setValue(50);
m_aircraft->triYawChannelBox->setEnabled(true);
}
else if (frameType == "QuadX" || frameType == "Quad X") {
setComboCurrentIndex( m_aircraft->multirotorFrameType, m_aircraft->multirotorFrameType->findText("Quad X"));
quad->setElementId("quad-X");
quad->setElementId("quad-x");
//Enable all necessary motor channel boxes...
for (i=1; i <=4; i++) {
enableComboBox(uiowner, QString("multiMotorChannelBox%0").arg(i), true);
}
// init mixer levels
m_aircraft->mrRollMixLevel->setValue(50);
m_aircraft->mrPitchMixLevel->setValue(50);
m_aircraft->mrYawMixLevel->setValue(50);
@ -283,20 +288,12 @@ QString ConfigMultiRotorWidget::updateConfigObjectsFromWidgets()
{
QString airframeType;
QList<QString> motorList;
// We can already setup the feedforward here, as it is common to all platforms
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
UAVObjectField* field = obj->getField(QString("FeedForward"));
field->setDouble((double)m_aircraft->feedForwardSlider->value()/100);
field = obj->getField(QString("AccelTime"));
field->setDouble(m_aircraft->accelTime->value());
field = obj->getField(QString("DecelTime"));
field->setDouble(m_aircraft->decelTime->value());
field = obj->getField(QString("MaxAccel"));
field->setDouble(m_aircraft->maxAccelSlider->value());
UAVDataObject* mixerObj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
Q_ASSERT(mixerObj);
// Curve is also common to all quads:
setThrottleCurve(obj, VehicleConfig::MIXER_THROTTLECURVE1, m_aircraft->multiThrottleCurve->getCurve() );
setThrottleCurve(mixerObj, VehicleConfig::MIXER_THROTTLECURVE1, m_aircraft->multiThrottleCurve->getCurve() );
if (m_aircraft->multirotorFrameType->currentText() == "Quad +") {
airframeType = "QuadP";
@ -314,15 +311,7 @@ QString ConfigMultiRotorWidget::updateConfigObjectsFromWidgets()
airframeType = "HexaCoax";
//Show any config errors in GUI
throwConfigError(6);
if (m_aircraft->multiMotorChannelBox1->currentText() == "None" ||
m_aircraft->multiMotorChannelBox2->currentText() == "None" ||
m_aircraft->multiMotorChannelBox3->currentText() == "None" ||
m_aircraft->multiMotorChannelBox4->currentText() == "None" ||
m_aircraft->multiMotorChannelBox5->currentText() == "None" ||
m_aircraft->multiMotorChannelBox6->currentText() == "None" ) {
if (throwConfigError(6)) {
return airframeType;
}
motorList << "VTOLMotorNW" << "VTOLMotorW" << "VTOLMotorNE" << "VTOLMotorE"
@ -348,18 +337,9 @@ QString ConfigMultiRotorWidget::updateConfigObjectsFromWidgets()
airframeType = "Octo";
//Show any config errors in GUI
throwConfigError(8);
if (m_aircraft->multiMotorChannelBox1->currentText() == "None" ||
m_aircraft->multiMotorChannelBox2->currentText() == "None" ||
m_aircraft->multiMotorChannelBox3->currentText() == "None" ||
m_aircraft->multiMotorChannelBox4->currentText() == "None" ||
m_aircraft->multiMotorChannelBox5->currentText() == "None" ||
m_aircraft->multiMotorChannelBox6->currentText() == "None" ||
m_aircraft->multiMotorChannelBox7->currentText() == "None" ||
m_aircraft->multiMotorChannelBox8->currentText() == "None") {
if (throwConfigError(8)) {
return airframeType;
}
motorList << "VTOLMotorN" << "VTOLMotorNE" << "VTOLMotorE" << "VTOLMotorSE"
<< "VTOLMotorS" << "VTOLMotorSW" << "VTOLMotorW" << "VTOLMotorNW";
@ -383,17 +363,7 @@ QString ConfigMultiRotorWidget::updateConfigObjectsFromWidgets()
airframeType = "OctoV";
//Show any config errors in GUI
throwConfigError(8);
if (m_aircraft->multiMotorChannelBox1->currentText() == "None" ||
m_aircraft->multiMotorChannelBox2->currentText() == "None" ||
m_aircraft->multiMotorChannelBox3->currentText() == "None" ||
m_aircraft->multiMotorChannelBox4->currentText() == "None" ||
m_aircraft->multiMotorChannelBox5->currentText() == "None" ||
m_aircraft->multiMotorChannelBox6->currentText() == "None" ||
m_aircraft->multiMotorChannelBox7->currentText() == "None" ||
m_aircraft->multiMotorChannelBox8->currentText() == "None") {
if (throwConfigError(8)) {
return airframeType;
}
motorList << "VTOLMotorN" << "VTOLMotorNE" << "VTOLMotorE" << "VTOLMotorSE"
@ -419,17 +389,7 @@ QString ConfigMultiRotorWidget::updateConfigObjectsFromWidgets()
airframeType = "OctoCoaxP";
//Show any config errors in GUI
throwConfigError(8);
if (m_aircraft->multiMotorChannelBox1->currentText() == "None" ||
m_aircraft->multiMotorChannelBox2->currentText() == "None" ||
m_aircraft->multiMotorChannelBox3->currentText() == "None" ||
m_aircraft->multiMotorChannelBox4->currentText() == "None" ||
m_aircraft->multiMotorChannelBox5->currentText() == "None" ||
m_aircraft->multiMotorChannelBox6->currentText() == "None" ||
m_aircraft->multiMotorChannelBox7->currentText() == "None" ||
m_aircraft->multiMotorChannelBox8->currentText() == "None") {
if (throwConfigError(8)) {
return airframeType;
}
motorList << "VTOLMotorN" << "VTOLMotorNE" << "VTOLMotorE" << "VTOLMotorSE"
@ -454,17 +414,7 @@ QString ConfigMultiRotorWidget::updateConfigObjectsFromWidgets()
airframeType = "OctoCoaxX";
//Show any config errors in GUI
throwConfigError(8);
if (m_aircraft->multiMotorChannelBox1->currentText() == "None" ||
m_aircraft->multiMotorChannelBox2->currentText() == "None" ||
m_aircraft->multiMotorChannelBox3->currentText() == "None" ||
m_aircraft->multiMotorChannelBox4->currentText() == "None" ||
m_aircraft->multiMotorChannelBox5->currentText() == "None" ||
m_aircraft->multiMotorChannelBox6->currentText() == "None" ||
m_aircraft->multiMotorChannelBox7->currentText() == "None" ||
m_aircraft->multiMotorChannelBox8->currentText() == "None") {
if (throwConfigError(8)) {
return airframeType;
}
motorList << "VTOLMotorNW" << "VTOLMotorN" << "VTOLMotorNE" << "VTOLMotorE"
@ -489,12 +439,9 @@ QString ConfigMultiRotorWidget::updateConfigObjectsFromWidgets()
airframeType = "Tri";
//Show any config errors in GUI
throwConfigError(3);
if (m_aircraft->multiMotorChannelBox1->currentText() == "None" ||
m_aircraft->multiMotorChannelBox2->currentText() == "None" ||
m_aircraft->multiMotorChannelBox3->currentText() == "None" ) {
if (throwConfigError(3)) {
return airframeType;
}
if (m_aircraft->triYawChannelBox->currentText() == "None") {
m_aircraft->mrStatusLabel->setText("<font color='red'>Error: Assign a Yaw channel</font>");
@ -523,8 +470,6 @@ QString ConfigMultiRotorWidget::updateConfigObjectsFromWidgets()
setupMultiRotorMixer(mixer);
//tell the mixer about tricopter yaw channel
UAVDataObject* mixerObj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
Q_ASSERT(mixerObj);
int channel = m_aircraft->triYawChannelBox->currentIndex()-1;
if (channel > -1){
@ -868,14 +813,7 @@ bool ConfigMultiRotorWidget::setupQuad(bool pLayout)
// Check coherence:
//Show any config errors in GUI
throwConfigError(4);
// - Four engines have to be defined
if (m_aircraft->multiMotorChannelBox1->currentText() == "None" ||
m_aircraft->multiMotorChannelBox2->currentText() == "None" ||
m_aircraft->multiMotorChannelBox3->currentText() == "None" ||
m_aircraft->multiMotorChannelBox4->currentText() == "None") {
if (throwConfigError(4)) {
return false;
}
@ -943,19 +881,9 @@ bool ConfigMultiRotorWidget::setupHexa(bool pLayout)
{
// Check coherence:
//Show any config errors in GUI
throwConfigError(6);
// - Four engines have to be defined
if (m_aircraft->multiMotorChannelBox1->currentText() == "None" ||
m_aircraft->multiMotorChannelBox2->currentText() == "None" ||
m_aircraft->multiMotorChannelBox3->currentText() == "None" ||
m_aircraft->multiMotorChannelBox4->currentText() == "None" ||
m_aircraft->multiMotorChannelBox5->currentText() == "None" ||
m_aircraft->multiMotorChannelBox6->currentText() == "None") {
if (throwConfigError(6))
return false;
}
QList<QString> motorList;
if (pLayout) {
motorList << "VTOLMotorN" << "VTOLMotorNE" << "VTOLMotorSE"
@ -1069,7 +997,7 @@ bool ConfigMultiRotorWidget::setupMultiRotorMixer(double mixerFactors[8][3])
/**
This function displays text and color formatting in order to help the user understand what channels have not yet been configured.
*/
void ConfigMultiRotorWidget::throwConfigError(int numMotors)
bool ConfigMultiRotorWidget::throwConfigError(int numMotors)
{
//Initialize configuration error flag
bool error=false;
@ -1096,6 +1024,7 @@ void ConfigMultiRotorWidget::throwConfigError(int numMotors)
if (error){
m_aircraft->mrStatusLabel->setText(QString("<font color='red'>ERROR: Assign all %1 motor channels</font>").arg(numMotors));
}
return error;
}

View File

@ -71,7 +71,7 @@ private slots:
virtual void setupUI(QString airframeType);
virtual void refreshWidgetsValues(QString frameType);
virtual QString updateConfigObjectsFromWidgets();
void throwConfigError(int numMotors);
virtual bool throwConfigError(int numMotors);
protected:

View File

@ -233,6 +233,30 @@ void VehicleConfig::setMixerVectorValue(UAVDataObject* mixer, int channel, Mixer
}
}
double VehicleConfig::getMixerValue(UAVDataObject* mixer, QString elementName)
{
Q_ASSERT(mixer);
double value = 0.0;
QPointer<UAVObjectField> field = mixer->getField(elementName);
if (field) {
value = field->getDouble();
}
return value;
}
void VehicleConfig::setMixerValue(UAVDataObject* mixer, QString elementName, double value)
{
Q_ASSERT(mixer);
QPointer<UAVObjectField> field = mixer->getField(elementName);
if (field) {
field->setDouble(value);
}
}
void VehicleConfig::setThrottleCurve(UAVDataObject* mixer, MixerThrottleCurveElem curveType, QList<double> curve)
{
QPointer<UAVObjectField> field;
@ -287,6 +311,36 @@ void VehicleConfig::getThrottleCurve(UAVDataObject* mixer, MixerThrottleCurveEle
}
}
bool VehicleConfig::isValidThrottleCurve(QList<double>* curve)
{
Q_ASSERT(curve);
if (curve) {
for (int i=0; i < curve->count(); i++) {
if (curve->at(i) != 0)
return true;
}
}
return false;
}
double VehicleConfig::getCurveMin(QList<double>* curve)
{
double min = 0;
for (int i=0; i<curve->count(); i++)
min = std::min(min, curve->at(i));
return min;
}
double VehicleConfig::getCurveMax(QList<double>* curve)
{
double max = 0;
for (int i=0; i<curve->count(); i++)
max = std::max(max, curve->at(i));
return max;
}
/**
Reset the contents of a field
*/

View File

@ -130,9 +130,13 @@ class VehicleConfig: public ConfigTaskWidget
void resetMixerVector(UAVDataObject* mixer, int channel);
QString getMixerType(UAVDataObject* mixer, int channel);
void setMixerType(UAVDataObject* mixer, int channel, MixerTypeElem mixerType);
double getMixerValue(UAVDataObject* mixer, QString elementName);
void setMixerValue(UAVDataObject* mixer, QString elementName, double value);
void setThrottleCurve(UAVDataObject* mixer, MixerThrottleCurveElem curveType, QList<double> curve);
void getThrottleCurve(UAVDataObject* mixer, MixerThrottleCurveElem curveType, QList<double>* curve);
bool isValidThrottleCurve(QList<double>* curve);
double getCurveMin(QList<double>* curve);
double getCurveMax(QList<double>* curve);
virtual void ResetActuators(GUIConfigDataUnion* configData);
virtual QStringList getChannelDescriptions();

View File

@ -7,7 +7,7 @@
<file>images/AHRS-v1.3.png</file>
<file>images/paper-plane.svg</file>
<file>images/curve-bg.svg</file>
<file>images/quad-shapes.svg</file>
<file>images/multirotor-shapes.svg</file>
<file>images/ccpm_setup.svg</file>
<file>images/PipXtreme.png</file>
<file>images/Transmitter.png</file>

View File

@ -85,6 +85,10 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent)
addUAVObjectToWidgetRelation("ManualControlSettings","FlightModePosition",m_config->fmsModePos1,0);
addUAVObjectToWidgetRelation("ManualControlSettings","FlightModePosition",m_config->fmsModePos2,1);
addUAVObjectToWidgetRelation("ManualControlSettings","FlightModePosition",m_config->fmsModePos3,2);
addUAVObjectToWidgetRelation("ManualControlSettings","FlightModePosition",m_config->fmsModePos4,3);
addUAVObjectToWidgetRelation("ManualControlSettings","FlightModePosition",m_config->fmsModePos5,4);
addUAVObjectToWidgetRelation("ManualControlSettings","FlightModePosition",m_config->fmsModePos6,5);
addUAVObjectToWidgetRelation("ManualControlSettings","FlightModeNumber",m_config->fmsPosNum);
addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization1Settings",m_config->fmsSsPos1Roll,"Roll");
addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization2Settings",m_config->fmsSsPos2Roll,"Roll");
@ -99,6 +103,7 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent)
addUAVObjectToWidgetRelation("ManualControlSettings","Arming",m_config->armControl);
addUAVObjectToWidgetRelation("ManualControlSettings","ArmedTimeout",m_config->armTimeout,0,1000);
connect( ManualControlCommand::GetInstance(getObjectManager()),SIGNAL(objectUpdated(UAVObject*)),this,SLOT(moveFMSlider()));
connect( ManualControlSettings::GetInstance(getObjectManager()),SIGNAL(objectUpdated(UAVObject*)),this,SLOT(updatePositionSlider()));
enableControls(false);
populateWidgets();
@ -632,7 +637,8 @@ void ConfigInputWidget::setChannel(int newChan)
m_config->wzText->setText(QString(tr("Please move each control once at a time according to the instructions and picture below.\n\n"
"Move the %1 stick")).arg(manualSettingsObj->getField("ChannelGroups")->getElementNames().at(newChan)));
if(manualSettingsObj->getField("ChannelGroups")->getElementNames().at(newChan).contains("Accessory")) {
if(manualSettingsObj->getField("ChannelGroups")->getElementNames().at(newChan).contains("Accessory") ||
manualSettingsObj->getField("ChannelGroups")->getElementNames().at(newChan).contains("FlightMode")) {
m_config->wzNext->setEnabled(true);
m_config->wzText->setText(m_config->wzText->text() + tr(" or click next to skip this channel."));
} else
@ -1113,10 +1119,11 @@ void ConfigInputWidget::invertControls()
}
manualSettingsObj->setData(manualSettingsData);
}
void ConfigInputWidget::moveFMSlider()
{
ManualControlSettings::DataFields manualSettingsDataPriv = manualSettingsObj->getData();
ManualControlCommand::DataFields manualCommandDataPriv=manualCommandObj->getData();
ManualControlCommand::DataFields manualCommandDataPriv = manualCommandObj->getData();
float valueScaled;
int chMin = manualSettingsDataPriv.ChannelMin[ManualControlSettings::CHANNELMIN_FLIGHTMODE];
@ -1139,12 +1146,72 @@ void ConfigInputWidget::moveFMSlider()
valueScaled = 0;
}
if(valueScaled < -(1.0 / 3.0))
m_config->fmsSlider->setValue(-100);
else if (valueScaled > (1.0/3.0))
m_config->fmsSlider->setValue(100);
// Bound and scale FlightMode from [-1..+1] to [0..1] range
if (valueScaled < -1.0)
valueScaled = -1.0;
else
m_config->fmsSlider->setValue(0);
if (valueScaled > 1.0)
valueScaled = 1.0;
// Convert flightMode value into the switch position in the range [0..N-1]
// This uses the same optimized computation as flight code to be consistent
uint8_t pos = ((int16_t)(valueScaled * 256) + 256) * manualSettingsDataPriv.FlightModeNumber >> 9;
if (pos >= manualSettingsDataPriv.FlightModeNumber)
pos = manualSettingsDataPriv.FlightModeNumber - 1;
m_config->fmsSlider->setValue(pos);
}
void ConfigInputWidget::updatePositionSlider()
{
ManualControlSettings::DataFields manualSettingsDataPriv = manualSettingsObj->getData();
switch(manualSettingsDataPriv.FlightModeNumber) {
default:
case 6:
m_config->fmsModePos6->setEnabled(true);
// pass through
case 5:
m_config->fmsModePos5->setEnabled(true);
// pass through
case 4:
m_config->fmsModePos4->setEnabled(true);
// pass through
case 3:
m_config->fmsModePos3->setEnabled(true);
// pass through
case 2:
m_config->fmsModePos2->setEnabled(true);
// pass through
case 1:
m_config->fmsModePos1->setEnabled(true);
// pass through
case 0:
break;
}
switch(manualSettingsDataPriv.FlightModeNumber) {
case 0:
m_config->fmsModePos1->setEnabled(false);
// pass through
case 1:
m_config->fmsModePos2->setEnabled(false);
// pass through
case 2:
m_config->fmsModePos3->setEnabled(false);
// pass through
case 3:
m_config->fmsModePos4->setEnabled(false);
// pass through
case 4:
m_config->fmsModePos5->setEnabled(false);
// pass through
case 5:
m_config->fmsModePos6->setEnabled(false);
// pass through
case 6:
default:
break;
}
}
void ConfigInputWidget::updateCalibration()

View File

@ -146,6 +146,7 @@ private slots:
void moveSticks();
void dimOtherControls(bool value);
void moveFMSlider();
void updatePositionSlider();
void invertControls();
void simpleCalibration(bool state);
void updateCalibration();

View File

@ -119,9 +119,8 @@ ConfigVehicleTypeWidget::ConfigVehicleTypeWidget(QWidget *parent) : ConfigTaskWi
QStringList airframeTypes;
airframeTypes << "Fixed Wing" << "Multirotor" << "Helicopter" << "Ground" << "Custom";
m_aircraft->aircraftType->addItems(airframeTypes);
m_aircraft->aircraftType->setCurrentIndex(0); //Set default vehicle to Fixed Wing
m_aircraft->airframesWidget->setCurrentIndex(0); // Force the tab index to match
m_aircraft->aircraftType->setCurrentIndex(1); //Set default vehicle to MultiRotor
m_aircraft->airframesWidget->setCurrentIndex(1); // Force the tab index to match
QStringList fixedWingTypes;
fixedWingTypes << "Elevator aileron rudder" << "Elevon" << "Vtail";
@ -138,7 +137,7 @@ ConfigVehicleTypeWidget::ConfigVehicleTypeWidget(QWidget *parent) : ConfigTaskWi
"Hexacopter" << "Hexacopter X" << "Hexacopter Y6" <<
"Octocopter" << "Octocopter V" << "Octo Coax +" << "Octo Coax X" ;
m_aircraft->multirotorFrameType->addItems(multiRotorTypes);
m_aircraft->multirotorFrameType->setCurrentIndex(1); //Set default model to "Quad +"
m_aircraft->multirotorFrameType->setCurrentIndex(2); //Set default model to "Quad X"
//NEW STYLE: Loop through the widgets looking for all widgets that have "ChannelBox" in their name
@ -152,10 +151,10 @@ ConfigVehicleTypeWidget::ConfigVehicleTypeWidget(QWidget *parent) : ConfigTaskWi
m_aircraft->quadShape->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_aircraft->quadShape->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
QSvgRenderer *renderer = new QSvgRenderer();
renderer->load(QString(":/configgadget/images/quad-shapes.svg"));
renderer->load(QString(":/configgadget/images/multirotor-shapes.svg"));
quad = new QGraphicsSvgItem();
quad->setSharedRenderer(renderer);
quad->setElementId("quad-plus");
quad->setElementId("quad-x");
QGraphicsScene *scene = new QGraphicsScene(this);
scene->addItem(quad);
scene->setSceneRect(quad->boundingRect());
@ -274,7 +273,7 @@ QStringList ConfigVehicleTypeWidget::getChannelDescriptions()
case SystemSettings::AIRFRAMETYPE_FIXEDWINGELEVON:
case SystemSettings::AIRFRAMETYPE_FIXEDWINGVTAIL:
{
ConfigFixedWingWidget* fixedwing = new ConfigFixedWingWidget();
QPointer<ConfigFixedWingWidget> fixedwing = new ConfigFixedWingWidget();
channelDesc = fixedwing->getChannelDescriptions();
}
break;
@ -282,7 +281,7 @@ QStringList ConfigVehicleTypeWidget::getChannelDescriptions()
// helicp
case SystemSettings::AIRFRAMETYPE_HELICP:
{
ConfigCcpmWidget* heli = new ConfigCcpmWidget();
QPointer<ConfigCcpmWidget> heli = new ConfigCcpmWidget();
channelDesc = heli->getChannelDescriptions();
}
break;
@ -300,7 +299,7 @@ QStringList ConfigVehicleTypeWidget::getChannelDescriptions()
case SystemSettings::AIRFRAMETYPE_HEXACOAX:
case SystemSettings::AIRFRAMETYPE_HEXA:
{
ConfigMultiRotorWidget* multi = new ConfigMultiRotorWidget();
QPointer<ConfigMultiRotorWidget> multi = new ConfigMultiRotorWidget();
channelDesc = multi->getChannelDescriptions();
}
break;
@ -310,7 +309,7 @@ QStringList ConfigVehicleTypeWidget::getChannelDescriptions()
case SystemSettings::AIRFRAMETYPE_GROUNDVEHICLEDIFFERENTIAL:
case SystemSettings::AIRFRAMETYPE_GROUNDVEHICLEMOTORCYCLE:
{
ConfigGroundVehicleWidget* ground = new ConfigGroundVehicleWidget();
QPointer<ConfigGroundVehicleWidget> ground = new ConfigGroundVehicleWidget();
channelDesc = ground->getChannelDescriptions();
}
break;
@ -444,16 +443,17 @@ void ConfigVehicleTypeWidget::enableFFTest()
// Depending on phase, either move actuator or send FF settings:
if (ffTuningPhase) {
// Send FF settings to the board
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
UAVObjectField* field = obj->getField(QString("FeedForward"));
field->setDouble((double)m_aircraft->feedForwardSlider->value()/100);
field = obj->getField(QString("AccelTime"));
field->setDouble(m_aircraft->accelTime->value());
field = obj->getField(QString("DecelTime"));
field->setDouble(m_aircraft->decelTime->value());
field = obj->getField(QString("MaxAccel"));
field->setDouble(m_aircraft->maxAccelSlider->value());
obj->updated();
UAVDataObject* mixer = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
Q_ASSERT(mixer);
QPointer<VehicleConfig> vconfig = new VehicleConfig();
// Update feed forward settings
vconfig->setMixerValue(mixer, "FeedForward", m_aircraft->feedForwardSlider->value() / 100.0);
vconfig->setMixerValue(mixer, "AccelTime", m_aircraft->accelTime->value());
vconfig->setMixerValue(mixer, "DecelTime", m_aircraft->decelTime->value());
vconfig->setMixerValue(mixer, "MaxAccel", m_aircraft->maxAccelSlider->value());
mixer->updated();
} else {
// Toggle motor state
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("ManualControlCommand")));
@ -614,84 +614,55 @@ void ConfigVehicleTypeWidget::refreshWidgetsValues(UAVObject * o)
{
Q_UNUSED(o);
if(!allObjectsUpdated())
return;
//if(!allObjectsUpdated())
// return;
//WHAT DOES THIS DO?
bool dirty=isDirty(); //WHY IS THIS CALLED HERE AND THEN AGAIN SEVERAL LINES LATER IN setupAirframeUI()
// Get the Airframe type from the system settings:
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("SystemSettings")));
Q_ASSERT(obj);
UAVObjectField *field = obj->getField(QString("AirframeType"));
UAVDataObject* system = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("SystemSettings")));
Q_ASSERT(system);
UAVObjectField *field = system->getField(QString("AirframeType"));
Q_ASSERT(field);
// At this stage, we will need to have some hardcoded settings in this code, this
// is not ideal, but here you go.
QString frameType = field->getValue().toString();
setupAirframeUI(frameType);
obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
Q_ASSERT(obj);
field = obj->getField(QString("ThrottleCurve1"));
Q_ASSERT(field);
QList<double> curveValues;
// If the 1st element of the curve is <= -10, then the curve
// is a straight line (that's how the mixer works on the mainboard):
if (field->getValue(0).toInt() <= -10) {
m_aircraft->multiThrottleCurve->initLinearCurve(field->getNumElements(),(double)1);
m_aircraft->fixedWingThrottle->initLinearCurve(field->getNumElements(),(double)1);
m_aircraft->groundVehicleThrottle1->initLinearCurve(field->getNumElements(),(double)1);
UAVDataObject* mixer = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
Q_ASSERT(mixer);
QPointer<VehicleConfig> vconfig = new VehicleConfig();
QList<double> curveValues;
vconfig->getThrottleCurve(mixer, VehicleConfig::MIXER_THROTTLECURVE1, &curveValues);
// is at least one of the curve values != 0?
if (vconfig->isValidThrottleCurve(&curveValues)) {
// yes, use the curve we just read from mixersettings
m_aircraft->multiThrottleCurve->initCurve(&curveValues);
m_aircraft->fixedWingThrottle->initCurve(&curveValues);
m_aircraft->groundVehicleThrottle1->initCurve(&curveValues);
}
else {
double temp=0;
double value;
for (unsigned int i=0; i < field->getNumElements(); i++) {
value=field->getValue(i).toDouble();
temp+=value;
curveValues.append(value);
}
if(temp==0)
{
m_aircraft->multiThrottleCurve->initLinearCurve(field->getNumElements(),0.9);
m_aircraft->fixedWingThrottle->initLinearCurve(field->getNumElements(),(double)1);
m_aircraft->groundVehicleThrottle1->initLinearCurve(field->getNumElements(),(double)1);
}
else
{
m_aircraft->multiThrottleCurve->initCurve(curveValues);
m_aircraft->fixedWingThrottle->initCurve(curveValues);
m_aircraft->groundVehicleThrottle1->initCurve(curveValues);
}
// no, init a straight curve
m_aircraft->multiThrottleCurve->initLinearCurve(curveValues.count(), 0.9);
m_aircraft->fixedWingThrottle->initLinearCurve(curveValues.count(), 1.0);
m_aircraft->groundVehicleThrottle1->initLinearCurve(curveValues.count(), 1.0);
}
// Setup all Throttle2 curves for all types of airframes //AT THIS MOMENT, THAT MEANS ONLY GROUND VEHICLES
Q_ASSERT(obj);
field = obj->getField(QString("ThrottleCurve2"));
Q_ASSERT(field);
curveValues.clear();
// If the 1st element of the curve is <= -10, then the curve
// is a straight line (that's how the mixer works on the mainboard):
if (field->getValue(0).toInt() <= -10) {
m_aircraft->groundVehicleThrottle2->initLinearCurve(field->getNumElements(),(double)1);
vconfig->getThrottleCurve(mixer, VehicleConfig::MIXER_THROTTLECURVE2, &curveValues);
if (vconfig->isValidThrottleCurve(&curveValues)) {
m_aircraft->groundVehicleThrottle2->initCurve(&curveValues);
}
else {
double temp=0;
double value;
for (unsigned int i=0; i < field->getNumElements(); i++) {
value=field->getValue(i).toDouble();
temp+=value;
curveValues.append(value);
}
if(temp==0)
{
m_aircraft->groundVehicleThrottle2->initLinearCurve(field->getNumElements(),(double)1);
}
else
{
m_aircraft->groundVehicleThrottle2->initCurve(curveValues);
}
m_aircraft->groundVehicleThrottle2->initLinearCurve(curveValues.count(), 1.0);
}
// Load the Settings for fixed wing frames:
if (frameType.startsWith("FixedWing")) {
@ -716,8 +687,7 @@ void ConfigVehicleTypeWidget::refreshWidgetsValues(UAVObject * o)
} else if (frameType == "Custom") {
setComboCurrentIndex(m_aircraft->aircraftType, m_aircraft->aircraftType->findText("Custom"));
}
}
updateCustomAirframeUI();
setDirty(dirty);
@ -786,39 +756,35 @@ void ConfigVehicleTypeWidget::updateCustomAirframeUI()
UAVDataObject* mixer = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
Q_ASSERT(mixer);
VehicleConfig* vconfig = new VehicleConfig();
QPointer<VehicleConfig> vconfig = new VehicleConfig();
QList<double> curveValues;
vconfig->getThrottleCurve(mixer, VehicleConfig::MIXER_THROTTLECURVE1, &curveValues);
// setup throttlecurve 1
vconfig->getThrottleCurve(mixer,VehicleConfig::MIXER_THROTTLECURVE1,&curveValues);
int total = 0;
for (int i=0; i<curveValues.length(); i++)
total += curveValues.at(i);
if (curveValues.at(0) <= -10 || total == 0) {
m_aircraft->customThrottle1Curve->initLinearCurve(curveValues.length(),(double)1);
// is at least one of the curve values != 0?
if (vconfig->isValidThrottleCurve(&curveValues)) {
// yes, use the curve we just read from mixersettings
m_aircraft->customThrottle1Curve->setMin(vconfig->getCurveMin(&curveValues));
m_aircraft->customThrottle1Curve->setMax(vconfig->getCurveMax(&curveValues));
m_aircraft->customThrottle1Curve->initCurve(&curveValues);
}
else {
m_aircraft->customThrottle1Curve->initCurve(curveValues);
// no, init a straight curve
m_aircraft->customThrottle1Curve->initLinearCurve(curveValues.count(),(double)1);
}
// setup throttlecurve 2
vconfig->getThrottleCurve(mixer,VehicleConfig::MIXER_THROTTLECURVE2,&curveValues);
// Setup all Throttle2 curves for all types of airframes //AT THIS MOMENT, THAT MEANS ONLY GROUND VEHICLES
vconfig->getThrottleCurve(mixer, VehicleConfig::MIXER_THROTTLECURVE2, &curveValues);
total = 0;
for (int i=0; i<curveValues.length(); i++)
total += curveValues.at(i);
if (curveValues.at(0) <= -10 || total == 0) {
m_aircraft->customThrottle2Curve->initLinearCurve(curveValues.length(),(double)1);
if (vconfig->isValidThrottleCurve(&curveValues)) {
m_aircraft->customThrottle2Curve->setMin(vconfig->getCurveMin(&curveValues));
m_aircraft->customThrottle2Curve->setMax(vconfig->getCurveMax(&curveValues));
m_aircraft->customThrottle2Curve->initCurve(&curveValues);
}
else {
m_aircraft->customThrottle2Curve->initCurve(curveValues);
m_aircraft->customThrottle2Curve->initLinearCurve(curveValues.count(),(double)1);
}
// Update the mixer table:
for (int channel=0; channel<8; channel++) {
UAVObjectField* field = mixer->getField(mixerTypes.at(channel));
@ -843,6 +809,12 @@ void ConfigVehicleTypeWidget::updateCustomAirframeUI()
QString::number(vconfig->getMixerVectorValue(mixer,channel,VehicleConfig::MIXERVECTOR_YAW)));
}
}
// Update feed forward settings
m_aircraft->feedForwardSlider->setValue(vconfig->getMixerValue(mixer,"FeedForward") * 100);
m_aircraft->accelTime->setValue(vconfig->getMixerValue(mixer,"AccelTime"));
m_aircraft->decelTime->setValue(vconfig->getMixerValue(mixer,"DecelTime"));
m_aircraft->maxAccelSlider->setValue(vconfig->getMixerValue(mixer,"MaxAccel"));
}
@ -855,6 +827,17 @@ void ConfigVehicleTypeWidget::updateCustomAirframeUI()
*/
void ConfigVehicleTypeWidget::updateObjectsFromWidgets()
{
UAVDataObject* mixer = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
Q_ASSERT(mixer);
QPointer<VehicleConfig> vconfig = new VehicleConfig();
// Update feed forward settings
vconfig->setMixerValue(mixer, "FeedForward", m_aircraft->feedForwardSlider->value() / 100.0);
vconfig->setMixerValue(mixer, "AccelTime", m_aircraft->accelTime->value());
vconfig->setMixerValue(mixer, "DecelTime", m_aircraft->decelTime->value());
vconfig->setMixerValue(mixer, "MaxAccel", m_aircraft->maxAccelSlider->value());
QString airframeType = "Custom"; //Sets airframe type default to "Custom"
if (m_aircraft->aircraftType->currentText() == "Fixed Wing") {
airframeType = m_fixedwing->updateConfigObjectsFromWidgets();
@ -869,12 +852,6 @@ void ConfigVehicleTypeWidget::updateObjectsFromWidgets()
airframeType = m_groundvehicle->updateConfigObjectsFromWidgets();
}
else {
UAVDataObject* mixer = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
Q_ASSERT(mixer);
VehicleConfig* vconfig = new VehicleConfig();
vconfig->setThrottleCurve(mixer, VehicleConfig::MIXER_THROTTLECURVE1, m_aircraft->customThrottle1Curve->getCurve());
vconfig->setThrottleCurve(mixer, VehicleConfig::MIXER_THROTTLECURVE2, m_aircraft->customThrottle2Curve->getCurve());

View File

@ -3559,17 +3559,17 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1088"
inkscape:window-width="1680"
inkscape:window-height="1002"
id="namedview4185"
showgrid="false"
inkscape:zoom="0.25"
inkscape:cx="2447.9751"
inkscape:cy="482.05665"
inkscape:zoom="0.5"
inkscape:cx="2129.6843"
inkscape:cy="654.00839"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g4191"
inkscape:window-maximized="0"
inkscape:current-layer="quad-hexa-H"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
@ -3737,13 +3737,6 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path5107"
inkscape:connector-curvature="0" /></g></g></g><g
id="g5119"
transform="matrix(82.988968,0,0,-64.991364,969.49512,1428.5608)"><image
width="1"
height="1"
transform="matrix(1,0,0,-1,0,1)"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABBCAYAAACtrJiQAAAABHNCSVQICAgIfAhkiAAADhxJREFUeJztnGt0HOV5x38zs5fZ++rqi6z73RfJsiQjOxDbhdQ3TIAPLSTpCYXGQNKeHpKU0LRJOKXknPRDD5Rwjg9Q04T0cCnQNjUXAwZh2ZZtbMzFtizJ1gVZ1tpaSXuf3ZmdmX6QpeAaYwuvbalHvy+rM6PZeeY/z/M+z/u8MyvULVliMktGEK+1Af+fmBUzg8yKmUFmxcwgs2JmEMtUDzDN8eQvCMLk37OMM2UxYVzIz3/OMs6Uw3xWwAszZTFnQ/vCzCagDDIrZgb5SgnoWiOKIol4nHg8jtVqweX2YLFYrvkQNOM8U5IkQmOjOJxOrl+1hsrqhcRjUYLDZzBNE1G8dpc0ozxTEARGR0YoKinll48+QmlZGaGxMT49fIT/ePlV2nfvxCE78Pn96Lp+1e2bUZ5pGAaapnLnt+6kqXk5gydPomkaq9es4sknH+eBH/0IQRQ4HRhCEISrXsZJc+bMeXiqB12rWlNJJMjLn8Nd3/0zFEUhlUqh6zpjoyOkkilWr17DyhUrOHy4g96e48gOx1UdS2eMZwqCQCIRp7K6lsLCQmKx2OQ+UZRIJhW6Ojsor6jg2WefZt3GWwgOnyERjyNJ0lWxccaIOeFddXWLsdllDOPcMVEQRERRor+vl1RK5Z9+9Uv+4r7vE4tFGR0ZuSqCzpgwV1UVuyzzne98G7/XQ0JJAmCaBoIgMH/+PHLz8jEMg2AwiKqqrFu7lqKSItrb9zISHMblcl9R22eMZ8ZjMUrLK6mqrCQUDk1uFwQRn8/Lttff5LHHn2B0dJSq6moAOo8dZcOGjWzd+gwLF9dzOjBEMpm8Yl6aAc8UABNTTyMIIlzszgsCCCJ6YgRDiSBaZRAtwIWThCAIRKMR1m+8mdWrv04wGJy0IT8vj86ubh568EH272unrW0XsbjCyhUt+Hxejnd3U1RUxK23bkIzBA7s34eqqTidrownpsv3TFNHEG1YvQXoyRBaaAg9GQIjzbjQZxFEMHXSkdOoY4M4CprxLfk26cQo6WjgrKBffCPSmobT6WRp/WKSijJ+0xgPcZfHw4GDh9DTaRYsKCISCbPlySfYfN8P6OvrZ9HiJQSDZwiFw/z0oQd55NF/BNPkzOlAxj00A55pYKYVHHObKLzhYexzGtCi/aSjAfR4CDOtACbp2AimlsRZtJK5K3/O4q/fTvGyFYh5G0lGT5KODCCIX+zZsViU0rJKvnXnHSiKMlmQi6KILMu8+NLL9Pf14HA6kWUHLreb3p7jbH9zO4IksnLl17BZrfT29nLdihaamprYu28/gcAQHo/nK0p3PpcvpiCBaaIGj6JjoaZlHVU3/imuwk0IWXWYGBipMTxlaym96VFqv7aRuRXz0RQNNZxkwbIFGK4Ghg/+OxabzFgohJJQcDgck4V3JBKmsWk5N9+8kbHR0clTu9xugsFhXnzhRVQ1hc1mn9zn9XpREgnef7+VQx9/Sk1VBQsXLeHU4ElKSktZv24d+/cfpL+/F4/Hm5GQz0g2FyQLglUm/tkuTh54AYUmyprLKGlZRE5eEzkVN1O27Hqy5nhRYymSkSSmbmACkiTQ91E70RNvowk2Vq25kezcPLo7O1BTKRwOJ0oiwbr162lsXEY49Ifkk5uTw8FDH/Latm04nK5z5uWmaSI7HDidTo53dbJ9+9skVY1lDfXoaQ2Hw8natTfR2trGmdNDOF2XP4ZmtDSyOvxg6ox1vMzJj1sxLMvJKfRjEUXUhEYqlsI0zMmR0WIRSSsaPTt/TTISAIudR/7hF9x99914/T4GBgbpOdGN35/Nw7/4OQIQjUYQBBHTNMjNy2fHu63sa9+D231+uJqmiSAIeL0+kqkku9t2smvPXhobG3G5nPizsikomM87b7+NJEmX3STJaGlkGGkEuxtbdgHqaA9Hn7uFI7s+RLKKmLpxXnoRLRJKMo0eHyKVNigsLMHhcDJ8JsCdd97B009tYfP9f4nT6WTrvz0HQElp2eTNVNUUPT29F7VL13Xcbg9z582ns+MIP/27nxGPJxgdCbJsaT2L6pYSjUYu+/ozX2eaJpgGVt88JKuNwR0/JDSqYHfbz/tXTU3j8dqpumULaUOguDCfvPx8QqEwx7u6ME2Tnzz4Yx5//DH6+/u5+557eeHFF1lQWEhZeQVDp4Y43t2FLDsuwSwT0zSZM3cevT3Had3ZhtvjweFyU15RSTqdvuxLv2JFu2noSO48jFSSzzr3Y/Xaz6kkTUEAw8TilTGtEoKpU1VTg2QZL1dEUSIajdBx5DALCubz6yce47bbb+XNN95i873389GhQwwHgwSGBnE4Li7m5xEFkVgsjiiOn8vtcmXkmq9sP9M0Ea12wkefJ1m3AqtNIq3qk/sESUS0WRj85C1kSaCmZhFKLD55uCCICAKcGR5GCI5w+2238s1NN/Psb57jN797noH+PmLRKM6zyccwjEswyUSySHg8LgxDR5IsmObFj7sUrnBz2ERyZaOcOkLviR5qmxcTDUQRAJvdQkLR2P2vDxPofIfyqlpKy0oJR84fuyaK9M/6+7BYrGz+3j2MjY6yc9dutm9/i317dmG1WsnKzhk/65dkZdM0kSQJj9uNaRggfdnca2pc+bm5IIAoMnLkeXRFQ5JETMDmlRkZjRPu2IaaUiivbSAnJ5dUKnVhY0UJwzDo7+slHo/zzVs28S+P/zN/+/c/o6i4jEBgiHA4hCiKF6w4TMPAarXhcrkmi/9MTSuvvJimicWdQ7xvF4ODEXxVuTh9MoJVJDzQDqKAINmpriieHC8vhiCMh3Rfbw/B4SB33PEnPPPMFv7qrx8gOzuHoVODxGOxL5wu6oaBzWZDlmU0LT2emIyZIiYgSDZEi4UTr/+Qg6++zXAgih5XUc4cQDcF/D4fNTXVJKLRKX2vKEqoqsrxri60tM59927m6ae38N27v4dksTB0ahBVVc8t5g0Du92Oy+lA18czuDEzxsyzmAaSMxctMsDgjr/htNOHPLcBLdyLKtgoKiikvr4Ot8eLqmmEw5GzfcpLu9eiKBGLRuiKhMnOzuahhx5kw9obeWrrb9nT1ko4NIbPn4Usy+iGjs0uY7fLpPXMiDjB1WsOmwaiRUZy+AADbeQ4iCIWu4O0pnLg4EecGjpFTlYW5RUVeDxeVFVF09RLOt/4PF5EURSCw2dYUFjIhvXrWNrQgI5E97GjhCNhTMMkJyePTZvWI4giTqeL9r37OfzJRzgvs0S6+ku9poEg2ZDcuQDYJYlUKsXune/R1rqDl+YXsKz5Ola2NNPc3Ex5ZSWJWIzh4DBpLX1Rb50opwKBAKIoUV+3hOXLl9O+YS2//d3zvLdjOwWFheTlzyEwFBhPPhlKQNd83VzXdSRJIjcvH4BIOMy2/3qFN1/7PZWVNTQub2bFdc001Nfj9nkZDQYJhyMYhv6lwo7P300GBwcRRYmm5mYaGhrY9voaykqKz37HeJhnqs6cdmtAssOB3WZHSSQYHBzgw4Mf8H5rK4c+OUJobAyvx01xSQnZubmIgoCqqmeF/WKbJraHQmMkUwqNjcuQZZmxsTEkScLr89G+dx+HP/3kssN82okZjUQoLi3n/h98H5fbh9VqIxwK0dV5lLa2nezZs5cjHZ2EQiHsNgvFxcXk5OWhaSqapk0usJ1vs4hpmEQjUVRVnSybvD4fe/d9wOFPPp6BY+aXMLE2Xrd0Kfdu3syG9Ws5fTpAT08fe/d9wMEPDnBqcIB3tr/Bu29tx5+VxeK6paxZs4rGZfWUlJaiqilGgiMkk8olVwP/d9n4qzKtxEyn08iyTN2SWgYG+hk6NYTskFmxooXVq1cTj0Z54Mc/4dCBffizskkmk7S17mDX++9RVFJKY1MzK1uaqa+vZ35BAbFImODI6JeOr4ahMzYWyki0TSsxlUSCgsJiaqtrCIVCmKaJklBIxOO4PV4MQyc0OorFYgVAlmUcDgeGYRAYGuSVl46z7b9fpbyyhutaWlh1w0pqF9Zis9kZCQaJRqPn1K9Ol5NwOEJfTw82+/ktwqkyrcRMJhVqFi5ifkEBJwcGJrdPrI3v2PEu/X0ncH2uqz7RTfd4vPh8fjRNo7vzKEcPf8x/vvISi+saWLniOpoal1FeUQHAyMgIaU2jqrqWrVu30t11jOycnMu2f1qJCVBdVX72Yas/eJBpGthsdjqOdZNKpfD5s76wOWEYBpIkTXaPkskku3e+x+6d7zFvfgH1DY20tDRTv2QJebm5vLbtf3hqyxZsdhuiKF52w2PaiKlpKm6Pl4rycuJn13kmsNmshMZGOXL4MBaL9aIXPbHfbrcj58/BNE3CoRBvvPZ73tn+OkXFZfj8fjo7jmAYBllZ2RnptE8bMePxOLULF1NdVUU4cm7Dw+320tPTQ39fz5TLlwlhnS4XLrcbXdcZGjrJZ5/14nK5xufoGRASptGzRpqq8o1v3ERVTS3JpHLOrMTldtPT1084FMJms33lc0w8pu1yufH7s7BabZfUnb9UpoWYpmnicDjZt/8Ae3a1UVVdy7x58xAEAcPQsVgsnBoKkNbT0/qlrmkR5oIg4PP7ad+9k48OfsCmW2/jj2/6I5bU1WEYOkoizrGOY4iXWIRfK4Sp/qzERClyJZAkiXgsRjQaweVy03L9Ddy/+R5cLjd33fXnJOJx5CmuRF5NppWYE4jieF8yEg6Rm5dPWUUVJ7o7r+lrKZfCtBRzAlEUSSQSJJMKfn/WtH8te1qMmRfCMAxkWUaWZWD6vwQ7veNmhjErZgaZFTODzIqZQWbFzCBfKZtP96x6rZiymNN5bnytmQ3zDDIrZgaZFTOD/C9uew7sSK2nLAAAAABJRU5ErkJggg=="
id="image5121" /></g><g
transform="matrix(1,0,0,-1,0,2792.2535)"
id="g5149"><g
clip-path="url(#clipPath5135)"
@ -3984,13 +3977,6 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path5525"
inkscape:connector-curvature="0" /></g></g></g><g
id="g5537"
transform="matrix(82.988968,0,0,64.991364,1584.0928,1351.8216)"><image
width="1"
height="1"
transform="matrix(1,0,0,-1,0,1)"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABBCAYAAACtrJiQAAAABHNCSVQICAgIfAhkiAAADhxJREFUeJztnGt0HOV5x38zs5fZ++rqi6z73RfJsiQjOxDbhdQ3TIAPLSTpCYXGQNKeHpKU0LRJOKXknPRDD5Rwjg9Q04T0cCnQNjUXAwZh2ZZtbMzFtizJ1gVZ1tpaSXuf3ZmdmX6QpeAaYwuvbalHvy+rM6PZeeY/z/M+z/u8MyvULVliMktGEK+1Af+fmBUzg8yKmUFmxcwgs2JmEMtUDzDN8eQvCMLk37OMM2UxYVzIz3/OMs6Uw3xWwAszZTFnQ/vCzCagDDIrZgb5SgnoWiOKIol4nHg8jtVqweX2YLFYrvkQNOM8U5IkQmOjOJxOrl+1hsrqhcRjUYLDZzBNE1G8dpc0ozxTEARGR0YoKinll48+QmlZGaGxMT49fIT/ePlV2nfvxCE78Pn96Lp+1e2bUZ5pGAaapnLnt+6kqXk5gydPomkaq9es4sknH+eBH/0IQRQ4HRhCEISrXsZJc+bMeXiqB12rWlNJJMjLn8Nd3/0zFEUhlUqh6zpjoyOkkilWr17DyhUrOHy4g96e48gOx1UdS2eMZwqCQCIRp7K6lsLCQmKx2OQ+UZRIJhW6Ojsor6jg2WefZt3GWwgOnyERjyNJ0lWxccaIOeFddXWLsdllDOPcMVEQRERRor+vl1RK5Z9+9Uv+4r7vE4tFGR0ZuSqCzpgwV1UVuyzzne98G7/XQ0JJAmCaBoIgMH/+PHLz8jEMg2AwiKqqrFu7lqKSItrb9zISHMblcl9R22eMZ8ZjMUrLK6mqrCQUDk1uFwQRn8/Lttff5LHHn2B0dJSq6moAOo8dZcOGjWzd+gwLF9dzOjBEMpm8Yl6aAc8UABNTTyMIIlzszgsCCCJ6YgRDiSBaZRAtwIWThCAIRKMR1m+8mdWrv04wGJy0IT8vj86ubh568EH272unrW0XsbjCyhUt+Hxejnd3U1RUxK23bkIzBA7s34eqqTidrownpsv3TFNHEG1YvQXoyRBaaAg9GQIjzbjQZxFEMHXSkdOoY4M4CprxLfk26cQo6WjgrKBffCPSmobT6WRp/WKSijJ+0xgPcZfHw4GDh9DTaRYsKCISCbPlySfYfN8P6OvrZ9HiJQSDZwiFw/z0oQd55NF/BNPkzOlAxj00A55pYKYVHHObKLzhYexzGtCi/aSjAfR4CDOtACbp2AimlsRZtJK5K3/O4q/fTvGyFYh5G0lGT5KODCCIX+zZsViU0rJKvnXnHSiKMlmQi6KILMu8+NLL9Pf14HA6kWUHLreb3p7jbH9zO4IksnLl17BZrfT29nLdihaamprYu28/gcAQHo/nK0p3PpcvpiCBaaIGj6JjoaZlHVU3/imuwk0IWXWYGBipMTxlaym96VFqv7aRuRXz0RQNNZxkwbIFGK4Ghg/+OxabzFgohJJQcDgck4V3JBKmsWk5N9+8kbHR0clTu9xugsFhXnzhRVQ1hc1mn9zn9XpREgnef7+VQx9/Sk1VBQsXLeHU4ElKSktZv24d+/cfpL+/F4/Hm5GQz0g2FyQLglUm/tkuTh54AYUmyprLKGlZRE5eEzkVN1O27Hqy5nhRYymSkSSmbmACkiTQ91E70RNvowk2Vq25kezcPLo7O1BTKRwOJ0oiwbr162lsXEY49Ifkk5uTw8FDH/Latm04nK5z5uWmaSI7HDidTo53dbJ9+9skVY1lDfXoaQ2Hw8natTfR2trGmdNDOF2XP4ZmtDSyOvxg6ox1vMzJj1sxLMvJKfRjEUXUhEYqlsI0zMmR0WIRSSsaPTt/TTISAIudR/7hF9x99914/T4GBgbpOdGN35/Nw7/4OQIQjUYQBBHTNMjNy2fHu63sa9+D231+uJqmiSAIeL0+kqkku9t2smvPXhobG3G5nPizsikomM87b7+NJEmX3STJaGlkGGkEuxtbdgHqaA9Hn7uFI7s+RLKKmLpxXnoRLRJKMo0eHyKVNigsLMHhcDJ8JsCdd97B009tYfP9f4nT6WTrvz0HQElp2eTNVNUUPT29F7VL13Xcbg9z582ns+MIP/27nxGPJxgdCbJsaT2L6pYSjUYu+/ozX2eaJpgGVt88JKuNwR0/JDSqYHfbz/tXTU3j8dqpumULaUOguDCfvPx8QqEwx7u6ME2Tnzz4Yx5//DH6+/u5+557eeHFF1lQWEhZeQVDp4Y43t2FLDsuwSwT0zSZM3cevT3Had3ZhtvjweFyU15RSTqdvuxLv2JFu2noSO48jFSSzzr3Y/Xaz6kkTUEAw8TilTGtEoKpU1VTg2QZL1dEUSIajdBx5DALCubz6yce47bbb+XNN95i873389GhQwwHgwSGBnE4Li7m5xEFkVgsjiiOn8vtcmXkmq9sP9M0Ea12wkefJ1m3AqtNIq3qk/sESUS0WRj85C1kSaCmZhFKLD55uCCICAKcGR5GCI5w+2238s1NN/Psb57jN797noH+PmLRKM6zyccwjEswyUSySHg8LgxDR5IsmObFj7sUrnBz2ERyZaOcOkLviR5qmxcTDUQRAJvdQkLR2P2vDxPofIfyqlpKy0oJR84fuyaK9M/6+7BYrGz+3j2MjY6yc9dutm9/i317dmG1WsnKzhk/65dkZdM0kSQJj9uNaRggfdnca2pc+bm5IIAoMnLkeXRFQ5JETMDmlRkZjRPu2IaaUiivbSAnJ5dUKnVhY0UJwzDo7+slHo/zzVs28S+P/zN/+/c/o6i4jEBgiHA4hCiKF6w4TMPAarXhcrkmi/9MTSuvvJimicWdQ7xvF4ODEXxVuTh9MoJVJDzQDqKAINmpriieHC8vhiCMh3Rfbw/B4SB33PEnPPPMFv7qrx8gOzuHoVODxGOxL5wu6oaBzWZDlmU0LT2emIyZIiYgSDZEi4UTr/+Qg6++zXAgih5XUc4cQDcF/D4fNTXVJKLRKX2vKEqoqsrxri60tM59927m6ae38N27v4dksTB0ahBVVc8t5g0Du92Oy+lA18czuDEzxsyzmAaSMxctMsDgjr/htNOHPLcBLdyLKtgoKiikvr4Ot8eLqmmEw5GzfcpLu9eiKBGLRuiKhMnOzuahhx5kw9obeWrrb9nT1ko4NIbPn4Usy+iGjs0uY7fLpPXMiDjB1WsOmwaiRUZy+AADbeQ4iCIWu4O0pnLg4EecGjpFTlYW5RUVeDxeVFVF09RLOt/4PF5EURSCw2dYUFjIhvXrWNrQgI5E97GjhCNhTMMkJyePTZvWI4giTqeL9r37OfzJRzgvs0S6+ku9poEg2ZDcuQDYJYlUKsXune/R1rqDl+YXsKz5Ola2NNPc3Ex5ZSWJWIzh4DBpLX1Rb50opwKBAKIoUV+3hOXLl9O+YS2//d3zvLdjOwWFheTlzyEwFBhPPhlKQNd83VzXdSRJIjcvH4BIOMy2/3qFN1/7PZWVNTQub2bFdc001Nfj9nkZDQYJhyMYhv6lwo7P300GBwcRRYmm5mYaGhrY9voaykqKz37HeJhnqs6cdmtAssOB3WZHSSQYHBzgw4Mf8H5rK4c+OUJobAyvx01xSQnZubmIgoCqqmeF/WKbJraHQmMkUwqNjcuQZZmxsTEkScLr89G+dx+HP/3kssN82okZjUQoLi3n/h98H5fbh9VqIxwK0dV5lLa2nezZs5cjHZ2EQiHsNgvFxcXk5OWhaSqapk0usJ1vs4hpmEQjUVRVnSybvD4fe/d9wOFPPp6BY+aXMLE2Xrd0Kfdu3syG9Ws5fTpAT08fe/d9wMEPDnBqcIB3tr/Bu29tx5+VxeK6paxZs4rGZfWUlJaiqilGgiMkk8olVwP/d9n4qzKtxEyn08iyTN2SWgYG+hk6NYTskFmxooXVq1cTj0Z54Mc/4dCBffizskkmk7S17mDX++9RVFJKY1MzK1uaqa+vZ35BAbFImODI6JeOr4ahMzYWyki0TSsxlUSCgsJiaqtrCIVCmKaJklBIxOO4PV4MQyc0OorFYgVAlmUcDgeGYRAYGuSVl46z7b9fpbyyhutaWlh1w0pqF9Zis9kZCQaJRqPn1K9Ol5NwOEJfTw82+/ktwqkyrcRMJhVqFi5ifkEBJwcGJrdPrI3v2PEu/X0ncH2uqz7RTfd4vPh8fjRNo7vzKEcPf8x/vvISi+saWLniOpoal1FeUQHAyMgIaU2jqrqWrVu30t11jOycnMu2f1qJCVBdVX72Yas/eJBpGthsdjqOdZNKpfD5s76wOWEYBpIkTXaPkskku3e+x+6d7zFvfgH1DY20tDRTv2QJebm5vLbtf3hqyxZsdhuiKF52w2PaiKlpKm6Pl4rycuJn13kmsNmshMZGOXL4MBaL9aIXPbHfbrcj58/BNE3CoRBvvPZ73tn+OkXFZfj8fjo7jmAYBllZ2RnptE8bMePxOLULF1NdVUU4cm7Dw+320tPTQ39fz5TLlwlhnS4XLrcbXdcZGjrJZ5/14nK5xufoGRASptGzRpqq8o1v3ERVTS3JpHLOrMTldtPT1084FMJms33lc0w8pu1yufH7s7BabZfUnb9UpoWYpmnicDjZt/8Ae3a1UVVdy7x58xAEAcPQsVgsnBoKkNbT0/qlrmkR5oIg4PP7ad+9k48OfsCmW2/jj2/6I5bU1WEYOkoizrGOY4iXWIRfK4Sp/qzERClyJZAkiXgsRjQaweVy03L9Ddy/+R5cLjd33fXnJOJx5CmuRF5NppWYE4jieF8yEg6Rm5dPWUUVJ7o7r+lrKZfCtBRzAlEUSSQSJJMKfn/WtH8te1qMmRfCMAxkWUaWZWD6vwQ7veNmhjErZgaZFTODzIqZQWbFzCBfKZtP96x6rZiymNN5bnytmQ3zDDIrZgaZFTOD/C9uew7sSK2nLAAAAABJRU5ErkJggg=="
id="image5539" /></g><g
id="g5567"><g
clip-path="url(#clipPath5553)"
id="g5569"
@ -4599,7 +4585,7 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path6575"
inkscape:connector-curvature="0" /></g></g></g><g
transform="matrix(1,0,0,-1,0,2590.6553)"
transform="matrix(1,0,0,-1,-1.6,2590.6553)"
id="g6595"><g
clip-path="url(#clipPath6581)"
id="g6597"
@ -4612,7 +4598,7 @@
style="fill:url(#radialGradient22758);fill-opacity:1;stroke:none"
id="path6607"
inkscape:connector-curvature="0" /></g></g></g></g></g></g><g
transform="matrix(1,0,0,-1,0,2590.6553)"
transform="matrix(1,0,0,-1,-1.6,2590.6553)"
id="g6627"><g
clip-path="url(#clipPath6613)"
id="g6629"
@ -4689,7 +4675,7 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path6751"
inkscape:connector-curvature="0" /></g></g></g><g
transform="matrix(1,0,0,-1,0,2590.6553)"
transform="matrix(1,0,0,-1,-1.6,2590.6553)"
id="g6771"><g
clip-path="url(#clipPath6757)"
id="g6773"
@ -4930,7 +4916,8 @@
style="fill:url(#radialGradient28751);stroke:none"
id="path4727"
inkscape:connector-curvature="0" /></g></g></g></g></g></g><g
id="g4747"><g
id="g4747"
transform="matrix(1,0,0,-1,0,1873.22)"><g
clip-path="url(#clipPath4733)"
id="g4749"
style="opacity:0.69999701"><g
@ -4964,7 +4951,8 @@
style="fill:url(#radialGradient28755);stroke:none"
id="path4807"
inkscape:connector-curvature="0" /></g></g></g></g></g></g><g
id="g4827"><g
id="g4827"
transform="matrix(1,0,0,-1,0,1400.973)"><g
clip-path="url(#clipPath4813)"
id="g4829"
style="opacity:0.69999701"><g
@ -4986,7 +4974,8 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path4855"
inkscape:connector-curvature="0" /></g></g></g><g
id="g4875"><g
id="g4875"
transform="translate(-3.2,0)"><g
clip-path="url(#clipPath4861)"
id="g4877"
style="opacity:0.69999701"><g
@ -5015,13 +5004,6 @@
style="fill:url(#linearGradient28763);stroke:none"
id="path7717"
inkscape:connector-curvature="0" /></g><g
id="g7729"
transform="matrix(82.988968,0,0,64.991364,958.15723,800.27719)"><image
width="1"
height="1"
transform="matrix(1,0,0,-1,0,1)"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABBCAYAAACtrJiQAAAABHNCSVQICAgIfAhkiAAADhxJREFUeJztnGt0HOV5x38zs5fZ++rqi6z73RfJsiQjOxDbhdQ3TIAPLSTpCYXGQNKeHpKU0LRJOKXknPRDD5Rwjg9Q04T0cCnQNjUXAwZh2ZZtbMzFtizJ1gVZ1tpaSXuf3ZmdmX6QpeAaYwuvbalHvy+rM6PZeeY/z/M+z/u8MyvULVliMktGEK+1Af+fmBUzg8yKmUFmxcwgs2JmEMtUDzDN8eQvCMLk37OMM2UxYVzIz3/OMs6Uw3xWwAszZTFnQ/vCzCagDDIrZgb5SgnoWiOKIol4nHg8jtVqweX2YLFYrvkQNOM8U5IkQmOjOJxOrl+1hsrqhcRjUYLDZzBNE1G8dpc0ozxTEARGR0YoKinll48+QmlZGaGxMT49fIT/ePlV2nfvxCE78Pn96Lp+1e2bUZ5pGAaapnLnt+6kqXk5gydPomkaq9es4sknH+eBH/0IQRQ4HRhCEISrXsZJc+bMeXiqB12rWlNJJMjLn8Nd3/0zFEUhlUqh6zpjoyOkkilWr17DyhUrOHy4g96e48gOx1UdS2eMZwqCQCIRp7K6lsLCQmKx2OQ+UZRIJhW6Ojsor6jg2WefZt3GWwgOnyERjyNJ0lWxccaIOeFddXWLsdllDOPcMVEQRERRor+vl1RK5Z9+9Uv+4r7vE4tFGR0ZuSqCzpgwV1UVuyzzne98G7/XQ0JJAmCaBoIgMH/+PHLz8jEMg2AwiKqqrFu7lqKSItrb9zISHMblcl9R22eMZ8ZjMUrLK6mqrCQUDk1uFwQRn8/Lttff5LHHn2B0dJSq6moAOo8dZcOGjWzd+gwLF9dzOjBEMpm8Yl6aAc8UABNTTyMIIlzszgsCCCJ6YgRDiSBaZRAtwIWThCAIRKMR1m+8mdWrv04wGJy0IT8vj86ubh568EH272unrW0XsbjCyhUt+Hxejnd3U1RUxK23bkIzBA7s34eqqTidrownpsv3TFNHEG1YvQXoyRBaaAg9GQIjzbjQZxFEMHXSkdOoY4M4CprxLfk26cQo6WjgrKBffCPSmobT6WRp/WKSijJ+0xgPcZfHw4GDh9DTaRYsKCISCbPlySfYfN8P6OvrZ9HiJQSDZwiFw/z0oQd55NF/BNPkzOlAxj00A55pYKYVHHObKLzhYexzGtCi/aSjAfR4CDOtACbp2AimlsRZtJK5K3/O4q/fTvGyFYh5G0lGT5KODCCIX+zZsViU0rJKvnXnHSiKMlmQi6KILMu8+NLL9Pf14HA6kWUHLreb3p7jbH9zO4IksnLl17BZrfT29nLdihaamprYu28/gcAQHo/nK0p3PpcvpiCBaaIGj6JjoaZlHVU3/imuwk0IWXWYGBipMTxlaym96VFqv7aRuRXz0RQNNZxkwbIFGK4Ghg/+OxabzFgohJJQcDgck4V3JBKmsWk5N9+8kbHR0clTu9xugsFhXnzhRVQ1hc1mn9zn9XpREgnef7+VQx9/Sk1VBQsXLeHU4ElKSktZv24d+/cfpL+/F4/Hm5GQz0g2FyQLglUm/tkuTh54AYUmyprLKGlZRE5eEzkVN1O27Hqy5nhRYymSkSSmbmACkiTQ91E70RNvowk2Vq25kezcPLo7O1BTKRwOJ0oiwbr162lsXEY49Ifkk5uTw8FDH/Latm04nK5z5uWmaSI7HDidTo53dbJ9+9skVY1lDfXoaQ2Hw8natTfR2trGmdNDOF2XP4ZmtDSyOvxg6ox1vMzJj1sxLMvJKfRjEUXUhEYqlsI0zMmR0WIRSSsaPTt/TTISAIudR/7hF9x99914/T4GBgbpOdGN35/Nw7/4OQIQjUYQBBHTNMjNy2fHu63sa9+D231+uJqmiSAIeL0+kqkku9t2smvPXhobG3G5nPizsikomM87b7+NJEmX3STJaGlkGGkEuxtbdgHqaA9Hn7uFI7s+RLKKmLpxXnoRLRJKMo0eHyKVNigsLMHhcDJ8JsCdd97B009tYfP9f4nT6WTrvz0HQElp2eTNVNUUPT29F7VL13Xcbg9z582ns+MIP/27nxGPJxgdCbJsaT2L6pYSjUYu+/ozX2eaJpgGVt88JKuNwR0/JDSqYHfbz/tXTU3j8dqpumULaUOguDCfvPx8QqEwx7u6ME2Tnzz4Yx5//DH6+/u5+557eeHFF1lQWEhZeQVDp4Y43t2FLDsuwSwT0zSZM3cevT3Had3ZhtvjweFyU15RSTqdvuxLv2JFu2noSO48jFSSzzr3Y/Xaz6kkTUEAw8TilTGtEoKpU1VTg2QZL1dEUSIajdBx5DALCubz6yce47bbb+XNN95i873389GhQwwHgwSGBnE4Li7m5xEFkVgsjiiOn8vtcmXkmq9sP9M0Ea12wkefJ1m3AqtNIq3qk/sESUS0WRj85C1kSaCmZhFKLD55uCCICAKcGR5GCI5w+2238s1NN/Psb57jN797noH+PmLRKM6zyccwjEswyUSySHg8LgxDR5IsmObFj7sUrnBz2ERyZaOcOkLviR5qmxcTDUQRAJvdQkLR2P2vDxPofIfyqlpKy0oJR84fuyaK9M/6+7BYrGz+3j2MjY6yc9dutm9/i317dmG1WsnKzhk/65dkZdM0kSQJj9uNaRggfdnca2pc+bm5IIAoMnLkeXRFQ5JETMDmlRkZjRPu2IaaUiivbSAnJ5dUKnVhY0UJwzDo7+slHo/zzVs28S+P/zN/+/c/o6i4jEBgiHA4hCiKF6w4TMPAarXhcrkmi/9MTSuvvJimicWdQ7xvF4ODEXxVuTh9MoJVJDzQDqKAINmpriieHC8vhiCMh3Rfbw/B4SB33PEnPPPMFv7qrx8gOzuHoVODxGOxL5wu6oaBzWZDlmU0LT2emIyZIiYgSDZEi4UTr/+Qg6++zXAgih5XUc4cQDcF/D4fNTXVJKLRKX2vKEqoqsrxri60tM59927m6ae38N27v4dksTB0ahBVVc8t5g0Du92Oy+lA18czuDEzxsyzmAaSMxctMsDgjr/htNOHPLcBLdyLKtgoKiikvr4Ot8eLqmmEw5GzfcpLu9eiKBGLRuiKhMnOzuahhx5kw9obeWrrb9nT1ko4NIbPn4Usy+iGjs0uY7fLpPXMiDjB1WsOmwaiRUZy+AADbeQ4iCIWu4O0pnLg4EecGjpFTlYW5RUVeDxeVFVF09RLOt/4PF5EURSCw2dYUFjIhvXrWNrQgI5E97GjhCNhTMMkJyePTZvWI4giTqeL9r37OfzJRzgvs0S6+ku9poEg2ZDcuQDYJYlUKsXune/R1rqDl+YXsKz5Ola2NNPc3Ex5ZSWJWIzh4DBpLX1Rb50opwKBAKIoUV+3hOXLl9O+YS2//d3zvLdjOwWFheTlzyEwFBhPPhlKQNd83VzXdSRJIjcvH4BIOMy2/3qFN1/7PZWVNTQub2bFdc001Nfj9nkZDQYJhyMYhv6lwo7P300GBwcRRYmm5mYaGhrY9voaykqKz37HeJhnqs6cdmtAssOB3WZHSSQYHBzgw4Mf8H5rK4c+OUJobAyvx01xSQnZubmIgoCqqmeF/WKbJraHQmMkUwqNjcuQZZmxsTEkScLr89G+dx+HP/3kssN82okZjUQoLi3n/h98H5fbh9VqIxwK0dV5lLa2nezZs5cjHZ2EQiHsNgvFxcXk5OWhaSqapk0usJ1vs4hpmEQjUVRVnSybvD4fe/d9wOFPPp6BY+aXMLE2Xrd0Kfdu3syG9Ws5fTpAT08fe/d9wMEPDnBqcIB3tr/Bu29tx5+VxeK6paxZs4rGZfWUlJaiqilGgiMkk8olVwP/d9n4qzKtxEyn08iyTN2SWgYG+hk6NYTskFmxooXVq1cTj0Z54Mc/4dCBffizskkmk7S17mDX++9RVFJKY1MzK1uaqa+vZ35BAbFImODI6JeOr4ahMzYWyki0TSsxlUSCgsJiaqtrCIVCmKaJklBIxOO4PV4MQyc0OorFYgVAlmUcDgeGYRAYGuSVl46z7b9fpbyyhutaWlh1w0pqF9Zis9kZCQaJRqPn1K9Ol5NwOEJfTw82+/ktwqkyrcRMJhVqFi5ifkEBJwcGJrdPrI3v2PEu/X0ncH2uqz7RTfd4vPh8fjRNo7vzKEcPf8x/vvISi+saWLniOpoal1FeUQHAyMgIaU2jqrqWrVu30t11jOycnMu2f1qJCVBdVX72Yas/eJBpGthsdjqOdZNKpfD5s76wOWEYBpIkTXaPkskku3e+x+6d7zFvfgH1DY20tDRTv2QJebm5vLbtf3hqyxZsdhuiKF52w2PaiKlpKm6Pl4rycuJn13kmsNmshMZGOXL4MBaL9aIXPbHfbrcj58/BNE3CoRBvvPZ73tn+OkXFZfj8fjo7jmAYBllZ2RnptE8bMePxOLULF1NdVUU4cm7Dw+320tPTQ39fz5TLlwlhnS4XLrcbXdcZGjrJZ5/14nK5xufoGRASptGzRpqq8o1v3ERVTS3JpHLOrMTldtPT1084FMJms33lc0w8pu1yufH7s7BabZfUnb9UpoWYpmnicDjZt/8Ae3a1UVVdy7x58xAEAcPQsVgsnBoKkNbT0/qlrmkR5oIg4PP7ad+9k48OfsCmW2/jj2/6I5bU1WEYOkoizrGOY4iXWIRfK4Sp/qzERClyJZAkiXgsRjQaweVy03L9Ddy/+R5cLjd33fXnJOJx5CmuRF5NppWYE4jieF8yEg6Rm5dPWUUVJ7o7r+lrKZfCtBRzAlEUSSQSJJMKfn/WtH8te1qMmRfCMAxkWUaWZWD6vwQ7veNmhjErZgaZFTODzIqZQWbFzCBfKZtP96x6rZiymNN5bnytmQ3zDDIrZgaZFTOD/C9uew7sSK2nLAAAAABJRU5ErkJggg=="
id="image7731" /></g><g
id="g7749"><g
clip-path="url(#clipPath7745)"
id="g7751"
@ -5046,7 +5028,8 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path8093"
inkscape:connector-curvature="0" /></g></g></g><g
id="g8113"><g
id="g8113"
transform="matrix(-1,0,0,1,2217.919,0)"><g
clip-path="url(#clipPath8099)"
id="g8115"
style="opacity:0.69999701"><g
@ -5058,7 +5041,8 @@
style="fill:url(#radialGradient28765);fill-opacity:1;stroke:none"
id="path8125"
inkscape:connector-curvature="0" /></g></g></g></g></g></g><g
id="g8145"><g
id="g8145"
transform="matrix(-1,0,0,1,2217.919,-2.1498952e-6)"><g
clip-path="url(#clipPath8131)"
id="g8147"
style="opacity:0.69999701"><g
@ -5086,7 +5070,8 @@
style="fill:none;stroke:#2e2d2d;stroke-width:8.50399971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
id="path8173"
inkscape:connector-curvature="0" /><g
id="g8193"><g
id="g8193"
transform="translate(1.6,0)"><g
clip-path="url(#clipPath8179)"
id="g8195"
style="opacity:0.69999701"><g
@ -5136,7 +5121,8 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path8269"
inkscape:connector-curvature="0" /></g></g></g><g
id="g8289"><g
id="g8289"
transform="translate(1.6,0)"><g
clip-path="url(#clipPath8275)"
id="g8291"
style="opacity:0.69999701"><g
@ -5182,7 +5168,8 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path8361"
inkscape:connector-curvature="0" /></g></g></g><g
id="g8381"><g
id="g8381"
transform="matrix(-1,0,0,1,1742.416,0)"><g
clip-path="url(#clipPath8367)"
id="g8383"
style="opacity:0.69999701"><g
@ -5194,7 +5181,8 @@
style="fill:url(#radialGradient28777);fill-opacity:1;stroke:none"
id="path8393"
inkscape:connector-curvature="0" /></g></g></g></g></g></g><g
id="g8413"><g
id="g8413"
transform="matrix(-1,0,0,1,1742.416,0)"><g
clip-path="url(#clipPath8399)"
id="g8415"
style="opacity:0.69999701"><g
@ -5277,14 +5265,7 @@
d="m 1744.1094,831.5313 c 3.205,0 5.801,2.059 5.799,4.599 0,2.539 -2.596,4.598 -5.799,4.598 l -287.732,0 c -3.206,0 -5.801,-2.058 -5.799,-4.599 0,-2.539 2.595,-4.598 5.797,-4.598 l 287.734,0 z"
style="fill:none;stroke:#2e2d2d;stroke-width:8.50399971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
id="path7815"
inkscape:connector-curvature="0" /><g
id="g7827"
transform="matrix(82.988968,0,0,64.991364,1560.6924,803.83481)"><image
width="1"
height="1"
transform="matrix(1,0,0,-1,0,1)"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABBCAYAAACtrJiQAAAABHNCSVQICAgIfAhkiAAADhxJREFUeJztnGt0HOV5x38zs5fZ++rqi6z73RfJsiQjOxDbhdQ3TIAPLSTpCYXGQNKeHpKU0LRJOKXknPRDD5Rwjg9Q04T0cCnQNjUXAwZh2ZZtbMzFtizJ1gVZ1tpaSXuf3ZmdmX6QpeAaYwuvbalHvy+rM6PZeeY/z/M+z/u8MyvULVliMktGEK+1Af+fmBUzg8yKmUFmxcwgs2JmEMtUDzDN8eQvCMLk37OMM2UxYVzIz3/OMs6Uw3xWwAszZTFnQ/vCzCagDDIrZgb5SgnoWiOKIol4nHg8jtVqweX2YLFYrvkQNOM8U5IkQmOjOJxOrl+1hsrqhcRjUYLDZzBNE1G8dpc0ozxTEARGR0YoKinll48+QmlZGaGxMT49fIT/ePlV2nfvxCE78Pn96Lp+1e2bUZ5pGAaapnLnt+6kqXk5gydPomkaq9es4sknH+eBH/0IQRQ4HRhCEISrXsZJc+bMeXiqB12rWlNJJMjLn8Nd3/0zFEUhlUqh6zpjoyOkkilWr17DyhUrOHy4g96e48gOx1UdS2eMZwqCQCIRp7K6lsLCQmKx2OQ+UZRIJhW6Ojsor6jg2WefZt3GWwgOnyERjyNJ0lWxccaIOeFddXWLsdllDOPcMVEQRERRor+vl1RK5Z9+9Uv+4r7vE4tFGR0ZuSqCzpgwV1UVuyzzne98G7/XQ0JJAmCaBoIgMH/+PHLz8jEMg2AwiKqqrFu7lqKSItrb9zISHMblcl9R22eMZ8ZjMUrLK6mqrCQUDk1uFwQRn8/Lttff5LHHn2B0dJSq6moAOo8dZcOGjWzd+gwLF9dzOjBEMpm8Yl6aAc8UABNTTyMIIlzszgsCCCJ6YgRDiSBaZRAtwIWThCAIRKMR1m+8mdWrv04wGJy0IT8vj86ubh568EH272unrW0XsbjCyhUt+Hxejnd3U1RUxK23bkIzBA7s34eqqTidrownpsv3TFNHEG1YvQXoyRBaaAg9GQIjzbjQZxFEMHXSkdOoY4M4CprxLfk26cQo6WjgrKBffCPSmobT6WRp/WKSijJ+0xgPcZfHw4GDh9DTaRYsKCISCbPlySfYfN8P6OvrZ9HiJQSDZwiFw/z0oQd55NF/BNPkzOlAxj00A55pYKYVHHObKLzhYexzGtCi/aSjAfR4CDOtACbp2AimlsRZtJK5K3/O4q/fTvGyFYh5G0lGT5KODCCIX+zZsViU0rJKvnXnHSiKMlmQi6KILMu8+NLL9Pf14HA6kWUHLreb3p7jbH9zO4IksnLl17BZrfT29nLdihaamprYu28/gcAQHo/nK0p3PpcvpiCBaaIGj6JjoaZlHVU3/imuwk0IWXWYGBipMTxlaym96VFqv7aRuRXz0RQNNZxkwbIFGK4Ghg/+OxabzFgohJJQcDgck4V3JBKmsWk5N9+8kbHR0clTu9xugsFhXnzhRVQ1hc1mn9zn9XpREgnef7+VQx9/Sk1VBQsXLeHU4ElKSktZv24d+/cfpL+/F4/Hm5GQz0g2FyQLglUm/tkuTh54AYUmyprLKGlZRE5eEzkVN1O27Hqy5nhRYymSkSSmbmACkiTQ91E70RNvowk2Vq25kezcPLo7O1BTKRwOJ0oiwbr162lsXEY49Ifkk5uTw8FDH/Latm04nK5z5uWmaSI7HDidTo53dbJ9+9skVY1lDfXoaQ2Hw8natTfR2trGmdNDOF2XP4ZmtDSyOvxg6ox1vMzJj1sxLMvJKfRjEUXUhEYqlsI0zMmR0WIRSSsaPTt/TTISAIudR/7hF9x99914/T4GBgbpOdGN35/Nw7/4OQIQjUYQBBHTNMjNy2fHu63sa9+D231+uJqmiSAIeL0+kqkku9t2smvPXhobG3G5nPizsikomM87b7+NJEmX3STJaGlkGGkEuxtbdgHqaA9Hn7uFI7s+RLKKmLpxXnoRLRJKMo0eHyKVNigsLMHhcDJ8JsCdd97B009tYfP9f4nT6WTrvz0HQElp2eTNVNUUPT29F7VL13Xcbg9z582ns+MIP/27nxGPJxgdCbJsaT2L6pYSjUYu+/ozX2eaJpgGVt88JKuNwR0/JDSqYHfbz/tXTU3j8dqpumULaUOguDCfvPx8QqEwx7u6ME2Tnzz4Yx5//DH6+/u5+557eeHFF1lQWEhZeQVDp4Y43t2FLDsuwSwT0zSZM3cevT3Had3ZhtvjweFyU15RSTqdvuxLv2JFu2noSO48jFSSzzr3Y/Xaz6kkTUEAw8TilTGtEoKpU1VTg2QZL1dEUSIajdBx5DALCubz6yce47bbb+XNN95i873389GhQwwHgwSGBnE4Li7m5xEFkVgsjiiOn8vtcmXkmq9sP9M0Ea12wkefJ1m3AqtNIq3qk/sESUS0WRj85C1kSaCmZhFKLD55uCCICAKcGR5GCI5w+2238s1NN/Psb57jN797noH+PmLRKM6zyccwjEswyUSySHg8LgxDR5IsmObFj7sUrnBz2ERyZaOcOkLviR5qmxcTDUQRAJvdQkLR2P2vDxPofIfyqlpKy0oJR84fuyaK9M/6+7BYrGz+3j2MjY6yc9dutm9/i317dmG1WsnKzhk/65dkZdM0kSQJj9uNaRggfdnca2pc+bm5IIAoMnLkeXRFQ5JETMDmlRkZjRPu2IaaUiivbSAnJ5dUKnVhY0UJwzDo7+slHo/zzVs28S+P/zN/+/c/o6i4jEBgiHA4hCiKF6w4TMPAarXhcrkmi/9MTSuvvJimicWdQ7xvF4ODEXxVuTh9MoJVJDzQDqKAINmpriieHC8vhiCMh3Rfbw/B4SB33PEnPPPMFv7qrx8gOzuHoVODxGOxL5wu6oaBzWZDlmU0LT2emIyZIiYgSDZEi4UTr/+Qg6++zXAgih5XUc4cQDcF/D4fNTXVJKLRKX2vKEqoqsrxri60tM59927m6ae38N27v4dksTB0ahBVVc8t5g0Du92Oy+lA18czuDEzxsyzmAaSMxctMsDgjr/htNOHPLcBLdyLKtgoKiikvr4Ot8eLqmmEw5GzfcpLu9eiKBGLRuiKhMnOzuahhx5kw9obeWrrb9nT1ko4NIbPn4Usy+iGjs0uY7fLpPXMiDjB1WsOmwaiRUZy+AADbeQ4iCIWu4O0pnLg4EecGjpFTlYW5RUVeDxeVFVF09RLOt/4PF5EURSCw2dYUFjIhvXrWNrQgI5E97GjhCNhTMMkJyePTZvWI4giTqeL9r37OfzJRzgvs0S6+ku9poEg2ZDcuQDYJYlUKsXune/R1rqDl+YXsKz5Ola2NNPc3Ex5ZSWJWIzh4DBpLX1Rb50opwKBAKIoUV+3hOXLl9O+YS2//d3zvLdjOwWFheTlzyEwFBhPPhlKQNd83VzXdSRJIjcvH4BIOMy2/3qFN1/7PZWVNTQub2bFdc001Nfj9nkZDQYJhyMYhv6lwo7P300GBwcRRYmm5mYaGhrY9voaykqKz37HeJhnqs6cdmtAssOB3WZHSSQYHBzgw4Mf8H5rK4c+OUJobAyvx01xSQnZubmIgoCqqmeF/WKbJraHQmMkUwqNjcuQZZmxsTEkScLr89G+dx+HP/3kssN82okZjUQoLi3n/h98H5fbh9VqIxwK0dV5lLa2nezZs5cjHZ2EQiHsNgvFxcXk5OWhaSqapk0usJ1vs4hpmEQjUVRVnSybvD4fe/d9wOFPPp6BY+aXMLE2Xrd0Kfdu3syG9Ws5fTpAT08fe/d9wMEPDnBqcIB3tr/Bu29tx5+VxeK6paxZs4rGZfWUlJaiqilGgiMkk8olVwP/d9n4qzKtxEyn08iyTN2SWgYG+hk6NYTskFmxooXVq1cTj0Z54Mc/4dCBffizskkmk7S17mDX++9RVFJKY1MzK1uaqa+vZ35BAbFImODI6JeOr4ahMzYWyki0TSsxlUSCgsJiaqtrCIVCmKaJklBIxOO4PV4MQyc0OorFYgVAlmUcDgeGYRAYGuSVl46z7b9fpbyyhutaWlh1w0pqF9Zis9kZCQaJRqPn1K9Ol5NwOEJfTw82+/ktwqkyrcRMJhVqFi5ifkEBJwcGJrdPrI3v2PEu/X0ncH2uqz7RTfd4vPh8fjRNo7vzKEcPf8x/vvISi+saWLniOpoal1FeUQHAyMgIaU2jqrqWrVu30t11jOycnMu2f1qJCVBdVX72Yas/eJBpGthsdjqOdZNKpfD5s76wOWEYBpIkTXaPkskku3e+x+6d7zFvfgH1DY20tDRTv2QJebm5vLbtf3hqyxZsdhuiKF52w2PaiKlpKm6Pl4rycuJn13kmsNmshMZGOXL4MBaL9aIXPbHfbrcj58/BNE3CoRBvvPZ73tn+OkXFZfj8fjo7jmAYBllZ2RnptE8bMePxOLULF1NdVUU4cm7Dw+320tPTQ39fz5TLlwlhnS4XLrcbXdcZGjrJZ5/14nK5xufoGRASptGzRpqq8o1v3ERVTS3JpHLOrMTldtPT1084FMJms33lc0w8pu1yufH7s7BabZfUnb9UpoWYpmnicDjZt/8Ae3a1UVVdy7x58xAEAcPQsVgsnBoKkNbT0/qlrmkR5oIg4PP7ad+9k48OfsCmW2/jj2/6I5bU1WEYOkoizrGOY4iXWIRfK4Sp/qzERClyJZAkiXgsRjQaweVy03L9Ddy/+R5cLjd33fXnJOJx5CmuRF5NppWYE4jieF8yEg6Rm5dPWUUVJ7o7r+lrKZfCtBRzAlEUSSQSJJMKfn/WtH8te1qMmRfCMAxkWUaWZWD6vwQ7veNmhjErZgaZFTODzIqZQWbFzCBfKZtP96x6rZiymNN5bnytmQ3zDDIrZgaZFTOD/C9uew7sSK2nLAAAAABJRU5ErkJggg=="
id="image7829" /></g><path
inkscape:connector-curvature="0" /><path
d="m 1572.6621,870.1445 62.131,0 c 1.629,0 2.953,-1.32 2.953,-2.95 l 0,-62.127 c 0,-1.63 -1.324,-2.954 -2.953,-2.954 l -62.131,0 c -1.631,0 -2.947,1.324 -2.947,2.954 l 0,62.127 c 0,1.63 1.316,2.95 2.947,2.95"
style="fill:#2f2d2e;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path7841"
@ -5309,7 +5290,8 @@
id="path8557"
inkscape:connector-curvature="0" /></g><g
style="opacity:0.69999701"
id="g8581"><g
id="g8581"
transform="translate(-3.2,0)"><g
id="g8583"><g
id="g8585"><g
id="g8587"><path
@ -5384,7 +5366,8 @@
id="path8765"
inkscape:connector-curvature="0" /></g></g></g></g><g
style="opacity:0.69999701"
id="g8789"><g
id="g8789"
transform="matrix(1,0,0,-1,0,1636.441)"><g
id="g8791"><g
id="g8793"><g
id="g8795"><path
@ -5404,7 +5387,8 @@
id="path8817"
inkscape:connector-curvature="0" /></g><g
style="opacity:0.69999701"
id="g8841"><g
id="g8841"
transform="matrix(-1,0,0,1,2889.862,0)"><g
id="g8843"><g
id="g8845"><g
id="g8847"><path
@ -5413,7 +5397,8 @@
id="path8849"
inkscape:connector-curvature="0" /></g></g></g></g><g
style="opacity:0.69999701"
id="g8873"><g
id="g8873"
transform="matrix(-1,0,0,1,2889.862,0)"><g
id="g8875"><g
id="g8877"><g
id="g8879"><path
@ -5450,7 +5435,8 @@
id="path8941"
inkscape:connector-curvature="0" /></g></g></g></g><g
style="opacity:0.69999701"
id="g8965"><g
id="g8965"
transform="matrix(1,0,0,-1,0,1652.875)"><g
id="g8967"><g
id="g8969"><g
id="g8971"><path
@ -5470,7 +5456,8 @@
id="path8993"
inkscape:connector-curvature="0" /></g><g
style="opacity:0.69999701"
id="g9017"><g
id="g9017"
transform="matrix(-1,0,0,1,3526.988,0)"><g
id="g9019"><g
id="g9021"><g
id="g9023"><path
@ -5480,7 +5467,8 @@
inkscape:connector-curvature="0" /></g></g></g></g><g
style="opacity:0.69999701"
id="g9049"><g
id="g9051"><g
id="g9051"
transform="matrix(-1,0,0,1,3526.988,0)"><g
id="g9053"><g
id="g9055"><path
d="m 1691.348,852.575 c 1.295,31.435 27.177,56.539 58.929,56.526 23.84,0.005 44.364,-14.143 53.666,-34.5 L 1786.5,857.157 c -3.242,9.352 -12.109,16.07 -22.572,16.068 -12.092,0.007 -22.065,-8.991 -23.662,-20.65 l 11.105,0 -10.303,-10.302 -17.845,-17.844 -7.455,-7.456 -35.602,35.602 11.182,0 z"
@ -5507,7 +5495,8 @@
id="path9085"
inkscape:connector-curvature="0" /></g><g
style="opacity:0.69999701"
id="g9109"><g
id="g9109"
transform="translate(-3.2,0)"><g
id="g9111"><g
id="g9113"><g
id="g9115"><path
@ -5597,13 +5586,6 @@
style="fill:none;stroke:#2e2d2d;stroke-width:8.50399971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
id="path7131"
inkscape:connector-curvature="0" /><g
id="g7143"
transform="matrix(82.988968,0,0,64.991364,2254.6221,743.15219)"><image
width="1"
height="1"
transform="matrix(1,0,0,-1,0,1)"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABBCAYAAACtrJiQAAAABHNCSVQICAgIfAhkiAAADhxJREFUeJztnGt0HOV5x38zs5fZ++rqi6z73RfJsiQjOxDbhdQ3TIAPLSTpCYXGQNKeHpKU0LRJOKXknPRDD5Rwjg9Q04T0cCnQNjUXAwZh2ZZtbMzFtizJ1gVZ1tpaSXuf3ZmdmX6QpeAaYwuvbalHvy+rM6PZeeY/z/M+z/u8MyvULVliMktGEK+1Af+fmBUzg8yKmUFmxcwgs2JmEMtUDzDN8eQvCMLk37OMM2UxYVzIz3/OMs6Uw3xWwAszZTFnQ/vCzCagDDIrZgb5SgnoWiOKIol4nHg8jtVqweX2YLFYrvkQNOM8U5IkQmOjOJxOrl+1hsrqhcRjUYLDZzBNE1G8dpc0ozxTEARGR0YoKinll48+QmlZGaGxMT49fIT/ePlV2nfvxCE78Pn96Lp+1e2bUZ5pGAaapnLnt+6kqXk5gydPomkaq9es4sknH+eBH/0IQRQ4HRhCEISrXsZJc+bMeXiqB12rWlNJJMjLn8Nd3/0zFEUhlUqh6zpjoyOkkilWr17DyhUrOHy4g96e48gOx1UdS2eMZwqCQCIRp7K6lsLCQmKx2OQ+UZRIJhW6Ojsor6jg2WefZt3GWwgOnyERjyNJ0lWxccaIOeFddXWLsdllDOPcMVEQRERRor+vl1RK5Z9+9Uv+4r7vE4tFGR0ZuSqCzpgwV1UVuyzzne98G7/XQ0JJAmCaBoIgMH/+PHLz8jEMg2AwiKqqrFu7lqKSItrb9zISHMblcl9R22eMZ8ZjMUrLK6mqrCQUDk1uFwQRn8/Lttff5LHHn2B0dJSq6moAOo8dZcOGjWzd+gwLF9dzOjBEMpm8Yl6aAc8UABNTTyMIIlzszgsCCCJ6YgRDiSBaZRAtwIWThCAIRKMR1m+8mdWrv04wGJy0IT8vj86ubh568EH272unrW0XsbjCyhUt+Hxejnd3U1RUxK23bkIzBA7s34eqqTidrownpsv3TFNHEG1YvQXoyRBaaAg9GQIjzbjQZxFEMHXSkdOoY4M4CprxLfk26cQo6WjgrKBffCPSmobT6WRp/WKSijJ+0xgPcZfHw4GDh9DTaRYsKCISCbPlySfYfN8P6OvrZ9HiJQSDZwiFw/z0oQd55NF/BNPkzOlAxj00A55pYKYVHHObKLzhYexzGtCi/aSjAfR4CDOtACbp2AimlsRZtJK5K3/O4q/fTvGyFYh5G0lGT5KODCCIX+zZsViU0rJKvnXnHSiKMlmQi6KILMu8+NLL9Pf14HA6kWUHLreb3p7jbH9zO4IksnLl17BZrfT29nLdihaamprYu28/gcAQHo/nK0p3PpcvpiCBaaIGj6JjoaZlHVU3/imuwk0IWXWYGBipMTxlaym96VFqv7aRuRXz0RQNNZxkwbIFGK4Ghg/+OxabzFgohJJQcDgck4V3JBKmsWk5N9+8kbHR0clTu9xugsFhXnzhRVQ1hc1mn9zn9XpREgnef7+VQx9/Sk1VBQsXLeHU4ElKSktZv24d+/cfpL+/F4/Hm5GQz0g2FyQLglUm/tkuTh54AYUmyprLKGlZRE5eEzkVN1O27Hqy5nhRYymSkSSmbmACkiTQ91E70RNvowk2Vq25kezcPLo7O1BTKRwOJ0oiwbr162lsXEY49Ifkk5uTw8FDH/Latm04nK5z5uWmaSI7HDidTo53dbJ9+9skVY1lDfXoaQ2Hw8natTfR2trGmdNDOF2XP4ZmtDSyOvxg6ox1vMzJj1sxLMvJKfRjEUXUhEYqlsI0zMmR0WIRSSsaPTt/TTISAIudR/7hF9x99914/T4GBgbpOdGN35/Nw7/4OQIQjUYQBBHTNMjNy2fHu63sa9+D231+uJqmiSAIeL0+kqkku9t2smvPXhobG3G5nPizsikomM87b7+NJEmX3STJaGlkGGkEuxtbdgHqaA9Hn7uFI7s+RLKKmLpxXnoRLRJKMo0eHyKVNigsLMHhcDJ8JsCdd97B009tYfP9f4nT6WTrvz0HQElp2eTNVNUUPT29F7VL13Xcbg9z582ns+MIP/27nxGPJxgdCbJsaT2L6pYSjUYu+/ozX2eaJpgGVt88JKuNwR0/JDSqYHfbz/tXTU3j8dqpumULaUOguDCfvPx8QqEwx7u6ME2Tnzz4Yx5//DH6+/u5+557eeHFF1lQWEhZeQVDp4Y43t2FLDsuwSwT0zSZM3cevT3Had3ZhtvjweFyU15RSTqdvuxLv2JFu2noSO48jFSSzzr3Y/Xaz6kkTUEAw8TilTGtEoKpU1VTg2QZL1dEUSIajdBx5DALCubz6yce47bbb+XNN95i873389GhQwwHgwSGBnE4Li7m5xEFkVgsjiiOn8vtcmXkmq9sP9M0Ea12wkefJ1m3AqtNIq3qk/sESUS0WRj85C1kSaCmZhFKLD55uCCICAKcGR5GCI5w+2238s1NN/Psb57jN797noH+PmLRKM6zyccwjEswyUSySHg8LgxDR5IsmObFj7sUrnBz2ERyZaOcOkLviR5qmxcTDUQRAJvdQkLR2P2vDxPofIfyqlpKy0oJR84fuyaK9M/6+7BYrGz+3j2MjY6yc9dutm9/i317dmG1WsnKzhk/65dkZdM0kSQJj9uNaRggfdnca2pc+bm5IIAoMnLkeXRFQ5JETMDmlRkZjRPu2IaaUiivbSAnJ5dUKnVhY0UJwzDo7+slHo/zzVs28S+P/zN/+/c/o6i4jEBgiHA4hCiKF6w4TMPAarXhcrkmi/9MTSuvvJimicWdQ7xvF4ODEXxVuTh9MoJVJDzQDqKAINmpriieHC8vhiCMh3Rfbw/B4SB33PEnPPPMFv7qrx8gOzuHoVODxGOxL5wu6oaBzWZDlmU0LT2emIyZIiYgSDZEi4UTr/+Qg6++zXAgih5XUc4cQDcF/D4fNTXVJKLRKX2vKEqoqsrxri60tM59927m6ae38N27v4dksTB0ahBVVc8t5g0Du92Oy+lA18czuDEzxsyzmAaSMxctMsDgjr/htNOHPLcBLdyLKtgoKiikvr4Ot8eLqmmEw5GzfcpLu9eiKBGLRuiKhMnOzuahhx5kw9obeWrrb9nT1ko4NIbPn4Usy+iGjs0uY7fLpPXMiDjB1WsOmwaiRUZy+AADbeQ4iCIWu4O0pnLg4EecGjpFTlYW5RUVeDxeVFVF09RLOt/4PF5EURSCw2dYUFjIhvXrWNrQgI5E97GjhCNhTMMkJyePTZvWI4giTqeL9r37OfzJRzgvs0S6+ku9poEg2ZDcuQDYJYlUKsXune/R1rqDl+YXsKz5Ola2NNPc3Ex5ZSWJWIzh4DBpLX1Rb50opwKBAKIoUV+3hOXLl9O+YS2//d3zvLdjOwWFheTlzyEwFBhPPhlKQNd83VzXdSRJIjcvH4BIOMy2/3qFN1/7PZWVNTQub2bFdc001Nfj9nkZDQYJhyMYhv6lwo7P300GBwcRRYmm5mYaGhrY9voaykqKz37HeJhnqs6cdmtAssOB3WZHSSQYHBzgw4Mf8H5rK4c+OUJobAyvx01xSQnZubmIgoCqqmeF/WKbJraHQmMkUwqNjcuQZZmxsTEkScLr89G+dx+HP/3kssN82okZjUQoLi3n/h98H5fbh9VqIxwK0dV5lLa2nezZs5cjHZ2EQiHsNgvFxcXk5OWhaSqapk0usJ1vs4hpmEQjUVRVnSybvD4fe/d9wOFPPp6BY+aXMLE2Xrd0Kfdu3syG9Ws5fTpAT08fe/d9wMEPDnBqcIB3tr/Bu29tx5+VxeK6paxZs4rGZfWUlJaiqilGgiMkk8olVwP/d9n4qzKtxEyn08iyTN2SWgYG+hk6NYTskFmxooXVq1cTj0Z54Mc/4dCBffizskkmk7S17mDX++9RVFJKY1MzK1uaqa+vZ35BAbFImODI6JeOr4ahMzYWyki0TSsxlUSCgsJiaqtrCIVCmKaJklBIxOO4PV4MQyc0OorFYgVAlmUcDgeGYRAYGuSVl46z7b9fpbyyhutaWlh1w0pqF9Zis9kZCQaJRqPn1K9Ol5NwOEJfTw82+/ktwqkyrcRMJhVqFi5ifkEBJwcGJrdPrI3v2PEu/X0ncH2uqz7RTfd4vPh8fjRNo7vzKEcPf8x/vvISi+saWLniOpoal1FeUQHAyMgIaU2jqrqWrVu30t11jOycnMu2f1qJCVBdVX72Yas/eJBpGthsdjqOdZNKpfD5s76wOWEYBpIkTXaPkskku3e+x+6d7zFvfgH1DY20tDRTv2QJebm5vLbtf3hqyxZsdhuiKF52w2PaiKlpKm6Pl4rycuJn13kmsNmshMZGOXL4MBaL9aIXPbHfbrcj58/BNE3CoRBvvPZ73tn+OkXFZfj8fjo7jmAYBllZ2RnptE8bMePxOLULF1NdVUU4cm7Dw+320tPTQ39fz5TLlwlhnS4XLrcbXdcZGjrJZ5/14nK5xufoGRASptGzRpqq8o1v3ERVTS3JpHLOrMTldtPT1084FMJms33lc0w8pu1yufH7s7BabZfUnb9UpoWYpmnicDjZt/8Ae3a1UVVdy7x58xAEAcPQsVgsnBoKkNbT0/qlrmkR5oIg4PP7ad+9k48OfsCmW2/jj2/6I5bU1WEYOkoizrGOY4iXWIRfK4Sp/qzERClyJZAkiXgsRjQaweVy03L9Ddy/+R5cLjd33fXnJOJx5CmuRF5NppWYE4jieF8yEg6Rm5dPWUUVJ7o7r+lrKZfCtBRzAlEUSSQSJJMKfn/WtH8te1qMmRfCMAxkWUaWZWD6vwQ7veNmhjErZgaZFTODzIqZQWbFzCBfKZtP96x6rZiymNN5bnytmQ3zDDIrZgaZFTOD/C9uew7sSK2nLAAAAABJRU5ErkJggg=="
id="image7145" /></g><g
id="g7163"><g
clip-path="url(#clipPath7159)"
id="g7165"
@ -5774,7 +5756,8 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path7513"
inkscape:connector-curvature="0" /></g></g></g><g
id="g7533"><g
id="g7533"
transform="translate(-3.2,0)"><g
clip-path="url(#clipPath7519)"
id="g7535"
style="opacity:0.69999701"><g
@ -5786,7 +5769,8 @@
style="fill:url(#radialGradient25755);fill-opacity:1;stroke:none"
id="path7545"
inkscape:connector-curvature="0" /></g></g></g></g></g></g><g
id="g7565"><g
id="g7565"
transform="translate(-1.6,0)"><g
clip-path="url(#clipPath7551)"
id="g7567"
style="opacity:0.69999701"><g
@ -5936,13 +5920,6 @@
style="fill:url(#linearGradient27799);stroke:none"
id="path9269"
inkscape:connector-curvature="0" /></g><g
id="g9281"
transform="matrix(82.988968,0,0,64.991364,2988.165,565.90805)"><image
width="1"
height="1"
transform="matrix(1,0,0,-1,0,1)"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABBCAYAAACtrJiQAAAABHNCSVQICAgIfAhkiAAADhxJREFUeJztnGt0HOV5x38zs5fZ++rqi6z73RfJsiQjOxDbhdQ3TIAPLSTpCYXGQNKeHpKU0LRJOKXknPRDD5Rwjg9Q04T0cCnQNjUXAwZh2ZZtbMzFtizJ1gVZ1tpaSXuf3ZmdmX6QpeAaYwuvbalHvy+rM6PZeeY/z/M+z/u8MyvULVliMktGEK+1Af+fmBUzg8yKmUFmxcwgs2JmEMtUDzDN8eQvCMLk37OMM2UxYVzIz3/OMs6Uw3xWwAszZTFnQ/vCzCagDDIrZgb5SgnoWiOKIol4nHg8jtVqweX2YLFYrvkQNOM8U5IkQmOjOJxOrl+1hsrqhcRjUYLDZzBNE1G8dpc0ozxTEARGR0YoKinll48+QmlZGaGxMT49fIT/ePlV2nfvxCE78Pn96Lp+1e2bUZ5pGAaapnLnt+6kqXk5gydPomkaq9es4sknH+eBH/0IQRQ4HRhCEISrXsZJc+bMeXiqB12rWlNJJMjLn8Nd3/0zFEUhlUqh6zpjoyOkkilWr17DyhUrOHy4g96e48gOx1UdS2eMZwqCQCIRp7K6lsLCQmKx2OQ+UZRIJhW6Ojsor6jg2WefZt3GWwgOnyERjyNJ0lWxccaIOeFddXWLsdllDOPcMVEQRERRor+vl1RK5Z9+9Uv+4r7vE4tFGR0ZuSqCzpgwV1UVuyzzne98G7/XQ0JJAmCaBoIgMH/+PHLz8jEMg2AwiKqqrFu7lqKSItrb9zISHMblcl9R22eMZ8ZjMUrLK6mqrCQUDk1uFwQRn8/Lttff5LHHn2B0dJSq6moAOo8dZcOGjWzd+gwLF9dzOjBEMpm8Yl6aAc8UABNTTyMIIlzszgsCCCJ6YgRDiSBaZRAtwIWThCAIRKMR1m+8mdWrv04wGJy0IT8vj86ubh568EH272unrW0XsbjCyhUt+Hxejnd3U1RUxK23bkIzBA7s34eqqTidrownpsv3TFNHEG1YvQXoyRBaaAg9GQIjzbjQZxFEMHXSkdOoY4M4CprxLfk26cQo6WjgrKBffCPSmobT6WRp/WKSijJ+0xgPcZfHw4GDh9DTaRYsKCISCbPlySfYfN8P6OvrZ9HiJQSDZwiFw/z0oQd55NF/BNPkzOlAxj00A55pYKYVHHObKLzhYexzGtCi/aSjAfR4CDOtACbp2AimlsRZtJK5K3/O4q/fTvGyFYh5G0lGT5KODCCIX+zZsViU0rJKvnXnHSiKMlmQi6KILMu8+NLL9Pf14HA6kWUHLreb3p7jbH9zO4IksnLl17BZrfT29nLdihaamprYu28/gcAQHo/nK0p3PpcvpiCBaaIGj6JjoaZlHVU3/imuwk0IWXWYGBipMTxlaym96VFqv7aRuRXz0RQNNZxkwbIFGK4Ghg/+OxabzFgohJJQcDgck4V3JBKmsWk5N9+8kbHR0clTu9xugsFhXnzhRVQ1hc1mn9zn9XpREgnef7+VQx9/Sk1VBQsXLeHU4ElKSktZv24d+/cfpL+/F4/Hm5GQz0g2FyQLglUm/tkuTh54AYUmyprLKGlZRE5eEzkVN1O27Hqy5nhRYymSkSSmbmACkiTQ91E70RNvowk2Vq25kezcPLo7O1BTKRwOJ0oiwbr162lsXEY49Ifkk5uTw8FDH/Latm04nK5z5uWmaSI7HDidTo53dbJ9+9skVY1lDfXoaQ2Hw8natTfR2trGmdNDOF2XP4ZmtDSyOvxg6ox1vMzJj1sxLMvJKfRjEUXUhEYqlsI0zMmR0WIRSSsaPTt/TTISAIudR/7hF9x99914/T4GBgbpOdGN35/Nw7/4OQIQjUYQBBHTNMjNy2fHu63sa9+D231+uJqmiSAIeL0+kqkku9t2smvPXhobG3G5nPizsikomM87b7+NJEmX3STJaGlkGGkEuxtbdgHqaA9Hn7uFI7s+RLKKmLpxXnoRLRJKMo0eHyKVNigsLMHhcDJ8JsCdd97B009tYfP9f4nT6WTrvz0HQElp2eTNVNUUPT29F7VL13Xcbg9z582ns+MIP/27nxGPJxgdCbJsaT2L6pYSjUYu+/ozX2eaJpgGVt88JKuNwR0/JDSqYHfbz/tXTU3j8dqpumULaUOguDCfvPx8QqEwx7u6ME2Tnzz4Yx5//DH6+/u5+557eeHFF1lQWEhZeQVDp4Y43t2FLDsuwSwT0zSZM3cevT3Had3ZhtvjweFyU15RSTqdvuxLv2JFu2noSO48jFSSzzr3Y/Xaz6kkTUEAw8TilTGtEoKpU1VTg2QZL1dEUSIajdBx5DALCubz6yce47bbb+XNN95i873389GhQwwHgwSGBnE4Li7m5xEFkVgsjiiOn8vtcmXkmq9sP9M0Ea12wkefJ1m3AqtNIq3qk/sESUS0WRj85C1kSaCmZhFKLD55uCCICAKcGR5GCI5w+2238s1NN/Psb57jN797noH+PmLRKM6zyccwjEswyUSySHg8LgxDR5IsmObFj7sUrnBz2ERyZaOcOkLviR5qmxcTDUQRAJvdQkLR2P2vDxPofIfyqlpKy0oJR84fuyaK9M/6+7BYrGz+3j2MjY6yc9dutm9/i317dmG1WsnKzhk/65dkZdM0kSQJj9uNaRggfdnca2pc+bm5IIAoMnLkeXRFQ5JETMDmlRkZjRPu2IaaUiivbSAnJ5dUKnVhY0UJwzDo7+slHo/zzVs28S+P/zN/+/c/o6i4jEBgiHA4hCiKF6w4TMPAarXhcrkmi/9MTSuvvJimicWdQ7xvF4ODEXxVuTh9MoJVJDzQDqKAINmpriieHC8vhiCMh3Rfbw/B4SB33PEnPPPMFv7qrx8gOzuHoVODxGOxL5wu6oaBzWZDlmU0LT2emIyZIiYgSDZEi4UTr/+Qg6++zXAgih5XUc4cQDcF/D4fNTXVJKLRKX2vKEqoqsrxri60tM59927m6ae38N27v4dksTB0ahBVVc8t5g0Du92Oy+lA18czuDEzxsyzmAaSMxctMsDgjr/htNOHPLcBLdyLKtgoKiikvr4Ot8eLqmmEw5GzfcpLu9eiKBGLRuiKhMnOzuahhx5kw9obeWrrb9nT1ko4NIbPn4Usy+iGjs0uY7fLpPXMiDjB1WsOmwaiRUZy+AADbeQ4iCIWu4O0pnLg4EecGjpFTlYW5RUVeDxeVFVF09RLOt/4PF5EURSCw2dYUFjIhvXrWNrQgI5E97GjhCNhTMMkJyePTZvWI4giTqeL9r37OfzJRzgvs0S6+ku9poEg2ZDcuQDYJYlUKsXune/R1rqDl+YXsKz5Ola2NNPc3Ex5ZSWJWIzh4DBpLX1Rb50opwKBAKIoUV+3hOXLl9O+YS2//d3zvLdjOwWFheTlzyEwFBhPPhlKQNd83VzXdSRJIjcvH4BIOMy2/3qFN1/7PZWVNTQub2bFdc001Nfj9nkZDQYJhyMYhv6lwo7P300GBwcRRYmm5mYaGhrY9voaykqKz37HeJhnqs6cdmtAssOB3WZHSSQYHBzgw4Mf8H5rK4c+OUJobAyvx01xSQnZubmIgoCqqmeF/WKbJraHQmMkUwqNjcuQZZmxsTEkScLr89G+dx+HP/3kssN82okZjUQoLi3n/h98H5fbh9VqIxwK0dV5lLa2nezZs5cjHZ2EQiHsNgvFxcXk5OWhaSqapk0usJ1vs4hpmEQjUVRVnSybvD4fe/d9wOFPPp6BY+aXMLE2Xrd0Kfdu3syG9Ws5fTpAT08fe/d9wMEPDnBqcIB3tr/Bu29tx5+VxeK6paxZs4rGZfWUlJaiqilGgiMkk8olVwP/d9n4qzKtxEyn08iyTN2SWgYG+hk6NYTskFmxooXVq1cTj0Z54Mc/4dCBffizskkmk7S17mDX++9RVFJKY1MzK1uaqa+vZ35BAbFImODI6JeOr4ahMzYWyki0TSsxlUSCgsJiaqtrCIVCmKaJklBIxOO4PV4MQyc0OorFYgVAlmUcDgeGYRAYGuSVl46z7b9fpbyyhutaWlh1w0pqF9Zis9kZCQaJRqPn1K9Ol5NwOEJfTw82+/ktwqkyrcRMJhVqFi5ifkEBJwcGJrdPrI3v2PEu/X0ncH2uqz7RTfd4vPh8fjRNo7vzKEcPf8x/vvISi+saWLniOpoal1FeUQHAyMgIaU2jqrqWrVu30t11jOycnMu2f1qJCVBdVX72Yas/eJBpGthsdjqOdZNKpfD5s76wOWEYBpIkTXaPkskku3e+x+6d7zFvfgH1DY20tDRTv2QJebm5vLbtf3hqyxZsdhuiKF52w2PaiKlpKm6Pl4rycuJn13kmsNmshMZGOXL4MBaL9aIXPbHfbrcj58/BNE3CoRBvvPZ73tn+OkXFZfj8fjo7jmAYBllZ2RnptE8bMePxOLULF1NdVUU4cm7Dw+320tPTQ39fz5TLlwlhnS4XLrcbXdcZGjrJZ5/14nK5xufoGRASptGzRpqq8o1v3ERVTS3JpHLOrMTldtPT1084FMJms33lc0w8pu1yufH7s7BabZfUnb9UpoWYpmnicDjZt/8Ae3a1UVVdy7x58xAEAcPQsVgsnBoKkNbT0/qlrmkR5oIg4PP7ad+9k48OfsCmW2/jj2/6I5bU1WEYOkoizrGOY4iXWIRfK4Sp/qzERClyJZAkiXgsRjQaweVy03L9Ddy/+R5cLjd33fXnJOJx5CmuRF5NppWYE4jieF8yEg6Rm5dPWUUVJ7o7r+lrKZfCtBRzAlEUSSQSJJMKfn/WtH8te1qMmRfCMAxkWUaWZWD6vwQ7veNmhjErZgaZFTODzIqZQWbFzCBfKZtP96x6rZiymNN5bnytmQ3zDDIrZgaZFTOD/C9uew7sSK2nLAAAAABJRU5ErkJggg=="
id="image9283" /></g><g
id="g9301"><g
clip-path="url(#clipPath9297)"
id="g9303"
@ -6079,7 +6056,8 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path9571"
inkscape:connector-curvature="0" /></g></g></g><g
id="g9591"><g
id="g9591"
transform="translate(-3.2,0)"><g
clip-path="url(#clipPath9577)"
id="g9593"
style="opacity:0.69999701"><g
@ -6091,7 +6069,8 @@
style="fill:url(#radialGradient27813);fill-opacity:1;stroke:none"
id="path9603"
inkscape:connector-curvature="0" /></g></g></g></g></g></g><g
id="g9623"><g
id="g9623"
transform="translate(-1.6,0)"><g
clip-path="url(#clipPath9609)"
id="g9625"
style="opacity:0.69999701"><g
@ -6155,7 +6134,8 @@
style="fill:#b1c7eb;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path9739"
inkscape:connector-curvature="0" /></g></g></g><g
id="g9759"><g
id="g9759"
transform="translate(-3.2,0)"><g
clip-path="url(#clipPath9745)"
id="g9761"
style="opacity:0.69999701"><g
@ -6167,7 +6147,8 @@
style="fill:url(#radialGradient27821);fill-opacity:1;stroke:none"
id="path9771"
inkscape:connector-curvature="0" /></g></g></g></g></g></g><g
id="g9791"><g
id="g9791"
transform="translate(-1.6,0)"><g
clip-path="url(#clipPath9777)"
id="g9793"
style="opacity:0.69999701"><g

Before

Width:  |  Height:  |  Size: 436 KiB

After

Width:  |  Height:  |  Size: 407 KiB

View File

@ -204,31 +204,12 @@
<attribute name="title">
<string>Flight Mode Switch Settings</string>
</attribute>
<widget class="QLabel" name="label_16">
<property name="geometry">
<rect>
<x>310</x>
<y>30</y>
<width>201</width>
<height>17</height>
</rect>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>for multirotors!</string>
</property>
</widget>
<widget class="QGroupBox" name="groupBox">
<property name="geometry">
<rect>
<x>30</x>
<y>160</y>
<width>451</width>
<y>260</y>
<width>541</width>
<height>161</height>
</rect>
</property>
@ -384,19 +365,6 @@ margin:1px;</string>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_9">
<property name="styleSheet">
@ -414,25 +382,177 @@ margin:1px;</string>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QGroupBox" name="groupBox_2">
<property name="geometry">
<rect>
<x>30</x>
<y>30</y>
<width>451</width>
<height>121</height>
<y>20</y>
<width>541</width>
<height>211</height>
</rect>
</property>
<property name="title">
<string>FlightMode Switch Positions</string>
</property>
<widget class="QComboBox" name="fmsModePos5">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>100</x>
<y>140</y>
<width>151</width>
<height>26</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
<widget class="QComboBox" name="fmsModePos4">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>100</x>
<y>110</y>
<width>151</width>
<height>26</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Select the stabilization mode on this position (manual/stabilized/auto)</string>
</property>
</widget>
<widget class="QLabel" name="label_pos4">
<property name="geometry">
<rect>
<x>10</x>
<y>115</y>
<width>62</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Pos. 4</string>
</property>
</widget>
<widget class="QComboBox" name="fmsModePos6">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>100</x>
<y>170</y>
<width>151</width>
<height>26</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
<widget class="QLabel" name="label_pos5">
<property name="geometry">
<rect>
<x>10</x>
<y>145</y>
<width>62</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Pos. 5</string>
</property>
</widget>
<widget class="QLabel" name="label_pos6">
<property name="geometry">
<rect>
<x>10</x>
<y>175</y>
<width>62</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Pos. 6</string>
</property>
</widget>
<widget class="QSlider" name="fmsSlider">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>70</x>
<y>28</y>
<width>20</width>
<height>160</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>This slider moves when you move the flight mode switch
on your remote. It shows currently active flight mode.
Setup the flight mode channel on the RC Input tab if you have not done so already.</string>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>5</number>
</property>
<property name="pageStep">
<number>10</number>
</property>
<property name="value">
<number>0</number>
</property>
<property name="sliderPosition">
<number>0</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="invertedAppearance">
<bool>true</bool>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>1</number>
</property>
</widget>
<widget class="QComboBox" name="fmsModePos2">
<property name="geometry">
<rect>
<x>100</x>
<y>55</y>
<y>50</y>
<width>151</width>
<height>26</height>
</rect>
@ -445,7 +565,20 @@ margin:1px;</string>
<property name="geometry">
<rect>
<x>100</x>
<y>25</y>
<y>80</y>
<width>151</width>
<height>26</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
<widget class="QComboBox" name="fmsModePos1">
<property name="geometry">
<rect>
<x>100</x>
<y>20</y>
<width>151</width>
<height>26</height>
</rect>
@ -457,37 +590,11 @@ margin:1px;</string>
<string>Select the stabilization mode on this position (manual/stabilized/auto)</string>
</property>
</widget>
<widget class="QLabel" name="label_11">
<widget class="QLabel" name="label_pos2">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>62</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Pos. 3</string>
</property>
</widget>
<widget class="QComboBox" name="fmsModePos1">
<property name="geometry">
<rect>
<x>100</x>
<y>85</y>
<width>151</width>
<height>26</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
<widget class="QLabel" name="label_12">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<x>11</x>
<y>55</y>
<width>62</width>
<height>17</height>
</rect>
@ -496,11 +603,11 @@ margin:1px;</string>
<string>Pos. 2</string>
</property>
</widget>
<widget class="QLabel" name="label_13">
<widget class="QLabel" name="label_pos1">
<property name="geometry">
<rect>
<x>10</x>
<y>90</y>
<x>11</x>
<y>25</y>
<width>62</width>
<height>17</height>
</rect>
@ -509,55 +616,68 @@ margin:1px;</string>
<string>Pos. 1</string>
</property>
</widget>
<widget class="QSlider" name="fmsSlider">
<property name="enabled">
<bool>false</bool>
</property>
<widget class="QLabel" name="label_pos3">
<property name="geometry">
<rect>
<x>70</x>
<y>30</y>
<width>20</width>
<height>81</height>
<x>11</x>
<y>85</y>
<width>62</width>
<height>17</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
<property name="text">
<string>Pos. 3</string>
</property>
</widget>
<widget class="QSpinBox" name="fmsPosNum">
<property name="geometry">
<rect>
<x>458</x>
<y>20</y>
<width>61</width>
<height>20</height>
</rect>
</property>
<property name="toolTip">
<string>This slider moves when you move the flight mode switch
on your remote. Setup the flightmode channel on the RC Input tab
if you have not done so already.</string>
<string>Number of positions your FlightMode switch has.
Default is 3.
It will be 2 or 3 for most of setups, but it also can be up to 6.
In that case you have to configure your radio mixers so the whole range
from min to max is split into N equal intervals, and you may set arbitrary
channel value for each flight mode.</string>
</property>
<property name="minimum">
<number>-100</number>
<number>1</number>
</property>
<property name="maximum">
<number>100</number>
<number>6</number>
</property>
<property name="pageStep">
<number>10</number>
<property name="value">
<number>3</number>
</property>
<property name="sliderPosition">
<number>-100</number>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>277</x>
<y>22</y>
<width>171</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>100</number>
<property name="text">
<string>Number of flight modes:</string>
</property>
</widget>
<widget class="QLabel" name="label_15">
<property name="geometry">
<rect>
<x>270</x>
<y>30</y>
<width>141</width>
<height>31</height>
<x>310</x>
<y>120</y>
<width>191</width>
<height>30</height>
</rect>
</property>
<property name="font">
@ -567,13 +687,15 @@ if you have not done so already.</string>
</font>
</property>
<property name="text">
<string>Warning: avoid &quot;Manual&quot;</string>
<string>Avoid &quot;Manual&quot; for multirotors!</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</widget>
<zorder>groupBox_2</zorder>
<zorder>groupBox</zorder>
</widget>
<widget class="QWidget" name="tab_4">
<attribute name="title">
@ -763,9 +885,6 @@ Applies and Saves all settings to SD</string>
</widget>
<tabstops>
<tabstop>fmsSlider</tabstop>
<tabstop>fmsModePos3</tabstop>
<tabstop>fmsModePos2</tabstop>
<tabstop>fmsModePos1</tabstop>
<tabstop>fmsSsPos1Roll</tabstop>
<tabstop>fmsSsPos1Pitch</tabstop>
<tabstop>fmsSsPos1Yaw</tabstop>

View File

@ -1,8 +1,22 @@
<gcs>
<General>
<OverrideLanguage>en_AU</OverrideLanguage>
<AutoConnect>true</AutoConnect>
<AutoSelect>true</AutoSelect>
<LastPreferenceCategory>LineardialGadget</LastPreferenceCategory>
<LastPreferencePage>Mainboard CPU</LastPreferencePage>
<SaveSettingsOnExit>true</SaveSettingsOnExit>
<SettingsWindowHeight>476</SettingsWindowHeight>
<SettingsWindowWidth>697</SettingsWindowWidth>
</General>
<IPconnection>
<Current>
<arr_1>
<Port>1</Port>
<UseTCP>0</UseTCP>
</arr_1>
<size>1</size>
</Current>
</IPconnection>
<KeyBindings>
<size>0</size>
</KeyBindings>
@ -11,37 +25,17 @@
<FullScreen>false</FullScreen>
<Maximized>true</Maximized>
</MainWindow>
<Plugins>
<SoundNotifyPlugin>
<configInfo>
<locked>false</locked>
<version>1.0.0</version>
</configInfo>
<data>
<Current>
<arr_1>
<CurrentLanguage></CurrentLanguage>
<DataObject></DataObject>
<ExpireTimeout>0</ExpireTimeout>
<ObjectField></ObjectField>
<Repeat></Repeat>
<SayOrder></SayOrder>
<Sound1></Sound1>
<Sound2></Sound2>
<Sound3></Sound3>
<SoundCollectionPath></SoundCollectionPath>
<Value></Value>
<ValueSpinBox>0</ValueSpinBox>
</arr_1>
<size>1</size>
</Current>
<EnableSound>false</EnableSound>
<listNotifies>
<size>0</size>
</listNotifies>
</data>
</SoundNotifyPlugin>
</Plugins>
<ModePriorities>
<Mode1>91</Mode1>
<Mode2>90</Mode2>
<Mode3>89</Mode3>
<Mode4>88</Mode4>
<Mode5>87</Mode5>
<Welcome>100</Welcome>
</ModePriorities>
<SerialConnection>
<speed>57600</speed>
</SerialConnection>
<UAVGadgetConfigurations>
<ConfigGadget>
<default>
@ -65,7 +59,7 @@
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle</dialNeedleID2>
<dialNeedleID3>needle3</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>AttitudeActual</needle1DataObject>
<needle1Factor>-1</needle1Factor>
<needle1MaxValue>360</needle1MaxValue>
@ -100,7 +94,7 @@
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle2</dialNeedleID2>
<dialNeedleID3>needle3</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>BaroAltitude</needle1DataObject>
<needle1Factor>1</needle1Factor>
<needle1MaxValue>10</needle1MaxValue>
@ -131,11 +125,8 @@
<beSmooth>false</beSmooth>
<dialBackgroundID>background</dialBackgroundID>
<dialFile>%%DATAPATH%%dials/default/barometer.svg</dialFile>
<dialForegroundID></dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>BaroAltitude</needle1DataObject>
<needle1Factor>10</needle1Factor>
<needle1MaxValue>1120</needle1MaxValue>
@ -166,11 +157,8 @@
<beSmooth>false</beSmooth>
<dialBackgroundID>background</dialBackgroundID>
<dialFile>%%DATAPATH%%dials/default/vsi.svg</dialFile>
<dialForegroundID></dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>VelocityActual</needle1DataObject>
<needle1Factor>0.01</needle1Factor>
<needle1MaxValue>12</needle1MaxValue>
@ -203,9 +191,7 @@
<dialFile>%%DATAPATH%%dials/default/compass.svg</dialFile>
<dialForegroundID>foreground</dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>AttitudeActual</needle1DataObject>
<needle1Factor>-1</needle1Factor>
<needle1MaxValue>360</needle1MaxValue>
@ -240,7 +226,7 @@
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle</dialNeedleID2>
<dialNeedleID3>needle3</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>AttitudeActual</needle1DataObject>
<needle1Factor>-1</needle1Factor>
<needle1MaxValue>360</needle1MaxValue>
@ -275,7 +261,7 @@
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle2</dialNeedleID2>
<dialNeedleID3>needle3</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>BaroAltitude</needle1DataObject>
<needle1Factor>1</needle1Factor>
<needle1MaxValue>10</needle1MaxValue>
@ -308,9 +294,7 @@
<dialFile>%%DATAPATH%%dials/deluxe/barometer.svg</dialFile>
<dialForegroundID>foreground</dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>BaroAltitude</needle1DataObject>
<needle1Factor>10</needle1Factor>
<needle1MaxValue>1120</needle1MaxValue>
@ -343,9 +327,7 @@
<dialFile>%%DATAPATH%%dials/deluxe/vsi.svg</dialFile>
<dialForegroundID>foreground</dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>VelocityActual</needle1DataObject>
<needle1Factor>0.01</needle1Factor>
<needle1MaxValue>11.2</needle1MaxValue>
@ -378,9 +360,7 @@
<dialFile>%%DATAPATH%%dials/deluxe/compass.svg</dialFile>
<dialForegroundID>foreground</dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>AttitudeActual</needle1DataObject>
<needle1Factor>-1</needle1Factor>
<needle1MaxValue>360</needle1MaxValue>
@ -413,9 +393,7 @@
<dialFile>%%DATAPATH%%dials/deluxe/speed.svg</dialFile>
<dialForegroundID>foreground</dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>GPSPosition</needle1DataObject>
<needle1Factor>3.6</needle1Factor>
<needle1MaxValue>120</needle1MaxValue>
@ -450,7 +428,7 @@
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle2</dialNeedleID2>
<dialNeedleID3>needle3</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>BaroAltitude</needle1DataObject>
<needle1Factor>1</needle1Factor>
<needle1MaxValue>120</needle1MaxValue>
@ -485,7 +463,7 @@
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle2</dialNeedleID2>
<dialNeedleID3>needle2</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>AttitudeActual</needle1DataObject>
<needle1Factor>-1</needle1Factor>
<needle1MaxValue>360</needle1MaxValue>
@ -516,11 +494,8 @@
<beSmooth>false</beSmooth>
<dialBackgroundID>background</dialBackgroundID>
<dialFile>%%DATAPATH%%dials/default/speed.svg</dialFile>
<dialForegroundID></dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>GPSPosition</needle1DataObject>
<needle1Factor>3.6</needle1Factor>
<needle1MaxValue>120</needle1MaxValue>
@ -555,7 +530,7 @@
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle</dialNeedleID2>
<dialNeedleID3>needle3</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>AttitudeActual</needle1DataObject>
<needle1Factor>-1</needle1Factor>
<needle1MaxValue>360</needle1MaxValue>
@ -590,7 +565,7 @@
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle2</dialNeedleID2>
<dialNeedleID3>needle3</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>BaroAltitude</needle1DataObject>
<needle1Factor>1</needle1Factor>
<needle1MaxValue>10</needle1MaxValue>
@ -621,11 +596,8 @@
<beSmooth>false</beSmooth>
<dialBackgroundID>background</dialBackgroundID>
<dialFile>%%DATAPATH%%dials/hi-contrast/barometer.svg</dialFile>
<dialForegroundID></dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>BaroAltitude</needle1DataObject>
<needle1Factor>10</needle1Factor>
<needle1MaxValue>1120</needle1MaxValue>
@ -656,11 +628,8 @@
<beSmooth>false</beSmooth>
<dialBackgroundID>background</dialBackgroundID>
<dialFile>%%DATAPATH%%dials/hi-contrast/vsi.svg</dialFile>
<dialForegroundID></dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>VelocityActual</needle1DataObject>
<needle1Factor>0.01</needle1Factor>
<needle1MaxValue>12</needle1MaxValue>
@ -693,9 +662,7 @@
<dialFile>%%DATAPATH%%dials/hi-contrast/compass.svg</dialFile>
<dialForegroundID>foreground</dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>AttitudeActual</needle1DataObject>
<needle1Factor>-1</needle1Factor>
<needle1MaxValue>360</needle1MaxValue>
@ -726,11 +693,8 @@
<beSmooth>false</beSmooth>
<dialBackgroundID>background</dialBackgroundID>
<dialFile>%%DATAPATH%%dials/hi-contrast/speed.svg</dialFile>
<dialForegroundID></dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2></dialNeedleID2>
<dialNeedleID3></dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>GPSPosition</needle1DataObject>
<needle1Factor>3.6</needle1Factor>
<needle1MaxValue>120</needle1MaxValue>
@ -761,11 +725,10 @@
<beSmooth>false</beSmooth>
<dialBackgroundID>background</dialBackgroundID>
<dialFile>%%DATAPATH%%dials/hi-contrast/thermometer.svg</dialFile>
<dialForegroundID></dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle2</dialNeedleID2>
<dialNeedleID3>needle3</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>BaroAltitude</needle1DataObject>
<needle1Factor>1</needle1Factor>
<needle1MaxValue>120</needle1MaxValue>
@ -796,11 +759,10 @@
<beSmooth>false</beSmooth>
<dialBackgroundID>background</dialBackgroundID>
<dialFile>%%DATAPATH%%dials/default/thermometer.svg</dialFile>
<dialForegroundID></dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle2</dialNeedleID2>
<dialNeedleID3>needle3</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>ManualControlCommand</needle1DataObject>
<needle1Factor>1</needle1Factor>
<needle1MaxValue>2000</needle1MaxValue>
@ -831,11 +793,10 @@
<beSmooth>false</beSmooth>
<dialBackgroundID>background</dialBackgroundID>
<dialFile>%%DATAPATH%%dials/default/thermometer.svg</dialFile>
<dialForegroundID></dialForegroundID>
<dialNeedleID1>needle</dialNeedleID1>
<dialNeedleID2>needle2</dialNeedleID2>
<dialNeedleID3>needle3</dialNeedleID3>
<font>Ubuntu,11,-1,5,50,0,0,0,0,0</font>
<font>MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0</font>
<needle1DataObject>BaroAltitude</needle1DataObject>
<needle1Factor>1</needle1Factor>
<needle1MaxValue>120</needle1MaxValue>
@ -916,7 +877,7 @@
<defaultDataBits>3</defaultDataBits>
<defaultFlow>0</defaultFlow>
<defaultParity>0</defaultParity>
<defaultPort>Serial port 0</defaultPort>
<defaultPort>Communications Port (COM1)</defaultPort>
<defaultSpeed>11</defaultSpeed>
<defaultStopBits>0</defaultStopBits>
</data>
@ -931,7 +892,7 @@
<defaultDataBits>3</defaultDataBits>
<defaultFlow>0</defaultFlow>
<defaultParity>0</defaultParity>
<defaultPort>Serial port 0</defaultPort>
<defaultPort>Communications Port (COM1)</defaultPort>
<defaultSpeed>17</defaultSpeed>
<defaultStopBits>0</defaultStopBits>
</data>
@ -948,8 +909,6 @@
<dataPath>\usr\share\games\FlightGear</dataPath>
<hostAddress>127.0.0.1</hostAddress>
<inPort>9009</inPort>
<latitude></latitude>
<longitude></longitude>
<manual>false</manual>
<outPort>9010</outPort>
<remoteHostAddress>127.0.0.1</remoteHostAddress>
@ -967,8 +926,6 @@
<dataPath>\usr\share\games\FlightGear</dataPath>
<hostAddress>127.0.0.3</hostAddress>
<inPort>6756</inPort>
<latitude></latitude>
<longitude></longitude>
<manual>false</manual>
<outPort>49000</outPort>
<remoteHostAddress>127.0.0.1</remoteHostAddress>
@ -977,17 +934,39 @@
</data>
</XPlane__PCT__20HITL>
</HITL>
<ImportExportGadget>
<HITLv2>
<default>
<configInfo>
<locked>false</locked>
<version>1.0.1</version>
<version>0.0.0</version>
</configInfo>
<data>
<iniFile>gcs.ini</iniFile>
<attActCalc>false</attActCalc>
<attActHW>false</attActHW>
<attActSim>true</attActSim>
<attActual>true</attActual>
<attRaw>true</attRaw>
<attRawRate>20</attRawRate>
<gcsReciever>true</gcsReciever>
<gpsPosRate>200</gpsPosRate>
<gpsPosition>true</gpsPosition>
<homeLocRate>0</homeLocRate>
<homeLocation>true</homeLocation>
<hostAddress>127.0.0.1</hostAddress>
<inPort>40100</inPort>
<inputCommand>true</inputCommand>
<manualControl>false</manualControl>
<manualOutput>false</manualOutput>
<outPort>40200</outPort>
<outputRate>20</outputRate>
<remoteAddress>127.0.0.1</remoteAddress>
<simulatorId>ASimRC</simulatorId>
<sonarAltRate>50</sonarAltRate>
<sonarAltitude>false</sonarAltitude>
<sonarMaxAlt>@Variant(AAAAh0CgAAA=)</sonarMaxAlt>
</data>
</default>
</ImportExportGadget>
</HITLv2>
<LineardialGadget>
<Accel__PCT__20Horizontal__PCT__20X>
<configInfo>
@ -1183,17 +1162,17 @@
<decimalPlaces>0</decimalPlaces>
<factor>1</factor>
<font>Andale Mono,12,-1,5,75,0,0,0,0,0</font>
<greenMax>50</greenMax>
<greenMax>90</greenMax>
<greenMin>0</greenMin>
<maxValue>100</maxValue>
<minValue>0</minValue>
<redMax>100</redMax>
<redMin>80</redMin>
<redMin>95</redMin>
<sourceDataObject>SystemStats</sourceDataObject>
<sourceObjectField>CPULoad</sourceObjectField>
<useOpenGLFlag>false</useOpenGLFlag>
<yellowMax>80</yellowMax>
<yellowMin>50</yellowMin>
<yellowMax>95</yellowMax>
<yellowMin>90</yellowMin>
</data>
</Mainboard__PCT__20CPU>
<Pitch__PCT__20Desired>
@ -1439,6 +1418,17 @@
<enableVbo>false</enableVbo>
</data>
</Aeroquad__PCT__20__PCT__2B>
<CopterControl>
<configInfo>
<locked>false</locked>
<version>0.0.0</version>
</configInfo>
<data>
<acFilename>%%DATAPATH%%models/boards/CopterControl/CopterControl.3ds</acFilename>
<bgFilename>%%DATAPATH%%models/backgrounds/default_background.png</bgFilename>
<enableVbo>false</enableVbo>
</data>
</CopterControl>
<Easyquad__PCT__20X>
<configInfo>
<locked>false</locked>
@ -1571,6 +1561,17 @@
<enableVbo>false</enableVbo>
</data>
</Quadcopter>
<Ricoo>
<configInfo>
<locked>false</locked>
<version>0.0.0</version>
</configInfo>
<data>
<acFilename>%%DATAPATH%%models/multi/ricoo/ricoo.3DS</acFilename>
<bgFilename>%%DATAPATH%%models/backgrounds/default_background.png</bgFilename>
<enableVbo>false</enableVbo>
</data>
</Ricoo>
<Scorpion__PCT__20Tricopter>
<configInfo>
<locked>false</locked>
@ -1604,28 +1605,6 @@
<enableVbo>false</enableVbo>
</data>
</Test__PCT__20Quad__PCT__20X>
<Ricoo>
<configInfo>
<locked>false</locked>
<version>0.0.0</version>
</configInfo>
<data>
<acFilename>%%DATAPATH%%models/multi/ricoo/ricoo.3DS</acFilename>
<bgFilename>%%DATAPATH%%models/backgrounds/default_background.png</bgFilename>
<enableVbo>false</enableVbo>
</data>
</Ricoo>
<CopterControl>
<configInfo>
<locked>false</locked>
<version>0.0.0</version>
</configInfo>
<data>
<acFilename>%%DATAPATH%%models/boards/CopterControl/CopterControl.3ds</acFilename>
<bgFilename>%%DATAPATH%%models/backgrounds/default_background.png</bgFilename>
<enableVbo>false</enableVbo>
</data>
</CopterControl>
</ModelViewGadget>
<OPMapGadget>
<Google__PCT__20Sat>
@ -1712,14 +1691,18 @@
</data>
</smooth>
</PFDGadget>
<PipXtreme>
<QmlViewGadget>
<default>
<configInfo>
<locked>false</locked>
<version>0.0.0</version>
</configInfo>
<data>
<dialFile>Unknown</dialFile>
<useOpenGLFlag>true</useOpenGLFlag>
</data>
</default>
</PipXtreme>
</QmlViewGadget>
<ScopeGadget>
<Accel>
<configInfo>
@ -1738,6 +1721,7 @@
<uavField>x</uavField>
<uavObject>Accels</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
@ -1747,6 +1731,7 @@
<uavField>y</uavField>
<uavObject>Accels</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve1>
@ -1756,6 +1741,7 @@
<uavField>z</uavField>
<uavObject>Accels</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve2>
@ -1781,6 +1767,7 @@
<uavField>Channel-4</uavField>
<uavObject>ActuatorCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
@ -1790,6 +1777,7 @@
<uavField>Channel-5</uavField>
<uavObject>ActuatorCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve1>
@ -1799,6 +1787,7 @@
<uavField>Channel-6</uavField>
<uavObject>ActuatorCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve2>
@ -1808,6 +1797,7 @@
<uavField>Channel-7</uavField>
<uavObject>ActuatorCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve3>
@ -1833,6 +1823,7 @@
<uavField>Roll</uavField>
<uavObject>AttitudeActual</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
@ -1842,6 +1833,7 @@
<uavField>Yaw</uavField>
<uavObject>AttitudeActual</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve1>
@ -1851,6 +1843,7 @@
<uavField>Pitch</uavField>
<uavObject>AttitudeActual</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve2>
@ -1876,6 +1869,7 @@
<uavField>Pressure</uavField>
<uavObject>BaroAltitude</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
@ -1901,6 +1895,7 @@
<uavField>Channel-1</uavField>
<uavObject>ManualControlCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
@ -1910,6 +1905,7 @@
<uavField>Channel-4</uavField>
<uavObject>ManualControlCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve1>
@ -1919,6 +1915,7 @@
<uavField>Channel-5</uavField>
<uavObject>ManualControlCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve2>
@ -1928,6 +1925,7 @@
<uavField>Channel-6</uavField>
<uavObject>ManualControlCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve3>
@ -1937,6 +1935,7 @@
<uavField>Channel-7</uavField>
<uavObject>ManualControlCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve4>
@ -1946,6 +1945,7 @@
<uavField>Channel-2</uavField>
<uavObject>ManualControlCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve5>
@ -1955,6 +1955,7 @@
<uavField>Channel-3</uavField>
<uavObject>ManualControlCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve6>
@ -1964,6 +1965,7 @@
<uavField>Channel-0</uavField>
<uavObject>ManualControlCommand</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve7>
@ -1989,6 +1991,7 @@
<uavField>x</uavField>
<uavObject>Accels</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
@ -1998,6 +2001,7 @@
<uavField>y</uavField>
<uavObject>Accels</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve1>
@ -2007,6 +2011,7 @@
<uavField>z</uavField>
<uavObject>Accels</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve2>
@ -2032,6 +2037,7 @@
<uavField>z</uavField>
<uavObject>Gyros</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
@ -2041,6 +2047,7 @@
<uavField>y</uavField>
<uavObject>Gyros</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve1>
@ -2050,6 +2057,7 @@
<uavField>x</uavField>
<uavObject>Gyros</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve2>
@ -2075,6 +2083,7 @@
<uavField>X</uavField>
<uavObject>Magnetometer</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
@ -2084,6 +2093,7 @@
<uavField>Y</uavField>
<uavObject>Magnetometer</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve1>
@ -2093,6 +2103,7 @@
<uavField>Z</uavField>
<uavObject>Magnetometer</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve2>
@ -2118,6 +2129,7 @@
<uavField>StackRemaining-System</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
@ -2127,6 +2139,7 @@
<uavField>StackRemaining-Actuator</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve1>
@ -2136,6 +2149,7 @@
<uavField>StackRemaining-Guidance</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve10>
@ -2145,6 +2159,7 @@
<uavField>StackRemaining-Watchdog</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve11>
@ -2154,6 +2169,7 @@
<uavField>StackRemaining-TelemetryTx</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve2>
@ -2163,6 +2179,7 @@
<uavField>StackRemaining-TelemetryTxPri</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve3>
@ -2172,6 +2189,7 @@
<uavField>StackRemaining-TelemetryRx</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve4>
@ -2181,6 +2199,7 @@
<uavField>StackRemaining-GPS</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve5>
@ -2190,6 +2209,7 @@
<uavField>StackRemaining-ManualControl</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve6>
@ -2199,6 +2219,7 @@
<uavField>StackRemaining-Altitude</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve7>
@ -2208,6 +2229,7 @@
<uavField>StackRemaining-AHRSComms</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve8>
@ -2217,6 +2239,7 @@
<uavField>StackRemaining-Stabilization</uavField>
<uavObject>TaskInfo</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve9>
@ -2242,6 +2265,7 @@
<uavField>TxFailures</uavField>
<uavObject>GCSTelemetryStats</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
@ -2251,6 +2275,7 @@
<uavField>RxFailures</uavField>
<uavObject>GCSTelemetryStats</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve1>
@ -2260,6 +2285,7 @@
<uavField>TxRetries</uavField>
<uavObject>GCSTelemetryStats</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve2>
@ -2285,9 +2311,20 @@
<uavField>FlightTime</uavField>
<uavObject>SystemStats</uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve0>
<plotCurve1>
<color>0</color>
<mathFunction></mathFunction>
<uavField></uavField>
<uavObject></uavObject>
<yMaximum>0</yMaximum>
<yMeanSamples>1</yMeanSamples>
<yMinimum>0</yMinimum>
<yScalePower>0</yScalePower>
</plotCurve1>
<plotCurveCount>2</plotCurveCount>
<plotType>1</plotType>
<refreshInterval>800</refreshInterval>
@ -2417,26 +2454,14 @@
<type>uavGadget</type>
</side0>
<side1>
<side0>
<classId>LineardialGadget</classId>
<gadget>
<activeConfiguration>Mainboard CPU</activeConfiguration>
</gadget>
<type>uavGadget</type>
</side0>
<side1>
<classId>LineardialGadget</classId>
<gadget>
<activeConfiguration>AHRS CPU</activeConfiguration>
</gadget>
<type>uavGadget</type>
</side1>
<splitterOrientation>1</splitterOrientation>
<splitterSizes>@Variant(AAAACQAAAAIAAAACAAAAQAAAAAIAAABA)</splitterSizes>
<type>splitter</type>
<classId>LineardialGadget</classId>
<gadget>
<activeConfiguration>Mainboard CPU</activeConfiguration>
</gadget>
<type>uavGadget</type>
</side1>
<splitterOrientation>1</splitterOrientation>
<splitterSizes>@Variant(AAAACQAAAAIAAAACAAABIwAAAAIAAACN)</splitterSizes>
<splitterSizes>@Variant(AAAACQAAAAIAAAACAAABLwAAAAIAAACB)</splitterSizes>
<type>splitter</type>
</side0>
<side1>
@ -2837,9 +2862,10 @@
<version>UAVGadgetManagerV1</version>
</Mode5>
</UAVGadgetManager>
<ViewGroup_Default>@ByteArray(AAAA/wAAAAD9AAAAAAAABQAAAALCAAAABAAAAAQAAAABAAAACPwAAAAA)</ViewGroup_Default>
<Workspace>
<Icon1>:/core/images/ah.png</Icon1>
<AllowTabBarMovement>false</AllowTabBarMovement>
<Icon1>:\core\images\ah.png</Icon1>
<Icon10>:/core/images/openpilot_logo_64.png</Icon10>
<Icon2>:/core/images/config.png</Icon2>
<Icon3>:/core/images/scopes.png</Icon3>
<Icon4>:/core/images/joystick.png</Icon4>
@ -2848,9 +2874,10 @@
<Icon7>:/core/images/openpilot_logo_64.png</Icon7>
<Icon8>:/core/images/openpilot_logo_64.png</Icon8>
<Icon9>:/core/images/openpilot_logo_64.png</Icon9>
<Icon10>:/core/images/openpilot_logo_64.png</Icon10>
<NumberOfWorkspaces>5</NumberOfWorkspaces>
<TabBarPlacementIndex>1</TabBarPlacementIndex>
<Workspace1>Flight data</Workspace1>
<Workspace10>Workspace10</Workspace10>
<Workspace2>Configuration</Workspace2>
<Workspace3>Scopes</Workspace3>
<Workspace4>HITL</Workspace4>
@ -2859,6 +2886,5 @@
<Workspace7>Workspace7</Workspace7>
<Workspace8>Workspace8</Workspace8>
<Workspace9>Workspace9</Workspace9>
<Workspace10>Workspace10</Workspace10>
</Workspace>
</gcs>

View File

@ -41,7 +41,7 @@ class IConnection;
static const int READ_TIMEOUT = 200;
static const int READ_SIZE = 64;
static const int WRITE_TIMEOUT = 200;
static const int WRITE_TIMEOUT = 1000;
static const int WRITE_SIZE = 64;

View File

@ -0,0 +1,17 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Servo Output: Critical</h1>
<p>
One of the following conditions may be present:
<ul>
<li>System is in failsafe mode.</li>
<li>One or more servos outputs failed to update.</li>
</ul>
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Alarm: OK</h1>
<p>
There are no problems with this alarm.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Attitude: Critical</h1>
<p>
This alarm will remain set until data is received from the accelerometer.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Attitude: Error</h1>
<p>
Failed to get an update from the accelerometer or gyros.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Battery: Critical</h1>
<p>
Battery voltage has fallen below the <b>alarm</b> threshold.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Battery: Error</h1>
<p>
Both battery current and voltage are at or below zero.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Battery: Warning</h1>
<p>
Battery voltage has fallen below the <b>warning</b> threshold.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Boot Fault: Critical</h1>
<p>
System has failed to boot more than three times: system defaults have been set.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>CPU: Critical</h1>
<p>
CPU load has exceeded 95%
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>CPU: Warning</h1>
<p>
CPU load has exceeded 80%
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Event System: Warning</h1>
<p>
There were problems with UAVObject events or callbacks
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Flight Time: Critical</h1>
<p>
Estimated flight time based on battery usage is less than 30s.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Flight Time: Error</h1>
<p>
Estimated flight time cannot be determined as battery voltage and current are at or below 0.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Flight Time: Warning</h1>
<p>
Estimated flight time based on battery usage is less than 60s.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>GPS: Critical</h1>
<p>
The GPS is receiving data but there is no position fix.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>GPS: Error</h1>
<p>
The GPS has timed out; either there is no GPS plugged in, the GPS has locked up or there is some other hardware fault.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>GPS: Warning</h1>
<p>
The GPS has a fix and navigation can be used. However, the position quality is very low (the indication is &lt;7 satellites)
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Guidance: Warning</h1>
<p>
Timed out waiting for an attitude update.
</p>
</body>
</html>

View File

@ -0,0 +1,24 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>RC Input: Critical</h1>
<p>
One of the following conditions may be present:
<ul>
<li>
<p>One or more of the r/c input channel types is not set.</p>
<p>On the GCS configuration page, make sure all inputs have a Type set.</p>
</li>
<li>One or more of the r/c input channel mappings are invalid.</li>
<li>The driver is uninitialized for one or more of the r/c input channels.</li>
<li>Current flight mode is undefined: this indicates a bug in the code.</li>
<li>Current flight mode set to guidance but flight status flight mode is reported as something other than altitude hold.</li>
<li>During update of desired stabilization mode, flight status is reported as something other than stabilized 1, 2 or 3.</li>
</ul>
</p>
</body>
</html>

View File

@ -0,0 +1,17 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>RC Input: Warning</h1>
<p>
One of the following conditions may be present:
<ul>
<li>System is in failsafe mode.</li>
<li>Failed to update one or more of the accessory channels.</li>
</ul>
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Memory: Critical</h1>
<p>
Either the remaining heap space or the IRQ stack has fallen below the <b>critical</b> limit (1000 bytes heap, 80 entries IRQ stack).
</p>
</body>
</html>

View File

@ -0,0 +1,16 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Memory: Warning</h1>
<p>
Either the remaining heap space or the IRQ stack has fallen below the <b>warning</b> limit (4000 bytes heap, 150 entries IRQ stack).
</p>
<p>
<b>Note:</b> if this is an original CC board (not CC3D or Revo), this condition is normal.
</p>
</body>
</html>

View File

@ -0,0 +1,18 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Sensors: Critical</h1>
<p>
One of the following conditions may be present:
<ul>
<li>Either the accelerometer, gyro or magnetometer tests failed.</li>
<li>Timed out waiting for data from the accelerometer or gyro.</li>
</ul>
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Stabilization: Warning</h1>
<p>
Timed out waiting for an attitude update.
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Stack: Critical</h1>
<p>
Stack overflow
</p>
</body>
</html>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Telemetry: Error</h1>
<p>
Telemetry system is disconnected.
</p>
</body>
</html>

View File

@ -1,20 +1,23 @@
TEMPLATE = lib
TARGET = SystemHealthGadget
QT += svg
include(../../openpilotgcsplugin.pri)
include(../../plugins/coreplugin/coreplugin.pri)
include(systemhealth_dependencies.pri)
HEADERS += systemhealthplugin.h
HEADERS += systemhealthgadget.h
HEADERS += systemhealthgadgetwidget.h
HEADERS += systemhealthgadgetfactory.h
HEADERS += systemhealthgadgetconfiguration.h
HEADERS += systemhealthgadgetoptionspage.h
SOURCES += systemhealthplugin.cpp
SOURCES += systemhealthgadget.cpp
SOURCES += systemhealthgadgetfactory.cpp
SOURCES += systemhealthgadgetwidget.cpp
SOURCES += systemhealthgadgetconfiguration.cpp
SOURCES += systemhealthgadgetoptionspage.cpp
OTHER_FILES += SystemHealthGadget.pluginspec
FORMS += systemhealthgadgetoptionspage.ui
TEMPLATE = lib
TARGET = SystemHealthGadget
QT += svg
include(../../openpilotgcsplugin.pri)
include(../../plugins/coreplugin/coreplugin.pri)
include(systemhealth_dependencies.pri)
HEADERS += systemhealthplugin.h
HEADERS += systemhealthgadget.h
HEADERS += systemhealthgadgetwidget.h
HEADERS += systemhealthgadgetfactory.h
HEADERS += systemhealthgadgetconfiguration.h
HEADERS += systemhealthgadgetoptionspage.h
SOURCES += systemhealthplugin.cpp
SOURCES += systemhealthgadget.cpp
SOURCES += systemhealthgadgetfactory.cpp
SOURCES += systemhealthgadgetwidget.cpp
SOURCES += systemhealthgadgetconfiguration.cpp
SOURCES += systemhealthgadgetoptionspage.cpp
OTHER_FILES += SystemHealthGadget.pluginspec
FORMS += systemhealthgadgetoptionspage.ui
RESOURCES += \
systemhealth.qrc

View File

@ -0,0 +1,30 @@
<RCC>
<qresource prefix="/systemhealth">
<file>html/Actuator-Critical.html</file>
<file>html/ManualControl-Critical.html</file>
<file>html/ManualControl-Warning.html</file>
<file>html/CPU-Critical.html</file>
<file>html/CPU-Warning.html</file>
<file>html/FlightTime-Error.html</file>
<file>html/Battery-Warning.html</file>
<file>html/BootFault-Critical.html</file>
<file>html/EventSystem-Warning.html</file>
<file>html/FlightTime-Critical.html</file>
<file>html/AlarmOK.html</file>
<file>html/Attitude-Critical.html</file>
<file>html/Attitude-Error.html</file>
<file>html/Battery-Critical.html</file>
<file>html/Battery-Error.html</file>
<file>html/FlightTime-Warning.html</file>
<file>html/GPS-Critical.html</file>
<file>html/GPS-Error.html</file>
<file>html/GPS-Warning.html</file>
<file>html/Guidance-Warning.html</file>
<file>html/Memory-Critical.html</file>
<file>html/Memory-Warning.html</file>
<file>html/Sensors-Critical.html</file>
<file>html/Stabilization-Warning.html</file>
<file>html/Stack-Critical.html</file>
<file>html/Telemetry-Error.html</file>
</qresource>
</RCC>

View File

@ -2,7 +2,7 @@
******************************************************************************
*
* @file systemhealthgadgetwidget.cpp
* @author Edouard Lafargue Copyright (C) 2010.
* @author OpenPilot Team & Edouard Lafargue Copyright (C) 2012.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup SystemHealthPlugin System Health Plugin
@ -32,6 +32,7 @@
#include "systemalarms.h"
#include <QDebug>
#include <QWhatsThis>
/*
* Initialize the widget
@ -62,6 +63,7 @@ SystemHealthGadgetWidget::SystemHealthGadgetWidget(QWidget *parent) : QGraphicsV
connect(telMngr, SIGNAL(connected()), this, SLOT(onAutopilotConnect()));
connect(telMngr, SIGNAL(disconnected()), this, SLOT(onAutopilotDisconnect()));
setToolTip(tr("Displays flight system errors. Click on an alarm for more information."));
}
/**
@ -195,3 +197,73 @@ void SystemHealthGadgetWidget::resizeEvent(QResizeEvent *event)
Q_UNUSED(event);
fitInView(background, Qt::KeepAspectRatio );
}
void SystemHealthGadgetWidget::mousePressEvent ( QMouseEvent * event )
{
QGraphicsScene *graphicsScene = scene();
if(graphicsScene){
QPoint point = event->pos();
bool haveAlarmItem = false;
foreach(QGraphicsItem* sceneItem, items(point)){
QGraphicsSvgItem *clickedItem = dynamic_cast<QGraphicsSvgItem*>(sceneItem);
if(clickedItem){
if((clickedItem != foreground) && (clickedItem != background)){
// Clicked an actual alarm. We need to set haveAlarmItem to true
// as two of the items in this loop will always be foreground and
// background. Without this flag, at some point in the loop we
// would always call showAllAlarmDescriptions...
haveAlarmItem = true;
QString itemId = clickedItem->elementId();
if(itemId.contains("OK")){
// No alarm set for this item
showAlarmDescriptionForItemId("AlarmOK", event->globalPos());
}else{
// Warning, error or critical alarm
showAlarmDescriptionForItemId(itemId, event->globalPos());
}
}else if(!haveAlarmItem){
// Clicked foreground or background
showAllAlarmDescriptions(event->globalPos());
}
}
}
}
}
void SystemHealthGadgetWidget::showAlarmDescriptionForItemId(const QString itemId, const QPoint& location){
QFile alarmDescription(":/systemhealth/html/" + itemId + ".html");
if(alarmDescription.open(QIODevice::ReadOnly | QIODevice::Text)){
QTextStream textStream(&alarmDescription);
QWhatsThis::showText(location, textStream.readAll());
}
}
void SystemHealthGadgetWidget::showAllAlarmDescriptions(const QPoint& location){
QGraphicsScene *graphicsScene = scene();
if(graphicsScene){
QString alarmsText;
// Loop through all items in the scene looking for svg items that represent alarms
foreach(QGraphicsItem* curItem, graphicsScene->items()){
QGraphicsSvgItem* curSvgItem = dynamic_cast<QGraphicsSvgItem*>(curItem);
if(curSvgItem && (curSvgItem != foreground) && (curSvgItem != background)){
QString elementId = curSvgItem->elementId();
if(!elementId.contains("OK")){
// Found an alarm, get its corresponding alarm html file contents
// and append to the cumulative string for all alarms.
QFile alarmDescription(":/systemhealth/html/" + elementId + ".html");
if(alarmDescription.open(QIODevice::ReadOnly | QIODevice::Text)){
QTextStream textStream(&alarmDescription);
alarmsText.append(textStream.readAll());
}
}
}
}
// Show alarms text if we have any
if(alarmsText.length() > 0){
QWhatsThis::showText(location, alarmsText);
}
}
}

View File

@ -2,7 +2,7 @@
******************************************************************************
*
* @file systemhealthgadgetwidget.h
* @author Edouard Lafargue Copyright (C) 2010.
* @author OpenPilot Team & Edouard Lafargue Copyright (C) 2012.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup SystemHealthPlugin System Health Plugin
@ -34,6 +34,7 @@
#include <QGraphicsView>
#include <QtSvg/QSvgRenderer>
#include <QtSvg/QGraphicsSvgItem>
#include <QMouseEvent>
#include <QFile>
#include <QTimer>
@ -52,6 +53,7 @@ public:
protected:
void paintEvent(QPaintEvent *event);
void resizeEvent(QResizeEvent *event);
void mousePressEvent ( QMouseEvent * event );
private slots:
void updateAlarms(UAVObject *systemAlarm); // Called by the systemalarms UAVObject
@ -67,5 +69,8 @@ private:
// Simple flag to skip rendering if the
bool fgenabled; // layer does not exist.
void showAlarmDescriptionForItemId(const QString itemId, const QPoint& location);
void showAllAlarmDescriptions(const QPoint &location);
};
#endif /* SYSTEMHEALTHGADGETWIDGET_H_ */

View File

@ -129,21 +129,23 @@ void TreeItem::appendChild(TreeItem *child)
child->setParentTree(this);
}
void TreeItem::insert(int index, TreeItem *child)
void TreeItem::insertChild(TreeItem *child)
{
int index = nameIndex(child->data(0).toString());
m_children.insert(index, child);
child->setParentTree(this);
}
TreeItem *TreeItem::child(int row)
TreeItem *TreeItem::getChild(int index)
{
return m_children.value(row);
return m_children.value(index);
}
int TreeItem::childCount() const
{
return m_children.count();
}
int TreeItem::row() const
{
if (m_parent)
@ -224,3 +226,8 @@ QTime TreeItem::getHiglightExpires()
{
return m_highlightExpires;
}
QList<MetaObjectTreeItem *> TopTreeItem::getMetaObjectItems()
{
return m_metaObjectTreeItemsPerObjectIds.values();
}

View File

@ -33,6 +33,7 @@
#include "uavobjectfield.h"
#include <QtCore/QList>
#include <QtCore/QLinkedList>
#include <QtCore/QMap>
#include <QtCore/QVariant>
#include <QtCore/QTime>
#include <QtCore/QTimer>
@ -94,9 +95,9 @@ public:
virtual ~TreeItem();
void appendChild(TreeItem *child);
void insert(int index, TreeItem *child);
void insertChild(TreeItem *child);
TreeItem *child(int row);
TreeItem *getChild(int index);
inline QList<TreeItem*> treeChildren() const { return m_children; }
int childCount() const;
int columnCount() const;
@ -131,6 +132,24 @@ public:
virtual void removeHighlight();
int nameIndex(QString name) {
for (int i = 0; i < childCount(); ++i) {
if (name < getChild(i)->data(0).toString())
return i;
}
return childCount();
}
TreeItem* findChildByName(QString name)
{
foreach (TreeItem* child, m_children) {
if (name == child->data(0).toString()) {
return child;
}
}
return 0;
}
signals:
void updateHighlight(TreeItem*);
@ -152,6 +171,9 @@ private:
static int m_highlightTimeMs;
};
class DataObjectTreeItem;
class MetaObjectTreeItem;
class TopTreeItem : public TreeItem
{
Q_OBJECT
@ -159,19 +181,27 @@ public:
TopTreeItem(const QList<QVariant> &data, TreeItem *parent = 0) : TreeItem(data, parent) { }
TopTreeItem(const QVariant &data, TreeItem *parent = 0) : TreeItem(data, parent) { }
QList<quint32> objIds() { return m_objIds; }
void addObjId(quint32 objId) { m_objIds.append(objId); }
void insertObjId(int index, quint32 objId) { m_objIds.insert(index, objId); }
int nameIndex(QString name) {
for (int i = 0; i < childCount(); ++i) {
if (name < child(i)->data(0).toString())
return i;
}
return childCount();
void addObjectTreeItem(quint32 objectId, DataObjectTreeItem* oti) {
m_objectTreeItemsPerObjectIds[objectId] = oti;
}
DataObjectTreeItem* findDataObjectTreeItemByObjectId(quint32 objectId) {
return m_objectTreeItemsPerObjectIds.contains(objectId) ? m_objectTreeItemsPerObjectIds[objectId] : 0;
}
void addMetaObjectTreeItem(quint32 objectId, MetaObjectTreeItem* oti) {
m_metaObjectTreeItemsPerObjectIds[objectId] = oti;
}
MetaObjectTreeItem* findMetaObjectTreeItemByObjectId(quint32 objectId) {
return m_metaObjectTreeItemsPerObjectIds.contains(objectId) ? m_metaObjectTreeItemsPerObjectIds[objectId] : 0;
}
QList<MetaObjectTreeItem*> getMetaObjectItems();
private:
QList<quint32> m_objIds;
QMap<quint32, DataObjectTreeItem*> m_objectTreeItemsPerObjectIds;
QMap<quint32, MetaObjectTreeItem*> m_metaObjectTreeItemsPerObjectIds;
};
class ObjectTreeItem : public TreeItem

View File

@ -45,5 +45,6 @@ void UAVObjectBrowser::loadConfiguration(IUAVGadgetConfiguration* config)
m_widget->setRecentlyUpdatedColor(m->recentlyUpdatedColor());
m_widget->setManuallyChangedColor(m->manuallyChangedColor());
m_widget->setRecentlyUpdatedTimeout(m->recentlyUpdatedTimeout());
m_widget->setOnlyHilightChangedValues(m->onlyHighlightChangedValues());
}

View File

@ -202,6 +202,19 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="categorizeCheckbox">
<property name="toolTip">
<string>Select to sort objects in to categories.</string>
</property>
<property name="text">
<string>Categorize Objects</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">

View File

@ -31,17 +31,20 @@ UAVObjectBrowserConfiguration::UAVObjectBrowserConfiguration(QString classId, QS
IUAVGadgetConfiguration(classId, parent),
m_recentlyUpdatedColor(QColor(255, 230, 230)),
m_manuallyChangedColor(QColor(230, 230, 255)),
m_recentlyUpdatedTimeout(500)
m_recentlyUpdatedTimeout(500),
m_onlyHilightChangedValues(false)
{
//if a saved configuration exists load it
if(qSettings != 0) {
QColor recent = qSettings->value("recentlyUpdatedColor").value<QColor>();
QColor manual = qSettings->value("manuallyChangedColor").value<QColor>();
int timeout = qSettings->value("recentlyUpdatedTimeout").toInt();
bool hilight = qSettings->value("onlyHilightChangedValues").toBool();
m_recentlyUpdatedColor = recent;
m_manuallyChangedColor = manual;
m_recentlyUpdatedTimeout = timeout;
m_onlyHilightChangedValues = hilight;
}
}
@ -51,6 +54,7 @@ IUAVGadgetConfiguration *UAVObjectBrowserConfiguration::clone()
m->m_recentlyUpdatedColor = m_recentlyUpdatedColor;
m->m_manuallyChangedColor = m_manuallyChangedColor;
m->m_recentlyUpdatedTimeout = m_recentlyUpdatedTimeout;
m->m_onlyHilightChangedValues = m_onlyHilightChangedValues;
return m;
}
@ -62,4 +66,5 @@ void UAVObjectBrowserConfiguration::saveConfig(QSettings* qSettings) const {
qSettings->setValue("recentlyUpdatedColor", m_recentlyUpdatedColor);
qSettings->setValue("manuallyChangedColor", m_manuallyChangedColor);
qSettings->setValue("recentlyUpdatedTimeout", m_recentlyUpdatedTimeout);
qSettings->setValue("onlyHilightChangedValues", m_onlyHilightChangedValues);
}

View File

@ -39,6 +39,7 @@ Q_OBJECT
Q_PROPERTY(QColor m_recentlyUpdatedColor READ recentlyUpdatedColor WRITE setRecentlyUpdatedColor)
Q_PROPERTY(QColor m_manuallyChangedColor READ manuallyChangedColor WRITE setManuallyChangedColor)
Q_PROPERTY(int m_recentlyUpdatedTimeout READ recentlyUpdatedTimeout WRITE setRecentlyUpdatedTimeout)
Q_PROPERTY(bool m_onlyHilightChangedValues READ onlyHighlightChangedValues WRITE setOnlyHighlightChangedValues)
public:
explicit UAVObjectBrowserConfiguration(QString classId, QSettings* qSettings = 0, QObject *parent = 0);
@ -48,6 +49,7 @@ public:
QColor recentlyUpdatedColor() const { return m_recentlyUpdatedColor; }
QColor manuallyChangedColor() const { return m_manuallyChangedColor; }
int recentlyUpdatedTimeout() const { return m_recentlyUpdatedTimeout; }
bool onlyHighlightChangedValues() const {return m_onlyHilightChangedValues;}
signals:
@ -55,11 +57,13 @@ public slots:
void setRecentlyUpdatedColor(QColor color) { m_recentlyUpdatedColor = color; }
void setManuallyChangedColor(QColor color) { m_manuallyChangedColor = color; }
void setRecentlyUpdatedTimeout(int timeout) { m_recentlyUpdatedTimeout = timeout; }
void setOnlyHighlightChangedValues(bool hilight) { m_onlyHilightChangedValues = hilight; }
private:
QColor m_recentlyUpdatedColor;
QColor m_manuallyChangedColor;
int m_recentlyUpdatedTimeout;
bool m_onlyHilightChangedValues;
};
#endif // UAVOBJECTBROWSERCONFIGURATION_H

View File

@ -52,6 +52,7 @@ QWidget *UAVObjectBrowserOptionsPage::createPage(QWidget *parent)
m_page->recentlyUpdatedButton->setColor(m_config->recentlyUpdatedColor());
m_page->manuallyChangedButton->setColor(m_config->manuallyChangedColor());
m_page->recentlyUpdatedTimeoutSpinBox->setValue(m_config->recentlyUpdatedTimeout());
m_page->hilightBox->setChecked(m_config->onlyHighlightChangedValues());
return w;
@ -62,6 +63,7 @@ void UAVObjectBrowserOptionsPage::apply()
m_config->setRecentlyUpdatedColor(m_page->recentlyUpdatedButton->color());
m_config->setManuallyChangedColor(m_page->manuallyChangedButton->color());
m_config->setRecentlyUpdatedTimeout(m_page->recentlyUpdatedTimeoutSpinBox->value());
m_config->setOnlyHighlightChangedValues(m_page->hilightBox->isChecked());
}
void UAVObjectBrowserOptionsPage::finish()

View File

@ -48,7 +48,7 @@
</property>
</spacer>
</item>
<item row="4" column="3">
<item row="5" column="3">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -115,6 +115,13 @@
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="hilightBox">
<property name="text">
<string>Only hilight nodes when value actually changes</string>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>

View File

@ -54,6 +54,7 @@ UAVObjectBrowserWidget::UAVObjectBrowserWidget(QWidget *parent) : QWidget(parent
showMetaData(m_browser->metaCheckBox->isChecked());
connect(m_browser->treeView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(currentChanged(QModelIndex,QModelIndex)));
connect(m_browser->metaCheckBox, SIGNAL(toggled(bool)), this, SLOT(showMetaData(bool)));
connect(m_browser->categorizeCheckbox, SIGNAL(toggled(bool)), this, SLOT(categorize(bool)));
connect(m_browser->saveSDButton, SIGNAL(clicked()), this, SLOT(saveObject()));
connect(m_browser->readSDButton, SIGNAL(clicked()), this, SLOT(loadObject()));
connect(m_browser->eraseSDButton, SIGNAL(clicked()), this, SLOT(eraseObject()));
@ -69,16 +70,32 @@ UAVObjectBrowserWidget::~UAVObjectBrowserWidget()
void UAVObjectBrowserWidget::showMetaData(bool show)
{
int topRowCount = m_model->rowCount(QModelIndex());
for (int i = 0; i < topRowCount; ++i) {
QModelIndex index = m_model->index(i, 0, QModelIndex());
int subRowCount = m_model->rowCount(index);
for (int j = 0; j < subRowCount; ++j) {
m_browser->treeView->setRowHidden(0, index.child(j,0), !show);
}
QList<QModelIndex> metaIndexes = m_model->getMetaDataIndexes();
foreach(QModelIndex index , metaIndexes)
{
m_browser->treeView->setRowHidden(index.row(), index.parent(), !show);
}
}
void UAVObjectBrowserWidget::categorize(bool categorize)
{
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
Q_ASSERT(pm);
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
Q_ASSERT(objManager);
UAVObjectTreeModel* tmpModel = m_model;
m_model = new UAVObjectTreeModel(0, categorize);
m_model->setRecentlyUpdatedColor(m_recentlyUpdatedColor);
m_model->setManuallyChangedColor(m_manuallyChangedColor);
m_model->setRecentlyUpdatedTimeout(m_recentlyUpdatedTimeout);
m_model->setOnlyHilightChangedValues(m_onlyHilightChangedValues);
m_browser->treeView->setModel(m_model);
showMetaData(m_browser->metaCheckBox->isChecked());
delete tmpModel;
}
void UAVObjectBrowserWidget::sendUpdate()
{
ObjectTreeItem *objItem = findCurrentObjectTreeItem();

View File

@ -45,12 +45,15 @@ class UAVObjectBrowserWidget : public QWidget
public:
UAVObjectBrowserWidget(QWidget *parent = 0);
~UAVObjectBrowserWidget();
void setRecentlyUpdatedColor(QColor color) { m_model->setRecentlyUpdatedColor(color); }
void setManuallyChangedColor(QColor color) { m_model->setManuallyChangedColor(color); }
void setRecentlyUpdatedTimeout(int timeout) { m_model->setRecentlyUpdatedTimeout(timeout); }
void setRecentlyUpdatedColor(QColor color) { m_recentlyUpdatedColor = color; m_model->setRecentlyUpdatedColor(color); }
void setManuallyChangedColor(QColor color) { m_manuallyChangedColor = color; m_model->setManuallyChangedColor(color); }
void setRecentlyUpdatedTimeout(int timeout) { m_recentlyUpdatedTimeout = timeout; m_model->setRecentlyUpdatedTimeout(timeout); }
void setOnlyHilightChangedValues(bool hilight) { m_onlyHilightChangedValues = hilight; m_model->setOnlyHilightChangedValues(hilight); }
public slots:
void showMetaData(bool show);
void categorize(bool categorize);
private slots:
void sendUpdate();
@ -66,6 +69,11 @@ private:
Ui_UAVObjectBrowser *m_browser;
UAVObjectTreeModel *m_model;
int m_recentlyUpdatedTimeout;
QColor m_recentlyUpdatedColor;
QColor m_manuallyChangedColor;
bool m_onlyHilightChangedValues;
void updateObjectPersistance(ObjectPersistence::OperationOptions op, UAVObject *obj);
void enableSendRequest(bool enable);
ObjectTreeItem *findCurrentObjectTreeItem();

View File

@ -38,7 +38,7 @@
#include <QtCore/QSignalMapper>
#include <QtCore/QDebug>
UAVObjectTreeModel::UAVObjectTreeModel(QObject *parent) :
UAVObjectTreeModel::UAVObjectTreeModel(QObject *parent, bool categorize) :
QAbstractItemModel(parent),
m_recentlyUpdatedTimeout(500), // ms
m_recentlyUpdatedColor(QColor(255, 230, 230)),
@ -53,7 +53,7 @@ UAVObjectTreeModel::UAVObjectTreeModel(QObject *parent) :
connect(objManager, SIGNAL(newInstance(UAVObject*)), this, SLOT(newObject(UAVObject*)));
TreeItem::setHighlightTime(m_recentlyUpdatedTimeout);
setupModelData(objManager);
setupModelData(objManager, categorize);
}
UAVObjectTreeModel::~UAVObjectTreeModel()
@ -62,7 +62,7 @@ UAVObjectTreeModel::~UAVObjectTreeModel()
delete m_rootItem;
}
void UAVObjectTreeModel::setupModelData(UAVObjectManager *objManager)
void UAVObjectTreeModel::setupModelData(UAVObjectManager *objManager, bool categorize)
{
// root
QList<QVariant> rootData;
@ -82,7 +82,7 @@ void UAVObjectTreeModel::setupModelData(UAVObjectManager *objManager)
QList< QList<UAVDataObject*> > objList = objManager->getDataObjects();
foreach (QList<UAVDataObject*> list, objList) {
foreach (UAVDataObject* obj, list) {
addDataObject(obj);
addDataObject(obj, categorize);
}
}
}
@ -90,33 +90,62 @@ void UAVObjectTreeModel::setupModelData(UAVObjectManager *objManager)
void UAVObjectTreeModel::newObject(UAVObject *obj)
{
UAVDataObject *dobj = qobject_cast<UAVDataObject*>(obj);
if (dobj)
if (dobj) {
addDataObject(dobj);
}
void UAVObjectTreeModel::addDataObject(UAVDataObject *obj)
{
TopTreeItem *root = obj->isSettings() ? m_settingsTree : m_nonSettingsTree;
if (root->objIds().contains(obj->getObjID())) {
int index = root->objIds().indexOf(obj->getObjID());
addInstance(obj, root->child(index));
} else {
DataObjectTreeItem *data = new DataObjectTreeItem(obj->getName() + " (" + QString::number(obj->getNumBytes()) + " bytes)");
data->setHighlightManager(m_highlightManager);
connect(data, SIGNAL(updateHighlight(TreeItem*)), this, SLOT(updateHighlight(TreeItem*)));
int index = root->nameIndex(obj->getName());
root->insert(index, data);
root->insertObjId(index, obj->getObjID());
UAVMetaObject *meta = obj->getMetaObject();
addMetaObject(meta, data);
addInstance(obj, data);
}
}
void UAVObjectTreeModel::addMetaObject(UAVMetaObject *obj, TreeItem *parent)
void UAVObjectTreeModel::addDataObject(UAVDataObject *obj, bool categorize)
{
TopTreeItem *root = obj->isSettings() ? m_settingsTree : m_nonSettingsTree;
TreeItem* parent = root;
if(categorize && obj->getCategory() != 0 && !obj->getCategory().isEmpty()) {
QStringList categoryPath = obj->getCategory().split('/');
parent = createCategoryItems(categoryPath, root);
}
ObjectTreeItem* existing = root->findDataObjectTreeItemByObjectId(obj->getObjID());
if (existing) {
addInstance(obj, existing);
} else {
DataObjectTreeItem *dataTreeItem = new DataObjectTreeItem(obj->getName() + " (" + QString::number(obj->getNumBytes()) + " bytes)");
dataTreeItem->setHighlightManager(m_highlightManager);
connect(dataTreeItem, SIGNAL(updateHighlight(TreeItem*)), this, SLOT(updateHighlight(TreeItem*)));
parent->insertChild(dataTreeItem);
root->addObjectTreeItem(obj->getObjID(), dataTreeItem);
UAVMetaObject *meta = obj->getMetaObject();
MetaObjectTreeItem* metaTreeItem = addMetaObject(meta, dataTreeItem);
root->addMetaObjectTreeItem(meta->getObjID(), metaTreeItem);
addInstance(obj, dataTreeItem);
}
}
TreeItem* UAVObjectTreeModel::createCategoryItems(QStringList categoryPath, TreeItem* root)
{
TreeItem* parent = root;
foreach(QString category, categoryPath) {
TreeItem* existing = parent->findChildByName(category);
if(!existing) {
TreeItem* categoryItem = new TreeItem(category);
connect(categoryItem, SIGNAL(updateHighlight(TreeItem*)), this, SLOT(updateHighlight(TreeItem*)));
categoryItem->setHighlightManager(m_highlightManager);
parent->insertChild(categoryItem);
parent = categoryItem;
}
else {
parent = existing;
}
}
return parent;
}
MetaObjectTreeItem* UAVObjectTreeModel::addMetaObject(UAVMetaObject *obj, TreeItem *parent)
{
connect(obj, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(highlightUpdatedObject(UAVObject*)));
MetaObjectTreeItem *meta = new MetaObjectTreeItem(obj, tr("Meta Data"));
meta->setHighlightManager(m_highlightManager);
connect(meta, SIGNAL(updateHighlight(TreeItem*)), this, SLOT(updateHighlight(TreeItem*)));
foreach (UAVObjectField *field, obj->getFields()) {
@ -127,6 +156,7 @@ void UAVObjectTreeModel::addMetaObject(UAVMetaObject *obj, TreeItem *parent)
}
}
parent->appendChild(meta);
return meta;
}
void UAVObjectTreeModel::addInstance(UAVObject *obj, TreeItem *parent)
@ -153,7 +183,6 @@ void UAVObjectTreeModel::addInstance(UAVObject *obj, TreeItem *parent)
}
}
void UAVObjectTreeModel::addArrayField(UAVObjectField *field, TreeItem *parent)
{
TreeItem *item = new ArrayFieldTreeItem(field->getName());
@ -221,7 +250,7 @@ QModelIndex UAVObjectTreeModel::index(int row, int column, const QModelIndex &pa
else
parentItem = static_cast<TreeItem*>(parent.internalPointer());
TreeItem *childItem = parentItem->child(row);
TreeItem *childItem = parentItem->getChild(row);
if (childItem)
return createIndex(row, column, childItem);
else
@ -281,15 +310,31 @@ int UAVObjectTreeModel::columnCount(const QModelIndex &parent) const
return m_rootItem->columnCount();
}
QList<QModelIndex> UAVObjectTreeModel::getMetaDataIndexes()
{
QList<QModelIndex> metaIndexes;
foreach(MetaObjectTreeItem *metaItem , m_settingsTree->getMetaObjectItems())
{
metaIndexes.append(index(metaItem));
}
foreach(MetaObjectTreeItem *metaItem , m_nonSettingsTree->getMetaObjectItems())
{
metaIndexes.append(index(metaItem));
}
return metaIndexes;
}
QVariant UAVObjectTreeModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
return QVariant();
if (index.column() == TreeItem::dataColumn && role == Qt::EditRole) {
TreeItem *item = static_cast<TreeItem*>(index.internalPointer());
return item->data(index.column());
}
// if (role == Qt::DecorationRole)
// return QIcon(":/core/images/openpilot_logo_128.png");
@ -301,16 +346,17 @@ QVariant UAVObjectTreeModel::data(const QModelIndex &index, int role) const
TreeItem *item = static_cast<TreeItem*>(index.internalPointer());
if (index.column() == 0 && role == Qt::BackgroundRole) {
ObjectTreeItem *objItem = dynamic_cast<ObjectTreeItem*>(item);
if (objItem && objItem->highlighted())
if (!dynamic_cast<TopTreeItem*>(item) && item->highlighted())
return QVariant(m_recentlyUpdatedColor);
}
if (index.column() == TreeItem::dataColumn && role == Qt::BackgroundRole) {
FieldTreeItem *fieldItem = dynamic_cast<FieldTreeItem*>(item);
if (fieldItem && fieldItem->highlighted())
return QVariant(m_recentlyUpdatedColor);
if (fieldItem && fieldItem->changed())
return QVariant(m_manuallyChangedColor);
return QVariant(m_manuallyChangedColor);
}
if (role != Qt::DisplayRole)
@ -364,58 +410,42 @@ void UAVObjectTreeModel::highlightUpdatedObject(UAVObject *obj)
Q_ASSERT(obj);
ObjectTreeItem *item = findObjectTreeItem(obj);
Q_ASSERT(item);
if(!m_onlyHilightChangedValues){
item->setHighlight(true);
}
item->update();
QModelIndex itemIndex = index(item);
Q_ASSERT(itemIndex != QModelIndex());
emit dataChanged(itemIndex, itemIndex);
if(!m_onlyHilightChangedValues){
QModelIndex itemIndex = index(item);
Q_ASSERT(itemIndex != QModelIndex());
emit dataChanged(itemIndex, itemIndex);
}
}
ObjectTreeItem *UAVObjectTreeModel::findObjectTreeItem(UAVObject *object)
{
UAVDataObject *dobj = qobject_cast<UAVDataObject*>(object);
UAVMetaObject *mobj = qobject_cast<UAVMetaObject*>(object);
Q_ASSERT(dobj || mobj);
if (dobj) {
return findDataObjectTreeItem(dobj);
UAVDataObject *dataObject = qobject_cast<UAVDataObject*>(object);
UAVMetaObject *metaObject = qobject_cast<UAVMetaObject*>(object);
Q_ASSERT(dataObject || metaObject);
if (dataObject) {
return findDataObjectTreeItem(dataObject);
} else {
dobj = qobject_cast<UAVDataObject*>(mobj->getParentObject());
Q_ASSERT(dobj);
ObjectTreeItem *dItem = findDataObjectTreeItem(dobj);
Q_ASSERT(dItem);
Q_ASSERT(dItem->object());
if (!dItem->object()->isSingleInstance())
dItem = dynamic_cast<ObjectTreeItem*>(dItem->parent());
foreach (TreeItem *child, dItem->treeChildren()) {
MetaObjectTreeItem *mItem = dynamic_cast<MetaObjectTreeItem*>(child);
if (mItem && mItem->object()) {
Q_ASSERT(mItem->object() == mobj);
return mItem;
}
}
return findMetaObjectTreeItem(metaObject);
}
return 0;
}
DataObjectTreeItem *UAVObjectTreeModel::findDataObjectTreeItem(UAVDataObject *object)
DataObjectTreeItem* UAVObjectTreeModel::findDataObjectTreeItem(UAVDataObject *obj)
{
Q_ASSERT(object);
TopTreeItem *root = object->isSettings() ? m_settingsTree : m_nonSettingsTree;
foreach (TreeItem *child, root->treeChildren()) {
DataObjectTreeItem *dItem = dynamic_cast<DataObjectTreeItem*>(child);
if (dItem && dItem->object() && dItem->object()->isSingleInstance()) {
if(dItem->object() == object) {
return dItem;
}
} else {
foreach (TreeItem *c, dItem->treeChildren()) {
DataObjectTreeItem *d = dynamic_cast<DataObjectTreeItem*>(c);
if (d && d->object() == object)
return d;
}
}
}
return 0;
TopTreeItem *root = obj->isSettings() ? m_settingsTree : m_nonSettingsTree;
return root->findDataObjectTreeItemByObjectId(obj->getObjID());
}
MetaObjectTreeItem* UAVObjectTreeModel::findMetaObjectTreeItem(UAVMetaObject *obj)
{
UAVDataObject *dataObject = qobject_cast<UAVDataObject*>(obj->getParentObject());
Q_ASSERT(dataObject);
TopTreeItem *root = dataObject->isSettings() ? m_settingsTree : m_nonSettingsTree;
return root->findMetaObjectTreeItemByObjectId(obj->getObjID());
}
void UAVObjectTreeModel::updateHighlight(TreeItem *item)

View File

@ -31,6 +31,7 @@
#include "treeitem.h"
#include <QAbstractItemModel>
#include <QtCore/QMap>
#include <QtCore/QList>
#include <QtGui/QColor>
class TopTreeItem;
@ -48,7 +49,7 @@ class UAVObjectTreeModel : public QAbstractItemModel
{
Q_OBJECT
public:
explicit UAVObjectTreeModel(QObject *parent = 0);
explicit UAVObjectTreeModel(QObject *parent = 0, bool categorize=true);
~UAVObjectTreeModel();
QVariant data(const QModelIndex &index, int role) const;
@ -68,6 +69,9 @@ public:
m_recentlyUpdatedTimeout = timeout;
TreeItem::setHighlightTime(timeout);
}
void setOnlyHilightChangedValues(bool hilight) {m_onlyHilightChangedValues = hilight; }
QList<QModelIndex> getMetaDataIndexes();
signals:
@ -79,17 +83,20 @@ private slots:
void updateHighlight(TreeItem*);
private:
void setupModelData(UAVObjectManager *objManager, bool categorize = true);
QModelIndex index(TreeItem *item);
void addDataObject(UAVDataObject *obj);
void addMetaObject(UAVMetaObject *obj, TreeItem *parent);
void addDataObject(UAVDataObject *obj, bool categorize = true);
MetaObjectTreeItem *addMetaObject(UAVMetaObject *obj, TreeItem *parent);
void addArrayField(UAVObjectField *field, TreeItem *parent);
void addSingleField(int index, UAVObjectField *field, TreeItem *parent);
void addInstance(UAVObject *obj, TreeItem *parent);
TreeItem *createCategoryItems(QStringList categoryPath, TreeItem *root);
QString updateMode(quint8 updateMode);
void setupModelData(UAVObjectManager *objManager);
ObjectTreeItem *findObjectTreeItem(UAVObject *obj);
DataObjectTreeItem *findDataObjectTreeItem(UAVDataObject *obj);
MetaObjectTreeItem *findMetaObjectTreeItem(UAVMetaObject *obj);
TreeItem *m_rootItem;
TopTreeItem *m_settingsTree;
@ -97,6 +104,7 @@ private:
int m_recentlyUpdatedTimeout;
QColor m_recentlyUpdatedColor;
QColor m_manuallyChangedColor;
bool m_onlyHilightChangedValues;
// Highlight manager to handle highlighting of tree items.
HighLightManager *m_highlightManager;

View File

@ -31,7 +31,7 @@
/**
* Constructor
*/
UAVMetaObject::UAVMetaObject(quint32 objID, const QString& name, UAVObject* parent):
UAVMetaObject::UAVMetaObject(quint32 objID, const QString& name, UAVObject *parent):
UAVObject(objID, true, name)
{
this->parent = parent;

View File

@ -145,6 +145,22 @@ void UAVObject::setDescription(const QString& description)
this->description = description;
}
/**
* Get the category of the object
*/
QString UAVObject::getCategory()
{
return category;
}
/**
* Set the category of the object
*/
void UAVObject::setCategory(const QString& category)
{
this->category = category;
}
/**
* Get the total number of bytes of the object's data

View File

@ -103,6 +103,7 @@ public:
quint32 getInstID();
bool isSingleInstance();
QString getName();
QString getCategory();
QString getDescription();
quint32 getNumBytes();
qint32 pack(quint8* dataOut);
@ -163,6 +164,7 @@ protected:
bool isSingleInst;
QString name;
QString description;
QString category;
quint32 numBytes;
QMutex* mutex;
quint8* data;
@ -170,6 +172,7 @@ protected:
void initializeFields(QList<UAVObjectField*>& fields, quint8* data, quint32 numBytes);
void setDescription(const QString& description);
void setCategory(const QString& category);
};
#endif // UAVOBJECT_H

View File

@ -8,26 +8,26 @@
* @{
* @addtogroup UAVObjectsPlugin UAVObjects Plugin
* @{
*
* @note Object definition file: $(XMLFILE).
*
* @note Object definition file: $(XMLFILE).
* This is an automatically generated file.
* DO NOT modify manually.
*
* @brief The UAVUObjects GCS plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "$(NAMELC).h"
@ -35,6 +35,7 @@
const QString $(NAME)::NAME = QString("$(NAME)");
const QString $(NAME)::DESCRIPTION = QString("$(DESCRIPTION)");
const QString $(NAME)::CATEGORY = QString("$(CATEGORY)");
/**
* Constructor
@ -51,6 +52,9 @@ $(FIELDSINIT)
// Set the object description
setDescription(DESCRIPTION);
// Set the Category of this object type
setCategory(CATEGORY);
connect(this, SIGNAL(objectUpdated(UAVObject*)),
SLOT(emitNotifications()));
}

View File

@ -54,6 +54,7 @@ $(DATAFIELDINFO)
static const quint32 OBJID = $(OBJIDHEX);
static const QString NAME;
static const QString DESCRIPTION;
static const QString CATEGORY;
static const bool ISSINGLEINST = $(ISSINGLEINST);
static const bool ISSETTINGS = $(ISSETTINGS);
static const quint32 NUMBYTES = sizeof(DataFields);

View File

@ -0,0 +1 @@
define(_CUSTOM_AC_OUTPUT_, plugins/op-uavtalk/Makefile plugins/op-uavobjects/Makefile)

View File

@ -0,0 +1,3 @@
_CUSTOM_SUBDIRS_ = \
op-uavtalk \
op-uavobjects

View File

@ -0,0 +1,63 @@
#
# $Id$
#
include ..\config.nmake
#
# Custom plugin build template.
#
# If you need to develop a custom plugin (a plugin not yet released to the
# public) this file is for you.
#
# To generate a custom plugin:
#
# 1. Create the new plugin directory and implement the plugin (at least to be
# ready for a first build try). The easiest way to do this is to copy an
# existing plugin and modify the contents.
# 2. Rename this file to Custom.nmake
# 3. Replace every appearance of foo in this file with your plugin dir name
# 4. Build Wireshark as usual
#
all: op-uavtalk op-uavobjects
op-uavtalk::
cd op-uavtalk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
op-uavobjects::
cd op-uavobjects
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
clean:
cd op-uavtalk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ..
cd op-uavobjects
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ..
distclean: clean
cd op-uavtalk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ..
cd op-uavobjects
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ..
maintainer-clean: distclean
cd op-uavtalk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ..
cd op-uavobjects
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ..
install-plugins:
!IFDEF ENABLE_LIBWIRESHARK
xcopy op-uavtalk\*.dll ..\$(INSTALL_DIR)\plugins\$(VERSION) /d
xcopy op-uavobjects\*.dll ..\$(INSTALL_DIR)\plugins\$(VERSION) /d
!ENDIF

View File

@ -0,0 +1,3 @@
Author:
Stacey Sheldon <stac [AT] solidgoldbomb.org>

View File

@ -0,0 +1,65 @@
# CMakeLists.txt
#
# $Id$
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 1998 Gerald Combs
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
set(DISSECTOR_SRC
packet-op-uavobjects.c
)
set(PLUGIN_FILES
plugin.c
${DISSECTOR_SRC}
)
set(CLEAN_FILES
${PLUGIN_FILES}
)
if (WERROR)
set_source_files_properties(
${CLEAN_FILES}
PROPERTIES
COMPILE_FLAGS -Werror
)
endif()
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
register_dissector_files(plugin.c
plugin
${DISSECTOR_SRC}
)
add_library(op_uavobjects ${LINK_MODE_MODULE}
${PLUGIN_FILES}
)
set_target_properties(op_uavobjects PROPERTIES PREFIX "")
set_target_properties(op_uavobjects PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
target_link_libraries(op-uavobjects)
install(TARGETS op-uavobjects
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/@CPACK_PACKAGE_NAME@/plugins/${CPACK_PACKAGE_VERSION} NAMELINK_SKIP
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}/@CPACK_PACKAGE_NAME@/plugins/${CPACK_PACKAGE_VERSION}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/@CPACK_PACKAGE_NAME@/plugins/${CPACK_PACKAGE_VERSION}
)

View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@ -0,0 +1,3 @@
2012-06-16 Stacey Sheldon <stac@solidgoldbomb.org>
* initial version

View File

@ -0,0 +1,131 @@
# Makefile.am
# Automake file for OpenPilot UAVObject Dissector
# Copyright 2012, Stacey Sheldon <stac@solidgoldbomb.org>
#
# $Id$
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 1998 Gerald Combs
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
INCLUDES = -I$(top_srcdir) -I$(includedir)
include Makefile.common
if HAVE_WARNINGS_AS_ERRORS
AM_CFLAGS = -Werror
endif
plugindir = @plugindir@
plugin_LTLIBRARIES = op_uavobjects.la
op_uavobjects_la_SOURCES = \
plugin.c \
moduleinfo.h \
$(DISSECTOR_SRC) \
$(DISSECTOR_SUPPORT_SRC) \
$(DISSECTOR_INCLUDES)
op_uavobjects_la_LDFLAGS = -module -avoid-version
op_uavobjects_la_LIBADD = @PLUGIN_LIBS@
# Libs must be cleared, or else libtool won't create a shared module.
# If your module needs to be linked against any particular libraries,
# add them here.
LIBS =
#
# Build plugin.c, which contains the plugin version[] string, a
# function plugin_register() that calls the register routines for all
# protocols, and a function plugin_reg_handoff() that calls the handoff
# registration routines for all protocols.
#
# We do this by scanning sources. If that turns out to be too slow,
# maybe we could just require every .o file to have an register routine
# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
#
# Formatting conventions: The name of the proto_register_* routines an
# proto_reg_handoff_* routines must start in column zero, or must be
# preceded only by "void " starting in column zero, and must not be
# inside #if.
#
# DISSECTOR_SRC is assumed to have all the files that need to be scanned.
#
# For some unknown reason, having a big "for" loop in the Makefile
# to scan all the files doesn't work with some "make"s; they seem to
# pass only the first few names in the list to the shell, for some
# reason.
#
# Therefore, we have a script to generate the plugin.c file.
# The shell script runs slowly, as multiple greps and seds are run
# for each input file; this is especially slow on Windows. Therefore,
# if Python is present (as indicated by PYTHON being defined), we run
# a faster Python script to do that work instead.
#
# The first argument is the directory in which the source files live.
# The second argument is "plugin", to indicate that we should build
# a plugin.c file for a plugin.
# All subsequent arguments are the files to scan.
#
plugin.c: $(DISSECTOR_SRC) Makefile.common $(top_srcdir)/tools/make-dissector-reg \
$(top_srcdir)/tools/make-dissector-reg.py
@if test -n "$(PYTHON)"; then \
echo Making plugin.c with python ; \
$(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \
plugin $(DISSECTOR_SRC) ; \
else \
echo Making plugin.c with shell script ; \
$(top_srcdir)/tools/make-dissector-reg $(srcdir) \
$(plugin_src) plugin $(DISSECTOR_SRC) ; \
fi
#
# Currently plugin.c can be included in the distribution because
# we always build all protocol dissectors. We used to have to check
# whether or not to build the snmp dissector. If we again need to
# variably build something, making plugin.c non-portable, uncomment
# the dist-hook line below.
#
# Oh, yuk. We don't want to include "plugin.c" in the distribution, as
# its contents depend on the configuration, and therefore we want it
# to be built when the first "make" is done; however, Automake insists
# on putting *all* source into the distribution.
#
# We work around this by having a "dist-hook" rule that deletes
# "plugin.c", so that "dist" won't pick it up.
#
#dist-hook:
# @rm -f $(distdir)/plugin.c
CLEANFILES = \
op-uavobjects \
*~
MAINTAINERCLEANFILES = \
Makefile.in \
plugin.c
EXTRA_DIST = \
Makefile.common \
Makefile.nmake \
moduleinfo.nmake \
plugin.rc.in \
CMakeLists.txt
checkapi:
$(PERL) $(top_srcdir)/tools/checkAPIs.pl -g abort -g termoutput -build $(DISSECTOR_SRC) $(DISSECTOR_INCLUDES)

View File

@ -0,0 +1,33 @@
# Makefile.common for OpenPilot UAVObject Dissector plugin
# Contains the stuff from Makefile.am and Makefile.nmake that is
# a) common to both files and
# b) portable between both files
# Copyright 2012 Stacey Sheldon <stac@solidgoldbomb.org>
#
# $Id$
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 1998 Gerald Combs
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# the name of the plugin
PLUGIN_NAME = op-uavobjects
# the dissector sources (without any helpers)
DISSECTOR_SRC = $(UAVOBJFILENAMES)
DISSECTOR_INCLUDES =

View File

@ -0,0 +1,104 @@
# Makefile.nmake
# nmake file for Wireshark plugin
#
# $Id$
#
include ..\..\config.nmake
include moduleinfo.nmake
include Makefile.common
CFLAGS=$(WARNINGS_ARE_ERRORS) $(STANDARD_CFLAGS) \
/I../.. $(GLIB_CFLAGS) \
/I$(PCAP_DIR)\include
.c.obj::
$(CC) $(CFLAGS) -Fd.\ -c $<
LDFLAGS = $(PLUGIN_LDFLAGS)
!IFDEF ENABLE_LIBWIRESHARK
LINK_PLUGIN_WITH=..\..\epan\libwireshark.lib
CFLAGS=/D_NEED_VAR_IMPORT_ $(CFLAGS)
DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj)
DISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_SRC:.c=.obj)
OBJECTS = $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) plugin.obj
RESOURCE=$(PLUGIN_NAME).res
all: $(PLUGIN_NAME).dll
$(PLUGIN_NAME).rc : moduleinfo.nmake
sed -e s/@PLUGIN_NAME@/$(PLUGIN_NAME)/ \
-e s/@RC_MODULE_VERSION@/$(RC_MODULE_VERSION)/ \
-e s/@RC_VERSION@/$(RC_VERSION)/ \
-e s/@MODULE_VERSION@/$(MODULE_VERSION)/ \
-e s/@PACKAGE@/$(PACKAGE)/ \
-e s/@VERSION@/$(VERSION)/ \
-e s/@MSVC_VARIANT@/$(MSVC_VARIANT)/ \
< plugin.rc.in > $@
$(PLUGIN_NAME).dll $(PLUGIN_NAME).exp $(PLUGIN_NAME).lib : $(OBJECTS) $(LINK_PLUGIN_WITH) $(RESOURCE)
link -dll /out:$(PLUGIN_NAME).dll $(LDFLAGS) $(OBJECTS) $(LINK_PLUGIN_WITH) \
$(GLIB_LIBS) $(RESOURCE)
#
# Build plugin.c, which contains the plugin version[] string, a
# function plugin_register() that calls the register routines for all
# protocols, and a function plugin_reg_handoff() that calls the handoff
# registration routines for all protocols.
#
# We do this by scanning sources. If that turns out to be too slow,
# maybe we could just require every .o file to have an register routine
# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
#
# Formatting conventions: The name of the proto_register_* routines an
# proto_reg_handoff_* routines must start in column zero, or must be
# preceded only by "void " starting in column zero, and must not be
# inside #if.
#
# DISSECTOR_SRC is assumed to have all the files that need to be scanned.
#
# For some unknown reason, having a big "for" loop in the Makefile
# to scan all the files doesn't work with some "make"s; they seem to
# pass only the first few names in the list to the shell, for some
# reason.
#
# Therefore, we have a script to generate the plugin.c file.
# The shell script runs slowly, as multiple greps and seds are run
# for each input file; this is especially slow on Windows. Therefore,
# if Python is present (as indicated by PYTHON being defined), we run
# a faster Python script to do that work instead.
#
# The first argument is the directory in which the source files live.
# The second argument is "plugin", to indicate that we should build
# a plugin.c file for a plugin.
# All subsequent arguments are the files to scan.
#
!IFDEF PYTHON
plugin.c: $(DISSECTOR_SRC) moduleinfo.h Makefile.common ../../tools/make-dissector-reg.py
@echo Making plugin.c (using python)
@$(PYTHON) "../../tools/make-dissector-reg.py" . plugin $(DISSECTOR_SRC)
!ELSE
plugin.c: $(DISSECTOR_SRC) moduleinfo.h Makefile.common ../../tools/make-dissector-reg
@echo Making plugin.c (using sh)
@$(SH) ../../tools/make-dissector-reg . plugin $(DISSECTOR_SRC)
!ENDIF
!ENDIF
clean:
rm -f $(OBJECTS) $(RESOURCE) plugin.c *.pdb *.sbr \
$(PLUGIN_NAME).dll $(PLUGIN_NAME).dll.manifest $(PLUGIN_NAME).lib \
$(PLUGIN_NAME).exp $(PLUGIN_NAME).rc
distclean: clean
maintainer-clean: distclean
checkapi:
$(PERL) ../../tools/checkAPIs.pl -g abort -g termoutput -build $(DISSECTOR_SRC) $(DISSECTOR_INCLUDES)

View File

@ -0,0 +1,16 @@
/* Included *after* config.h, in order to re-define these macros */
#ifdef PACKAGE
#undef PACKAGE
#endif
/* Name of package */
#define PACKAGE "op-uavobjects"
#ifdef VERSION
#undef VERSION
#endif
/* Version number of package */
#define VERSION "0.0.1"

View File

@ -0,0 +1,28 @@
#
# $Id$
#
# The name
PACKAGE=op-uavobjects
# The version
MODULE_VERSION_MAJOR=0
MODULE_VERSION_MINOR=0
MODULE_VERSION_MICRO=1
MODULE_VERSION_EXTRA=0
#
# The RC_VERSION should be comma-separated, not dot-separated,
# as per Graham Bloice's message in
#
# http://www.ethereal.com/lists/ethereal-dev/200303/msg00283.html
#
# "The RC_VERSION variable in config.nmake should be comma separated.
# This allows the resources to be built correctly and the version
# number to be correctly displayed in the explorer properties dialog
# for the executables, and XP's tooltip, rather than 0.0.0.0."
#
MODULE_VERSION=$(MODULE_VERSION_MAJOR).$(MODULE_VERSION_MINOR).$(MODULE_VERSION_MICRO).$(MODULE_VERSION_EXTRA)
RC_MODULE_VERSION=$(MODULE_VERSION_MAJOR),$(MODULE_VERSION_MINOR),$(MODULE_VERSION_MICRO),$(MODULE_VERSION_EXTRA)

View File

@ -0,0 +1,112 @@
/*
* !!! Autogenerated from $(XMLFILE) Do NOT Edit !!!
*
* Routines for OpenPilot UAVObject dissection
* Copyright 2012 Stacey Sheldon <stac@solidgoldbomb.org>
*
* $Id$
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <epan/packet.h>
#include <epan/ptvcursor.h> /* ptvcursor_* */
#include <glib.h>
#include <string.h>
static int proto_uavo = -1;
/* Subtree expansion tracking */
$(SUBTREESTATICS)
/* Field handles */
$(FIELDHANDLES)
/* Enum string mappings */
$(ENUMFIELDNAMES)
void proto_reg_handoff_op_uavobjects_$(NAMELC)(void);
static int dissect_uavo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
int offset = 0;
col_append_str(pinfo->cinfo, COL_INFO, "($(NAME))");
if (tree) { /* we are being asked for details */
proto_tree *uavo_tree = NULL;
ptvcursor_t * cursor;
proto_item *ti = NULL;
/* Add a top-level entry to the dissector tree for this protocol */
ti = proto_tree_add_item(tree, proto_uavo, tvb, 0, -1, ENC_NA);
/* Create a subtree to contain the dissection of this protocol */
uavo_tree = proto_item_add_subtree(ti, ett_uavo);
/* Dissect the packet and populate the subtree */
cursor = ptvcursor_new(uavo_tree, tvb, 0);
/* Populate the fields in this protocol */
$(POPULATETREE)
offset += ptvcursor_current_offset(cursor);
ptvcursor_free(cursor);
} else {
offset = 0;
}
return offset;
}
void proto_register_op_objects_$(NAMELC)(void)
{
$(HEADERFIELDS)
/* Setup protocol subtree array */
static gint *ett[] = {
$(SUBTREES)
};
/* Register this protocol */
proto_uavo = proto_register_protocol("UAVO $(NAME)",
"UAVO $(NAME)",
"uavo-$(NAMELC)");
/* Register the field definitions for this protocol */
proto_register_subtree_array(ett, array_length(ett));
proto_register_field_array(proto_uavo, hf, array_length(hf));
}
void proto_reg_handoff_op_uavobjects_$(NAMELC)(void)
{
dissector_handle_t uavo_handle;
uavo_handle = new_create_dissector_handle(dissect_uavo, proto_uavo);
/* Bind this protocol to its UAV ObjID in UAVTalk */
dissector_add("uavtalk.objid", $(OBJIDHEX), uavo_handle);
}

View File

@ -0,0 +1,34 @@
#include "winver.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION @RC_MODULE_VERSION@
PRODUCTVERSION @RC_VERSION@
FILEFLAGSMASK 0x0L
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
#else
FILEFLAGS 0
#endif
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_DLL
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "The Wireshark developer community, http://www.wireshark.org/\0"
VALUE "FileDescription", "@PACKAGE@ dissector\0"
VALUE "FileVersion", "@MODULE_VERSION@\0"
VALUE "InternalName", "@PACKAGE@ @MODULE_VERSION@\0"
VALUE "LegalCopyright", "Copyright © 1998 Gerald Combs <gerald@wireshark.org>, Gilbert Ramirez <gram@alumni.rice.edu> and others\0"
VALUE "OriginalFilename", "@PLUGIN_NAME@.dll\0"
VALUE "ProductName", "Wireshark\0"
VALUE "ProductVersion", "@VERSION@\0"
VALUE "Comments", "Build with @MSVC_VARIANT@\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

View File

@ -0,0 +1,3 @@
Author:
Stacey Sheldon <stac [AT] solidgoldbomb.org>

View File

@ -0,0 +1,65 @@
# CMakeLists.txt
#
# $Id$
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 1998 Gerald Combs
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
set(DISSECTOR_SRC
packet-op-uavtalk.c
)
set(PLUGIN_FILES
plugin.c
${DISSECTOR_SRC}
)
set(CLEAN_FILES
${PLUGIN_FILES}
)
if (WERROR)
set_source_files_properties(
${CLEAN_FILES}
PROPERTIES
COMPILE_FLAGS -Werror
)
endif()
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
register_dissector_files(plugin.c
plugin
${DISSECTOR_SRC}
)
add_library(unistim ${LINK_MODE_MODULE}
${PLUGIN_FILES}
)
set_target_properties(unistim PROPERTIES PREFIX "")
set_target_properties(unistim PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
target_link_libraries(op-uavtalk)
install(TARGETS op-uavtalk
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/@CPACK_PACKAGE_NAME@/plugins/${CPACK_PACKAGE_VERSION} NAMELINK_SKIP
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}/@CPACK_PACKAGE_NAME@/plugins/${CPACK_PACKAGE_VERSION}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/@CPACK_PACKAGE_NAME@/plugins/${CPACK_PACKAGE_VERSION}
)

View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@ -0,0 +1,3 @@
2012-06-16 Stacey Sheldon <stac@solidgoldbomb.org>
* initial version

View File

@ -0,0 +1,131 @@
# Makefile.am
# Automake file for OpenPilot UAVTalk protocol
# Copyright 2012, Stacey Sheldon <stac@solidgoldbomb.org>
#
# $Id$
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 1998 Gerald Combs
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
INCLUDES = -I$(top_srcdir) -I$(includedir)
include Makefile.common
if HAVE_WARNINGS_AS_ERRORS
AM_CFLAGS = -Werror
endif
plugindir = @plugindir@
plugin_LTLIBRARIES = op_uavtalk.la
op_uavtalk_la_SOURCES = \
plugin.c \
moduleinfo.h \
$(DISSECTOR_SRC) \
$(DISSECTOR_SUPPORT_SRC) \
$(DISSECTOR_INCLUDES)
op_uavtalk_la_LDFLAGS = -module -avoid-version
op_uavtalk_la_LIBADD = @PLUGIN_LIBS@
# Libs must be cleared, or else libtool won't create a shared module.
# If your module needs to be linked against any particular libraries,
# add them here.
LIBS =
#
# Build plugin.c, which contains the plugin version[] string, a
# function plugin_register() that calls the register routines for all
# protocols, and a function plugin_reg_handoff() that calls the handoff
# registration routines for all protocols.
#
# We do this by scanning sources. If that turns out to be too slow,
# maybe we could just require every .o file to have an register routine
# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
#
# Formatting conventions: The name of the proto_register_* routines an
# proto_reg_handoff_* routines must start in column zero, or must be
# preceded only by "void " starting in column zero, and must not be
# inside #if.
#
# DISSECTOR_SRC is assumed to have all the files that need to be scanned.
#
# For some unknown reason, having a big "for" loop in the Makefile
# to scan all the files doesn't work with some "make"s; they seem to
# pass only the first few names in the list to the shell, for some
# reason.
#
# Therefore, we have a script to generate the plugin.c file.
# The shell script runs slowly, as multiple greps and seds are run
# for each input file; this is especially slow on Windows. Therefore,
# if Python is present (as indicated by PYTHON being defined), we run
# a faster Python script to do that work instead.
#
# The first argument is the directory in which the source files live.
# The second argument is "plugin", to indicate that we should build
# a plugin.c file for a plugin.
# All subsequent arguments are the files to scan.
#
plugin.c: $(DISSECTOR_SRC) Makefile.common $(top_srcdir)/tools/make-dissector-reg \
$(top_srcdir)/tools/make-dissector-reg.py
@if test -n "$(PYTHON)"; then \
echo Making plugin.c with python ; \
$(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \
plugin $(DISSECTOR_SRC) ; \
else \
echo Making plugin.c with shell script ; \
$(top_srcdir)/tools/make-dissector-reg $(srcdir) \
$(plugin_src) plugin $(DISSECTOR_SRC) ; \
fi
#
# Currently plugin.c can be included in the distribution because
# we always build all protocol dissectors. We used to have to check
# whether or not to build the snmp dissector. If we again need to
# variably build something, making plugin.c non-portable, uncomment
# the dist-hook line below.
#
# Oh, yuk. We don't want to include "plugin.c" in the distribution, as
# its contents depend on the configuration, and therefore we want it
# to be built when the first "make" is done; however, Automake insists
# on putting *all* source into the distribution.
#
# We work around this by having a "dist-hook" rule that deletes
# "plugin.c", so that "dist" won't pick it up.
#
#dist-hook:
# @rm -f $(distdir)/plugin.c
CLEANFILES = \
op-uavtalk \
*~
MAINTAINERCLEANFILES = \
Makefile.in \
plugin.c
EXTRA_DIST = \
Makefile.common \
Makefile.nmake \
moduleinfo.nmake \
plugin.rc.in \
CMakeLists.txt
checkapi:
$(PERL) $(top_srcdir)/tools/checkAPIs.pl -g abort -g termoutput -build $(DISSECTOR_SRC) $(DISSECTOR_INCLUDES)

Some files were not shown because too many files have changed in this diff Show More