Merge branch 'master' into pptc_and_pool_enhancements
This commit is contained in:
commit
d49d8d6579
30 changed files with 2295 additions and 796 deletions
|
@ -227,9 +227,20 @@ namespace Ryujinx.Configuration
|
||||||
/// Loads a configuration file from disk
|
/// Loads a configuration file from disk
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="path">The path to the JSON configuration file</param>
|
/// <param name="path">The path to the JSON configuration file</param>
|
||||||
public static ConfigurationFileFormat Load(string path)
|
public static bool TryLoad(string path, out ConfigurationFileFormat configurationFileFormat)
|
||||||
{
|
{
|
||||||
return JsonHelper.DeserializeFromFile<ConfigurationFileFormat>(path);
|
try
|
||||||
|
{
|
||||||
|
configurationFileFormat = JsonHelper.DeserializeFromFile<ConfigurationFileFormat>(path);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
configurationFileFormat = null;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -238,7 +249,8 @@ namespace Ryujinx.Configuration
|
||||||
/// <param name="path">The path to the JSON configuration file</param>
|
/// <param name="path">The path to the JSON configuration file</param>
|
||||||
public void SaveConfig(string path)
|
public void SaveConfig(string path)
|
||||||
{
|
{
|
||||||
File.WriteAllText(path, JsonHelper.Serialize(this, true));
|
using FileStream fileStream = File.Create(path, 4096, FileOptions.WriteThrough);
|
||||||
|
JsonHelper.Serialize(fileStream, this, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,13 +1,14 @@
|
||||||
using Ryujinx.Common.Memory;
|
using Ryujinx.Common.Memory;
|
||||||
|
using Ryujinx.Graphics.Nvdec.Vp9.Common;
|
||||||
|
using Ryujinx.Graphics.Nvdec.Vp9.Dsp;
|
||||||
|
using Ryujinx.Graphics.Nvdec.Vp9.Types;
|
||||||
|
using Ryujinx.Graphics.Video;
|
||||||
using System;
|
using System;
|
||||||
using System.Buffers.Binary;
|
using System.Buffers.Binary;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using Ryujinx.Graphics.Nvdec.Vp9.Common;
|
using System.Threading.Tasks;
|
||||||
using Ryujinx.Graphics.Nvdec.Vp9.Dsp;
|
|
||||||
using Ryujinx.Graphics.Nvdec.Vp9.Types;
|
|
||||||
using Ryujinx.Graphics.Video;
|
|
||||||
using Mv = Ryujinx.Graphics.Nvdec.Vp9.Types.Mv;
|
using Mv = Ryujinx.Graphics.Nvdec.Vp9.Types.Mv;
|
||||||
|
|
||||||
namespace Ryujinx.Graphics.Nvdec.Vp9
|
namespace Ryujinx.Graphics.Nvdec.Vp9
|
||||||
|
@ -1095,6 +1096,19 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
|
||||||
data = data.Slice(size);
|
data = data.Slice(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void GetTileBuffers(ref Vp9Common cm, ArrayPtr<byte> data, int tileCols, ref Array64<TileBuffer> tileBuffers)
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
|
||||||
|
for (c = 0; c < tileCols; ++c)
|
||||||
|
{
|
||||||
|
bool isLast = c == tileCols - 1;
|
||||||
|
ref TileBuffer buf = ref tileBuffers[c];
|
||||||
|
buf.Col = c;
|
||||||
|
GetTileBuffer(isLast, ref cm.Error, ref data, ref buf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void GetTileBuffers(
|
private static void GetTileBuffers(
|
||||||
ref Vp9Common cm,
|
ref Vp9Common cm,
|
||||||
ArrayPtr<byte> data,
|
ArrayPtr<byte> data,
|
||||||
|
@ -1181,5 +1195,163 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
|
||||||
// Get last tile data.
|
// Get last tile data.
|
||||||
return cm.TileWorkerData[tileCols * tileRows - 1].BitReader.FindEnd();
|
return cm.TileWorkerData[tileCols * tileRows - 1].BitReader.FindEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool DecodeTileCol(ref TileWorkerData tileData, ref Vp9Common cm, ref Array64<TileBuffer> tileBuffers)
|
||||||
|
{
|
||||||
|
ref TileInfo tile = ref tileData.Xd.Tile;
|
||||||
|
int finalCol = (1 << cm.Log2TileCols) - 1;
|
||||||
|
ArrayPtr<byte> bitReaderEnd = ArrayPtr<byte>.Null;
|
||||||
|
|
||||||
|
int n = tileData.BufStart;
|
||||||
|
|
||||||
|
tileData.Xd.Corrupted = false;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
ref TileBuffer buf = ref tileBuffers[n];
|
||||||
|
|
||||||
|
Debug.Assert(cm.Log2TileRows == 0);
|
||||||
|
tileData.Dqcoeff = new Array32<Array32<int>>();
|
||||||
|
tile.Init(ref cm, 0, buf.Col);
|
||||||
|
SetupTokenDecoder(buf.Data, buf.Size, ref tileData.ErrorInfo, ref tileData.BitReader);
|
||||||
|
cm.InitMacroBlockD(ref tileData.Xd, new ArrayPtr<int>(ref tileData.Dqcoeff[0][0], 32 * 32));
|
||||||
|
tileData.Xd.ErrorInfo = new Ptr<InternalErrorInfo>(ref tileData.ErrorInfo);
|
||||||
|
|
||||||
|
for (int miRow = tile.MiRowStart; miRow < tile.MiRowEnd; miRow += Constants.MiBlockSize)
|
||||||
|
{
|
||||||
|
tileData.Xd.LeftContext = new Array3<Array16<sbyte>>();
|
||||||
|
tileData.Xd.LeftSegContext = new Array8<sbyte>();
|
||||||
|
for (int miCol = tile.MiColStart; miCol < tile.MiColEnd; miCol += Constants.MiBlockSize)
|
||||||
|
{
|
||||||
|
DecodePartition(ref tileData, ref cm, miRow, miCol, BlockSize.Block64x64, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (buf.Col == finalCol)
|
||||||
|
{
|
||||||
|
bitReaderEnd = tileData.BitReader.FindEnd();
|
||||||
|
}
|
||||||
|
} while (!tileData.Xd.Corrupted && ++n <= tileData.BufEnd);
|
||||||
|
|
||||||
|
tileData.DataEnd = bitReaderEnd;
|
||||||
|
return !tileData.Xd.Corrupted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static unsafe ArrayPtr<byte> DecodeTilesMt(ref Vp9Common cm, ArrayPtr<byte> data, int maxThreads)
|
||||||
|
{
|
||||||
|
ArrayPtr<byte> bitReaderEnd = ArrayPtr<byte>.Null;
|
||||||
|
|
||||||
|
int tileCols = 1 << cm.Log2TileCols;
|
||||||
|
int tileRows = 1 << cm.Log2TileRows;
|
||||||
|
int totalTiles = tileCols * tileRows;
|
||||||
|
int numWorkers = Math.Min(maxThreads, tileCols);
|
||||||
|
int n;
|
||||||
|
|
||||||
|
Debug.Assert(tileCols <= (1 << 6));
|
||||||
|
Debug.Assert(tileRows == 1);
|
||||||
|
|
||||||
|
cm.AboveContext.ToSpan().Fill(0);
|
||||||
|
cm.AboveSegContext.ToSpan().Fill(0);
|
||||||
|
|
||||||
|
for (n = 0; n < numWorkers; ++n)
|
||||||
|
{
|
||||||
|
ref TileWorkerData tileData = ref cm.TileWorkerData[n + totalTiles];
|
||||||
|
|
||||||
|
tileData.Xd = cm.Mb;
|
||||||
|
tileData.Xd.Counts = new Ptr<Vp9BackwardUpdates>(ref tileData.Counts);
|
||||||
|
tileData.Counts = new Vp9BackwardUpdates();
|
||||||
|
}
|
||||||
|
|
||||||
|
Array64<TileBuffer> tileBuffers = new Array64<TileBuffer>();
|
||||||
|
|
||||||
|
GetTileBuffers(ref cm, data, tileCols, ref tileBuffers);
|
||||||
|
|
||||||
|
tileBuffers.ToSpan().Slice(0, tileCols).Sort(CompareTileBuffers);
|
||||||
|
|
||||||
|
if (numWorkers == tileCols)
|
||||||
|
{
|
||||||
|
TileBuffer largest = tileBuffers[0];
|
||||||
|
Span<TileBuffer> buffers = tileBuffers.ToSpan();
|
||||||
|
buffers.Slice(1).CopyTo(buffers.Slice(0, tileBuffers.Length - 1));
|
||||||
|
tileBuffers[tileCols - 1] = largest;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int start = 0, end = tileCols - 2;
|
||||||
|
TileBuffer tmp;
|
||||||
|
|
||||||
|
// Interleave the tiles to distribute the load between threads, assuming a
|
||||||
|
// larger tile implies it is more difficult to decode.
|
||||||
|
while (start < end)
|
||||||
|
{
|
||||||
|
tmp = tileBuffers[start];
|
||||||
|
tileBuffers[start] = tileBuffers[end];
|
||||||
|
tileBuffers[end] = tmp;
|
||||||
|
start += 2;
|
||||||
|
end -= 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int baseVal = tileCols / numWorkers;
|
||||||
|
int remain = tileCols % numWorkers;
|
||||||
|
int bufStart = 0;
|
||||||
|
|
||||||
|
for (n = 0; n < numWorkers; ++n)
|
||||||
|
{
|
||||||
|
int count = baseVal + (remain + n) / numWorkers;
|
||||||
|
ref TileWorkerData tileData = ref cm.TileWorkerData[n + totalTiles];
|
||||||
|
|
||||||
|
tileData.BufStart = bufStart;
|
||||||
|
tileData.BufEnd = bufStart + count - 1;
|
||||||
|
tileData.DataEnd = data.Slice(data.Length);
|
||||||
|
bufStart += count;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ptr<Vp9Common> cmPtr = new Ptr<Vp9Common>(ref cm);
|
||||||
|
|
||||||
|
Parallel.For(0, numWorkers, (n) =>
|
||||||
|
{
|
||||||
|
ref TileWorkerData tileData = ref cmPtr.Value.TileWorkerData[n + totalTiles];
|
||||||
|
|
||||||
|
if (!DecodeTileCol(ref tileData, ref cmPtr.Value, ref tileBuffers))
|
||||||
|
{
|
||||||
|
cmPtr.Value.Mb.Corrupted = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
for (; n > 0; --n)
|
||||||
|
{
|
||||||
|
if (bitReaderEnd.IsNull)
|
||||||
|
{
|
||||||
|
ref TileWorkerData tileData = ref cm.TileWorkerData[n - 1 + totalTiles];
|
||||||
|
bitReaderEnd = tileData.DataEnd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (n = 0; n < numWorkers; ++n)
|
||||||
|
{
|
||||||
|
ref TileWorkerData tileData = ref cm.TileWorkerData[n + totalTiles];
|
||||||
|
AccumulateFrameCounts(ref cm.Counts.Value, ref tileData.Counts);
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.Assert(!bitReaderEnd.IsNull || cm.Mb.Corrupted);
|
||||||
|
return bitReaderEnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int CompareTileBuffers(TileBuffer bufA, TileBuffer bufB)
|
||||||
|
{
|
||||||
|
return (bufA.Size < bufB.Size ? 1 : 0) - (bufA.Size > bufB.Size ? 1 : 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AccumulateFrameCounts(ref Vp9BackwardUpdates accum, ref Vp9BackwardUpdates counts)
|
||||||
|
{
|
||||||
|
Span<uint> a = MemoryMarshal.Cast<Vp9BackwardUpdates, uint>(MemoryMarshal.CreateSpan(ref accum, 1));
|
||||||
|
Span<uint> c = MemoryMarshal.Cast<Vp9BackwardUpdates, uint>(MemoryMarshal.CreateSpan(ref counts, 1));
|
||||||
|
|
||||||
|
for (int i = 0; i < a.Length; i++)
|
||||||
|
{
|
||||||
|
a[i] += c[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,7 +92,14 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
|
||||||
|
|
||||||
cm.Mb.SetupBlockPlanes(1, 1);
|
cm.Mb.SetupBlockPlanes(1, 1);
|
||||||
|
|
||||||
cm.AllocTileWorkerData(_allocator, 1 << pictureInfo.Log2TileCols, 1 << pictureInfo.Log2TileRows);
|
int tileCols = 1 << pictureInfo.Log2TileCols;
|
||||||
|
int tileRows = 1 << pictureInfo.Log2TileRows;
|
||||||
|
|
||||||
|
// Video usually have only 4 columns, so more threads won't make a difference for those.
|
||||||
|
// Try to not take all CPU cores for video decoding.
|
||||||
|
int maxThreads = Math.Min(4, Environment.ProcessorCount / 2);
|
||||||
|
|
||||||
|
cm.AllocTileWorkerData(_allocator, tileCols, tileRows, maxThreads);
|
||||||
cm.AllocContextBuffers(_allocator, output.Width, output.Height);
|
cm.AllocContextBuffers(_allocator, output.Width, output.Height);
|
||||||
cm.InitContextBuffers();
|
cm.InitContextBuffers();
|
||||||
cm.SetupSegmentationDequant();
|
cm.SetupSegmentationDequant();
|
||||||
|
@ -104,7 +111,14 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
DecodeFrame.DecodeTiles(ref cm, new ArrayPtr<byte>(dataPtr, bitstream.Length));
|
if (maxThreads > 1 && tileRows == 1 && tileCols > 1)
|
||||||
|
{
|
||||||
|
DecodeFrame.DecodeTilesMt(ref cm, new ArrayPtr<byte>(dataPtr, bitstream.Length), maxThreads);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DecodeFrame.DecodeTiles(ref cm, new ArrayPtr<byte>(dataPtr, bitstream.Length));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (InternalErrorException)
|
catch (InternalErrorException)
|
||||||
{
|
{
|
||||||
|
|
|
@ -87,6 +87,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Iwht4x416Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Iwht4x416Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
/* 4-point reversible, orthonormal inverse Walsh-Hadamard in 3.5 adds,
|
/* 4-point reversible, orthonormal inverse Walsh-Hadamard in 3.5 adds,
|
||||||
|
@ -142,6 +143,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Iwht4x41Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Iwht4x41Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -209,6 +211,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[3] = WrapLow(DctConstRoundShift(s0 + s1 - s3));
|
output[3] = WrapLow(DctConstRoundShift(s0 + s1 - s3));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct4(ReadOnlySpan<int> input, Span<int> output)
|
public static void Idct4(ReadOnlySpan<int> input, Span<int> output)
|
||||||
{
|
{
|
||||||
Span<short> step = stackalloc short[4];
|
Span<short> step = stackalloc short[4];
|
||||||
|
@ -231,6 +234,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[3] = WrapLow(step[0] - step[3]);
|
output[3] = WrapLow(step[0] - step[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct4x416Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Idct4x416Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -359,6 +363,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[7] = WrapLow(-x1);
|
output[7] = WrapLow(-x1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct8(ReadOnlySpan<int> input, Span<int> output)
|
public static void Idct8(ReadOnlySpan<int> input, Span<int> output)
|
||||||
{
|
{
|
||||||
Span<short> step1 = stackalloc short[8];
|
Span<short> step1 = stackalloc short[8];
|
||||||
|
@ -416,6 +421,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[7] = WrapLow(step1[0] - step1[7]);
|
output[7] = WrapLow(step1[0] - step1[7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct8x864Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Idct8x864Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -449,6 +455,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct8x812Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Idct8x812Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -457,6 +464,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
Span<int> tempIn = stackalloc int[8];
|
Span<int> tempIn = stackalloc int[8];
|
||||||
Span<int> tempOut = stackalloc int[8];
|
Span<int> tempOut = stackalloc int[8];
|
||||||
|
|
||||||
|
output.Fill(0);
|
||||||
|
|
||||||
// First transform rows
|
// First transform rows
|
||||||
// Only first 4 row has non-zero coefs
|
// Only first 4 row has non-zero coefs
|
||||||
for (i = 0; i < 4; ++i)
|
for (i = 0; i < 4; ++i)
|
||||||
|
@ -671,6 +680,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[15] = WrapLow(-x1);
|
output[15] = WrapLow(-x1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct16(ReadOnlySpan<int> input, Span<int> output)
|
public static void Idct16(ReadOnlySpan<int> input, Span<int> output)
|
||||||
{
|
{
|
||||||
Span<short> step1 = stackalloc short[16];
|
Span<short> step1 = stackalloc short[16];
|
||||||
|
@ -838,6 +848,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[15] = WrapLow(step2[0] - step2[15]);
|
output[15] = WrapLow(step2[0] - step2[15]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct16x16256Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Idct16x16256Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -870,6 +881,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct16x1638Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Idct16x1638Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -878,6 +890,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
Span<int> tempIn = stackalloc int[16];
|
Span<int> tempIn = stackalloc int[16];
|
||||||
Span<int> tempOut = stackalloc int[16];
|
Span<int> tempOut = stackalloc int[16];
|
||||||
|
|
||||||
|
output.Fill(0);
|
||||||
|
|
||||||
// First transform rows. Since all non-zero dct coefficients are in
|
// First transform rows. Since all non-zero dct coefficients are in
|
||||||
// upper-left 8x8 area, we only need to calculate first 8 rows here.
|
// upper-left 8x8 area, we only need to calculate first 8 rows here.
|
||||||
for (i = 0; i < 8; ++i)
|
for (i = 0; i < 8; ++i)
|
||||||
|
@ -903,6 +917,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct16x1610Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Idct16x1610Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -911,6 +926,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
Span<int> tempIn = stackalloc int[16];
|
Span<int> tempIn = stackalloc int[16];
|
||||||
Span<int> tempOut = stackalloc int[16];
|
Span<int> tempOut = stackalloc int[16];
|
||||||
|
|
||||||
|
output.Fill(0);
|
||||||
|
|
||||||
// First transform rows. Since all non-zero dct coefficients are in
|
// First transform rows. Since all non-zero dct coefficients are in
|
||||||
// upper-left 4x4 area, we only need to calculate first 4 rows here.
|
// upper-left 4x4 area, we only need to calculate first 4 rows here.
|
||||||
for (i = 0; i < 4; ++i)
|
for (i = 0; i < 4; ++i)
|
||||||
|
@ -955,6 +972,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct32(ReadOnlySpan<int> input, Span<int> output)
|
public static void Idct32(ReadOnlySpan<int> input, Span<int> output)
|
||||||
{
|
{
|
||||||
Span<short> step1 = stackalloc short[32];
|
Span<short> step1 = stackalloc short[32];
|
||||||
|
@ -1324,6 +1342,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[31] = WrapLow(step1[0] - step1[31]);
|
output[31] = WrapLow(step1[0] - step1[31]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct32x321024Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Idct32x321024Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -1370,6 +1389,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct32x32135Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Idct32x32135Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -1378,6 +1398,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
Span<int> tempIn = stackalloc int[32];
|
Span<int> tempIn = stackalloc int[32];
|
||||||
Span<int> tempOut = stackalloc int[32];
|
Span<int> tempOut = stackalloc int[32];
|
||||||
|
|
||||||
|
output.Fill(0);
|
||||||
|
|
||||||
// Rows
|
// Rows
|
||||||
// Only upper-left 16x16 has non-zero coeff
|
// Only upper-left 16x16 has non-zero coeff
|
||||||
for (i = 0; i < 16; ++i)
|
for (i = 0; i < 16; ++i)
|
||||||
|
@ -1403,6 +1425,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void Idct32x3234Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
public static void Idct32x3234Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -1411,6 +1434,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
Span<int> tempIn = stackalloc int[32];
|
Span<int> tempIn = stackalloc int[32];
|
||||||
Span<int> tempOut = stackalloc int[32];
|
Span<int> tempOut = stackalloc int[32];
|
||||||
|
|
||||||
|
output.Fill(0);
|
||||||
|
|
||||||
// Rows
|
// Rows
|
||||||
// Only upper-left 8x8 has non-zero coeff
|
// Only upper-left 8x8 has non-zero coeff
|
||||||
for (i = 0; i < 8; ++i)
|
for (i = 0; i < 8; ++i)
|
||||||
|
@ -1456,6 +1481,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIwht4x416Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIwht4x416Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
/* 4-point reversible, orthonormal inverse Walsh-Hadamard in 3.5 adds,
|
/* 4-point reversible, orthonormal inverse Walsh-Hadamard in 3.5 adds,
|
||||||
|
@ -1511,6 +1537,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIwht4x41Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIwht4x41Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -1584,6 +1611,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[3] = HighbdWrapLow(DctConstRoundShift(s0 + s1 - s3), bd);
|
output[3] = HighbdWrapLow(DctConstRoundShift(s0 + s1 - s3), bd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct4(ReadOnlySpan<int> input, Span<int> output, int bd)
|
public static void HighbdIdct4(ReadOnlySpan<int> input, Span<int> output, int bd)
|
||||||
{
|
{
|
||||||
Span<int> step = stackalloc int[4];
|
Span<int> step = stackalloc int[4];
|
||||||
|
@ -1613,6 +1641,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[3] = HighbdWrapLow(step[0] - step[3], bd);
|
output[3] = HighbdWrapLow(step[0] - step[3], bd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct4x416Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIdct4x416Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -1748,6 +1777,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[7] = HighbdWrapLow(-x1, bd);
|
output[7] = HighbdWrapLow(-x1, bd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct8(ReadOnlySpan<int> input, Span<int> output, int bd)
|
public static void HighbdIdct8(ReadOnlySpan<int> input, Span<int> output, int bd)
|
||||||
{
|
{
|
||||||
Span<int> step1 = stackalloc int[8];
|
Span<int> step1 = stackalloc int[8];
|
||||||
|
@ -1803,6 +1833,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[7] = HighbdWrapLow(step1[0] - step1[7], bd);
|
output[7] = HighbdWrapLow(step1[0] - step1[7], bd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct8x864Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIdct8x864Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -1835,6 +1866,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct8x812Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIdct8x812Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -1843,6 +1875,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
Span<int> tempIn = stackalloc int[8];
|
Span<int> tempIn = stackalloc int[8];
|
||||||
Span<int> tempOut = stackalloc int[8];
|
Span<int> tempOut = stackalloc int[8];
|
||||||
|
|
||||||
|
output.Fill(0);
|
||||||
|
|
||||||
// First transform rows
|
// First transform rows
|
||||||
// Only first 4 row has non-zero coefs
|
// Only first 4 row has non-zero coefs
|
||||||
for (i = 0; i < 4; ++i)
|
for (i = 0; i < 4; ++i)
|
||||||
|
@ -2062,6 +2096,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[15] = HighbdWrapLow(-x1, bd);
|
output[15] = HighbdWrapLow(-x1, bd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct16(ReadOnlySpan<int> input, Span<int> output, int bd)
|
public static void HighbdIdct16(ReadOnlySpan<int> input, Span<int> output, int bd)
|
||||||
{
|
{
|
||||||
Span<int> step1 = stackalloc int[16];
|
Span<int> step1 = stackalloc int[16];
|
||||||
|
@ -2236,6 +2271,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[15] = HighbdWrapLow(step2[0] - step2[15], bd);
|
output[15] = HighbdWrapLow(step2[0] - step2[15], bd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct16x16256Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIdct16x16256Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -2268,6 +2304,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct16x1638Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIdct16x1638Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -2276,6 +2313,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
Span<int> tempIn = stackalloc int[16];
|
Span<int> tempIn = stackalloc int[16];
|
||||||
Span<int> tempOut = stackalloc int[16];
|
Span<int> tempOut = stackalloc int[16];
|
||||||
|
|
||||||
|
output.Fill(0);
|
||||||
|
|
||||||
// First transform rows. Since all non-zero dct coefficients are in
|
// First transform rows. Since all non-zero dct coefficients are in
|
||||||
// upper-left 8x8 area, we only need to calculate first 8 rows here.
|
// upper-left 8x8 area, we only need to calculate first 8 rows here.
|
||||||
for (i = 0; i < 8; ++i)
|
for (i = 0; i < 8; ++i)
|
||||||
|
@ -2303,6 +2342,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct16x1610Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIdct16x1610Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -2311,6 +2351,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
Span<int> tempIn = stackalloc int[16];
|
Span<int> tempIn = stackalloc int[16];
|
||||||
Span<int> tempOut = stackalloc int[16];
|
Span<int> tempOut = stackalloc int[16];
|
||||||
|
|
||||||
|
output.Fill(0);
|
||||||
|
|
||||||
// First transform rows. Since all non-zero dct coefficients are in
|
// First transform rows. Since all non-zero dct coefficients are in
|
||||||
// upper-left 4x4 area, we only need to calculate first 4 rows here.
|
// upper-left 4x4 area, we only need to calculate first 4 rows here.
|
||||||
for (i = 0; i < 4; ++i)
|
for (i = 0; i < 4; ++i)
|
||||||
|
@ -2355,6 +2397,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct32(ReadOnlySpan<int> input, Span<int> output, int bd)
|
public static void HighbdIdct32(ReadOnlySpan<int> input, Span<int> output, int bd)
|
||||||
{
|
{
|
||||||
Span<int> step1 = stackalloc int[32];
|
Span<int> step1 = stackalloc int[32];
|
||||||
|
@ -2539,7 +2582,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
step2[8] = step1[8];
|
step2[8] = step1[8];
|
||||||
step2[15] = step1[15];
|
step2[15] = step1[15];
|
||||||
temp1 = -step1[9] * (long)CosPi8_64 + step1[14] * (long)CosPi24_64;
|
temp1 = -step1[9] * (long)CosPi8_64 + step1[14] * (long)CosPi24_64;
|
||||||
temp2 = step1[9] * (long)CosPi24_64 + step1[14] * (long)CosPi8_64;
|
temp2 = step1[9] * (long)CosPi24_64 + step1[14] * (long)CosPi8_64;
|
||||||
step2[9] = HighbdWrapLow(DctConstRoundShift(temp1), bd);
|
step2[9] = HighbdWrapLow(DctConstRoundShift(temp1), bd);
|
||||||
step2[14] = HighbdWrapLow(DctConstRoundShift(temp2), bd);
|
step2[14] = HighbdWrapLow(DctConstRoundShift(temp2), bd);
|
||||||
temp1 = -step1[10] * (long)CosPi24_64 - step1[13] * (long)CosPi8_64;
|
temp1 = -step1[10] * (long)CosPi24_64 - step1[13] * (long)CosPi8_64;
|
||||||
|
@ -2731,6 +2774,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
output[31] = HighbdWrapLow(step1[0] - step1[31], bd);
|
output[31] = HighbdWrapLow(step1[0] - step1[31], bd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct32x321024Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIdct32x321024Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -2777,6 +2821,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct32x32135Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIdct32x32135Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -2785,6 +2830,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
Span<int> tempIn = stackalloc int[32];
|
Span<int> tempIn = stackalloc int[32];
|
||||||
Span<int> tempOut = stackalloc int[32];
|
Span<int> tempOut = stackalloc int[32];
|
||||||
|
|
||||||
|
output.Fill(0);
|
||||||
|
|
||||||
// Rows
|
// Rows
|
||||||
// Only upper-left 16x16 has non-zero coeff
|
// Only upper-left 16x16 has non-zero coeff
|
||||||
for (i = 0; i < 16; ++i)
|
for (i = 0; i < 16; ++i)
|
||||||
|
@ -2812,6 +2859,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[SkipLocalsInit]
|
||||||
public static void HighbdIdct32x3234Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
public static void HighbdIdct32x3234Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -2820,6 +2868,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
|
||||||
Span<int> tempIn = stackalloc int[32];
|
Span<int> tempIn = stackalloc int[32];
|
||||||
Span<int> tempOut = stackalloc int[32];
|
Span<int> tempOut = stackalloc int[32];
|
||||||
|
|
||||||
|
output.Fill(0);
|
||||||
|
|
||||||
// Rows
|
// Rows
|
||||||
// Only upper-left 8x8 has non-zero coeff
|
// Only upper-left 8x8 has non-zero coeff
|
||||||
for (i = 0; i < 8; ++i)
|
for (i = 0; i < 8; ++i)
|
||||||
|
|
|
@ -4,6 +4,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
|
||||||
{
|
{
|
||||||
internal struct TileBuffer
|
internal struct TileBuffer
|
||||||
{
|
{
|
||||||
|
public int Col;
|
||||||
public ArrayPtr<byte> Data;
|
public ArrayPtr<byte> Data;
|
||||||
public int Size;
|
public int Size;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,20 @@
|
||||||
using Ryujinx.Common.Memory;
|
using Ryujinx.Common.Memory;
|
||||||
using Ryujinx.Graphics.Nvdec.Vp9.Dsp;
|
using Ryujinx.Graphics.Nvdec.Vp9.Dsp;
|
||||||
using Ryujinx.Graphics.Nvdec.Vp9.Types;
|
using Ryujinx.Graphics.Nvdec.Vp9.Types;
|
||||||
|
using Ryujinx.Graphics.Video;
|
||||||
|
|
||||||
namespace Ryujinx.Graphics.Nvdec.Vp9
|
namespace Ryujinx.Graphics.Nvdec.Vp9
|
||||||
{
|
{
|
||||||
internal struct TileWorkerData
|
internal struct TileWorkerData
|
||||||
{
|
{
|
||||||
|
public ArrayPtr<byte> DataEnd;
|
||||||
|
public int BufStart;
|
||||||
|
public int BufEnd;
|
||||||
public Reader BitReader;
|
public Reader BitReader;
|
||||||
|
public Vp9BackwardUpdates Counts;
|
||||||
public MacroBlockD Xd;
|
public MacroBlockD Xd;
|
||||||
/* dqcoeff are shared by all the planes. So planes must be decoded serially */
|
/* dqcoeff are shared by all the planes. So planes must be decoded serially */
|
||||||
public Array32<Array32<int>> Dqcoeff;
|
public Array32<Array32<int>> Dqcoeff;
|
||||||
|
public InternalErrorInfo ErrorInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,9 +127,9 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
|
||||||
MBs = MbRows * MbCols;
|
MBs = MbRows * MbCols;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AllocTileWorkerData(MemoryAllocator allocator, int tileCols, int tileRows)
|
public void AllocTileWorkerData(MemoryAllocator allocator, int tileCols, int tileRows, int maxThreads)
|
||||||
{
|
{
|
||||||
TileWorkerData = allocator.Allocate<TileWorkerData>(tileCols * tileRows);
|
TileWorkerData = allocator.Allocate<TileWorkerData>(tileCols * tileRows + (maxThreads > 1 ? maxThreads : 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FreeTileWorkerData(MemoryAllocator allocator)
|
public void FreeTileWorkerData(MemoryAllocator allocator)
|
||||||
|
|
|
@ -1,18 +1,48 @@
|
||||||
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Possible requests to the keyboard when running in inline mode.
|
/// Possible requests to the software keyboard when running in inline mode.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
enum InlineKeyboardRequest : uint
|
enum InlineKeyboardRequest : uint
|
||||||
{
|
{
|
||||||
Unknown0 = 0x0,
|
/// <summary>
|
||||||
Finalize = 0x4,
|
/// Finalize the keyboard applet.
|
||||||
SetUserWordInfo = 0x6,
|
/// </summary>
|
||||||
SetCustomizeDic = 0x7,
|
Finalize = 0x4,
|
||||||
Calc = 0xA,
|
|
||||||
SetCustomizedDictionaries = 0xB,
|
/// <summary>
|
||||||
|
/// Set user words for text prediction.
|
||||||
|
/// </summary>
|
||||||
|
SetUserWordInfo = 0x6,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the CustomizeDic data. Can't be used if CustomizedDictionaries is already set.
|
||||||
|
/// </summary>
|
||||||
|
SetCustomizeDic = 0x7,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Configure the keyboard applet and put it in a state where it is processing input.
|
||||||
|
/// </summary>
|
||||||
|
Calc = 0xA,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Set custom dictionaries for text prediction. Can't be used if SetCustomizeDic is already set.
|
||||||
|
/// </summary>
|
||||||
|
SetCustomizedDictionaries = 0xB,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Release custom dictionaries data.
|
||||||
|
/// </summary>
|
||||||
UnsetCustomizedDictionaries = 0xC,
|
UnsetCustomizedDictionaries = 0xC,
|
||||||
UseChangedStringV2 = 0xD,
|
|
||||||
UseMovedCursorV2 = 0xE
|
/// <summary>
|
||||||
|
/// [8.0.0+] Request the keyboard applet to use the ChangedStringV2 response when notifying changes in text data.
|
||||||
|
/// </summary>
|
||||||
|
UseChangedStringV2 = 0xD,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// [8.0.0+] Request the keyboard applet to use the MovedCursorV2 response when notifying changes in cursor position.
|
||||||
|
/// </summary>
|
||||||
|
UseMovedCursorV2 = 0xE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +1,93 @@
|
||||||
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Possible responses from the keyboard when running in inline mode.
|
/// Possible responses from the software keyboard when running in inline mode.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
enum InlineKeyboardResponse : uint
|
enum InlineKeyboardResponse : uint
|
||||||
{
|
{
|
||||||
FinishedInitialize = 0x0,
|
/// <summary>
|
||||||
Default = 0x1,
|
/// The software keyboard received a Calc and it is fully initialized. Reply data is ignored by the user-process.
|
||||||
ChangedString = 0x2,
|
/// </summary>
|
||||||
MovedCursor = 0x3,
|
FinishedInitialize = 0x0,
|
||||||
MovedTab = 0x4,
|
|
||||||
DecidedEnter = 0x5,
|
/// <summary>
|
||||||
DecidedCancel = 0x6,
|
/// Default response. Official sw has no handling for this besides just closing the storage.
|
||||||
ChangedStringUtf8 = 0x7,
|
/// </summary>
|
||||||
MovedCursorUtf8 = 0x8,
|
Default = 0x1,
|
||||||
DecidedEnterUtf8 = 0x9,
|
|
||||||
UnsetCustomizeDic = 0xA,
|
/// <summary>
|
||||||
ReleasedUserWordInfo = 0xB,
|
/// The text data in the software keyboard changed (UTF-16 encoding).
|
||||||
|
/// </summary>
|
||||||
|
ChangedString = 0x2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The cursor position in the software keyboard changed (UTF-16 encoding).
|
||||||
|
/// </summary>
|
||||||
|
MovedCursor = 0x3,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A tab in the software keyboard changed.
|
||||||
|
/// </summary>
|
||||||
|
MovedTab = 0x4,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The OK key was pressed in the software keyboard, confirming the input text (UTF-16 encoding).
|
||||||
|
/// </summary>
|
||||||
|
DecidedEnter = 0x5,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The Cancel key was pressed in the software keyboard, cancelling the input.
|
||||||
|
/// </summary>
|
||||||
|
DecidedCancel = 0x6,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Same as ChangedString, but with UTF-8 encoding.
|
||||||
|
/// </summary>
|
||||||
|
ChangedStringUtf8 = 0x7,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Same as MovedCursor, but with UTF-8 encoding.
|
||||||
|
/// </summary>
|
||||||
|
MovedCursorUtf8 = 0x8,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Same as DecidedEnter, but with UTF-8 encoding.
|
||||||
|
/// </summary>
|
||||||
|
DecidedEnterUtf8 = 0x9,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// They software keyboard is releasing the data previously set by a SetCustomizeDic request.
|
||||||
|
/// </summary>
|
||||||
|
UnsetCustomizeDic = 0xA,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// They software keyboard is releasing the data previously set by a SetUserWordInfo request.
|
||||||
|
/// </summary>
|
||||||
|
ReleasedUserWordInfo = 0xB,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// They software keyboard is releasing the data previously set by a SetCustomizedDictionaries request.
|
||||||
|
/// </summary>
|
||||||
UnsetCustomizedDictionaries = 0xC,
|
UnsetCustomizedDictionaries = 0xC,
|
||||||
ChangedStringV2 = 0xD,
|
|
||||||
MovedCursorV2 = 0xE,
|
/// <summary>
|
||||||
ChangedStringUtf8V2 = 0xF,
|
/// Same as ChangedString, but with additional fields.
|
||||||
MovedCursorUtf8V2 = 0x10
|
/// </summary>
|
||||||
|
ChangedStringV2 = 0xD,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Same as MovedCursor, but with additional fields.
|
||||||
|
/// </summary>
|
||||||
|
MovedCursorV2 = 0xE,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Same as ChangedStringUtf8, but with additional fields.
|
||||||
|
/// </summary>
|
||||||
|
ChangedStringUtf8V2 = 0xF,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Same as MovedCursorUtf8, but with additional fields.
|
||||||
|
/// </summary>
|
||||||
|
MovedCursorUtf8V2 = 0x10
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,33 @@
|
||||||
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Possible states for the keyboard when running in inline mode.
|
/// Possible states for the software keyboard when running in inline mode.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
enum InlineKeyboardState : uint
|
enum InlineKeyboardState : uint
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The software keyboard has just been created or finalized and is uninitialized.
|
||||||
|
/// </summary>
|
||||||
Uninitialized = 0x0,
|
Uninitialized = 0x0,
|
||||||
Initializing = 0x1,
|
|
||||||
Ready = 0x2,
|
/// <summary>
|
||||||
|
/// A Calc was previously received and fulfilled, so the software keyboard is initialized, but is not processing input.
|
||||||
|
/// </summary>
|
||||||
|
Initialized = 0x1,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A Calc was received and the software keyboard is processing input.
|
||||||
|
/// </summary>
|
||||||
|
Ready = 0x2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// New text data or cursor position of the software keyboard are available.
|
||||||
|
/// </summary>
|
||||||
DataAvailable = 0x3,
|
DataAvailable = 0x3,
|
||||||
Completed = 0x4
|
|
||||||
|
/// <summary>
|
||||||
|
/// The Calc request was fulfilled with either a text input or a cancel.
|
||||||
|
/// </summary>
|
||||||
|
Complete = 0x4
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,41 +45,41 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
writer.Write(cursor); // Cursor position
|
writer.Write(cursor); // Cursor position
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] FinishedInitialize()
|
public static byte[] FinishedInitialize(InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 2 * sizeof(uint) + 0x1;
|
uint resSize = 2 * sizeof(uint) + 0x1;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Ready, InlineKeyboardResponse.FinishedInitialize, writer);
|
BeginResponse(state, InlineKeyboardResponse.FinishedInitialize, writer);
|
||||||
writer.Write((byte)1); // Data (ignored by the program)
|
writer.Write((byte)1); // Data (ignored by the program)
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] Default()
|
public static byte[] Default(InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 2 * sizeof(uint);
|
uint resSize = 2 * sizeof(uint);
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Initializing, InlineKeyboardResponse.Default, writer);
|
BeginResponse(state, InlineKeyboardResponse.Default, writer);
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] ChangedString(string text)
|
public static byte[] ChangedString(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 4 * sizeof(uint) + MaxStrLenUTF16;
|
uint resSize = 6 * sizeof(uint) + MaxStrLenUTF16;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Initializing, InlineKeyboardResponse.ChangedString, writer);
|
BeginResponse(state, InlineKeyboardResponse.ChangedString, writer);
|
||||||
WriteStringWithCursor(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
WriteStringWithCursor(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
||||||
writer.Write((int)0); // ?
|
writer.Write((int)0); // ?
|
||||||
writer.Write((int)0); // ?
|
writer.Write((int)0); // ?
|
||||||
|
@ -88,21 +88,21 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] MovedCursor(string text)
|
public static byte[] MovedCursor(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 4 * sizeof(uint) + MaxStrLenUTF16;
|
uint resSize = 4 * sizeof(uint) + MaxStrLenUTF16;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Initializing, InlineKeyboardResponse.MovedCursor, writer);
|
BeginResponse(state, InlineKeyboardResponse.MovedCursor, writer);
|
||||||
WriteStringWithCursor(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
WriteStringWithCursor(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] MovedTab(string text)
|
public static byte[] MovedTab(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
// Should be the same as MovedCursor.
|
// Should be the same as MovedCursor.
|
||||||
|
|
||||||
|
@ -111,48 +111,48 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Initializing, InlineKeyboardResponse.MovedTab, writer);
|
BeginResponse(state, InlineKeyboardResponse.MovedTab, writer);
|
||||||
WriteStringWithCursor(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
WriteStringWithCursor(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] DecidedEnter(string text)
|
public static byte[] DecidedEnter(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 3 * sizeof(uint) + MaxStrLenUTF16;
|
uint resSize = 3 * sizeof(uint) + MaxStrLenUTF16;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Completed, InlineKeyboardResponse.DecidedEnter, writer);
|
BeginResponse(state, InlineKeyboardResponse.DecidedEnter, writer);
|
||||||
WriteString(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
WriteString(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] DecidedCancel()
|
public static byte[] DecidedCancel(InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 2 * sizeof(uint);
|
uint resSize = 2 * sizeof(uint);
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Completed, InlineKeyboardResponse.DecidedCancel, writer);
|
BeginResponse(state, InlineKeyboardResponse.DecidedCancel, writer);
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] ChangedStringUtf8(string text)
|
public static byte[] ChangedStringUtf8(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 6 * sizeof(uint) + MaxStrLenUTF8;
|
uint resSize = 6 * sizeof(uint) + MaxStrLenUTF8;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.DataAvailable, InlineKeyboardResponse.ChangedStringUtf8, writer);
|
BeginResponse(state, InlineKeyboardResponse.ChangedStringUtf8, writer);
|
||||||
WriteStringWithCursor(text, writer, MaxStrLenUTF8, Encoding.UTF8);
|
WriteStringWithCursor(text, writer, MaxStrLenUTF8, Encoding.UTF8);
|
||||||
writer.Write((int)0); // ?
|
writer.Write((int)0); // ?
|
||||||
writer.Write((int)0); // ?
|
writer.Write((int)0); // ?
|
||||||
|
@ -161,81 +161,81 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] MovedCursorUtf8(string text)
|
public static byte[] MovedCursorUtf8(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 4 * sizeof(uint) + MaxStrLenUTF8;
|
uint resSize = 4 * sizeof(uint) + MaxStrLenUTF8;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.DataAvailable, InlineKeyboardResponse.MovedCursorUtf8, writer);
|
BeginResponse(state, InlineKeyboardResponse.MovedCursorUtf8, writer);
|
||||||
WriteStringWithCursor(text, writer, MaxStrLenUTF8, Encoding.UTF8);
|
WriteStringWithCursor(text, writer, MaxStrLenUTF8, Encoding.UTF8);
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] DecidedEnterUtf8(string text)
|
public static byte[] DecidedEnterUtf8(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 3 * sizeof(uint) + MaxStrLenUTF8;
|
uint resSize = 3 * sizeof(uint) + MaxStrLenUTF8;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Completed, InlineKeyboardResponse.DecidedEnterUtf8, writer);
|
BeginResponse(state, InlineKeyboardResponse.DecidedEnterUtf8, writer);
|
||||||
WriteString(text, writer, MaxStrLenUTF8, Encoding.UTF8);
|
WriteString(text, writer, MaxStrLenUTF8, Encoding.UTF8);
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] UnsetCustomizeDic()
|
public static byte[] UnsetCustomizeDic(InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 2 * sizeof(uint);
|
uint resSize = 2 * sizeof(uint);
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Initializing, InlineKeyboardResponse.UnsetCustomizeDic, writer);
|
BeginResponse(state, InlineKeyboardResponse.UnsetCustomizeDic, writer);
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] ReleasedUserWordInfo()
|
public static byte[] ReleasedUserWordInfo(InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 2 * sizeof(uint);
|
uint resSize = 2 * sizeof(uint);
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Initializing, InlineKeyboardResponse.ReleasedUserWordInfo, writer);
|
BeginResponse(state, InlineKeyboardResponse.ReleasedUserWordInfo, writer);
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] UnsetCustomizedDictionaries()
|
public static byte[] UnsetCustomizedDictionaries(InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 2 * sizeof(uint);
|
uint resSize = 2 * sizeof(uint);
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.Initializing, InlineKeyboardResponse.UnsetCustomizedDictionaries, writer);
|
BeginResponse(state, InlineKeyboardResponse.UnsetCustomizedDictionaries, writer);
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] ChangedStringV2(string text)
|
public static byte[] ChangedStringV2(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 6 * sizeof(uint) + MaxStrLenUTF16 + 0x1;
|
uint resSize = 6 * sizeof(uint) + MaxStrLenUTF16 + 0x1;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.DataAvailable, InlineKeyboardResponse.ChangedStringV2, writer);
|
BeginResponse(state, InlineKeyboardResponse.ChangedStringV2, writer);
|
||||||
WriteStringWithCursor(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
WriteStringWithCursor(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
||||||
writer.Write((int)0); // ?
|
writer.Write((int)0); // ?
|
||||||
writer.Write((int)0); // ?
|
writer.Write((int)0); // ?
|
||||||
|
@ -245,14 +245,14 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] MovedCursorV2(string text)
|
public static byte[] MovedCursorV2(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 4 * sizeof(uint) + MaxStrLenUTF16 + 0x1;
|
uint resSize = 4 * sizeof(uint) + MaxStrLenUTF16 + 0x1;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.DataAvailable, InlineKeyboardResponse.MovedCursorV2, writer);
|
BeginResponse(state, InlineKeyboardResponse.MovedCursorV2, writer);
|
||||||
WriteStringWithCursor(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
WriteStringWithCursor(text, writer, MaxStrLenUTF16, Encoding.Unicode);
|
||||||
writer.Write((byte)0); // Flag == 0
|
writer.Write((byte)0); // Flag == 0
|
||||||
|
|
||||||
|
@ -260,14 +260,14 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] ChangedStringUtf8V2(string text)
|
public static byte[] ChangedStringUtf8V2(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 6 * sizeof(uint) + MaxStrLenUTF8 + 0x1;
|
uint resSize = 6 * sizeof(uint) + MaxStrLenUTF8 + 0x1;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.DataAvailable, InlineKeyboardResponse.ChangedStringUtf8V2, writer);
|
BeginResponse(state, InlineKeyboardResponse.ChangedStringUtf8V2, writer);
|
||||||
WriteStringWithCursor(text, writer, MaxStrLenUTF8, Encoding.UTF8);
|
WriteStringWithCursor(text, writer, MaxStrLenUTF8, Encoding.UTF8);
|
||||||
writer.Write((int)0); // ?
|
writer.Write((int)0); // ?
|
||||||
writer.Write((int)0); // ?
|
writer.Write((int)0); // ?
|
||||||
|
@ -277,14 +277,14 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] MovedCursorUtf8V2(string text)
|
public static byte[] MovedCursorUtf8V2(string text, InlineKeyboardState state)
|
||||||
{
|
{
|
||||||
uint resSize = 4 * sizeof(uint) + MaxStrLenUTF8 + 0x1;
|
uint resSize = 4 * sizeof(uint) + MaxStrLenUTF8 + 0x1;
|
||||||
|
|
||||||
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
using (MemoryStream stream = new MemoryStream(new byte[resSize]))
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
BeginResponse(InlineKeyboardState.DataAvailable, InlineKeyboardResponse.MovedCursorUtf8V2, writer);
|
BeginResponse(state, InlineKeyboardResponse.MovedCursorUtf8V2, writer);
|
||||||
WriteStringWithCursor(text, writer, MaxStrLenUTF8, Encoding.UTF8);
|
WriteStringWithCursor(text, writer, MaxStrLenUTF8, Encoding.UTF8);
|
||||||
writer.Write((byte)0); // Flag == 0
|
writer.Write((byte)0); // Flag == 0
|
||||||
|
|
||||||
|
|
|
@ -2,33 +2,38 @@
|
||||||
|
|
||||||
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A structure with appearance configurations for the software keyboard when running in inline mode.
|
||||||
|
/// </summary>
|
||||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
||||||
struct SoftwareKeyboardAppear
|
struct SoftwareKeyboardAppear
|
||||||
{
|
{
|
||||||
private const int OkTextLength = 8;
|
private const int OkTextLength = 8;
|
||||||
|
|
||||||
// Some games send a Calc without intention of showing the keyboard, a
|
/// <summary>
|
||||||
// common trend observed is that this field will be != 0 in such cases.
|
/// Some games send a Calc without intention of showing the keyboard, a
|
||||||
|
/// common trend observed is that this field will be != 0 in such cases.
|
||||||
|
/// </summary>
|
||||||
public uint ShouldBeHidden;
|
public uint ShouldBeHidden;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The string displayed in the Submit button.
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = OkTextLength + 1)]
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = OkTextLength + 1)]
|
||||||
public string OkText;
|
public string OkText;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The character displayed in the left button of the numeric keyboard.
|
/// The character displayed in the left button of the numeric keyboard.
|
||||||
/// This is ignored when Mode is not set to NumbersOnly.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public char LeftOptionalSymbolKey;
|
public char LeftOptionalSymbolKey;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The character displayed in the right button of the numeric keyboard.
|
/// The character displayed in the right button of the numeric keyboard.
|
||||||
/// This is ignored when Mode is not set to NumbersOnly.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public char RightOptionalSymbolKey;
|
public char RightOptionalSymbolKey;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// When set, predictive typing is enabled making use of the system dictionary,
|
/// When set, predictive typing is enabled making use of the system dictionary, and any custom user dictionary.
|
||||||
/// and any custom user dictionary.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.I1)]
|
[MarshalAs(UnmanagedType.I1)]
|
||||||
public bool PredictionEnabled;
|
public bool PredictionEnabled;
|
||||||
|
@ -43,13 +48,24 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
public int Padding1;
|
public int Padding1;
|
||||||
public int Padding2;
|
public int Padding2;
|
||||||
|
|
||||||
public byte EnableReturnButton;
|
/// <summary>
|
||||||
|
/// Indicates the return button is enabled in the keyboard. This allows for input with multiple lines.
|
||||||
|
/// </summary>
|
||||||
|
[MarshalAs(UnmanagedType.I1)]
|
||||||
|
public bool UseNewLine;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// [10.0.0+] If value is 1 or 2, then keytopAsFloating=0 and footerScalable=1 in Calc.
|
||||||
|
/// </summary>
|
||||||
|
public byte Unknown1;
|
||||||
|
|
||||||
public byte Padding3;
|
|
||||||
public byte Padding4;
|
public byte Padding4;
|
||||||
public byte Padding5;
|
public byte Padding5;
|
||||||
|
|
||||||
public uint CalcArgFlags;
|
/// <summary>
|
||||||
|
/// Bitmask 0x1000 of the Calc and DirectionalButtonAssignEnabled in bitmask 0x10000000.
|
||||||
|
/// </summary>
|
||||||
|
public uint CalcFlags;
|
||||||
|
|
||||||
public uint Padding6;
|
public uint Padding6;
|
||||||
public uint Padding7;
|
public uint Padding7;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using Ryujinx.Common.Logging;
|
using Ryujinx.Common;
|
||||||
|
using Ryujinx.Common.Logging;
|
||||||
using Ryujinx.HLE.HOS.Applets.SoftwareKeyboard;
|
using Ryujinx.HLE.HOS.Applets.SoftwareKeyboard;
|
||||||
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
|
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
|
||||||
using System;
|
using System;
|
||||||
|
@ -14,31 +15,41 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
{
|
{
|
||||||
private const string DefaultText = "Ryujinx";
|
private const string DefaultText = "Ryujinx";
|
||||||
|
|
||||||
|
private const long DebounceTimeMillis = 200;
|
||||||
|
private const int ResetDelayMillis = 500;
|
||||||
|
|
||||||
private readonly Switch _device;
|
private readonly Switch _device;
|
||||||
|
|
||||||
private const int StandardBufferSize = 0x7D8;
|
private const int StandardBufferSize = 0x7D8;
|
||||||
private const int InteractiveBufferSize = 0x7D4;
|
private const int InteractiveBufferSize = 0x7D4;
|
||||||
|
private const int MaxUserWords = 0x1388;
|
||||||
|
|
||||||
private SoftwareKeyboardState _state = SoftwareKeyboardState.Uninitialized;
|
private SoftwareKeyboardState _foregroundState = SoftwareKeyboardState.Uninitialized;
|
||||||
|
private volatile InlineKeyboardState _backgroundState = InlineKeyboardState.Uninitialized;
|
||||||
|
|
||||||
private bool _isBackground = false;
|
private bool _isBackground = false;
|
||||||
|
private bool _alreadyShown = false;
|
||||||
|
private volatile bool _useChangedStringV2 = false;
|
||||||
|
|
||||||
private AppletSession _normalSession;
|
private AppletSession _normalSession;
|
||||||
private AppletSession _interactiveSession;
|
private AppletSession _interactiveSession;
|
||||||
|
|
||||||
// Configuration for foreground mode
|
// Configuration for foreground mode.
|
||||||
private SoftwareKeyboardConfig _keyboardFgConfig;
|
private SoftwareKeyboardConfig _keyboardForegroundConfig;
|
||||||
private SoftwareKeyboardCalc _keyboardCalc;
|
|
||||||
private SoftwareKeyboardDictSet _keyboardDict;
|
|
||||||
|
|
||||||
// Configuration for background mode
|
// Configuration for background (inline) mode.
|
||||||
private SoftwareKeyboardInitialize _keyboardBgInitialize;
|
private SoftwareKeyboardInitialize _keyboardBackgroundInitialize;
|
||||||
|
private SoftwareKeyboardCalc _keyboardBackgroundCalc;
|
||||||
|
private SoftwareKeyboardCustomizeDic _keyboardBackgroundDic;
|
||||||
|
private SoftwareKeyboardDictSet _keyboardBackgroundDictSet;
|
||||||
|
private SoftwareKeyboardUserWord[] _keyboardBackgroundUserWords;
|
||||||
|
|
||||||
private byte[] _transferMemory;
|
private byte[] _transferMemory;
|
||||||
|
|
||||||
private string _textValue = null;
|
private string _textValue = "";
|
||||||
private bool _okPressed = false;
|
private bool _okPressed = false;
|
||||||
private Encoding _encoding = Encoding.Unicode;
|
private Encoding _encoding = Encoding.Unicode;
|
||||||
|
private long _lastTextSetMillis = 0;
|
||||||
|
|
||||||
public event EventHandler AppletStateChanged;
|
public event EventHandler AppletStateChanged;
|
||||||
|
|
||||||
|
@ -55,22 +66,27 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
|
|
||||||
_interactiveSession.DataAvailable += OnInteractiveData;
|
_interactiveSession.DataAvailable += OnInteractiveData;
|
||||||
|
|
||||||
|
_alreadyShown = false;
|
||||||
|
_useChangedStringV2 = false;
|
||||||
|
|
||||||
var launchParams = _normalSession.Pop();
|
var launchParams = _normalSession.Pop();
|
||||||
var keyboardConfig = _normalSession.Pop();
|
var keyboardConfig = _normalSession.Pop();
|
||||||
|
|
||||||
// TODO: A better way would be handling the background creation properly
|
|
||||||
// in LibraryAppleCreator / Acessor instead of guessing by size.
|
|
||||||
if (keyboardConfig.Length == Marshal.SizeOf<SoftwareKeyboardInitialize>())
|
if (keyboardConfig.Length == Marshal.SizeOf<SoftwareKeyboardInitialize>())
|
||||||
{
|
{
|
||||||
|
// Initialize the keyboard applet in background mode.
|
||||||
|
|
||||||
_isBackground = true;
|
_isBackground = true;
|
||||||
|
|
||||||
_keyboardBgInitialize = ReadStruct<SoftwareKeyboardInitialize>(keyboardConfig);
|
_keyboardBackgroundInitialize = ReadStruct<SoftwareKeyboardInitialize>(keyboardConfig);
|
||||||
_state = SoftwareKeyboardState.Uninitialized;
|
_backgroundState = InlineKeyboardState.Uninitialized;
|
||||||
|
|
||||||
return ResultCode.Success;
|
return ResultCode.Success;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// Initialize the keyboard applet in foreground mode.
|
||||||
|
|
||||||
_isBackground = false;
|
_isBackground = false;
|
||||||
|
|
||||||
if (keyboardConfig.Length < Marshal.SizeOf<SoftwareKeyboardConfig>())
|
if (keyboardConfig.Length < Marshal.SizeOf<SoftwareKeyboardConfig>())
|
||||||
|
@ -79,7 +95,7 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_keyboardFgConfig = ReadStruct<SoftwareKeyboardConfig>(keyboardConfig);
|
_keyboardForegroundConfig = ReadStruct<SoftwareKeyboardConfig>(keyboardConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_normalSession.TryPop(out _transferMemory))
|
if (!_normalSession.TryPop(out _transferMemory))
|
||||||
|
@ -87,12 +103,12 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
Logger.Error?.Print(LogClass.ServiceAm, "SwKbd Transfer Memory is null");
|
Logger.Error?.Print(LogClass.ServiceAm, "SwKbd Transfer Memory is null");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_keyboardFgConfig.UseUtf8)
|
if (_keyboardForegroundConfig.UseUtf8)
|
||||||
{
|
{
|
||||||
_encoding = Encoding.UTF8;
|
_encoding = Encoding.UTF8;
|
||||||
}
|
}
|
||||||
|
|
||||||
_state = SoftwareKeyboardState.Ready;
|
_foregroundState = SoftwareKeyboardState.Ready;
|
||||||
|
|
||||||
ExecuteForegroundKeyboard();
|
ExecuteForegroundKeyboard();
|
||||||
|
|
||||||
|
@ -105,32 +121,44 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
return ResultCode.Success;
|
return ResultCode.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private InlineKeyboardState GetInlineState()
|
||||||
|
{
|
||||||
|
return _backgroundState;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetInlineState(InlineKeyboardState state)
|
||||||
|
{
|
||||||
|
_backgroundState = state;
|
||||||
|
}
|
||||||
|
|
||||||
private void ExecuteForegroundKeyboard()
|
private void ExecuteForegroundKeyboard()
|
||||||
{
|
{
|
||||||
string initialText = null;
|
string initialText = null;
|
||||||
|
|
||||||
// Initial Text is always encoded as a UTF-16 string in the work buffer (passed as transfer memory)
|
// Initial Text is always encoded as a UTF-16 string in the work buffer (passed as transfer memory)
|
||||||
// InitialStringOffset points to the memory offset and InitialStringLength is the number of UTF-16 characters
|
// InitialStringOffset points to the memory offset and InitialStringLength is the number of UTF-16 characters
|
||||||
if (_transferMemory != null && _keyboardFgConfig.InitialStringLength > 0)
|
if (_transferMemory != null && _keyboardForegroundConfig.InitialStringLength > 0)
|
||||||
{
|
{
|
||||||
initialText = Encoding.Unicode.GetString(_transferMemory, _keyboardFgConfig.InitialStringOffset, 2 * _keyboardFgConfig.InitialStringLength);
|
initialText = Encoding.Unicode.GetString(_transferMemory, _keyboardForegroundConfig.InitialStringOffset,
|
||||||
|
2 * _keyboardForegroundConfig.InitialStringLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the max string length is 0, we set it to a large default
|
// If the max string length is 0, we set it to a large default
|
||||||
// length.
|
// length.
|
||||||
if (_keyboardFgConfig.StringLengthMax == 0)
|
if (_keyboardForegroundConfig.StringLengthMax == 0)
|
||||||
{
|
{
|
||||||
_keyboardFgConfig.StringLengthMax = 100;
|
_keyboardForegroundConfig.StringLengthMax = 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
var args = new SoftwareKeyboardUiArgs
|
var args = new SoftwareKeyboardUiArgs
|
||||||
{
|
{
|
||||||
HeaderText = _keyboardFgConfig.HeaderText,
|
HeaderText = _keyboardForegroundConfig.HeaderText,
|
||||||
SubtitleText = _keyboardFgConfig.SubtitleText,
|
SubtitleText = _keyboardForegroundConfig.SubtitleText,
|
||||||
GuideText = _keyboardFgConfig.GuideText,
|
GuideText = _keyboardForegroundConfig.GuideText,
|
||||||
SubmitText = (!string.IsNullOrWhiteSpace(_keyboardFgConfig.SubmitText) ? _keyboardFgConfig.SubmitText : "OK"),
|
SubmitText = (!string.IsNullOrWhiteSpace(_keyboardForegroundConfig.SubmitText) ?
|
||||||
StringLengthMin = _keyboardFgConfig.StringLengthMin,
|
_keyboardForegroundConfig.SubmitText : "OK"),
|
||||||
StringLengthMax = _keyboardFgConfig.StringLengthMax,
|
StringLengthMin = _keyboardForegroundConfig.StringLengthMin,
|
||||||
|
StringLengthMax = _keyboardForegroundConfig.StringLengthMax,
|
||||||
InitialText = initialText
|
InitialText = initialText
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -151,26 +179,26 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
// than our default text, repeat our default text until we meet
|
// than our default text, repeat our default text until we meet
|
||||||
// the minimum length requirement.
|
// the minimum length requirement.
|
||||||
// This should always be done before the text truncation step.
|
// This should always be done before the text truncation step.
|
||||||
while (_textValue.Length < _keyboardFgConfig.StringLengthMin)
|
while (_textValue.Length < _keyboardForegroundConfig.StringLengthMin)
|
||||||
{
|
{
|
||||||
_textValue = String.Join(" ", _textValue, _textValue);
|
_textValue = String.Join(" ", _textValue, _textValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If our default text is longer than the allowed length,
|
// If our default text is longer than the allowed length,
|
||||||
// we truncate it.
|
// we truncate it.
|
||||||
if (_textValue.Length > _keyboardFgConfig.StringLengthMax)
|
if (_textValue.Length > _keyboardForegroundConfig.StringLengthMax)
|
||||||
{
|
{
|
||||||
_textValue = _textValue.Substring(0, (int)_keyboardFgConfig.StringLengthMax);
|
_textValue = _textValue.Substring(0, (int)_keyboardForegroundConfig.StringLengthMax);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Does the application want to validate the text itself?
|
// Does the application want to validate the text itself?
|
||||||
if (_keyboardFgConfig.CheckText)
|
if (_keyboardForegroundConfig.CheckText)
|
||||||
{
|
{
|
||||||
// The application needs to validate the response, so we
|
// The application needs to validate the response, so we
|
||||||
// submit it to the interactive output buffer, and poll it
|
// submit it to the interactive output buffer, and poll it
|
||||||
// for validation. Once validated, the application will submit
|
// for validation. Once validated, the application will submit
|
||||||
// back a validation status, which is handled in OnInteractiveDataPushIn.
|
// back a validation status, which is handled in OnInteractiveDataPushIn.
|
||||||
_state = SoftwareKeyboardState.ValidationPending;
|
_foregroundState = SoftwareKeyboardState.ValidationPending;
|
||||||
|
|
||||||
_interactiveSession.Push(BuildResponse(_textValue, true));
|
_interactiveSession.Push(BuildResponse(_textValue, true));
|
||||||
}
|
}
|
||||||
|
@ -179,7 +207,7 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
// If the application doesn't need to validate the response,
|
// If the application doesn't need to validate the response,
|
||||||
// we push the data to the non-interactive output buffer
|
// we push the data to the non-interactive output buffer
|
||||||
// and poll it for completion.
|
// and poll it for completion.
|
||||||
_state = SoftwareKeyboardState.Complete;
|
_foregroundState = SoftwareKeyboardState.Complete;
|
||||||
|
|
||||||
_normalSession.Push(BuildResponse(_textValue, false));
|
_normalSession.Push(BuildResponse(_textValue, false));
|
||||||
|
|
||||||
|
@ -204,7 +232,7 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
|
|
||||||
private void OnForegroundInteractiveData(byte[] data)
|
private void OnForegroundInteractiveData(byte[] data)
|
||||||
{
|
{
|
||||||
if (_state == SoftwareKeyboardState.ValidationPending)
|
if (_foregroundState == SoftwareKeyboardState.ValidationPending)
|
||||||
{
|
{
|
||||||
// TODO(jduncantor):
|
// TODO(jduncantor):
|
||||||
// If application rejects our "attempt", submit another attempt,
|
// If application rejects our "attempt", submit another attempt,
|
||||||
|
@ -216,9 +244,9 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
|
|
||||||
AppletStateChanged?.Invoke(this, null);
|
AppletStateChanged?.Invoke(this, null);
|
||||||
|
|
||||||
_state = SoftwareKeyboardState.Complete;
|
_foregroundState = SoftwareKeyboardState.Complete;
|
||||||
}
|
}
|
||||||
else if(_state == SoftwareKeyboardState.Complete)
|
else if(_foregroundState == SoftwareKeyboardState.Complete)
|
||||||
{
|
{
|
||||||
// If we have already completed, we push the result text
|
// If we have already completed, we push the result text
|
||||||
// back on the output buffer and poll the application.
|
// back on the output buffer and poll the application.
|
||||||
|
@ -242,142 +270,278 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
using (MemoryStream stream = new MemoryStream(data))
|
using (MemoryStream stream = new MemoryStream(data))
|
||||||
using (BinaryReader reader = new BinaryReader(stream))
|
using (BinaryReader reader = new BinaryReader(stream))
|
||||||
{
|
{
|
||||||
var request = (InlineKeyboardRequest)reader.ReadUInt32();
|
InlineKeyboardRequest request = (InlineKeyboardRequest)reader.ReadUInt32();
|
||||||
|
InlineKeyboardState state = GetInlineState();
|
||||||
long remaining;
|
long remaining;
|
||||||
|
|
||||||
// Always show the keyboard if the state is 'Ready'.
|
Logger.Debug?.Print(LogClass.ServiceAm, $"Keyboard received command {request} in state {state}");
|
||||||
bool showKeyboard = _state == SoftwareKeyboardState.Ready;
|
|
||||||
|
|
||||||
switch (request)
|
switch (request)
|
||||||
{
|
{
|
||||||
case InlineKeyboardRequest.Unknown0: // Unknown request sent by some games after calc
|
|
||||||
_interactiveSession.Push(InlineResponses.Default());
|
|
||||||
break;
|
|
||||||
case InlineKeyboardRequest.UseChangedStringV2:
|
case InlineKeyboardRequest.UseChangedStringV2:
|
||||||
// Not used because we only send the entire string after confirmation.
|
_useChangedStringV2 = true;
|
||||||
_interactiveSession.Push(InlineResponses.Default());
|
|
||||||
break;
|
break;
|
||||||
case InlineKeyboardRequest.UseMovedCursorV2:
|
case InlineKeyboardRequest.UseMovedCursorV2:
|
||||||
// Not used because we only send the entire string after confirmation.
|
// Not used because we only reply with the final string.
|
||||||
_interactiveSession.Push(InlineResponses.Default());
|
break;
|
||||||
|
case InlineKeyboardRequest.SetUserWordInfo:
|
||||||
|
// Read the user word info data.
|
||||||
|
remaining = stream.Length - stream.Position;
|
||||||
|
if (remaining < sizeof(int))
|
||||||
|
{
|
||||||
|
Logger.Warning?.Print(LogClass.ServiceAm, $"Received invalid Software Keyboard User Word Info of {remaining} bytes");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int wordsCount = reader.ReadInt32();
|
||||||
|
int wordSize = Marshal.SizeOf<SoftwareKeyboardUserWord>();
|
||||||
|
remaining = stream.Length - stream.Position;
|
||||||
|
|
||||||
|
if (wordsCount > MaxUserWords)
|
||||||
|
{
|
||||||
|
Logger.Warning?.Print(LogClass.ServiceAm, $"Received {wordsCount} User Words but the maximum is {MaxUserWords}");
|
||||||
|
}
|
||||||
|
else if (wordsCount * wordSize != remaining)
|
||||||
|
{
|
||||||
|
Logger.Warning?.Print(LogClass.ServiceAm, $"Received invalid Software Keyboard User Word Info data of {remaining} bytes for {wordsCount} words");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_keyboardBackgroundUserWords = new SoftwareKeyboardUserWord[wordsCount];
|
||||||
|
|
||||||
|
for (int word = 0; word < wordsCount; word++)
|
||||||
|
{
|
||||||
|
byte[] wordData = reader.ReadBytes(wordSize);
|
||||||
|
_keyboardBackgroundUserWords[word] = ReadStruct<SoftwareKeyboardUserWord>(wordData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_interactiveSession.Push(InlineResponses.ReleasedUserWordInfo(state));
|
||||||
break;
|
break;
|
||||||
case InlineKeyboardRequest.SetCustomizeDic:
|
case InlineKeyboardRequest.SetCustomizeDic:
|
||||||
|
// Read the custom dic data.
|
||||||
|
remaining = stream.Length - stream.Position;
|
||||||
|
if (remaining != Marshal.SizeOf<SoftwareKeyboardCustomizeDic>())
|
||||||
|
{
|
||||||
|
Logger.Warning?.Print(LogClass.ServiceAm, $"Received invalid Software Keyboard Customize Dic of {remaining} bytes");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var keyboardDicData = reader.ReadBytes((int)remaining);
|
||||||
|
_keyboardBackgroundDic = ReadStruct<SoftwareKeyboardCustomizeDic>(keyboardDicData);
|
||||||
|
}
|
||||||
|
_interactiveSession.Push(InlineResponses.UnsetCustomizeDic(state));
|
||||||
|
break;
|
||||||
|
case InlineKeyboardRequest.SetCustomizedDictionaries:
|
||||||
|
// Read the custom dictionaries data.
|
||||||
remaining = stream.Length - stream.Position;
|
remaining = stream.Length - stream.Position;
|
||||||
if (remaining != Marshal.SizeOf<SoftwareKeyboardDictSet>())
|
if (remaining != Marshal.SizeOf<SoftwareKeyboardDictSet>())
|
||||||
{
|
{
|
||||||
Logger.Error?.Print(LogClass.ServiceAm, $"Received invalid Software Keyboard DictSet of {remaining} bytes!");
|
Logger.Warning?.Print(LogClass.ServiceAm, $"Received invalid Software Keyboard DictSet of {remaining} bytes");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var keyboardDictData = reader.ReadBytes((int)remaining);
|
var keyboardDictData = reader.ReadBytes((int)remaining);
|
||||||
_keyboardDict = ReadStruct<SoftwareKeyboardDictSet>(keyboardDictData);
|
_keyboardBackgroundDictSet = ReadStruct<SoftwareKeyboardDictSet>(keyboardDictData);
|
||||||
}
|
}
|
||||||
_interactiveSession.Push(InlineResponses.Default());
|
_interactiveSession.Push(InlineResponses.UnsetCustomizedDictionaries(state));
|
||||||
break;
|
break;
|
||||||
case InlineKeyboardRequest.Calc:
|
case InlineKeyboardRequest.Calc:
|
||||||
// Put the keyboard in a Ready state, this will force showing
|
// The Calc request tells the Applet to enter the main input handling loop, which will end
|
||||||
_state = SoftwareKeyboardState.Ready;
|
// with either a text being submitted or a cancel request from the user.
|
||||||
|
|
||||||
|
// NOTE: Some Calc requests happen early in the process and are not meant to be shown. This possibly
|
||||||
|
// happens because the game has complete control over when the inline keyboard is drawn, but here it
|
||||||
|
// would cause a dialog to pop in the emulator, which is inconvenient. An algorithm is applied to
|
||||||
|
// decide whether it is a dummy Calc or not, but regardless of the result, the dummy Calc appears to
|
||||||
|
// never happen twice, so the keyboard will always show if it has already been shown before.
|
||||||
|
bool forceShowKeyboard = _alreadyShown;
|
||||||
|
_alreadyShown = true;
|
||||||
|
|
||||||
|
// Read the Calc data.
|
||||||
remaining = stream.Length - stream.Position;
|
remaining = stream.Length - stream.Position;
|
||||||
if (remaining != Marshal.SizeOf<SoftwareKeyboardCalc>())
|
if (remaining != Marshal.SizeOf<SoftwareKeyboardCalc>())
|
||||||
{
|
{
|
||||||
Logger.Error?.Print(LogClass.ServiceAm, $"Received invalid Software Keyboard Calc of {remaining} bytes!");
|
Logger.Error?.Print(LogClass.ServiceAm, $"Received invalid Software Keyboard Calc of {remaining} bytes");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var keyboardCalcData = reader.ReadBytes((int)remaining);
|
var keyboardCalcData = reader.ReadBytes((int)remaining);
|
||||||
_keyboardCalc = ReadStruct<SoftwareKeyboardCalc>(keyboardCalcData);
|
_keyboardBackgroundCalc = ReadStruct<SoftwareKeyboardCalc>(keyboardCalcData);
|
||||||
|
|
||||||
if (_keyboardCalc.Utf8Mode == 0x1)
|
// Check if the application expects UTF8 encoding instead of UTF16.
|
||||||
|
if (_keyboardBackgroundCalc.UseUtf8)
|
||||||
{
|
{
|
||||||
_encoding = Encoding.UTF8;
|
_encoding = Encoding.UTF8;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Force showing the keyboard regardless of the state, an unwanted
|
// Force showing the keyboard regardless of the state, an unwanted
|
||||||
// input dialog may show, but it is better than a soft lock.
|
// input dialog may show, but it is better than a soft lock.
|
||||||
if (_keyboardCalc.Appear.ShouldBeHidden == 0)
|
if (_keyboardBackgroundCalc.Appear.ShouldBeHidden == 0)
|
||||||
{
|
{
|
||||||
showKeyboard = true;
|
forceShowKeyboard = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Send an initialization finished signal.
|
// Send an initialization finished signal.
|
||||||
_interactiveSession.Push(InlineResponses.FinishedInitialize());
|
state = InlineKeyboardState.Ready;
|
||||||
|
SetInlineState(state);
|
||||||
|
_interactiveSession.Push(InlineResponses.FinishedInitialize(state));
|
||||||
// Start a task with the GUI handler to get user's input.
|
// Start a task with the GUI handler to get user's input.
|
||||||
new Task(() =>
|
new Task(() => { GetInputTextAndSend(forceShowKeyboard, state); }).Start();
|
||||||
{
|
|
||||||
bool submit = true;
|
|
||||||
string inputText = (!string.IsNullOrWhiteSpace(_keyboardCalc.InputText) ? _keyboardCalc.InputText : DefaultText);
|
|
||||||
|
|
||||||
// Call the configured GUI handler to get user's input.
|
|
||||||
if (!showKeyboard)
|
|
||||||
{
|
|
||||||
// Submit the default text to avoid soft locking if the keyboard was ignored by
|
|
||||||
// accident. It's better to change the name than being locked out of the game.
|
|
||||||
submit = true;
|
|
||||||
inputText = DefaultText;
|
|
||||||
|
|
||||||
Logger.Debug?.Print(LogClass.Application, "Received a dummy Calc, keyboard will not be shown");
|
|
||||||
}
|
|
||||||
else if (_device.UiHandler == null)
|
|
||||||
{
|
|
||||||
Logger.Warning?.Print(LogClass.Application, "GUI Handler is not set. Falling back to default");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var args = new SoftwareKeyboardUiArgs
|
|
||||||
{
|
|
||||||
HeaderText = "", // The inline keyboard lacks these texts
|
|
||||||
SubtitleText = "",
|
|
||||||
GuideText = "",
|
|
||||||
SubmitText = (!string.IsNullOrWhiteSpace(_keyboardCalc.Appear.OkText) ? _keyboardCalc.Appear.OkText : "OK"),
|
|
||||||
StringLengthMin = 0,
|
|
||||||
StringLengthMax = 100,
|
|
||||||
InitialText = inputText
|
|
||||||
};
|
|
||||||
|
|
||||||
submit = _device.UiHandler.DisplayInputDialog(args, out inputText);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (submit)
|
|
||||||
{
|
|
||||||
Logger.Debug?.Print(LogClass.ServiceAm, "Sending keyboard OK...");
|
|
||||||
|
|
||||||
if (_encoding == Encoding.UTF8)
|
|
||||||
{
|
|
||||||
_interactiveSession.Push(InlineResponses.DecidedEnterUtf8(inputText));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_interactiveSession.Push(InlineResponses.DecidedEnter(inputText));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Logger.Debug?.Print(LogClass.ServiceAm, "Sending keyboard Cancel...");
|
|
||||||
_interactiveSession.Push(InlineResponses.DecidedCancel());
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Why is this necessary? Does the software expect a constant stream of responses?
|
|
||||||
Thread.Sleep(500);
|
|
||||||
|
|
||||||
Logger.Debug?.Print(LogClass.ServiceAm, "Resetting state of the keyboard...");
|
|
||||||
_interactiveSession.Push(InlineResponses.Default());
|
|
||||||
}).Start();
|
|
||||||
break;
|
break;
|
||||||
case InlineKeyboardRequest.Finalize:
|
case InlineKeyboardRequest.Finalize:
|
||||||
// The game wants to close the keyboard applet and will wait for a state change.
|
// The calling process wants to close the keyboard applet and will wait for a state change.
|
||||||
_state = SoftwareKeyboardState.Uninitialized;
|
_backgroundState = InlineKeyboardState.Uninitialized;
|
||||||
AppletStateChanged?.Invoke(this, null);
|
AppletStateChanged?.Invoke(this, null);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// We shouldn't be able to get here through standard swkbd execution.
|
// We shouldn't be able to get here through standard swkbd execution.
|
||||||
Logger.Error?.Print(LogClass.ServiceAm, $"Invalid Software Keyboard request {request} during state {_state}!");
|
Logger.Warning?.Print(LogClass.ServiceAm, $"Invalid Software Keyboard request {request} during state {_backgroundState}");
|
||||||
_interactiveSession.Push(InlineResponses.Default());
|
_interactiveSession.Push(InlineResponses.Default(state));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void GetInputTextAndSend(bool forceShowKeyboard, InlineKeyboardState oldState)
|
||||||
|
{
|
||||||
|
bool submit = true;
|
||||||
|
|
||||||
|
// Use the text specified by the Calc if it is available, otherwise use the default one.
|
||||||
|
string inputText = (!string.IsNullOrWhiteSpace(_keyboardBackgroundCalc.InputText) ?
|
||||||
|
_keyboardBackgroundCalc.InputText : DefaultText);
|
||||||
|
|
||||||
|
// Compute the elapsed time for the debouncing algorithm.
|
||||||
|
long currentMillis = PerformanceCounter.ElapsedMilliseconds;
|
||||||
|
long inputElapsedMillis = currentMillis - _lastTextSetMillis;
|
||||||
|
|
||||||
|
// Reset the input text before submitting the final result, that's because some games do not expect
|
||||||
|
// consecutive submissions to abruptly shrink and they will crash if it happens. Changing the string
|
||||||
|
// before the final submission prevents that.
|
||||||
|
InlineKeyboardState newState = InlineKeyboardState.DataAvailable;
|
||||||
|
SetInlineState(newState);
|
||||||
|
ChangedString("", newState);
|
||||||
|
|
||||||
|
if (inputElapsedMillis < DebounceTimeMillis)
|
||||||
|
{
|
||||||
|
// A repeated Calc request has been received without player interaction, after the input has been
|
||||||
|
// sent. This behavior happens in some games, so instead of showing another dialog, just apply a
|
||||||
|
// time-based debouncing algorithm and repeat the last submission, either a value or a cancel.
|
||||||
|
inputText = _textValue;
|
||||||
|
submit = _textValue != null;
|
||||||
|
|
||||||
|
Logger.Warning?.Print(LogClass.Application, "Debouncing repeated keyboard request");
|
||||||
|
}
|
||||||
|
else if (!forceShowKeyboard)
|
||||||
|
{
|
||||||
|
// Submit the default text to avoid soft locking if the keyboard was ignored by
|
||||||
|
// accident. It's better to change the name than being locked out of the game.
|
||||||
|
inputText = DefaultText;
|
||||||
|
|
||||||
|
Logger.Debug?.Print(LogClass.Application, "Received a dummy Calc, keyboard will not be shown");
|
||||||
|
}
|
||||||
|
else if (_device.UiHandler == null)
|
||||||
|
{
|
||||||
|
Logger.Warning?.Print(LogClass.Application, "GUI Handler is not set. Falling back to default");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Call the configured GUI handler to get user's input.
|
||||||
|
var args = new SoftwareKeyboardUiArgs
|
||||||
|
{
|
||||||
|
HeaderText = "", // The inline keyboard lacks these texts
|
||||||
|
SubtitleText = "",
|
||||||
|
GuideText = "",
|
||||||
|
SubmitText = (!string.IsNullOrWhiteSpace(_keyboardBackgroundCalc.Appear.OkText) ?
|
||||||
|
_keyboardBackgroundCalc.Appear.OkText : "OK"),
|
||||||
|
StringLengthMin = 0,
|
||||||
|
StringLengthMax = 100,
|
||||||
|
InitialText = inputText
|
||||||
|
};
|
||||||
|
|
||||||
|
submit = _device.UiHandler.DisplayInputDialog(args, out inputText);
|
||||||
|
inputText = submit ? inputText : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The 'Complete' state indicates the Calc request has been fulfilled by the applet.
|
||||||
|
newState = InlineKeyboardState.Complete;
|
||||||
|
|
||||||
|
if (submit)
|
||||||
|
{
|
||||||
|
Logger.Debug?.Print(LogClass.ServiceAm, "Sending keyboard OK");
|
||||||
|
DecidedEnter(inputText, newState);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Debug?.Print(LogClass.ServiceAm, "Sending keyboard Cancel");
|
||||||
|
DecidedCancel(newState);
|
||||||
|
}
|
||||||
|
|
||||||
|
_interactiveSession.Push(InlineResponses.Default(newState));
|
||||||
|
|
||||||
|
// The constant calls to PopInteractiveData suggest that the keyboard applet continuously reports
|
||||||
|
// data back to the application and this can also be time-sensitive. Pushing a state reset right
|
||||||
|
// after the data has been sent does not work properly and the application will soft-lock. This
|
||||||
|
// delay gives time for the application to catch up with the data and properly process the state
|
||||||
|
// reset.
|
||||||
|
Thread.Sleep(ResetDelayMillis);
|
||||||
|
|
||||||
|
// 'Initialized' is the only known state so far that does not soft-lock the keyboard after use.
|
||||||
|
newState = InlineKeyboardState.Initialized;
|
||||||
|
|
||||||
|
Logger.Debug?.Print(LogClass.ServiceAm, $"Resetting state of the keyboard to {newState}");
|
||||||
|
|
||||||
|
SetInlineState(newState);
|
||||||
|
_interactiveSession.Push(InlineResponses.Default(newState));
|
||||||
|
|
||||||
|
// Keep the text and the timestamp of the input for the debouncing algorithm.
|
||||||
|
_textValue = inputText;
|
||||||
|
_lastTextSetMillis = PerformanceCounter.ElapsedMilliseconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ChangedString(string text, InlineKeyboardState state)
|
||||||
|
{
|
||||||
|
if (_encoding == Encoding.UTF8)
|
||||||
|
{
|
||||||
|
if (_useChangedStringV2)
|
||||||
|
{
|
||||||
|
_interactiveSession.Push(InlineResponses.ChangedStringUtf8V2(text, state));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_interactiveSession.Push(InlineResponses.ChangedStringUtf8(text, state));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_useChangedStringV2)
|
||||||
|
{
|
||||||
|
_interactiveSession.Push(InlineResponses.ChangedStringV2(text, state));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_interactiveSession.Push(InlineResponses.ChangedString(text, state));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DecidedEnter(string text, InlineKeyboardState state)
|
||||||
|
{
|
||||||
|
if (_encoding == Encoding.UTF8)
|
||||||
|
{
|
||||||
|
_interactiveSession.Push(InlineResponses.DecidedEnterUtf8(text, state));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_interactiveSession.Push(InlineResponses.DecidedEnter(text, state));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DecidedCancel(InlineKeyboardState state)
|
||||||
|
{
|
||||||
|
_interactiveSession.Push(InlineResponses.DecidedCancel(state));
|
||||||
|
}
|
||||||
|
|
||||||
private byte[] BuildResponse(string text, bool interactive)
|
private byte[] BuildResponse(string text, bool interactive)
|
||||||
{
|
{
|
||||||
int bufferSize = interactive ? InteractiveBufferSize : StandardBufferSize;
|
int bufferSize = interactive ? InteractiveBufferSize : StandardBufferSize;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A structure that defines the configuration options of the software keyboard.
|
/// A structure with configuration options of the software keyboard when starting a new input request in inline mode.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[StructLayout(LayoutKind.Sequential, Pack=1, CharSet = CharSet.Unicode)]
|
[StructLayout(LayoutKind.Sequential, Pack=1, CharSet = CharSet.Unicode)]
|
||||||
struct SoftwareKeyboardCalc
|
struct SoftwareKeyboardCalc
|
||||||
|
@ -12,28 +12,56 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
|
|
||||||
public uint Unknown;
|
public uint Unknown;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The size of the Calc struct, as reported by the process communicating with the applet.
|
||||||
|
/// </summary>
|
||||||
public ushort Size;
|
public ushort Size;
|
||||||
|
|
||||||
public byte Unknown1;
|
public byte Unknown1;
|
||||||
public byte Unknown2;
|
public byte Unknown2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Configuration flags. Their purpose is currently unknown.
|
||||||
|
/// </summary>
|
||||||
public ulong Flags;
|
public ulong Flags;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The original parameters used when initializing the keyboard applet.
|
||||||
|
/// </summary>
|
||||||
public SoftwareKeyboardInitialize Initialize;
|
public SoftwareKeyboardInitialize Initialize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The audio volume used by the sound effects of the keyboard.
|
||||||
|
/// </summary>
|
||||||
public float Volume;
|
public float Volume;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The initial position of the text cursor (caret) in the provided input text.
|
||||||
|
/// </summary>
|
||||||
public int CursorPos;
|
public int CursorPos;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Appearance configurations for the on-screen keyboard.
|
||||||
|
/// </summary>
|
||||||
public SoftwareKeyboardAppear Appear;
|
public SoftwareKeyboardAppear Appear;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The initial input text to be used by the software keyboard.
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = InputTextLength + 1)]
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = InputTextLength + 1)]
|
||||||
public string InputText;
|
public string InputText;
|
||||||
|
|
||||||
public byte Utf8Mode;
|
/// <summary>
|
||||||
|
/// When set, the strings communicated by software keyboard will be encoded as UTF-8 instead of UTF-16.
|
||||||
|
/// </summary>
|
||||||
|
[MarshalAs(UnmanagedType.I1)]
|
||||||
|
public bool UseUtf8;
|
||||||
|
|
||||||
public byte Unknown3;
|
public byte Unknown3;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// [5.0.0+] Enable the backspace key in the software keyboard.
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.I1)]
|
[MarshalAs(UnmanagedType.I1)]
|
||||||
public bool BackspaceEnabled;
|
public bool BackspaceEnabled;
|
||||||
|
|
||||||
|
@ -41,32 +69,57 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
public byte Unknown5;
|
public byte Unknown5;
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.I1)]
|
[MarshalAs(UnmanagedType.I1)]
|
||||||
public byte KeytopAsFloating;
|
public bool KeytopAsFloating;
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.I1)]
|
[MarshalAs(UnmanagedType.I1)]
|
||||||
public byte FooterScalable;
|
public bool FooterScalable;
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.I1)]
|
[MarshalAs(UnmanagedType.I1)]
|
||||||
public byte AlphaEnabledInInputMode;
|
public bool AlphaEnabledInInputMode;
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.I1)]
|
|
||||||
public byte InputModeFadeType;
|
public byte InputModeFadeType;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// When set, the software keyboard ignores touch input.
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.I1)]
|
[MarshalAs(UnmanagedType.I1)]
|
||||||
public byte TouchDisabled;
|
public bool TouchDisabled;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// When set, the software keyboard ignores hardware keyboard commands.
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.I1)]
|
[MarshalAs(UnmanagedType.I1)]
|
||||||
public byte HardwareKeyboardDisabled;
|
public bool HardwareKeyboardDisabled;
|
||||||
|
|
||||||
public uint Unknown6;
|
public uint Unknown6;
|
||||||
public uint Unknown7;
|
public uint Unknown7;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Default value is 1.0.
|
||||||
|
/// </summary>
|
||||||
public float KeytopScale0;
|
public float KeytopScale0;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Default value is 1.0.
|
||||||
|
/// </summary>
|
||||||
public float KeytopScale1;
|
public float KeytopScale1;
|
||||||
|
|
||||||
public float KeytopTranslate0;
|
public float KeytopTranslate0;
|
||||||
public float KeytopTranslate1;
|
public float KeytopTranslate1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Default value is 1.0.
|
||||||
|
/// </summary>
|
||||||
public float KeytopBgAlpha;
|
public float KeytopBgAlpha;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Default value is 1.0.
|
||||||
|
/// </summary>
|
||||||
public float FooterBgAlpha;
|
public float FooterBgAlpha;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Default value is 1.0.
|
||||||
|
/// </summary>
|
||||||
public float BalloonScale;
|
public float BalloonScale;
|
||||||
|
|
||||||
public float Unknown8;
|
public float Unknown8;
|
||||||
|
@ -74,9 +127,19 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
public uint Unknown10;
|
public uint Unknown10;
|
||||||
public uint Unknown11;
|
public uint Unknown11;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// [5.0.0+] Enable sound effect.
|
||||||
|
/// </summary>
|
||||||
public byte SeGroup;
|
public byte SeGroup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// [6.0.0+] Enables the Trigger field when Trigger is non-zero.
|
||||||
|
/// </summary>
|
||||||
public byte TriggerFlag;
|
public byte TriggerFlag;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// [6.0.0+] Always set to zero.
|
||||||
|
/// </summary>
|
||||||
public byte Trigger;
|
public byte Trigger;
|
||||||
|
|
||||||
public byte Padding;
|
public byte Padding;
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A structure used by SetCustomizeDic request to software keyboard.
|
||||||
|
/// </summary>
|
||||||
|
[StructLayout(LayoutKind.Sequential, Pack = 4)]
|
||||||
|
struct SoftwareKeyboardCustomizeDic
|
||||||
|
{
|
||||||
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 112)]
|
||||||
|
public byte[] Unknown;
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,10 +2,33 @@
|
||||||
|
|
||||||
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
{
|
{
|
||||||
[StructLayout(LayoutKind.Sequential, Pack = 4)]
|
/// <summary>
|
||||||
|
/// A structure with custom dictionary words for the software keyboard.
|
||||||
|
/// </summary>
|
||||||
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
||||||
struct SoftwareKeyboardDictSet
|
struct SoftwareKeyboardDictSet
|
||||||
{
|
{
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 28)]
|
/// <summary>
|
||||||
public uint[] Entries;
|
/// A 0x1000-byte aligned buffer position.
|
||||||
|
/// </summary>
|
||||||
|
public ulong BufferPosition;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A 0x1000-byte aligned buffer size.
|
||||||
|
/// </summary>
|
||||||
|
public uint BufferSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Array of word entries in the buffer.
|
||||||
|
/// </summary>
|
||||||
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)]
|
||||||
|
public ulong[] Entries;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of used entries in the Entries field.
|
||||||
|
/// </summary>
|
||||||
|
public ushort TotalEntries;
|
||||||
|
|
||||||
|
public ushort Padding1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,14 +3,23 @@
|
||||||
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A structure that indicates the initialization the inline software keyboard.
|
/// A structure that mirrors the parameters used to initialize the keyboard applet.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
||||||
struct SoftwareKeyboardInitialize
|
struct SoftwareKeyboardInitialize
|
||||||
{
|
{
|
||||||
public uint Unknown;
|
public uint Unknown;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The applet mode used when launching the swkb. The bits regarding the background vs foreground mode can be wrong.
|
||||||
|
/// </summary>
|
||||||
public byte LibMode;
|
public byte LibMode;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// [5.0.0+] Set to 0x1 to indicate a firmware version >= 5.0.0.
|
||||||
|
/// </summary>
|
||||||
public byte FivePlus;
|
public byte FivePlus;
|
||||||
|
|
||||||
public byte Padding1;
|
public byte Padding1;
|
||||||
public byte Padding2;
|
public byte Padding2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A structure used by SetUserWordInfo request to the software keyboard.
|
||||||
|
/// </summary>
|
||||||
|
[StructLayout(LayoutKind.Sequential, Pack = 4)]
|
||||||
|
struct SoftwareKeyboardUserWord
|
||||||
|
{
|
||||||
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
|
||||||
|
public byte[] Unknown;
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,16 +5,25 @@ using Ryujinx.Common.Logging;
|
||||||
using Ryujinx.Common.Utilities;
|
using Ryujinx.Common.Utilities;
|
||||||
using Ryujinx.HLE.HOS.Services.Account.Acc;
|
using Ryujinx.HLE.HOS.Services.Account.Acc;
|
||||||
using Ryujinx.HLE.Utilities;
|
using Ryujinx.HLE.Utilities;
|
||||||
|
using System;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.HOS.Services.Prepo
|
namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
{
|
{
|
||||||
[Service("prepo:a")]
|
[Service("prepo:a", PrepoServicePermissionLevel.Admin)] // 1.0.0-5.1.0
|
||||||
[Service("prepo:a2")]
|
[Service("prepo:a2", PrepoServicePermissionLevel.Admin)] // 6.0.0+
|
||||||
[Service("prepo:u")]
|
[Service("prepo:m", PrepoServicePermissionLevel.Manager)]
|
||||||
|
[Service("prepo:u", PrepoServicePermissionLevel.User)]
|
||||||
|
[Service("prepo:s", PrepoServicePermissionLevel.System)]
|
||||||
class IPrepoService : IpcService
|
class IPrepoService : IpcService
|
||||||
{
|
{
|
||||||
public IPrepoService(ServiceCtx context) { }
|
private PrepoServicePermissionLevel _permission;
|
||||||
|
private ulong _systemSessionId;
|
||||||
|
|
||||||
|
public IPrepoService(ServiceCtx context, PrepoServicePermissionLevel permission)
|
||||||
|
{
|
||||||
|
_permission = permission;
|
||||||
|
}
|
||||||
|
|
||||||
[Command(10100)] // 1.0.0-5.1.0
|
[Command(10100)] // 1.0.0-5.1.0
|
||||||
[Command(10102)] // 6.0.0-9.2.0
|
[Command(10102)] // 6.0.0-9.2.0
|
||||||
|
@ -22,6 +31,11 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
// SaveReport(u64, pid, buffer<u8, 9>, buffer<bytes, 5>)
|
// SaveReport(u64, pid, buffer<u8, 9>, buffer<bytes, 5>)
|
||||||
public ResultCode SaveReport(ServiceCtx context)
|
public ResultCode SaveReport(ServiceCtx context)
|
||||||
{
|
{
|
||||||
|
if (((int)_permission & 1) == 0)
|
||||||
|
{
|
||||||
|
return ResultCode.PermissionDenied;
|
||||||
|
}
|
||||||
|
|
||||||
// We don't care about the differences since we don't use the play report.
|
// We don't care about the differences since we don't use the play report.
|
||||||
return ProcessReport(context, withUserID: false);
|
return ProcessReport(context, withUserID: false);
|
||||||
}
|
}
|
||||||
|
@ -32,6 +46,11 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
// SaveReportWithUser(nn::account::Uid, u64, pid, buffer<u8, 9>, buffer<bytes, 5>)
|
// SaveReportWithUser(nn::account::Uid, u64, pid, buffer<u8, 9>, buffer<bytes, 5>)
|
||||||
public ResultCode SaveReportWithUser(ServiceCtx context)
|
public ResultCode SaveReportWithUser(ServiceCtx context)
|
||||||
{
|
{
|
||||||
|
if (((int)_permission & 1) == 0)
|
||||||
|
{
|
||||||
|
return ResultCode.PermissionDenied;
|
||||||
|
}
|
||||||
|
|
||||||
// We don't care about the differences since we don't use the play report.
|
// We don't care about the differences since we don't use the play report.
|
||||||
return ProcessReport(context, withUserID: true);
|
return ProcessReport(context, withUserID: true);
|
||||||
}
|
}
|
||||||
|
@ -57,6 +76,29 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
return ResultCode.Success;
|
return ResultCode.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Command(10400)] // 9.0.0+
|
||||||
|
// GetSystemSessionId() -> u64
|
||||||
|
public ResultCode GetSystemSessionId(ServiceCtx context)
|
||||||
|
{
|
||||||
|
if (((int)_permission & 1) == 0)
|
||||||
|
{
|
||||||
|
return ResultCode.PermissionDenied;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_systemSessionId == 0)
|
||||||
|
{
|
||||||
|
byte[] randomBuffer = new byte[8];
|
||||||
|
|
||||||
|
new Random().NextBytes(randomBuffer);
|
||||||
|
|
||||||
|
_systemSessionId = BitConverter.ToUInt64(randomBuffer, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
context.ResponseData.Write(_systemSessionId);
|
||||||
|
|
||||||
|
return ResultCode.Success;
|
||||||
|
}
|
||||||
|
|
||||||
private ResultCode ProcessReport(ServiceCtx context, bool withUserID)
|
private ResultCode ProcessReport(ServiceCtx context, bool withUserID)
|
||||||
{
|
{
|
||||||
UserId userId = withUserID ? context.RequestData.ReadStruct<UserId>() : new UserId();
|
UserId userId = withUserID ? context.RequestData.ReadStruct<UserId>() : new UserId();
|
||||||
|
|
|
@ -7,9 +7,9 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
|
|
||||||
Success = 0,
|
Success = 0,
|
||||||
|
|
||||||
InvalidArgument = (1 << ErrorCodeShift) | ModuleId,
|
InvalidArgument = (1 << ErrorCodeShift) | ModuleId,
|
||||||
InvalidState = (5 << ErrorCodeShift) | ModuleId,
|
InvalidState = (5 << ErrorCodeShift) | ModuleId,
|
||||||
InvalidBufferSize = (9 << ErrorCodeShift) | ModuleId,
|
InvalidBufferSize = (9 << ErrorCodeShift) | ModuleId,
|
||||||
Unknown1 = (90 << ErrorCodeShift) | ModuleId
|
PermissionDenied = (90 << ErrorCodeShift) | ModuleId
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
|
{
|
||||||
|
enum PrepoServicePermissionLevel
|
||||||
|
{
|
||||||
|
Admin = -1,
|
||||||
|
User = 1,
|
||||||
|
System = 2,
|
||||||
|
Manager = 6
|
||||||
|
}
|
||||||
|
}
|
|
@ -220,6 +220,18 @@ namespace Ryujinx.HLE.HOS.Services.Settings
|
||||||
return ResultCode.Success;
|
return ResultCode.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Command(60)]
|
||||||
|
// IsUserSystemClockAutomaticCorrectionEnabled() -> bool
|
||||||
|
public ResultCode IsUserSystemClockAutomaticCorrectionEnabled(ServiceCtx context)
|
||||||
|
{
|
||||||
|
// NOTE: When set to true, is automatically synced with the internet.
|
||||||
|
context.ResponseData.Write(true);
|
||||||
|
|
||||||
|
Logger.Stub?.PrintStub(LogClass.ServiceSet, "Stubbed");
|
||||||
|
|
||||||
|
return ResultCode.Success;
|
||||||
|
}
|
||||||
|
|
||||||
public byte[] GetFirmwareData(Switch device)
|
public byte[] GetFirmwareData(Switch device)
|
||||||
{
|
{
|
||||||
long titleId = 0x0100000000000809;
|
long titleId = 0x0100000000000809;
|
||||||
|
|
|
@ -89,30 +89,32 @@ namespace Ryujinx
|
||||||
string localConfigurationPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json");
|
string localConfigurationPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json");
|
||||||
string appDataConfigurationPath = Path.Combine(AppDataManager.BaseDirPath, "Config.json");
|
string appDataConfigurationPath = Path.Combine(AppDataManager.BaseDirPath, "Config.json");
|
||||||
|
|
||||||
// Now load the configuration as the other subsystems are now registered.
|
// Now load the configuration as the other subsystems are now registered
|
||||||
if (File.Exists(localConfigurationPath))
|
ConfigurationPath = File.Exists(localConfigurationPath)
|
||||||
|
? localConfigurationPath
|
||||||
|
: File.Exists(appDataConfigurationPath)
|
||||||
|
? appDataConfigurationPath
|
||||||
|
: null;
|
||||||
|
|
||||||
|
if (ConfigurationPath == null)
|
||||||
{
|
{
|
||||||
ConfigurationPath = localConfigurationPath;
|
// No configuration, we load the default values and save it to disk
|
||||||
|
|
||||||
ConfigurationFileFormat configurationFileFormat = ConfigurationFileFormat.Load(localConfigurationPath);
|
|
||||||
|
|
||||||
ConfigurationState.Instance.Load(configurationFileFormat, ConfigurationPath);
|
|
||||||
}
|
|
||||||
else if (File.Exists(appDataConfigurationPath))
|
|
||||||
{
|
|
||||||
ConfigurationPath = appDataConfigurationPath;
|
|
||||||
|
|
||||||
ConfigurationFileFormat configurationFileFormat = ConfigurationFileFormat.Load(appDataConfigurationPath);
|
|
||||||
|
|
||||||
ConfigurationState.Instance.Load(configurationFileFormat, ConfigurationPath);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// No configuration, we load the default values and save it on disk.
|
|
||||||
ConfigurationPath = appDataConfigurationPath;
|
ConfigurationPath = appDataConfigurationPath;
|
||||||
|
|
||||||
ConfigurationState.Instance.LoadDefault();
|
ConfigurationState.Instance.LoadDefault();
|
||||||
ConfigurationState.Instance.ToFileFormat().SaveConfig(appDataConfigurationPath);
|
ConfigurationState.Instance.ToFileFormat().SaveConfig(ConfigurationPath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ConfigurationFileFormat.TryLoad(ConfigurationPath, out ConfigurationFileFormat configurationFileFormat))
|
||||||
|
{
|
||||||
|
ConfigurationState.Instance.Load(configurationFileFormat, ConfigurationPath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ConfigurationState.Instance.LoadDefault();
|
||||||
|
Logger.Warning?.PrintMsg(LogClass.Application, $"Failed to load config! Loading the default config instead.\nFailed config location {ConfigurationPath}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (startFullscreenArg)
|
if (startFullscreenArg)
|
||||||
|
@ -120,7 +122,7 @@ namespace Ryujinx
|
||||||
ConfigurationState.Instance.Ui.StartFullscreen.Value = true;
|
ConfigurationState.Instance.Ui.StartFullscreen.Value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Logging system informations.
|
// Logging system information.
|
||||||
PrintSystemInfo();
|
PrintSystemInfo();
|
||||||
|
|
||||||
// Initialize Gtk.
|
// Initialize Gtk.
|
||||||
|
|
|
@ -157,6 +157,17 @@ namespace Ryujinx.Ui
|
||||||
if (ConfigurationState.Instance.Ui.GuiColumns.FileSizeColumn) _fileSizeToggle.Active = true;
|
if (ConfigurationState.Instance.Ui.GuiColumns.FileSizeColumn) _fileSizeToggle.Active = true;
|
||||||
if (ConfigurationState.Instance.Ui.GuiColumns.PathColumn) _pathToggle.Active = true;
|
if (ConfigurationState.Instance.Ui.GuiColumns.PathColumn) _pathToggle.Active = true;
|
||||||
|
|
||||||
|
_favToggle.Toggled += Fav_Toggled;
|
||||||
|
_iconToggle.Toggled += Icon_Toggled;
|
||||||
|
_appToggle.Toggled += App_Toggled;
|
||||||
|
_developerToggle.Toggled += Developer_Toggled;
|
||||||
|
_versionToggle.Toggled += Version_Toggled;
|
||||||
|
_timePlayedToggle.Toggled += TimePlayed_Toggled;
|
||||||
|
_lastPlayedToggle.Toggled += LastPlayed_Toggled;
|
||||||
|
_fileExtToggle.Toggled += FileExt_Toggled;
|
||||||
|
_fileSizeToggle.Toggled += FileSize_Toggled;
|
||||||
|
_pathToggle.Toggled += Path_Toggled;
|
||||||
|
|
||||||
_gameTable.Model = _tableStore = new ListStore(
|
_gameTable.Model = _tableStore = new ListStore(
|
||||||
typeof(bool),
|
typeof(bool),
|
||||||
typeof(Gdk.Pixbuf),
|
typeof(Gdk.Pixbuf),
|
||||||
|
@ -1142,7 +1153,7 @@ namespace Ryujinx.Ui
|
||||||
UpdateColumns();
|
UpdateColumns();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Title_Toggled(object sender, EventArgs args)
|
private void App_Toggled(object sender, EventArgs args)
|
||||||
{
|
{
|
||||||
ConfigurationState.Instance.Ui.GuiColumns.AppColumn.Value = _appToggle.Active;
|
ConfigurationState.Instance.Ui.GuiColumns.AppColumn.Value = _appToggle.Active;
|
||||||
|
|
||||||
|
|
|
@ -171,7 +171,6 @@
|
||||||
<property name="tooltip_text" translatable="yes">Enable or Disable Favorite Games Column in the game list</property>
|
<property name="tooltip_text" translatable="yes">Enable or Disable Favorite Games Column in the game list</property>
|
||||||
<property name="label" translatable="yes">Enable Favorite Games Column</property>
|
<property name="label" translatable="yes">Enable Favorite Games Column</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<signal name="toggled" handler="Fav_Toggled" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -181,7 +180,6 @@
|
||||||
<property name="tooltip_text" translatable="yes">Enable or Disable Icon Column in the game list</property>
|
<property name="tooltip_text" translatable="yes">Enable or Disable Icon Column in the game list</property>
|
||||||
<property name="label" translatable="yes">Enable Icon Column</property>
|
<property name="label" translatable="yes">Enable Icon Column</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<signal name="toggled" handler="Icon_Toggled" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -191,7 +189,6 @@
|
||||||
<property name="tooltip_text" translatable="yes">Enable or Disable Title Name/ID Column in the game list</property>
|
<property name="tooltip_text" translatable="yes">Enable or Disable Title Name/ID Column in the game list</property>
|
||||||
<property name="label" translatable="yes">Enable Title Name/ID Column</property>
|
<property name="label" translatable="yes">Enable Title Name/ID Column</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<signal name="toggled" handler="Title_Toggled" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -201,7 +198,6 @@
|
||||||
<property name="tooltip_text" translatable="yes">Enable or Disable Developer Column in the game list</property>
|
<property name="tooltip_text" translatable="yes">Enable or Disable Developer Column in the game list</property>
|
||||||
<property name="label" translatable="yes">Enable Developer Column</property>
|
<property name="label" translatable="yes">Enable Developer Column</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<signal name="toggled" handler="Developer_Toggled" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -211,7 +207,6 @@
|
||||||
<property name="tooltip_text" translatable="yes">Enable or Disable Version Column in the game list</property>
|
<property name="tooltip_text" translatable="yes">Enable or Disable Version Column in the game list</property>
|
||||||
<property name="label" translatable="yes">Enable Version Column</property>
|
<property name="label" translatable="yes">Enable Version Column</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<signal name="toggled" handler="Version_Toggled" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -221,7 +216,6 @@
|
||||||
<property name="tooltip_text" translatable="yes">Enable or Disable Time Played Column in the game list</property>
|
<property name="tooltip_text" translatable="yes">Enable or Disable Time Played Column in the game list</property>
|
||||||
<property name="label" translatable="yes">Enable Time Played Column</property>
|
<property name="label" translatable="yes">Enable Time Played Column</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<signal name="toggled" handler="TimePlayed_Toggled" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -231,7 +225,6 @@
|
||||||
<property name="tooltip_text" translatable="yes">Enable or Disable Last Played Column in the game list</property>
|
<property name="tooltip_text" translatable="yes">Enable or Disable Last Played Column in the game list</property>
|
||||||
<property name="label" translatable="yes">Enable Last Played Column</property>
|
<property name="label" translatable="yes">Enable Last Played Column</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<signal name="toggled" handler="LastPlayed_Toggled" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -241,7 +234,6 @@
|
||||||
<property name="tooltip_text" translatable="yes">Enable or Disable file extension column in the game list</property>
|
<property name="tooltip_text" translatable="yes">Enable or Disable file extension column in the game list</property>
|
||||||
<property name="label" translatable="yes">Enable File Ext Column</property>
|
<property name="label" translatable="yes">Enable File Ext Column</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<signal name="toggled" handler="FileExt_Toggled" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -251,7 +243,6 @@
|
||||||
<property name="tooltip_text" translatable="yes">Enable or Disable File Size Column in the game list</property>
|
<property name="tooltip_text" translatable="yes">Enable or Disable File Size Column in the game list</property>
|
||||||
<property name="label" translatable="yes">Enable File Size Column</property>
|
<property name="label" translatable="yes">Enable File Size Column</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<signal name="toggled" handler="FileSize_Toggled" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -261,7 +252,6 @@
|
||||||
<property name="tooltip_text" translatable="yes">Enable or Disable Path Column in the game list</property>
|
<property name="tooltip_text" translatable="yes">Enable or Disable Path Column in the game list</property>
|
||||||
<property name="label" translatable="yes">Enable Path Column</property>
|
<property name="label" translatable="yes">Enable Path Column</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<signal name="toggled" handler="Path_Toggled" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
|
|
@ -11,14 +11,15 @@
|
||||||
id="Layer_1"
|
id="Layer_1"
|
||||||
x="0px"
|
x="0px"
|
||||||
y="0px"
|
y="0px"
|
||||||
viewBox="0 0 1000.8 1000"
|
viewBox="0 0 1000.8 1300"
|
||||||
style="enable-background:new 0 0 1000.8 1000;"
|
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
sodipodi:docname="JoyConLeft.svg"
|
sodipodi:docname="Controller_JoyConLeft.svg"
|
||||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"><metadata
|
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||||
|
width="1000.8"
|
||||||
|
height="1300"><metadata
|
||||||
id="metadata85"><rdf:RDF><cc:Work
|
id="metadata85"><rdf:RDF><cc:Work
|
||||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||||
id="defs83" /><sodipodi:namedview
|
id="defs83" /><sodipodi:namedview
|
||||||
pagecolor="#ffffff"
|
pagecolor="#ffffff"
|
||||||
bordercolor="#666666"
|
bordercolor="#666666"
|
||||||
|
@ -33,12 +34,13 @@
|
||||||
id="namedview81"
|
id="namedview81"
|
||||||
showgrid="false"
|
showgrid="false"
|
||||||
inkscape:zoom="0.66711859"
|
inkscape:zoom="0.66711859"
|
||||||
inkscape:cx="290.89733"
|
inkscape:cx="382.99646"
|
||||||
inkscape:cy="479.45052"
|
inkscape:cy="624.3517"
|
||||||
inkscape:window-x="1400"
|
inkscape:window-x="1400"
|
||||||
inkscape:window-y="0"
|
inkscape:window-y="0"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="1"
|
||||||
inkscape:current-layer="Layer_1" />
|
inkscape:current-layer="g344"
|
||||||
|
inkscape:document-rotation="0" />
|
||||||
<style
|
<style
|
||||||
type="text/css"
|
type="text/css"
|
||||||
id="style2">
|
id="style2">
|
||||||
|
@ -77,7 +79,8 @@
|
||||||
.st2{fill:#FF5F55;}
|
.st2{fill:#FF5F55;}
|
||||||
.st3{fill:#FFFFFF;}
|
.st3{fill:#FFFFFF;}
|
||||||
</style><g
|
</style><g
|
||||||
id="g344"><path
|
id="g344"
|
||||||
|
transform="translate(0,300)"><path
|
||||||
class="st3"
|
class="st3"
|
||||||
d="m 413.1,906.6 h -7.9 c -3.6,0 -6.4,-2.9 -6.5,-6.5 V 71.2 c 0,-3.6 2.9,-6.4 6.5,-6.5 h 7.9 c 3.6,0 6.4,2.9 6.5,6.5 V 207 c 0,4.9 -1.2,9.6 -3.4,14 l -6.7,13 v 79.2 l 6.7,13 c 2.2,4.3 3.4,9.1 3.4,13.9 v 269.7 c 0,4.9 -1.2,9.6 -3.4,14 l -6.7,13 V 716 l 6.7,13 c 2.2,4.3 3.4,9.1 3.4,13.9 v 157.2 c 0,3.6 -2.9,6.5 -6.5,6.5 z M 405.2,65.7 c -3,0 -5.5,2.4 -5.5,5.5 v 828.9 c 0,3 2.4,5.5 5.5,5.5 h 7.9 c 3,0 5.5,-2.4 5.5,-5.5 V 742.9 c 0,-4.7 -1.1,-9.3 -3.3,-13.5 l -6.8,-13.1 c 0,-0.1 -0.1,-0.2 -0.1,-0.2 v -79.5 c 0,-0.1 0,-0.2 0.1,-0.2 l 6.8,-13.1 c 2.2,-4.2 3.3,-8.8 3.3,-13.5 V 340.1 c 0,-4.7 -1.1,-9.3 -3.3,-13.5 l -6.8,-13.1 c 0,-0.1 -0.1,-0.2 -0.1,-0.2 v -79.5 c 0,-0.1 0,-0.2 0.1,-0.2 l 6.8,-13.1 c 2.2,-4.2 3.3,-8.8 3.3,-13.5 V 71.2 c 0,-3 -2.4,-5.5 -5.5,-5.5 z"
|
d="m 413.1,906.6 h -7.9 c -3.6,0 -6.4,-2.9 -6.5,-6.5 V 71.2 c 0,-3.6 2.9,-6.4 6.5,-6.5 h 7.9 c 3.6,0 6.4,2.9 6.5,6.5 V 207 c 0,4.9 -1.2,9.6 -3.4,14 l -6.7,13 v 79.2 l 6.7,13 c 2.2,4.3 3.4,9.1 3.4,13.9 v 269.7 c 0,4.9 -1.2,9.6 -3.4,14 l -6.7,13 V 716 l 6.7,13 c 2.2,4.3 3.4,9.1 3.4,13.9 v 157.2 c 0,3.6 -2.9,6.5 -6.5,6.5 z M 405.2,65.7 c -3,0 -5.5,2.4 -5.5,5.5 v 828.9 c 0,3 2.4,5.5 5.5,5.5 h 7.9 c 3,0 5.5,-2.4 5.5,-5.5 V 742.9 c 0,-4.7 -1.1,-9.3 -3.3,-13.5 l -6.8,-13.1 c 0,-0.1 -0.1,-0.2 -0.1,-0.2 v -79.5 c 0,-0.1 0,-0.2 0.1,-0.2 l 6.8,-13.1 c 2.2,-4.2 3.3,-8.8 3.3,-13.5 V 340.1 c 0,-4.7 -1.1,-9.3 -3.3,-13.5 l -6.8,-13.1 c 0,-0.1 -0.1,-0.2 -0.1,-0.2 v -79.5 c 0,-0.1 0,-0.2 0.1,-0.2 l 6.8,-13.1 c 2.2,-4.2 3.3,-8.8 3.3,-13.5 V 71.2 c 0,-3 -2.4,-5.5 -5.5,-5.5 z"
|
||||||
id="path66-7"
|
id="path66-7"
|
||||||
|
@ -98,28 +101,29 @@
|
||||||
d="m 413.1,314.3 h -4.2 c -0.6,0 -1,-0.4 -1,-1 v -79.5 c 0,-0.6 0.4,-1 1,-1 h 4.2 c 3.8,0 6.9,3.1 7,7 v 67.6 c 0,3.8 -3.1,6.9 -7,6.9 z m -3.2,-2 h 3.2 c 2.7,0 5,-2.2 5,-5 v -67.6 c 0,-2.7 -2.2,-5 -5,-5 h -3.2 z"
|
d="m 413.1,314.3 h -4.2 c -0.6,0 -1,-0.4 -1,-1 v -79.5 c 0,-0.6 0.4,-1 1,-1 h 4.2 c 3.8,0 6.9,3.1 7,7 v 67.6 c 0,3.8 -3.1,6.9 -7,6.9 z m -3.2,-2 h 3.2 c 2.7,0 5,-2.2 5,-5 v -67.6 c 0,-2.7 -2.2,-5 -5,-5 h -3.2 z"
|
||||||
id="path100"
|
id="path100"
|
||||||
style="fill:#000000" /><path
|
style="fill:#000000" /><path
|
||||||
style="fill:#01c6e6;fill-opacity:0.992157;stroke:#4d4d4d;stroke-width:1"
|
style="fill:#00bbdb;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 257.47599,997.49473 c -26.30234,-2.3493 -49.90186,-9.17738 -75.04426,-21.71262 C 117.17154,943.24531 74.755874,881.82088 66.727355,808.2243 64.943441,791.87136 64.94041,218.41588 66.724145,200.93415 69.379611,174.90893 75.914592,151.99608 87.247373,128.97592 118.63505,65.218492 179.0982,21.796519 249.3051,12.593199 c 18.18131,-2.383363 133.61873,-2.6919419 135.94726,-0.363405 1.12672,1.12671 1.45478,112.251076 1.45478,492.764216 0,484.50248 -0.0325,491.32681 -2.34493,492.5644 -2.80172,1.49943 -109.98822,1.44564 -126.88622,-0.0636 z"
|
d="M 257.24031,997.87141 C 231.00562,994.85925 207.29188,989.42604 182.14949,976.89078 160.25417,965.97443 141.01707,951.17849 124.7007,934.38991 92.385223,901.13922 70.993413,856.60594 65.658526,807.7016 65.28629,804.28935 65.60032,777.25611 65.321787,735.45113 64.265473,576.90901 64.42116,214.87541 65.832698,201.04147 c 1.806274,-17.70261 6.06302,-36.49109 12.012095,-52.35867 2.796862,-7.4599 7.091312,-15.77684 10.715421,-23.13845 C 119.94788,61.78692 180.7783,21.164531 250.9852,11.961211 269.16651,9.5778481 384.12059,8.7019738 386.44913,11.030497 c 0.15343,0.153425 0.87429,2.31235 1.04555,7.011277 0.40459,11.1005 0.35029,35.996153 1.26274,79.381547 0.6886,32.741359 -0.0274,76.313339 0.10052,132.519699 0.15984,70.25759 -1.57659,160.16298 -1.57659,274.77051 0,484.50248 1.44371,491.1849 -0.86873,492.42248 -0.32431,0.17356 -2.47056,1.663 -5.33883,1.8051 -21.9107,1.08549 -119.24063,-0.54237 -120.56646,-0.6946 z"
|
||||||
id="path1144" /><polygon
|
id="path1144"
|
||||||
|
sodipodi:nodetypes="ssssssssssssssssss" /><polygon
|
||||||
class="st1"
|
class="st1"
|
||||||
points="237.9,448.9 225.8,469.9 250,469.9 "
|
points="225.8,469.9 250,469.9 237.9,448.9 "
|
||||||
id="polygon80"
|
id="polygon80"
|
||||||
style="fill:#333333;stroke:#4d4d4d;stroke-width:0.927894"
|
style="fill:#333333;stroke:#000000;stroke-width:0.927894;stroke-opacity:1"
|
||||||
transform="matrix(1.1037134,0,0,1.0523169,-24.636066,-24.267048)" /><polygon
|
transform="matrix(1.1037134,0,0,1.0523169,-24.636066,-24.267048)" /><polygon
|
||||||
class="st1"
|
class="st1"
|
||||||
points="250,605.9 237.9,626.9 225.8,605.9 "
|
points="237.9,626.9 225.8,605.9 250,605.9 "
|
||||||
id="polygon82"
|
id="polygon82"
|
||||||
style="fill:#333333;stroke:#4d4d4d;stroke-width:0.957418"
|
style="fill:#333333;stroke:#000000;stroke-width:0.957418;stroke-opacity:1"
|
||||||
transform="matrix(1.0574383,0,0,1.0316716,-13.259456,-19.457378)" /><polygon
|
transform="matrix(1.0574383,0,0,1.0316716,-13.259456,-19.457378)" /><polygon
|
||||||
class="st1"
|
class="st1"
|
||||||
points="169.9,525.8 148.9,537.9 169.9,550 "
|
points="148.9,537.9 169.9,550 169.9,525.8 "
|
||||||
id="polygon84"
|
id="polygon84"
|
||||||
style="fill:#333333;stroke:#4d4d4d;stroke-width:0.931439"
|
style="fill:#333333;stroke:#000000;stroke-width:0.931439;stroke-opacity:1"
|
||||||
transform="matrix(1.0443863,0,0,1.1036462,-7.5389156,-55.555947)" /><polygon
|
transform="matrix(1.0443863,0,0,1.1036462,-7.5389156,-55.555947)" /><polygon
|
||||||
class="st1"
|
class="st1"
|
||||||
points="326.9,537.9 305.9,550 305.9,525.8 "
|
points="305.9,550 305.9,525.8 326.9,537.9 "
|
||||||
id="polygon86"
|
id="polygon86"
|
||||||
style="fill:#333333;stroke:#4d4d4d;stroke-width:0.849928"
|
style="fill:#333333;stroke:#000000;stroke-width:0.849928;stroke-opacity:1"
|
||||||
transform="matrix(1.2181479,0,0,1.1364095,-67.797686,-73.39984)" /><path
|
transform="matrix(1.2181479,0,0,1.1364095,-67.797686,-73.39984)" /><path
|
||||||
class="st1"
|
class="st1"
|
||||||
d="m 81.300444,139.3 c -0.3,0 -0.5,-0.1 -0.7,-0.3 l -3.4,-3.4 c -2,-2 -2.6,-5.1 -1.5,-7.8 C 110.50044,50.1 187.70044,0.1 272.90044,0 h 51.2 c 3.8,0 6.9,3.1 7,7 v 2.6 c 0,0.6 -0.4,1 -1,1 h -54.2 c -84.5,-0.1 -160.8,50.4 -193.699996,128.1 -0.1,0.3 -0.4,0.5 -0.7,0.6 -0.1,0 -0.2,0 -0.2,0 z M 272.90044,2 c -84.4,0.1 -160.9,49.7 -195.399996,126.7 -0.8,1.9 -0.4,4.1 1.1,5.5 l 2.4,2.4 C 114.60044,58.8 191.30044,8.5 276.00044,8.6 h 53.2 V 7 c 0,-2.7 -2.2,-5 -5,-5 z"
|
d="m 81.300444,139.3 c -0.3,0 -0.5,-0.1 -0.7,-0.3 l -3.4,-3.4 c -2,-2 -2.6,-5.1 -1.5,-7.8 C 110.50044,50.1 187.70044,0.1 272.90044,0 h 51.2 c 3.8,0 6.9,3.1 7,7 v 2.6 c 0,0.6 -0.4,1 -1,1 h -54.2 c -84.5,-0.1 -160.8,50.4 -193.699996,128.1 -0.1,0.3 -0.4,0.5 -0.7,0.6 -0.1,0 -0.2,0 -0.2,0 z M 272.90044,2 c -84.4,0.1 -160.9,49.7 -195.399996,126.7 -0.8,1.9 -0.4,4.1 1.1,5.5 l 2.4,2.4 C 114.60044,58.8 191.30044,8.5 276.00044,8.6 h 53.2 V 7 c 0,-2.7 -2.2,-5 -5,-5 z"
|
||||||
|
@ -173,25 +177,25 @@
|
||||||
d="m 237.90044,339 c -1.2,0 -2.3,0 -3.4,-0.1 -0.5,0 -0.9,-0.5 -0.9,-1 v -12.3 c 0,-2.5 -1.8,-4.6 -4.3,-4.9 -25.6,-3.9 -45.7,-24 -49.6,-49.6 -0.3,-2.5 -2.4,-4.3 -4.9,-4.3 h -12.3 c -0.5,0 -1,-0.4 -1,-0.9 -0.1,-1.1 -0.1,-2.2 -0.1,-3.4 0,-1.2 0,-2.3 0.1,-3.4 0,-0.5 0.5,-0.9 1,-0.9 h 12.3 c 2.5,0 4.6,-1.8 4.9,-4.3 3.9,-25.6 24,-45.7 49.6,-49.6 2.5,-0.3 4.3,-2.4 4.3,-4.9 v -12.3 c 0,-0.5 0.4,-1 0.9,-1 2.3,-0.1 4.5,-0.1 6.8,0 0.5,0 0.9,0.5 0.9,1 v 12.3 c 0,2.5 1.8,4.6 4.3,4.9 25.6,3.9 45.7,24 49.6,49.6 0.3,2.5 2.4,4.3 4.9,4.3 h 12.3 c 0.5,0 1,0.4 1,0.9 0.1,1.1 0.1,2.2 0.1,3.4 0,1.2 0,2.3 -0.1,3.4 0,0.5 -0.5,0.9 -1,0.9 h -12.3 c -2.5,0 -4.6,1.8 -4.9,4.3 -3.9,25.6 -24,45.7 -49.6,49.6 -2.5,0.3 -4.3,2.4 -4.3,4.9 v 12.3 c 0,0.5 -0.4,1 -0.9,1 -1.1,0.1 -2.2,0.1 -3.4,0.1 z m -2.3,-2 c 1.5,0.1 3.1,0.1 4.7,0 v -11.3 c 0,-3.5 2.6,-6.4 6,-6.9 24.7,-3.7 44.2,-23.1 47.9,-47.9 0.5,-3.4 3.4,-6 6.9,-6 h 11.3 c 0,-0.8 0,-1.5 0,-2.3 0,-0.8 0,-1.6 0,-2.3 h -11.4 c -3.5,0 -6.4,-2.6 -6.9,-6 -3.7,-24.7 -23.1,-44.2 -47.9,-47.9 -3.4,-0.5 -6,-3.4 -6,-6.9 v -11.3 c -1.5,-0.1 -3.1,-0.1 -4.7,0 v 11.3 c 0,3.5 -2.6,6.4 -6,6.9 -24.7,3.7 -44.2,23.1 -47.9,47.9 -0.5,3.4 -3.4,6 -6.9,6 h -11.3 c 0,0.8 0,1.5 0,2.3 0,0.8 0,1.6 0,2.3 h 11.3 c 3.5,0 6.4,2.6 6.9,6 3.7,24.7 23.1,44.2 47.9,47.9 3.4,0.5 6,3.4 6,6.9 z"
|
d="m 237.90044,339 c -1.2,0 -2.3,0 -3.4,-0.1 -0.5,0 -0.9,-0.5 -0.9,-1 v -12.3 c 0,-2.5 -1.8,-4.6 -4.3,-4.9 -25.6,-3.9 -45.7,-24 -49.6,-49.6 -0.3,-2.5 -2.4,-4.3 -4.9,-4.3 h -12.3 c -0.5,0 -1,-0.4 -1,-0.9 -0.1,-1.1 -0.1,-2.2 -0.1,-3.4 0,-1.2 0,-2.3 0.1,-3.4 0,-0.5 0.5,-0.9 1,-0.9 h 12.3 c 2.5,0 4.6,-1.8 4.9,-4.3 3.9,-25.6 24,-45.7 49.6,-49.6 2.5,-0.3 4.3,-2.4 4.3,-4.9 v -12.3 c 0,-0.5 0.4,-1 0.9,-1 2.3,-0.1 4.5,-0.1 6.8,0 0.5,0 0.9,0.5 0.9,1 v 12.3 c 0,2.5 1.8,4.6 4.3,4.9 25.6,3.9 45.7,24 49.6,49.6 0.3,2.5 2.4,4.3 4.9,4.3 h 12.3 c 0.5,0 1,0.4 1,0.9 0.1,1.1 0.1,2.2 0.1,3.4 0,1.2 0,2.3 -0.1,3.4 0,0.5 -0.5,0.9 -1,0.9 h -12.3 c -2.5,0 -4.6,1.8 -4.9,4.3 -3.9,25.6 -24,45.7 -49.6,49.6 -2.5,0.3 -4.3,2.4 -4.3,4.9 v 12.3 c 0,0.5 -0.4,1 -0.9,1 -1.1,0.1 -2.2,0.1 -3.4,0.1 z m -2.3,-2 c 1.5,0.1 3.1,0.1 4.7,0 v -11.3 c 0,-3.5 2.6,-6.4 6,-6.9 24.7,-3.7 44.2,-23.1 47.9,-47.9 0.5,-3.4 3.4,-6 6.9,-6 h 11.3 c 0,-0.8 0,-1.5 0,-2.3 0,-0.8 0,-1.6 0,-2.3 h -11.4 c -3.5,0 -6.4,-2.6 -6.9,-6 -3.7,-24.7 -23.1,-44.2 -47.9,-47.9 -3.4,-0.5 -6,-3.4 -6,-6.9 v -11.3 c -1.5,-0.1 -3.1,-0.1 -4.7,0 v 11.3 c 0,3.5 -2.6,6.4 -6,6.9 -24.7,3.7 -44.2,23.1 -47.9,47.9 -0.5,3.4 -3.4,6 -6.9,6 h -11.3 c 0,0.8 0,1.5 0,2.3 0,0.8 0,1.6 0,2.3 h 11.3 c 3.5,0 6.4,2.6 6.9,6 3.7,24.7 23.1,44.2 47.9,47.9 3.4,0.5 6,3.4 6,6.9 z"
|
||||||
id="path126"
|
id="path126"
|
||||||
style="fill:#000000" /><path
|
style="fill:#000000" /><path
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.999997"
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:0.999997;stroke-opacity:1"
|
||||||
d="m 158.02789,574.27925 c -14.73064,-3.25266 -24.85554,-12.70578 -29.04419,-27.11717 -0.98592,-3.39218 -1.21679,-6.26957 -0.93511,-11.65556 0.33774,-6.4583 0.67944,-7.76803 3.52546,-13.51272 11.35216,-22.91431 40.68588,-27.928 58.61532,-10.01846 19.42229,19.40073 11.99924,51.86436 -13.89781,60.78009 -5.19354,1.788 -13.81105,2.50701 -18.26367,1.52382 z m 12.59864,-36.29462 c 0,-7.35074 -0.18108,-13.36496 -0.40241,-13.36496 -0.89601,0 -23.32454,13.1809 -22.99291,13.51259 0.66445,0.66458 22.24473,13.11359 22.82266,13.1657 0.31497,0.0284 0.57266,-5.96261 0.57266,-13.31333 z"
|
d="m 158.02789,574.27925 c -14.73064,-3.25266 -24.85554,-12.70578 -29.04419,-27.11717 -0.98592,-3.39218 -1.21679,-6.26957 -0.93511,-11.65556 0.33774,-6.4583 0.67944,-7.76803 3.52546,-13.51272 11.35216,-22.91431 40.68588,-27.928 58.61532,-10.01846 19.42229,19.40073 11.99924,51.86436 -13.89781,60.78009 -5.19354,1.788 -13.81105,2.50701 -18.26367,1.52382 z m 12.59864,-36.29462 c 0,-7.35074 -0.18108,-13.36496 -0.40241,-13.36496 -0.89601,0 -23.32454,13.1809 -22.99291,13.51259 0.66445,0.66458 22.24473,13.11359 22.82266,13.1657 0.31497,0.0284 0.57266,-5.96261 0.57266,-13.31333 z"
|
||||||
id="path179" /><path
|
id="path179" /><path
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.999997"
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:0.999997;stroke-opacity:1"
|
||||||
d="m 232.50517,500.57091 c -6.91699,-0.86484 -15.04235,-4.99807 -20.4853,-10.42051 -14.58513,-14.53016 -14.55979,-36.85709 0.0584,-51.42015 23.0282,-22.94142 62.26853,-6.95317 62.26853,25.37095 0,10.34881 -3.46897,18.75364 -10.723,25.98031 -8.34032,8.30891 -19.22192,11.97685 -31.1186,10.4894 z m 18.58209,-30.69278 c -0.91811,-2.38357 -12.79282,-22.35099 -13.28879,-22.34521 -0.45143,0.005 -5.88471,9.05299 -11.95805,19.91302 l -2.0157,3.60439 h 13.85703 c 12.18288,0 13.80248,-0.14161 13.40551,-1.1722 z"
|
d="m 232.50517,500.57091 c -6.91699,-0.86484 -15.04235,-4.99807 -20.4853,-10.42051 -14.58513,-14.53016 -14.55979,-36.85709 0.0584,-51.42015 23.0282,-22.94142 62.26853,-6.95317 62.26853,25.37095 0,10.34881 -3.46897,18.75364 -10.723,25.98031 -8.34032,8.30891 -19.22192,11.97685 -31.1186,10.4894 z m 18.58209,-30.69278 c -0.91811,-2.38357 -12.79282,-22.35099 -13.28879,-22.34521 -0.45143,0.005 -5.88471,9.05299 -11.95805,19.91302 l -2.0157,3.60439 h 13.85703 c 12.18288,0 13.80248,-0.14161 13.40551,-1.1722 z"
|
||||||
id="path181" /><path
|
id="path181" /><path
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.999997"
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:0.999997;stroke-opacity:1"
|
||||||
d="m 229.21434,646.98161 c -12.9232,-3.46654 -23.15418,-13.73508 -26.52403,-26.62142 -5.92248,-22.64757 11.58541,-45.21876 35.15949,-45.32763 7.44717,-0.0344 11.29183,0.91312 18.09999,4.46071 16.90217,8.80735 23.84898,30.39169 15.40753,47.87245 -7.54225,15.61868 -25.6403,24.04261 -42.14298,19.61589 z M 245.434,616.92014 c 3.65424,-6.30197 6.48622,-11.61534 6.29329,-11.8075 -0.19293,-0.19216 -6.40658,-0.25572 -13.80812,-0.14123 l -13.45735,0.20814 6.66623,11.58776 c 3.66642,6.37327 6.89025,11.59297 7.16405,11.59935 0.27381,0.006 3.48766,-5.14457 7.1419,-11.44652 z"
|
d="m 229.21434,646.98161 c -12.9232,-3.46654 -23.15418,-13.73508 -26.52403,-26.62142 -5.92248,-22.64757 11.58541,-45.21876 35.15949,-45.32763 7.44717,-0.0344 11.29183,0.91312 18.09999,4.46071 16.90217,8.80735 23.84898,30.39169 15.40753,47.87245 -7.54225,15.61868 -25.6403,24.04261 -42.14298,19.61589 z M 245.434,616.92014 c 3.65424,-6.30197 6.48622,-11.61534 6.29329,-11.8075 -0.19293,-0.19216 -6.40658,-0.25572 -13.80812,-0.14123 l -13.45735,0.20814 6.66623,11.58776 c 3.66642,6.37327 6.89025,11.59297 7.16405,11.59935 0.27381,0.006 3.48766,-5.14457 7.1419,-11.44652 z"
|
||||||
id="path185" /><path
|
id="path185" /><path
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 307.85537,574.24407 c -0.34478,-0.0389 -1.62711,-0.27075 -2.84962,-0.51537 -11.23844,-2.24892 -20.9226,-9.70179 -26.17378,-20.1432 -2.82839,-5.62398 -4.20289,-12.18393 -3.75883,-17.93953 1.14218,-14.80435 11.33006,-27.74217 25.61809,-32.53303 8.75405,-2.93529 18.04495,-2.18507 26.72988,2.15843 8.69225,4.34715 15.48783,12.11097 18.64346,21.29973 5.25881,15.31297 -0.71552,32.17026 -14.73029,41.56334 -5.99457,4.01773 -13.35804,6.28235 -20.18834,6.20884 -1.46502,-0.0157 -2.94577,-0.0604 -3.29057,-0.0993 z m -0.66719,-23.08553 c 0.71175,-0.35815 3.02697,-1.62049 5.14496,-2.80516 8.66766,-4.84825 15.63944,-9.1681 16.21592,-10.0477 0.27948,-0.42642 0.28078,-0.49758 0.0166,-0.90068 -0.86957,-1.32678 -21.50733,-13.52937 -22.8817,-13.52937 -0.25925,0 -0.5656,0.11351 -0.68079,0.25225 -0.41371,0.49837 -0.59707,4.78502 -0.59431,13.89388 0.003,9.06159 0.17803,13.03427 0.59744,13.53951 0.32082,0.38645 0.78324,0.3011 2.18189,-0.40273 z"
|
d="m 307.85537,574.24407 c -0.34478,-0.0389 -1.62711,-0.27075 -2.84962,-0.51537 -11.23844,-2.24892 -20.9226,-9.70179 -26.17378,-20.1432 -2.82839,-5.62398 -4.20289,-12.18393 -3.75883,-17.93953 1.14218,-14.80435 11.33006,-27.74217 25.61809,-32.53303 8.75405,-2.93529 18.04495,-2.18507 26.72988,2.15843 8.69225,4.34715 15.48783,12.11097 18.64346,21.29973 5.25881,15.31297 -0.71552,32.17026 -14.73029,41.56334 -5.99457,4.01773 -13.35804,6.28235 -20.18834,6.20884 -1.46502,-0.0157 -2.94577,-0.0604 -3.29057,-0.0993 z m -0.66719,-23.08553 c 0.71175,-0.35815 3.02697,-1.62049 5.14496,-2.80516 8.66766,-4.84825 15.63944,-9.1681 16.21592,-10.0477 0.27948,-0.42642 0.28078,-0.49758 0.0166,-0.90068 -0.86957,-1.32678 -21.50733,-13.52937 -22.8817,-13.52937 -0.25925,0 -0.5656,0.11351 -0.68079,0.25225 -0.41371,0.49837 -0.59707,4.78502 -0.59431,13.89388 0.003,9.06159 0.17803,13.03427 0.59744,13.53951 0.32082,0.38645 0.78324,0.3011 2.18189,-0.40273 z"
|
||||||
id="path187" /><path
|
id="path187" /><path
|
||||||
style="fill:#333333;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="fill:#333333;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 287.96017,739.09726 c -1.01606,-0.21912 -2.9756,-0.9477 -4.35453,-1.61905 -2.09414,-1.01956 -2.88115,-1.59464 -4.77748,-3.49097 -1.89792,-1.89791 -2.4703,-2.68159 -3.48941,-4.77748 -2.66648,-5.48389 -2.66607,-10.55714 10e-4,-16.08572 1.0133,-2.10022 1.56326,-2.85257 3.48092,-4.76199 3.62968,-3.61405 7.72755,-5.3398 12.70198,-5.34921 8.35146,-0.0158 15.68299,5.71579 17.81213,13.92506 0.52326,2.01754 0.54009,6.16569 0.0339,8.34799 -1.47072,6.34008 -6.30854,11.44929 -12.69973,13.41212 -2.44922,0.7522 -6.26202,0.92699 -8.70906,0.39925 z"
|
d="m 287.96017,739.09726 c -1.01606,-0.21912 -2.9756,-0.9477 -4.35453,-1.61905 -2.09414,-1.01956 -2.88115,-1.59464 -4.77748,-3.49097 -1.89792,-1.89791 -2.4703,-2.68159 -3.48941,-4.77748 -2.66648,-5.48389 -2.66607,-10.55714 10e-4,-16.08572 1.0133,-2.10022 1.56326,-2.85257 3.48092,-4.76199 3.62968,-3.61405 7.72755,-5.3398 12.70198,-5.34921 8.35146,-0.0158 15.68299,5.71579 17.81213,13.92506 0.52326,2.01754 0.54009,6.16569 0.0339,8.34799 -1.47072,6.34008 -6.30854,11.44929 -12.69973,13.41212 -2.44922,0.7522 -6.26202,0.92699 -8.70906,0.39925 z"
|
||||||
id="path189" /><path
|
id="path189" /><path
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 267.23012,751.2862 c -1.59942,-0.43597 -2.94763,-1.29847 -4.05871,-2.59652 -1.81264,-2.11766 -1.73429,-0.87988 -1.73429,-27.39725 0,-26.73402 -0.0972,-25.30688 1.87658,-27.54923 0.58306,-0.66239 1.71204,-1.51487 2.55332,-1.92799 l 1.5081,-0.74058 h 24.1534 24.15339 l 1.77672,0.87468 c 1.25727,0.61895 2.04823,1.23027 2.70544,2.091 1.78729,2.34073 1.72742,1.33094 1.64816,27.80036 -0.0712,23.78487 -0.0733,23.86757 -0.63865,25.09049 -0.72339,1.56486 -2.26169,3.10316 -3.93043,3.93043 l -1.30842,0.64864 -23.75199,0.0516 c -18.21394,0.0396 -24.03192,-0.0247 -24.95262,-0.27565 z m 27.28995,-9.68076 c 10.60326,-1.53286 18.09097,-10.66806 17.50501,-21.35655 -0.18432,-3.36213 -0.66908,-5.27077 -2.04745,-8.06138 -4.59235,-9.29756 -15.46557,-13.67756 -25.3079,-10.19463 -2.76161,0.97725 -4.68871,2.16763 -7.02836,4.34145 -3.05146,2.83517 -5.11688,6.34636 -6.04249,10.27217 -0.50715,2.151 -0.50715,7.22087 0,9.37186 0.92171,3.90925 2.95421,7.3745 6.0133,10.25221 2.20884,2.07787 4.16469,3.31668 6.72144,4.2573 3.40627,1.25315 6.72782,1.61756 10.18645,1.11757 z"
|
d="m 267.23012,751.2862 c -1.59942,-0.43597 -2.94763,-1.29847 -4.05871,-2.59652 -1.81264,-2.11766 -1.73429,-0.87988 -1.73429,-27.39725 0,-26.73402 -0.0972,-25.30688 1.87658,-27.54923 0.58306,-0.66239 1.71204,-1.51487 2.55332,-1.92799 l 1.5081,-0.74058 h 24.1534 24.15339 l 1.77672,0.87468 c 1.25727,0.61895 2.04823,1.23027 2.70544,2.091 1.78729,2.34073 1.72742,1.33094 1.64816,27.80036 -0.0712,23.78487 -0.0733,23.86757 -0.63865,25.09049 -0.72339,1.56486 -2.26169,3.10316 -3.93043,3.93043 l -1.30842,0.64864 -23.75199,0.0516 c -18.21394,0.0396 -24.03192,-0.0247 -24.95262,-0.27565 z m 27.28995,-9.68076 c 10.60326,-1.53286 18.09097,-10.66806 17.50501,-21.35655 -0.18432,-3.36213 -0.66908,-5.27077 -2.04745,-8.06138 -4.59235,-9.29756 -15.46557,-13.67756 -25.3079,-10.19463 -2.76161,0.97725 -4.68871,2.16763 -7.02836,4.34145 -3.05146,2.83517 -5.11688,6.34636 -6.04249,10.27217 -0.50715,2.151 -0.50715,7.22087 0,9.37186 0.92171,3.90925 2.95421,7.3745 6.0133,10.25221 2.20884,2.07787 4.16469,3.31668 6.72144,4.2573 3.40627,1.25315 6.72782,1.61756 10.18645,1.11757 z"
|
||||||
id="path191" /><path
|
id="path191" /><path
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#1a1a1a;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 235.77295,330.34531 c 0,-6.0203 -0.0462,-6.51813 -0.73076,-7.87124 -1.06164,-2.09851 -2.95253,-3.39477 -5.65313,-3.87537 -15.06064,-2.68022 -27.49575,-10.15006 -36.51861,-21.93692 -4.96934,-6.49162 -8.83069,-15.11098 -10.3887,-23.18981 -0.83474,-4.3284 -1.3998,-5.65891 -2.97647,-7.00848 -1.7724,-1.51711 -3.30405,-1.79252 -9.96885,-1.79252 h -5.86461 v -2.11107 -2.11107 h 6.26944 c 6.12912,0 6.30805,-0.0192 7.9945,-0.85963 2.44443,-1.21811 3.32179,-2.74063 4.22338,-7.32906 4.56927,-23.25403 22.39532,-40.97679 45.63214,-45.36773 4.16129,-0.78634 5.57438,-1.57205 6.90818,-3.84114 0.9048,-1.53927 0.91186,-1.5954 1.02116,-8.12677 l 0.11006,-6.57679 h 2.0822 2.0822 v 6.27497 c 0,6.20191 0.0104,6.29547 0.89315,8.03629 1.32629,2.61551 2.65075,3.37644 7.56606,4.34684 19.37922,3.82593 35.08856,16.98397 42.28514,35.41774 1.04383,2.67375 1.9437,5.93165 3.31831,12.01372 0.58905,2.60627 1.67368,4.16462 3.60307,5.17675 1.1513,0.60396 1.95144,0.68258 7.85861,0.77219 l 6.57679,0.0998 v 2.0925 2.09249 h -6.26944 c -6.12912,0 -6.30805,0.0192 -7.9945,0.85963 -2.20181,1.09721 -3.39863,2.90223 -3.90849,5.89474 -4.06097,23.83452 -22.22419,42.32715 -45.97159,46.8053 -4.2535,0.8021 -5.71797,1.66037 -6.96502,4.08193 -0.79329,1.54043 -0.83455,1.89301 -0.94026,8.03533 l -0.11057,6.42419 h -2.08169 -2.0817 z"
|
d="m 235.77295,330.34531 c 0,-6.0203 -0.0462,-6.51813 -0.73076,-7.87124 -1.06164,-2.09851 -2.95253,-3.39477 -5.65313,-3.87537 -15.06064,-2.68022 -27.49575,-10.15006 -36.51861,-21.93692 -4.96934,-6.49162 -8.83069,-15.11098 -10.3887,-23.18981 -0.83474,-4.3284 -1.3998,-5.65891 -2.97647,-7.00848 -1.7724,-1.51711 -3.30405,-1.79252 -9.96885,-1.79252 h -5.86461 v -2.11107 -2.11107 h 6.26944 c 6.12912,0 6.30805,-0.0192 7.9945,-0.85963 2.44443,-1.21811 3.32179,-2.74063 4.22338,-7.32906 4.56927,-23.25403 22.39532,-40.97679 45.63214,-45.36773 4.16129,-0.78634 5.57438,-1.57205 6.90818,-3.84114 0.9048,-1.53927 0.91186,-1.5954 1.02116,-8.12677 l 0.11006,-6.57679 h 2.0822 2.0822 v 6.27497 c 0,6.20191 0.0104,6.29547 0.89315,8.03629 1.32629,2.61551 2.65075,3.37644 7.56606,4.34684 19.37922,3.82593 35.08856,16.98397 42.28514,35.41774 1.04383,2.67375 1.9437,5.93165 3.31831,12.01372 0.58905,2.60627 1.67368,4.16462 3.60307,5.17675 1.1513,0.60396 1.95144,0.68258 7.85861,0.77219 l 6.57679,0.0998 v 2.0925 2.09249 h -6.26944 c -6.12912,0 -6.30805,0.0192 -7.9945,0.85963 -2.20181,1.09721 -3.39863,2.90223 -3.90849,5.89474 -4.06097,23.83452 -22.22419,42.32715 -45.97159,46.8053 -4.2535,0.8021 -5.71797,1.66037 -6.96502,4.08193 -0.79329,1.54043 -0.83455,1.89301 -0.94026,8.03533 l -0.11057,6.42419 h -2.08169 -2.0817 z"
|
||||||
id="path1082" /><path
|
id="path1082" /><path
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
||||||
|
@ -206,27 +210,267 @@
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
||||||
d="m 242.3249,330.46177 c 0.097,-5.7735 0.163,-6.38655 0.77566,-7.20629 1.18269,-1.58243 2.17182,-2.02925 6.33209,-2.86041 23.48707,-4.69236 41.89612,-23.31363 46.43689,-46.97223 0.66775,-3.47916 1.14738,-4.47847 2.71006,-5.64639 0.81991,-0.6128 1.43277,-0.67865 7.22079,-0.77584 l 6.32483,-0.10621 -0.19591,1.73011 c -1.19107,10.51857 -3.29919,17.9842 -7.45853,26.41337 -11.17834,22.65366 -32.93361,38.14197 -57.96776,41.26919 -2.04744,0.25577 -3.84896,0.46502 -4.00338,0.46502 -0.15442,0 -0.23305,-2.83964 -0.17474,-6.31032 z"
|
d="m 242.3249,330.46177 c 0.097,-5.7735 0.163,-6.38655 0.77566,-7.20629 1.18269,-1.58243 2.17182,-2.02925 6.33209,-2.86041 23.48707,-4.69236 41.89612,-23.31363 46.43689,-46.97223 0.66775,-3.47916 1.14738,-4.47847 2.71006,-5.64639 0.81991,-0.6128 1.43277,-0.67865 7.22079,-0.77584 l 6.32483,-0.10621 -0.19591,1.73011 c -1.19107,10.51857 -3.29919,17.9842 -7.45853,26.41337 -11.17834,22.65366 -32.93361,38.14197 -57.96776,41.26919 -2.04744,0.25577 -3.84896,0.46502 -4.00338,0.46502 -0.15442,0 -0.23305,-2.83964 -0.17474,-6.31032 z"
|
||||||
id="path1090" /><path
|
id="path1090" /><path
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.999998"
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:0.999998;stroke-opacity:1"
|
||||||
d="m 311.60253,113.45766 c -0.55307,-0.55307 -0.67321,-1.83753 -0.67321,-7.19731 0,-4.50308 0.15925,-6.68335 0.51409,-7.03819 0.38766,-0.38766 6.43841,-0.5141 24.60307,-0.5141 21.32785,0 24.16614,0.0772 24.76219,0.67322 0.55166,0.55166 0.67322,1.82364 0.67322,7.0445 0,6.09825 -0.0408,6.39986 -0.95215,7.03819 -0.83385,0.58406 -3.89051,0.66691 -24.60307,0.66691 -20.92962,0 -23.72838,-0.0775 -24.32414,-0.67322 z"
|
d="m 311.60253,113.45766 c -0.55307,-0.55307 -0.67321,-1.83753 -0.67321,-7.19731 0,-4.50308 0.15925,-6.68335 0.51409,-7.03819 0.38766,-0.38766 6.43841,-0.5141 24.60307,-0.5141 21.32785,0 24.16614,0.0772 24.76219,0.67322 0.55166,0.55166 0.67322,1.82364 0.67322,7.0445 0,6.09825 -0.0408,6.39986 -0.95215,7.03819 -0.83385,0.58406 -3.89051,0.66691 -24.60307,0.66691 -20.92962,0 -23.72838,-0.0775 -24.32414,-0.67322 z"
|
||||||
id="path1092" /><path
|
id="path1092" /><path
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.999998"
|
style="fill:#000000;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.999998"
|
||||||
d="m 78.977784,134.18912 c -2.35328,-2.74929 -2.18932,-3.66269 2.26682,-12.62797 C 92.012734,99.89682 104.871,81.96966 121.771,65.058734 153.11752,33.69194 193.3541,12.833792 237.03838,5.305545 252.10894,2.708387 253.57756,2.630423 291.07604,2.43687 l 34.76922,-0.179466 1.35092,1.207149 c 0.9677,0.864713 1.41875,1.712966 1.59003,2.990242 l 0.23911,1.783092 -33.78877,0.194148 c -36.2509,0.208295 -38.76527,0.335101 -53.2555,2.685802 -38.392,6.2282 -72.8916,22.039868 -103.29303,47.340693 -6.79226,5.652686 -19.46547,18.33117 -25.22484,25.23531 -8.3636,10.02603 -16.479016,21.67655 -22.544486,32.36489 -3.07683,5.42188 -9.61802,18.64996 -9.61802,19.45027 0,0.91062 -0.80534,0.45303 -2.32289,-1.31988 z"
|
d="m 78.977784,134.18912 c -2.35328,-2.74929 -2.18932,-3.66269 2.26682,-12.62797 C 92.012734,99.89682 104.871,81.96966 121.771,65.058734 153.11752,33.69194 193.3541,12.833792 237.03838,5.305545 252.10894,2.708387 253.57756,2.630423 291.07604,2.43687 l 34.76922,-0.179466 1.35092,1.207149 c 0.9677,0.864713 1.41875,1.712966 1.59003,2.990242 l 0.23911,1.783092 -33.78877,0.194148 c -36.2509,0.208295 -38.76527,0.335101 -53.2555,2.685802 -38.392,6.2282 -72.8916,22.039868 -103.29303,47.340693 -6.79226,5.652686 -19.46547,18.33117 -25.22484,25.23531 -8.3636,10.02603 -16.479016,21.67655 -22.544486,32.36489 -3.07683,5.42188 -9.61802,18.64996 -9.61802,19.45027 0,0.91062 -0.80534,0.45303 -2.32289,-1.31988 z"
|
||||||
id="path1094" /><path
|
id="path1094" /><path
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 398.20583,464.93186 c 0,-216.02489 0.12146,-304.39871 0.26991,-196.38626 0.14845,108.01244 0.14845,284.76008 0,392.77252 -0.14845,108.01245 -0.26991,19.63863 -0.26991,-196.38626 z"
|
d="m 398.44844,615.98373 c 0,-216.02489 -0.0215,-633.986049 0.12697,-525.973599 0.14845,108.012439 0.29139,614.347419 0.14294,722.359859 -0.0401,29.20619 -0.0907,43.20012 -0.12499,45.04791 -0.0926,4.98585 -0.14492,-83.82167 -0.14492,-241.43417 z"
|
||||||
id="path1150" /><path
|
id="path1150"
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
sodipodi:nodetypes="sssss" /><path
|
||||||
d="m 401.44318,902.40274 c -1.48283,-2.11702 -1.64585,-43.40647 -1.64585,-416.85429 0,-373.44781 0.16302,-414.737261 1.64585,-416.854286 1.37591,-1.964385 2.64173,-2.349769 7.718,-2.349769 3.33969,0 6.64309,0.570921 7.34088,1.268713 0.96181,0.961813 1.26871,18.598983 1.26871,72.911362 0,69.01305 -0.0775,71.84973 -2.1109,77.28456 -1.161,3.10304 -3.53984,7.89508 -5.28631,10.64899 l -3.1754,5.00708 v 40.24031 c 0,37.61687 0.12902,40.42327 1.97893,43.04667 1.08842,1.5435 3.34831,5.42309 5.02199,8.6213 l 3.04306,5.81494 0.27946,141.61892 c 0.30957,156.88126 0.80443,145.17745 -6.6628,157.57802 l -3.66064,6.0791 v 40.51406 c 0,26.52506 0.37415,40.74531 1.08359,41.18376 0.59597,0.36833 2.85586,4.08361 5.02199,8.25617 l 3.9384,7.58648 0.28906,83.91411 c 0.21318,61.88506 -0.029,84.29733 -0.9224,85.37384 -0.77641,0.93553 -3.42147,1.45973 -7.36562,1.45973 -5.161,0 -6.41977,-0.37921 -7.8,-2.34977 z"
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
id="path1152" /><path
|
d="m 400.62988,903.164 c -1.48283,-2.11702 -0.83255,-44.16773 -0.83255,-417.61555 0,-373.44781 -0.81158,-415.197415 0.67125,-417.31444 1.37591,-1.964385 3.40896,-2.252646 8.48523,-2.252646 1.77094,0 3.84166,-0.08796 5.42907,0.210876 1.40618,0.264716 3.16687,2.038026 3.49464,2.365798 0.49522,0.495217 0.3217,4.318356 0.43962,16.36819 0.1111,11.353396 -0.22256,28.989262 -0.22256,55.337332 0,44.70634 0.60945,61.76349 0.136,69.7887 -0.25741,4.36328 -1.18492,6.13499 -1.9011,8.04917 -1.16098,3.10304 -3.86364,8.15599 -5.61012,10.90989 l -3.1754,5.00708 0.39853,40.34769 c 0.37154,37.61503 -0.21444,39.05077 1.63547,41.67417 1.08842,1.5435 2.94744,6.13491 4.62112,9.33312 l 3.04306,5.81494 1.31284,7.9315 -0.0707,19.78753 -0.10737,15.79956 -0.21131,97.91413 c -0.20099,93.13106 1.25117,126.69008 -0.28021,141.09354 -0.44236,4.16066 -1.62132,6.51589 -2.28217,8.50207 -0.90516,2.72046 -2.09268,4.90784 -3.84656,7.82045 l -3.66064,6.0791 0.3792,15.57297 0.11069,25.0662 c 0.11714,26.5248 0.58051,40.42685 1.28995,40.8653 0.59597,0.36833 2.69223,4.04112 4.32574,8.44952 l 3.32256,8.96672 1.09731,9.02354 -0.19118,15.86739 -0.18943,57.8651 c -0.2026,61.8851 0.4238,84.47685 -0.4696,85.55336 -0.77641,0.93553 -4.47782,2.42762 -8.42197,2.42762 -5.161,0 -7.33923,-0.63936 -8.71946,-2.60992 z"
|
||||||
style="fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
id="path1152"
|
||||||
d="M 389.22472,464.93186 V 72.687962 h 4.22905 4.22904 v 392.243898 392.2439 h -4.22904 -4.22905 z"
|
sodipodi:nodetypes="ssssssssssscsssccccssssccssscccsssss" /><path
|
||||||
id="path1154" /><path
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
style="fill:#00c7e7;fill-opacity:0.992157;stroke:#4d4d4d;stroke-width:1"
|
d="m 388.84323,464.93186 0.0252,-5.22079 0.35628,-387.023108 h 4.22905 4.22904 V 464.93186 L 398.8,857.9 393.4746,858.08261 388.6,857.9 Z"
|
||||||
|
id="path1154"
|
||||||
|
sodipodi:nodetypes="cccccccccc" /><path
|
||||||
|
style="fill:#00bbdb;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 409.89998,273.33293 v -38.63294 h 3.04188 c 1.74435,0 3.58682,0.88543 4.31941,2.07573 1.73761,2.82321 1.73761,70.29119 0,73.11439 -0.73259,1.19032 -2.57506,2.07573 -4.31941,2.07573 h -3.04188 z"
|
d="m 409.89998,273.33293 v -38.63294 h 3.04188 c 1.74435,0 3.58682,0.88543 4.31941,2.07573 1.73761,2.82321 1.73761,70.29119 0,73.11439 -0.73259,1.19032 -2.57506,2.07573 -4.31941,2.07573 h -3.04188 z"
|
||||||
id="path1156" /><path
|
id="path1156" /><path
|
||||||
style="fill:#00c7e7;fill-opacity:0.992157;stroke:#4d4d4d;stroke-width:1"
|
style="fill:#00bbdb;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 409.89998,676.164 v -38.66403 h 3.04381 c 1.74545,0 3.58909,0.88613 4.32215,2.07741 1.7387,2.82547 1.7387,70.34777 0,73.17325 -0.73306,1.19129 -2.5767,2.0774 -4.32215,2.0774 h -3.04381 z"
|
d="m 409.89998,676.164 v -38.66403 h 3.04381 c 1.74545,0 3.58909,0.88613 4.32215,2.07741 1.7387,2.82547 1.7387,70.34777 0,73.17325 -0.73306,1.19129 -2.5767,2.0774 -4.32215,2.0774 h -3.04381 z"
|
||||||
id="path1158" /><path
|
id="path1158" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
||||||
d=""
|
d=""
|
||||||
id="path1502" /></g></svg>
|
id="path1502" /></g><ellipse
|
||||||
|
transform="scale(-1,1)"
|
||||||
|
id="path4030"
|
||||||
|
style="fill:#2e2f31;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
cx="-630.03094"
|
||||||
|
cy="861.01349"
|
||||||
|
rx="15.407233"
|
||||||
|
ry="14.105413" /><path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4038"
|
||||||
|
d="m 531.57205,538.85036 v 45.92786"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4040"
|
||||||
|
d="M 538.66113,544.78398 V 581.251"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4062"
|
||||||
|
d="m 618.21618,561.30922 c 0.15897,-2.39247 0.93393,-4.19426 2.34943,-5.4612 1.05382,-0.94329 2.4969,-1.60711 4.18689,-1.92587 0.38638,-0.0728 1.08711,-0.17756 1.09745,-0.16356 0,0.005 0.0932,0.85525 0.2017,1.89259 0.10822,1.03731 0.20533,1.93952 0.21568,2.00495 0.0181,0.10453 0.0103,0.11877 -0.0516,0.11877 -0.12143,0 -0.66218,0.12325 -1.06042,0.24145 -1.89486,0.56317 -2.9076,1.70318 -3.13568,3.52943 -0.0526,0.41968 0.2402,1.20332 0.3147,1.59414 0.19574,1.0321 0.5477,1.44923 1.24585,1.96064 0.54534,0.39941 0.84078,0.63241 1.52991,0.63397 0.49114,0 0.79513,-0.17703 1.12084,-0.34918 0.22397,-0.11875 0.54525,-0.72408 0.72476,-0.97125 0.4284,-0.59002 0.57331,-0.18167 1.33421,-2.91459 0.47521,-1.70735 0.75977,-2.52129 1.19088,-3.4071 0.58401,-1.19961 1.35632,-2.06979 2.41398,-2.71969 0.58281,-0.35813 1.33375,-0.64229 2.04739,-0.77469 0.33923,-0.0633 0.49023,-0.0718 1.18512,-0.0711 0.6888,7.5e-4 0.84197,0.01 1.1342,0.0705 1.71036,0.34984 3.14515,1.32777 3.98586,2.71644 0.37788,0.62406 0.6928,1.43192 0.8702,2.23216 0.38944,1.75661 0.31125,4.08353 -0.19239,5.72547 -0.23225,0.75754 -0.63066,1.547 -1.06364,2.10803 -0.29761,0.38576 -1.03764,1.06284 -1.46261,1.33836 -0.68025,0.44086 -1.27214,1.08216 -2.11357,1.24388 -0.42538,0.0817 -1.27033,-0.14168 -1.5376,-0.14168 h -0.15716 l -2.2e-4,-0.18229 c -1.6e-4,-0.10006 -0.0391,-0.97392 -0.0865,-1.94151 -0.0477,-0.9676 -0.0862,-1.8095 -0.0862,-1.87098 l -7e-5,-0.11166 0.30292,-0.0566 c 0.67911,-0.12659 0.64274,-0.69151 1.05495,-1.00838 0.80274,-0.61701 1.57932,-1.59904 1.57884,-3.10599 -2.4e-4,-0.99245 -0.26656,-1.2378 -0.6209,-1.90047 -0.41109,-0.7689 -0.52472,-0.63395 -1.25089,-0.66875 -0.54033,-0.0264 -0.60261,0.54818 -0.97987,0.86389 -0.60357,0.50503 -0.65515,0.26871 -1.33681,2.74768 -0.53065,1.92992 -1.61672,3.72692 -2.02402,4.67676 -0.7236,1.68735 -1.46229,1.88688 -2.90464,2.54118 -0.86271,0.39132 -1.65737,0.56338 -2.80448,0.60727 -1.3619,0.0524 -2.61283,-0.24592 -3.80829,-0.90695 -1.3364,-0.73899 -2.29253,-1.88343 -2.83806,-3.39691 -0.47562,-1.31947 -0.68418,-3.07542 -0.56986,-4.79727 v 0 z"
|
||||||
|
style="fill:#000000;stroke:#000000;stroke-width:0.0133722;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
sodipodi:nodetypes="csscccscccsccsccscscsssscsscscscsssscsssscssscc" /><path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4064"
|
||||||
|
d="m 630.09646,971.66625 h 11.20079 l -7.7e-4,4.47736 c -3.9e-4,2.46263 -0.0181,4.8542 -0.0344,5.31477 -0.12014,3.00951 -0.56807,4.32259 -1.86223,5.4598 -1.43936,1.26481 -3.65136,1.78958 -5.84831,1.38753 -1.22398,-0.224 -2.30114,-0.78622 -3.1233,-1.63027 -0.75525,-0.77541 -1.34589,-2.02193 -1.58341,-3.3415 -0.0526,-0.2928 -0.0649,-0.32336 -0.10591,-0.26949 -0.0258,0.0337 -0.20067,0.27472 -0.38963,0.53623 -0.79262,1.09807 -1.46856,1.72397 -2.8174,2.60895 -0.78277,0.51353 -1.17221,0.74339 -4.12365,2.43453 l -2.49548,1.4299 -0.008,-2.44288 c -0.005,-1.92858 2.7e-4,-2.45065 0.0344,-2.47945 0.0234,-0.0215 1.34449,-0.8352 2.93457,-1.81113 4.5931,-2.81923 5.11319,-3.17081 5.65776,-3.8248 0.54019,-0.64863 0.67406,-1.16979 0.70337,-2.7382 l 0.0181,-0.99053 h -4.67857 -4.67867 v -2.06046 -2.06036 h 11.20079 z m 1.74946,9.28763 c 0.0409,0.67298 0.11392,1.26781 0.18719,1.52499 0.22165,0.77651 0.88153,1.38438 1.75173,1.61386 0.32467,0.0855 1.148,0.12136 1.50829,0.0653 0.87376,-0.13534 1.48211,-0.5375 1.85019,-1.22332 0.35302,-0.65774 0.37769,-0.95998 0.37905,-4.65174 l 7.5e-4,-2.49624 h -2.85643 -2.85653 l 7e-5,2.29025 c 0,1.25954 0.0181,2.55403 0.0356,2.87661 z"
|
||||||
|
style="fill:#000000;stroke:#000000;stroke-width:0.0133722;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4066"
|
||||||
|
d="m 618.48834,960.72379 c 0.26992,-3.13481 1.47063,-5.14907 3.82731,-6.42085 0.94544,-0.51008 2.47246,-0.96116 3.66673,-1.08314 l 0.21439,-0.0214 0.0207,0.10785 c 0.0372,0.19794 0.41957,3.90855 0.40445,3.92234 -0.008,0.007 -0.17193,0.0441 -0.3639,0.0822 -0.19212,0.0376 -0.53821,0.12634 -0.76937,0.19651 -1.79072,0.54475 -2.7801,1.57117 -3.10355,3.21988 -0.0989,0.50413 -0.10744,1.60822 -0.0155,2.14051 0.12169,0.71048 0.32194,1.25035 0.6218,1.6747 0.41144,0.58234 0.98794,1.0195 1.60624,1.21829 0.34978,0.11236 1.05168,0.14484 1.3996,0.0645 0.68302,-0.15762 1.12961,-0.53488 1.53764,-1.29896 0.28622,-0.53585 0.48608,-1.14697 1.12493,-3.44026 0.58179,-2.0886 0.89522,-2.93441 1.4688,-3.96444 0.54763,-0.9834 1.29532,-1.75609 2.25091,-2.32632 1.0162,-0.60643 2.16997,-0.88864 3.44103,-0.84174 1.09522,0.0405 2.1108,0.34696 3.03462,0.9161 0.67952,0.41875 1.15791,0.85897 1.62314,1.49397 0.94821,1.29426 1.41875,3.00624 1.41828,5.1604 -5.4e-4,2.4013 -0.5283,4.2219 -1.61346,5.56569 -0.28052,0.34751 -0.87705,0.89358 -1.25657,1.15047 -1.02517,0.69385 -2.17752,1.07827 -3.55571,1.18615 -0.21154,0.0168 -0.38907,0.0262 -0.39448,0.0215 -0.0155,-0.0141 -0.21309,-4.13646 -0.20041,-4.14922 0.008,-0.007 0.14966,-0.0386 0.32003,-0.0726 0.96084,-0.19177 1.73387,-0.57719 2.16612,-1.08024 0.33457,-0.38922 0.56064,-0.89429 0.68786,-1.53658 0.1015,-0.51332 0.11134,-1.67163 0.0181,-2.21419 -0.14526,-0.84985 -0.46593,-1.54361 -0.92193,-1.99457 -0.48336,-0.47793 -1.31478,-0.61609 -1.9837,-0.32951 -0.30417,0.13037 -0.66295,0.44566 -0.87729,0.7711 -0.39693,0.60258 -0.7762,1.64298 -1.28809,3.53321 -0.61793,2.28163 -1.08691,3.57856 -1.64611,4.55253 -0.90497,1.57616 -2.40653,2.63296 -4.21401,2.96573 -0.65494,0.12066 -1.14141,0.15526 -1.88939,0.13511 -0.52546,-0.0141 -0.75937,-0.0355 -1.08943,-0.0994 -1.82284,-0.35238 -3.39382,-1.33729 -4.32844,-2.71383 -0.65796,-0.969 -1.07881,-2.20396 -1.27779,-3.74995 -0.0534,-0.41339 -0.0974,-2.3393 -0.0626,-2.74128 v 0 z"
|
||||||
|
style="fill:#000000;stroke:#000000;stroke-width:0.0135255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4068"
|
||||||
|
d="m 630.08177,575.12806 11.69573,-0.0768 0.11296,2.83872 -0.11296,2.7832 -10.22217,-0.0657 -8.46941,0.0657 -0.23931,4.64789 -0.21033,5.23455 -2.19525,-0.11373 h -1.89113 v -7.29401 l -0.13688,-8.09662 z"
|
||||||
|
style="fill:#000000;stroke:#000000;stroke-width:0.0135255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 564.81854,320.07351 2.80254,-2.94783 2.10843,-1.80063 3.89781,-2.62722 4.93974,-2.563 3.81131,-1.26428 3.8729,-0.82566 1.38974,-0.20307 2.88842,-0.16699 h 57.79227 l 1.57144,0.1495 1.7697,0.23946 1.77484,0.23845 2.72964,0.54365 2.31281,0.60657 2.44326,0.75609 2.94394,0.94407 2.12886,0.90455 3.8498,1.71936 2.75741,1.53909 2.10581,1.19691 3.23498,2.16487 2.4201,1.63817 1.43595,1.20589 1.89607,1.45278 3.21175,2.60881 2.42278,2.54722 4.25902,4.70095 2.59949,3.25688 1.67743,2.63026 1.27103,2.18885 1.91183,3.73696 0.72706,1.65104 1.16131,2.96921 0.66224,2.6045 0.78479,3.27949 0.33987,2.68699 0.0483,2.38913 v 4.00596 2.85158 877.28853 l -0.16384,2.4984 -0.34524,3.4016 -1.29885,4.7808 -1.23966,3.7841 -3.60497,7.2728 -2.57375,4.0663 -2.46855,3.2069 -1.48186,1.9802 -2.66944,2.87 -3.06989,3.0298 -2.17649,1.9303 -4.01872,3.1261 -4.11447,2.8611 -2.30753,1.2764 -3.52352,1.8502 -3.6903,1.6841 -4.15406,1.4576 -3.72593,1.1705 -3.68244,0.746 -3.28501,0.4427 -3.07889,0.2681 h -56.72802 l -2.27377,-0.2166 -3.66214,-0.647 -2.13716,-0.5101 -2.60358,-0.9022 -3.70761,-1.5158 -3.72085,-1.8958 -3.11883,-1.9649 -2.49439,-2.0644 -3.08564,-2.8864 -3.11412,-3.839 -2.38795,-3.9255 -1.37928,-3.2422 -1.06978,-2.9089 -0.81446,-3.3604 -0.4154,-3.6114 -0.024,-2.148 V 343.23256 l 0.28062,-2.94096 0.63887,-3.85473 1.31769,-4.26752 1.53215,-3.69272 2.5337,-4.4686 1.96993,-2.5833 z"
|
||||||
|
id="path249" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 694.62149,334.10362 2.87464,2.17056 1.39448,1.27449 1.10633,1.19174 1.33926,1.50114 1.38209,1.74045 1.13752,1.55135 1.14707,1.6191 1.76331,2.78539 1.13353,1.9937 0.91903,1.69462 1.33241,2.59815 1.11209,2.33 1.56583,3.39111 0.63568,1.22029 0.77282,1.85718 0.72486,1.75471 0.98903,2.11635 1.04466,2.26736 0.86003,1.7056 0.74871,1.46183 0.77843,1.50459 1.16158,2.03635 0.69941,1.16948 1.32156,2.11591 1.16136,1.5888 0.91829,1.1277 1.46722,1.69949 1.41993,1.42143 1.99344,1.72936 2.2557,1.72741 2.15114,1.20765 1.3718,0.68691 3.115,1.23393 4.1538,1.06385 3.08686,0.4687 3.22131,0.30291 h 28.48289 l 0.94647,0.0524 0.97841,0.35799 1.16352,0.47513 0.9822,0.70154 1.01456,1.07822 0.92826,1.35838 0.65022,1.72693 0.1277,1.59566 -0.29606,1.44502 -0.74147,1.59474 -1.99052,3.45657 -2.4225,4.16279 -2.33536,3.53915 -1.37414,1.9664 -1.24262,1.70801 -1.41326,1.83088 -1.34109,1.74508 -2.14664,2.66591 -1.97231,2.31029 -1.08591,1.37517 -2.41419,2.77055 -1.30886,1.52879 -3.03361,3.40228 -1.58159,1.80779 -1.34438,1.31431 -2.46317,2.6295 -1.04614,1.0908 -4.84623,5.03258 -3.60112,3.77568 -1.74314,1.82893 -2.10543,2.2459 -6.06161,6.49298 -2.39368,2.59389 -2.01406,2.20329 -1.6282,1.85603 -1.14047,1.25547 -1.6465,1.98517 -1.72596,2.18615 -1.52881,1.91959 -1.25534,1.48184 -1.12938,1.52402 -1.65189,2.2517 -1.15137,1.60225 -1.31306,1.81213 -1.08907,1.73832 -1.86192,2.96443 -1.97162,3.32339 -1.21492,2.47246 -1.36959,2.68936 -0.95325,2.42774 -1.07073,2.91455 -0.76263,2.02052 h -0.62464"
|
||||||
|
id="path253" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 554.98557,806.60461 h -3.31475 l -1.21084,0.19637 -1.41973,0.53148 -1.57035,0.97257 -0.93192,0.98281 -0.8244,1.30431 -0.46075,1.2916 -0.0637,0.91287 -0.15809,2.36292 -0.25772,3.06459 -0.2171,3.23629 -0.2039,3.99231 -0.12562,3.06084 -0.14526,4.35384 -0.0857,5.46574 v 13.91733 l 0.15624,2.15982 0.0695,2.19857 0.20282,3.01372 0.22689,2.9539 0.16898,2.8368 0.32646,4.37395 0.12161,1.93446 0.12107,1.18541 0.30831,1.25065 0.75377,1.13471 1.01957,0.99641 1.54585,0.8017 1.28043,0.2251 h 4.57179 0.17232 z"
|
||||||
|
id="path255" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 554.91046,880.77518 h -3.31475 l -1.21084,0.19637 -1.41973,0.53148 -1.57035,0.97256 -0.93192,0.98282 -0.8244,1.3043 -0.46075,1.29161 -0.0637,0.91286 -0.15809,2.36293 -0.25772,3.06459 -0.2171,3.23628 -0.2039,3.99231 -0.12562,3.06085 -0.14526,4.35383 -0.0857,5.46574 v 13.91733 l 0.15624,2.15982 0.0695,2.19857 0.20282,3.01372 0.22689,2.9539 0.16898,2.8368 0.32646,4.37396 0.12161,1.93446 0.12107,1.18541 0.30831,1.25065 0.75377,1.1347 1.01957,0.99641 1.54585,0.8017 1.28043,0.2251 h 4.57179 0.17232 z"
|
||||||
|
id="path298" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 555.35214,1000.9073 -0.70664,0.01 -1.15041,0.3129 -0.94439,0.9042 -0.33283,0.8403 v 55.3836 l 0.35102,0.988 1.16661,1.0639 0.76614,0.2105 0.79763,-0.043 z"
|
||||||
|
id="path300"
|
||||||
|
sodipodi:nodetypes="ccccccccccc" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 683.4822,322.5276 1.80756,-0.36865 3.52048,0.79736 3.29989,0.79341 3.35684,0.85712 10.58481,3.05757 8.24268,2.61795 6.98289,2.30801 8.19137,2.72032 6.85494,2.1232 7.56186,2.22326 3.02344,0.89258 3.01485,0.78292 2.59184,0.6545 4.39682,1.01106 3.44978,0.73216 4.14889,0.73189 5.67397,0.74901 2.26019,0.25821 2.51619,0.19404 1.51308,0.53857 1.71443,0.82574 1.15366,0.80631 0.81926,0.61787 1.09348,1.17223 1.28918,1.66295 1.03628,2.03633 0.40058,1.60306 0.18894,1.03784 v 22.44381 l -0.19091,1.309 -0.49575,1.41249 -0.82966,1.654 -0.83314,1.22068 -1.26559,1.52171 -1.47306,1.67951 -1.74719,1.81065 -1.52584,1.67117 -1.0269,1.42993 -0.51569,0.92494"
|
||||||
|
id="path302"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccc" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 555.11995,518.09615 -1.01033,0.39258 -1.22841,0.93655 -1.2742,1.02924 -1.33354,1.35102 -1.34981,1.59351 -1.40742,1.80058 -1.06793,1.49244 -0.85098,1.20282 -0.89272,1.39504 -0.99731,1.62995 -0.60208,1.24653 -0.8025,1.69239 -0.93246,1.96822 -0.91473,2.23059 -0.62621,1.91229 -0.57345,2.01006 -0.59474,2.80402 -0.14894,0.35985 -1.18136,-0.13793 -0.97443,-0.18501 -1.29147,-0.54083 -1.00174,-0.69084 -1.15445,-0.99791 -0.60398,-0.85223 -0.49335,-1.12318 -0.37025,-1.37685 v -45.45096 l -0.20339,-1.17956 -0.74794,-1.09777 -0.87864,-0.84867 -1.1084,-0.66091 -1.62768,-0.61457 -1.99954,-0.31262 -2.41898,-0.0433 -3.34195,0.51108 -2.789,1.02869 -1.75751,0.92812 -1.48061,0.99716 -2.10544,1.93079 -1.35698,1.79438 -0.77464,1.80822 -0.53822,2.14889 -0.17548,1.82929 v 15.40503 l -0.74254,2.33437 -0.81509,3.04978 -0.66374,2.10772 -1.44608,5.41074 -0.10817,0.54556 -0.36239,1.62223 -0.43835,2.01252 -0.52816,2.59666 -0.51106,2.94424 -0.53199,3.41725 -0.52183,3.69125 -0.27377,2.56523 -0.17416,1.97814 -0.12505,1.76866 -0.16865,2.53094 -0.0926,2.51807 -0.10085,2.96479 -0.0322,3.59841 0.1372,3.62771 0.15883,3.46399"
|
||||||
|
id="path304" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 555.11995,607.38224 -1.01033,-0.39258 -1.22841,-0.93654 -1.2742,-1.02925 -1.33354,-1.35102 -1.34981,-1.5935 -1.40742,-1.80059 -1.06793,-1.49243 -0.85098,-1.20282 -0.89272,-1.39505 -0.99731,-1.62995 -0.60208,-1.24653 -0.8025,-1.69239 -0.93246,-1.96821 -0.91473,-2.23059 -0.62621,-1.9123 -0.57345,-2.01006 -0.59474,-2.80402 -0.14894,-0.35985 -1.18136,0.13793 -0.97443,0.18501 -1.29147,0.54083 -1.00174,0.69084 -1.15445,0.99792 -0.60398,0.85223 -0.49335,1.12317 -0.37025,1.37685 v 45.45097 l -0.20339,1.17956 -0.74794,1.09777 -0.87864,0.84866 -1.1084,0.66092 -1.62768,0.61456 -1.99954,0.31262 -2.41898,0.0433 -3.34195,-0.51107 -2.789,-1.0287 -1.75751,-0.92812 -1.48061,-0.99715 -2.10544,-1.93079 -1.35698,-1.79438 -0.77464,-1.80823 -0.53822,-2.14889 -0.17548,-1.82929 v -15.40503 l -0.74254,-2.33437 -0.81509,-3.04977 -0.66374,-2.10773 -1.44608,-5.41074 -0.10817,-0.54555 -0.36239,-1.62224 -0.43835,-2.01252 -0.52816,-2.59665 -0.51106,-2.94425 -0.53199,-3.41725 -0.52183,-3.69125 -0.27377,-2.56522 -0.17416,-1.97815 -0.12505,-1.76866 -0.16865,-2.53094 -0.0926,-2.51807 -0.10085,-2.96479 -0.0322,-3.5984 0.1372,-3.62772 0.15883,-3.46399"
|
||||||
|
id="path306" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 629.00102,930.67137 h 6.14653 l 2.04067,0.16215 1.12524,0.1958 1.57485,0.44983 1.37911,0.54025 1.49645,0.7516 1.16369,0.77595 1.20645,0.95903 1.07493,1.06679 1.10141,1.41857 0.59407,1.15018 0.53577,1.29561 0.50772,1.37166 0.10921,1.53404 0.0194,1.06304 v 58.84883 l -0.13659,1.1193 -0.20644,0.9935 -0.32745,0.917 -0.29571,0.8905 -0.50231,0.9886 -0.70348,1.073 -0.72708,0.8329 -1.14245,1.2323 -0.95483,0.8506 -1.12308,0.74 -1.3029,0.7638 -1.57811,0.6202 -1.75304,0.421 -1.62477,0.2527 -1.92906,0.036 h -12.21387 l -1.24442,-0.1438 -1.4416,-0.2655 -1.20902,-0.3547 -1.34067,-0.5911 -1.25475,-0.6462 -0.90721,-0.5402 -1.03832,-0.822 -0.71078,-0.7398 -0.67126,-0.637 -1.26722,-1.7893 -1.08212,-2.3971 -0.42262,-1.7353 -0.0315,-1.7747 v -59.09121 l 0.14146,-0.91134 0.21007,-0.66319 0.29836,-1.07418 0.44186,-1.07962 0.47325,-1.02037 0.3698,-0.61649 0.99623,-1.3542 0.95716,-1.00285 0.94225,-0.85279 0.88252,-0.60543 1.18795,-0.67902 1.33894,-0.6658 0.87252,-0.36273 0.97938,-0.32262 0.90474,-0.18457 1.43288,-0.23808 0.46681,-0.0584 1.01236,-0.055 z"
|
||||||
|
id="path310" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 705.29946,404.37113 h 4.94953 l 1.01129,0.19824 1.02198,0.65847 0.7694,0.84434 0.62305,1.2788 0.41165,1.37503 0.60375,2.17711 0.53032,2.14857 0.38266,1.97177 0.31418,1.95565 0.25283,2.01634 0.22113,2.18648 0.14186,2.361 0.0464,2.06343 -0.0339,2.90094 -0.18666,2.93049 -0.2597,3.12611 -0.3257,2.7483 -0.47254,2.43606 -0.38375,2.06954 -0.62275,2.43127 -0.48757,1.70574 -0.56732,1.13614 -0.65604,0.75733 -0.78933,0.54765 -0.77997,0.31884 -0.82705,0.0912 h -5.1673 -0.22961 V 404.3608 Z"
|
||||||
|
id="path320" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 555.36415,396.79743 h -3.36229 l -0.95244,0.2579 -0.88685,0.75198 -0.3797,1.096 v 10.8053 l 0.39974,1.00083 0.47383,0.71418 0.63631,0.44263 0.50741,0.16001 h 3.36617 0.21167 z"
|
||||||
|
id="path322" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 606.45914,1054.8828 h 46.6816 l -23.3408,37.0116 z"
|
||||||
|
id="path324" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 606.45914,1099.1543 h 46.6816 l -23.3408,37.0115 z"
|
||||||
|
id="path326" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 606.45914,1143.4531 h 46.6816 l -23.3408,37.0115 z"
|
||||||
|
id="path328" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 631.08566,1044.0909 h 27.01297 l 1.86984,0.2805 1.34197,0.3596 1.60607,0.6644 1.16604,0.7523 1.14122,0.8781 0.78333,0.8256 0.70342,0.7968 0.63184,1.1132 0.47977,0.9893 0.34526,1.0282 0.24865,1.1979 0.0693,0.8321 v 125.4568 l -0.0521,0.8725 -0.16665,1.0509 -0.4222,1.198 -0.73285,1.4957 -0.85365,1.1513 -1.41766,1.3555 -1.17786,0.9192 -1.59645,0.8597 -1.9127,0.616 -1.74431,0.1955 h -57.29204 l -1.482,-0.1172 -1.53793,-0.38 -1.02579,-0.42 -1.04703,-0.5563 -0.79838,-0.4864 -1.0868,-0.8174 -1.17978,-1.2797 -0.68706,-0.9209 -0.43671,-0.7767 -0.39717,-0.767 -0.36431,-1.0377 -0.17137,-0.7968 -0.0855,-1.2218 v -125.4649 l 0.0755,-1.1013 0.20402,-0.9527 0.22661,-0.7999 0.34294,-0.7651 0.79684,-1.4733 0.86432,-1.1445 1.36362,-1.2251 1.4025,-0.9497 0.76822,-0.4027 1.66903,-0.5936 1.31204,-0.2503 1.48443,-0.1826 1.15796,0.01 z"
|
||||||
|
id="path330" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 584.21811,307.65169 v -3.15652 l 0.37148,-1.45881 0.75589,-1.0701 1.18763,-0.98136 1.7025,-0.4849 h 45.22792 l 1.58355,0.18907 1.21322,0.58954 0.86017,0.63523 0.62083,0.6164 0.7767,1.22224 0.27256,1.40251 v 2.49159 z"
|
||||||
|
id="path332" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 554.98557,732.43405 h -3.31475 l -1.21084,0.19637 -1.41973,0.53148 -1.57035,0.97256 -0.93192,0.98282 -0.8244,1.3043 -0.46075,1.29161 -0.0637,0.91286 -0.15809,2.36293 -0.25772,3.06459 -0.2171,3.23628 -0.2039,3.99231 -0.12562,3.06085 -0.14526,4.35383 -0.0857,5.46574 v 13.91733 l 0.15624,2.15982 0.0695,2.19857 0.20282,3.01372 0.22689,2.9539 0.16898,2.8368 0.32646,4.37396 0.12161,1.93446 0.12107,1.1854 0.30831,1.25066 0.75377,1.1347 1.01957,0.99641 1.54585,0.8017 1.28043,0.2251 h 4.57179 0.17232 z"
|
||||||
|
id="path334" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#00bbdb;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 575.40725,1292.5752 c -8.50513,-4.4396 -14.59302,-11.4224 -17.41944,-18.9224 -0.26068,-0.6918 -2.10217,-5.5985 -2.32407,-16.4555 -0.95755,-46.8522 0.0692,-191.628 0.0924,-454.79146 0.0395,-447.17165 -1.16464,-463.77985 2.13444,-471.06146 4.14474,-9.14813 14.82174,-19.11565 24.20501,-21.93419 4.35355,-1.30772 20.60861,-0.88744 41.2504,-0.85913 9.13704,0.0125 16.72265,-0.38909 22.30143,-0.24437 9.7504,0.25294 14.61876,1.40481 19.8754,3.83273 13.20934,6.10107 27.37811,16.4207 32.31917,28.24068 1.2204,2.91943 4.50669,7.46836 6.1373,11.04497 l 1.41675,449.7216 -1.5273,449.96593 -4.08634,10.2294 c -5.14691,12.8843 -20.61785,27.6214 -33.70017,32.5287 -8.98936,3.372 -15.168,3.8603 -44.99389,3.8243 -13.98709,-0.017 -20.27955,0.078 -25.76681,0.1196 -1.4993,0.012 -2.53237,0.1219 -3.63781,0.1486 -1.8856,0.045 -3.47223,-0.1698 -5.13087,-0.6073 -1.2319,-0.3249 -1.88857,-0.4449 -3.07941,-0.9415 -0.66852,-0.2788 -1.67524,-0.6042 -2.54621,-0.9578 z m 96.94271,-95.8531 c 0.34361,-0.068 1.16774,-0.4225 1.45971,-0.6578 1.57938,-1.2724 3.13254,-2.332 3.76998,-3.2892 0.7553,-1.134 1.14301,-187.0038 1.15874,-414.46917 l -0.57612,-411.57378 -4.84312,-3.50599 c -3.43566,-2.48711 -8.52491,-1.47394 -44.87908,-1.47394 -41.01713,0 -42.12736,-0.69464 -45.65154,2.83862 -1.56374,1.56777 -1.68966,2.84556 -1.76015,34.2526 -0.0453,20.16919 -0.25443,52.7638 -0.18971,105.84008 0.042,34.48838 -0.39971,77.46436 -0.36851,131.48656 0.0237,40.99241 -0.34276,87.99166 -0.34276,142.48967 0,287.55485 0.28324,410.83535 1.67493,413.44235 1.09524,2.0518 3.44174,3.3319 5.68762,4.2392 3.12702,1.2631 22.75157,1.4763 43.15146,1.4245 20.73025,-0.053 38.09531,-0.3244 38.91512,-0.4876 z"
|
||||||
|
id="path460"
|
||||||
|
sodipodi:nodetypes="sssssssssscccssssssscssssscssssssssssss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 518.18635,634.34636 c -2.0133,-0.74316 -4.7444,-2.43786 -6.06913,-3.766 -2.24227,-2.24804 -2.45006,-3.20634 -3.00903,-13.87724 -0.37592,-7.17651 -1.34402,-14.09008 -2.5891,-18.48986 -4.49032,-15.86754 -5.9821,-36.98433 -3.75165,-53.1062 0.55771,-4.0312 2.23996,-12.10143 3.73832,-17.93387 2.04085,-7.94409 2.72517,-12.76287 2.72779,-19.20823 0.003,-6.76442 0.37876,-9.22079 1.75882,-11.48976 3.34452,-5.49877 13.94314,-8.16727 17.96065,-4.52211 1.70953,1.55109 1.77236,4.0545 1.77236,70.62081 0,53.82758 -0.25772,69.36608 -1.17129,70.61868 -1.62169,2.2235 -6.99289,2.76866 -11.36774,1.15378 z"
|
||||||
|
id="path462" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 532.33814,562.77279 v -19.58771 l 0.74345,0.53648 c 1.46593,1.05782 3.20996,1.86326 4.03453,1.86326 h 0.83922 v 17.02133 17.02133 l -1.42098,0.35872 c -0.78154,0.19731 -2.04541,0.81224 -2.8086,1.36651 l -1.38762,1.00777 z"
|
||||||
|
id="path466" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 552.92579,605.12795 c -4.61024,-3.77319 -9.57996,-11.63826 -12.26532,-19.41107 l -1.21822,-3.52618 -0.0956,-18.65027 -0.0956,-18.65026 0.82611,-3.11181 c 2.00396,-7.54852 7.57379,-16.9297 12.61547,-21.24804 0.99001,-0.84797 1.87129,-1.47031 1.9584,-1.38298 0.0871,0.0873 0.12066,19.78469 0.0746,43.7719 l -0.0838,43.61311 z"
|
||||||
|
id="path468" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 554.24531,1059.9811 c -0.38562,-0.075 -1.29674,-1.1158 -1.37849,-1.5742 -0.0387,-0.2167 -0.0553,-12.8432 -0.037,-28.0588 l 0.0333,-27.6647 0.4632,-0.4756 c 0.38607,-0.3964 1.36731,-0.5813 1.75961,-0.5842 0.0482,-4e-4 -0.29526,13.0536 -0.29526,29.1581 0,23.3551 -0.0295,29.2776 -0.14603,29.2649 -0.0803,-0.01 -0.26001,-0.038 -0.39932,-0.065 z"
|
||||||
|
id="path470"
|
||||||
|
sodipodi:nodetypes="ssscssscss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#00bbdb;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 620.42769,1013.2884 c -3.57448,-0.8725 -8.96012,-1.3788 -9.30569,-4.7082 l -0.67815,-2.0055 -0.25138,-4.2445 0.41829,-28.18567 c 0.29654,-19.98156 0.0411,-31.19328 0.50411,-32.91713 0.89622,-3.33689 2.97585,-6.44453 6.44362,-8.30431 2.42416,-1.3001 4.38417,-2.04911 12.31933,-2.04911 7.87316,0 9.30668,0.50275 11.63947,1.76142 3.17156,1.71124 4.95339,4.25793 5.90801,6.78394 1.14299,3.02444 0.95659,63.49706 -0.2043,66.28266 -1.21207,2.9084 -4.61574,6.4491 -8.13563,7.3377 -1.79168,0.4523 -6.47414,0.5577 -10.75587,0.4249 -3.25525,-0.101 -6.55619,0.1522 -7.90181,-0.1762 z m 0.80576,-24.14851 c 1.16322,-0.59784 3.35864,-1.93991 4.87872,-2.98238 2.69355,-1.84722 2.34692,-3.71595 2.76767,-2.38687 0.63441,2.00401 4.72774,5.3999 7.58335,4.8628 4.05952,-0.76353 5.0585,-2.82168 5.0585,-10.42179 v -6.53615 h -11.56483 l -11.51834,-0.0293 -4.7e-4,2.21816 0.0337,2.30803 4.63541,-0.0188 c 2.73527,-0.0111 4.24552,-0.44405 4.73547,-0.17155 0.39185,0.21794 0.0185,1.05358 -0.0712,1.68697 -0.14172,1.00046 -0.53695,2.34895 -3.53063,4.29524 -4.24127,2.7574 -5.67341,3.26403 -5.67341,5.70376 0,2.93489 -0.17135,2.93009 2.66607,1.47192 z m 8.72451,-20.28022 c 0.99255,-0.85681 2.35557,-3.3221 3.20525,-5.79732 1.14206,-3.32696 1.57736,-4.85966 2.57572,-4.85966 1.01595,0 1.82378,0.89997 1.98484,2.8501 0.17554,2.12547 -0.11777,2.73658 -1.58921,3.40873 -1.04809,0.47877 -1.79454,1.18693 -1.5773,1.75451 0.19578,0.5115 0.35596,1.50192 0.35596,2.20091 0,2.45771 4.7924,0.83849 6.32761,-2.13792 1.93784,-3.75702 0.66824,-10.20362 -2.32592,-11.81016 -2.08149,-1.11685 -5.66885,-0.79036 -7.54137,0.68637 -1.06893,0.84298 -1.92531,2.93981 -2.5499,5.09386 -1.30345,4.49527 -2.63948,5.88742 -4.17433,5.29693 -2.96077,-1.13908 -2.57455,-6.88848 0.56458,-7.67838 1.60085,-0.40282 2.28581,-2.23765 1.18075,-3.98616 -0.8873,-1.40395 -4.41318,-0.29463 -6.33262,1.99237 -1.36577,1.62731 -1.66572,2.67452 -1.64657,5.7486 0.0129,2.06736 0.41734,4.47138 0.8988,5.34228 1.94785,3.52339 7.593,4.52842 10.64371,1.89494 z"
|
||||||
|
id="path472"
|
||||||
|
sodipodi:nodetypes="ssccssssssssssssssscccccsssssssssssssssssssssssss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#00c8e8;fill-opacity:0.992157;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 632.81036,983.17958 c -0.63556,-0.67826 -0.71845,-1.13691 -0.71845,-3.9753 v -3.20858 h 2.64339 2.64339 v 3.10243 c 0,2.63704 -0.10273,3.23338 -0.68483,3.97531 -0.91474,1.16589 -2.84114,1.21855 -3.8835,0.10614 z"
|
||||||
|
id="path474" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#00bbdb;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 614.90041,611.55893 c -5.47818,-3.70126 -5.46194,-5.62841 -5.47319,-39.94991 -0.01,-29.83751 0.23875,-32.42084 2.03054,-35.3673 2.73782,-4.50213 9.7432,-6.34849 18.29821,-6.34849 8.55502,0 14.93848,1.49439 17.6763,5.99652 1.78955,2.94276 1.41474,6.84185 1.41806,36.21097 0.003,28.17503 0.0839,31.98162 -1.47142,34.88922 -2.76995,5.17816 -6.88103,7.15268 -17.83149,7.15268 -8.29531,0 -11.8731,-0.70953 -14.64701,-2.58369 z m 8.18551,-25.73237 v -5.15343 h 9.34579 9.34579 v -2.81096 -2.81096 h -11.68224 -11.68224 v 7.96439 c 0,7.87069 -0.17512,7.83539 2.13383,7.83539 2.209,0 2.53907,-0.1521 2.53907,-5.02443 z m 7.19177,-16.60471 c 0.18831,-0.0366 0.45055,-0.54459 0.6657,-0.86103 0.6596,-0.97009 1.35497,-2.74044 1.9953,-4.67326 1.56982,-4.73845 3.62862,-5.98608 4.17546,-2.25932 0.17631,1.20159 -0.48112,2.61937 -1.34586,2.95206 -1.97767,0.76085 -1.99781,5.98598 -0.0231,5.98598 2.81061,0 6.03228,-4.36968 6.03228,-8.18181 0,-2.26738 -0.66708,-3.89433 -1.4774,-5.16066 -1.05092,-1.64231 -2.52443,-2.58631 -4.9728,-2.58631 -4.07241,0 -5.67625,1.85418 -7.32959,7.01759 -1.35947,4.24563 -2.76574,4.90543 -4.63024,3.03612 -1.76893,-1.77348 -2.21107,-4.65285 0.27445,-5.44376 1.94089,-0.6176 3.84262,-4.09021 2.19133,-5.11339 -0.54505,-0.33773 -2.20902,-0.10822 -3.69771,0.51 -2.80301,1.16403 -4.21198,4.73237 -4.21865,8.18117 -0.005,2.38104 0.56756,4.70512 2.18461,6.14168 2.68538,2.38566 6.4958,1.17087 9.91016,0.5067 z"
|
||||||
|
id="path476"
|
||||||
|
sodipodi:nodetypes="scssscsssscccccccsssssssssssssssssssss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 583.49685,1194.3213 c -2.63205,-2.6388 -2.64339,-4.417 -2.64339,-414.70449 l 0.91025,-380.56509 0.0768,-32.0953 2.17287,-2.77511 c 2.35098,-3.00257 4.18121,-2.02246 45.18478,-2.02246 39.9348,0 42.75186,0.15622 45.67967,2.53317 l 2.95718,2.71194 0.16306,412.16132 -0.67534,412.51752 -2.4449,2.3556 c -2.71646,2.6173 -5.74931,2.5331 -45.92889,2.5331 -41.04641,0 -42.91748,-0.1091 -45.45206,-2.6502 z m 81.84368,-7.4058 3.14423,-4.037 0.0827,-66.2535 -0.39676,-66.5434 -2.26148,-3.3325 -3.88235,-2.7418 -32.27071,-0.7473 -32.79612,1.1063 -3.61057,2.1462 -3.24416,3.2525 v 66.7245 c 0,51.3889 0.37971,67.2017 1.65212,68.8007 3.62406,4.5542 6.83181,4.9751 38.22774,5.0155 l 30.77046,-0.8736 z m -24.61354,-173.581 c 7.9414,-2.7755 8.14807,-3.0866 8.14807,-41.16306 0,-32.95752 -0.10203,-35.06928 -2.67771,-37.65159 -1.48289,-1.48673 -4.16023,-2.90576 -5.99586,-3.60546 -4.95757,-1.88972 -17.0157,-1.44776 -22.15047,0.7032 -8.08162,3.38542 -8.9198,5.00242 -8.9198,40.79416 0,20.04755 0.002,33.57605 0.88389,35.22855 2.69585,5.0502 9.31002,6.769 18.65804,6.7743 4.79831,0 9.81254,-0.2968 12.05384,-1.0801 z m -1.58398,-140.068 c 5.13925,-3.46846 7.09546,-8.3228 6.85914,-13.07417 -0.16881,-3.39392 -1.37155,-6.53272 -4.41417,-9.45525 -6.97318,-6.69795 -19.07399,-5.59067 -24.94988,1.89858 -3.21578,4.09873 -3.22084,12.29018 -0.22077,16.5844 4.76762,6.82428 15.50209,8.92162 22.72568,4.04644 z m -1.36978,-61.94554 c 2.03057,-1.08953 2.55651,-2.80695 2.55651,-8.34813 0,-3.83703 -0.71372,-7.69196 -1.58604,-8.56653 -0.87232,-0.87457 -4.9167,-1.59012 -8.98752,-1.59012 -4.07082,0 -8.11521,0.71555 -8.98753,1.59012 -2.57798,2.58462 -2.032,15.24407 0.72693,16.85513 3.02779,1.76807 13.02528,1.80463 16.27765,0.0595 z m 0.46587,-39.18559 c 3.0003,-1.1543 3.0003,-15.78846 0,-16.94275 -3.66595,-1.41039 -15.82543,-0.86346 -17.47045,0.7858 -0.87232,0.87456 -1.58603,4.33307 -1.58603,7.68557 0,3.35251 0.71371,6.81101 1.58603,7.68558 1.64502,1.64926 13.8045,2.19618 17.47045,0.7858 z m 0,-39.75299 c 3.0003,-1.15429 3.0003,-15.78845 0,-16.94275 -3.66595,-1.41038 -15.82543,-0.86346 -17.47045,0.7858 -0.87232,0.87457 -1.58603,4.33307 -1.58603,7.68558 0,3.3525 0.71371,6.81101 1.58603,7.68557 1.64502,1.64926 13.8045,2.19619 17.47045,0.7858 z m 0.5046,-39.21368 c 0.87232,-0.87457 1.58604,-4.72951 1.58604,-8.56653 0,-8.09257 -1.7702,-9.71984 -10.57356,-9.71984 -8.80337,0 -10.57356,1.62727 -10.57356,9.71984 0,3.83702 0.71371,7.69196 1.58603,8.56653 0.87232,0.87457 4.91671,1.59012 8.98753,1.59012 4.07082,0 8.1152,-0.71555 8.98752,-1.59012 z m 6.9047,-82.58433 3.07071,-4.493 0.86249,-33.57673 c 0.56571,-22.02292 -0.51063,-35.24838 -1.42808,-36.96705 -2.15439,-4.03588 -9.35774,-6.42677 -19.34616,-6.42125 -10.21122,0.005 -16.75549,3.01486 -18.90955,8.69506 -0.70882,1.86912 -1.28875,17.83614 -1.28875,35.48223 0,27.49791 0.30761,32.52415 2.15212,35.16432 3.58912,5.1374 9.29638,6.89527 20.679,6.36923 9.16778,-0.42368 10.69887,-0.88197 14.20822,-4.25281 z"
|
||||||
|
id="path480"
|
||||||
|
sodipodi:nodetypes="csccssscccssscsccccccccsssccssssssscssssssssssssssssssssssssssssssssssscsscsssssc" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 594.24699,1187.7985 c -1.15909,-0.1861 -2.79951,-1.1442 -3.68761,-2.2365 -1.49488,-1.8388 -1.31131,-8.5525 -1.33055,-68.6798 -0.0137,-42.7931 0.73515,-65.8381 1.58418,-66.8831 3.33535,-4.1049 5.06117,-6.6424 37.3562,-6.6424 19.85047,0 32.4974,1.49 33.95204,2.1545 1.22428,0.5593 4.03684,3.0392 4.89282,4.492 1.41138,2.3954 0.57113,8.6669 0.57113,67.039 v 64.367 l -1.93649,3.9919 -4.71377,2.9045 -30.90991,1.6993 c -20.82649,1.1449 -30.73945,-1.3974 -32.14976,-1.6239 z m 48.27939,-26.876 9.82832,-16.6722 -10.49871,-1.2375 c -6.93861,-0.8179 -18.12085,-0.1436 -24.74598,0 l -11.47394,0.261 12.08666,19.2791 c 6.72092,10.7203 12.32443,15.8272 12.69104,15.4321 0.3666,-0.3951 5.92627,-6.5684 12.11261,-17.0625 z m -0.87571,-43.3626 c 6.55374,-10.4749 10.57311,-17.3167 10.57311,-17.6433 0,-0.3266 -9.16284,-0 -22.78434,-0 -13.62149,0 -21.69277,-0.5851 -21.69277,-0.3178 0,0.5187 19.89711,32.7103 21.45728,34.6835 0.50934,0.6442 -2.27865,3.5495 0.11007,1.4228 1.38644,-1.2344 5.78291,-7.6659 12.33665,-18.1408 z m 1.13238,-46.0729 c 6.22721,-9.9106 9.27066,-15.806 9.27066,-16.0734 0,-0.2673 -9.26032,-0.7017 -22.88182,-0.7017 -13.62149,0 -24.20351,-0.744 -24.20351,-0.5285 0,0.3071 12.54336,18.6285 23.50069,35.8728 1.17961,1.8564 -2.07666,-0.013 -1.06964,-1.0847 0.66128,-0.7037 9.15641,-7.5738 15.38362,-17.4845 z"
|
||||||
|
id="path486"
|
||||||
|
sodipodi:nodetypes="sssssssscccsssscsscssssssssssssssssss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 627.22564,1086.2996 c -1.36595,-2.1565 -6.28035,-9.9327 -10.92087,-17.2805 l -8.43732,-13.3596 21.71147,-0.1218 c 11.9413,-0.067 21.793,-0.04 21.89266,0.06 0.16849,0.1689 -20.53294,33.2929 -21.37902,34.2082 -0.21085,0.2281 -1.50096,-1.3497 -2.86692,-3.5061 z"
|
||||||
|
id="path488" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 618.93991,1117.4616 c -5.9568,-9.4452 -10.74845,-17.2554 -10.6481,-17.356 0.10035,-0.1006 9.87754,-0.1281 21.7271,-0.061 l 21.54464,0.1219 -10.771,17.1 c -5.92405,9.405 -10.82749,17.1603 -10.89655,17.2341 -0.069,0.074 -4.99929,-7.5937 -10.95609,-17.0389 z"
|
||||||
|
id="path490" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 627.34816,1175.0783 c -1.29113,-2.0355 -6.20112,-9.8147 -10.91108,-17.2872 l -8.56357,-13.5863 21.70844,-0.1218 c 11.93964,-0.067 21.76048,0.1196 21.89378,0.064 1.66501,-0.694 -20.53797,33.3157 -21.38241,34.2108 -0.2266,0.2401 -1.40744,-1.1705 -2.74516,-3.2795 z"
|
||||||
|
id="path492"
|
||||||
|
sodipodi:nodetypes="sscsssss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#00bbdb;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 705.333,475.35062 0.58572,-25.61496 h 2.58935 c 1.42413,0 3.07073,-0.1852 3.6591,-0.41156 6.23384,-2.39832 6.66628,-39.81075 0.51622,-44.66085 -0.98323,-0.7754 -2.60578,-1.09079 -4.08546,-1.11196 l -3.02606,-0.0433 0.17046,-24.49951 c 0.17521,-25.18178 -0.45706,-26.64286 -3.3757,-33.56049 -0.60015,-1.42246 -0.95981,-2.71801 -0.79924,-2.87899 0.73296,-0.73484 6.77569,9.79438 11.3051,19.6987 8.03987,17.58051 12.92059,24.16575 20.92458,28.23212 5.97386,3.03498 10.12842,3.56131 28.19456,3.57187 l 16.75248,0.01 2.24689,2.25266 c 1.28725,1.29057 2.24478,2.91766 2.24196,3.80967 -0.006,1.78302 -4.60673,10.12411 -8.86443,16.06984 -5.1397,7.17741 -13.21804,16.43802 -27.76099,31.82387 -25.38008,26.85109 -32.85153,36.30476 -38.78153,49.07044 l -2.48145,7.83399 z"
|
||||||
|
id="path494"
|
||||||
|
sodipodi:nodetypes="ccsssscsssssscscssscc" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 551.50149,411.19136 c -0.98602,-0.57578 -1.10996,-1.3398 -1.10661,-6.82131 0.002,-2.873 0.0677,-5.46502 0.14652,-5.76006 0.20727,-0.77576 1.25515,-1.22041 2.87607,-1.22041 h 1.41347 v 7.0274 7.02739 l -1.46028,-0.007 c -0.80316,-0.004 -1.64428,-0.11456 -1.86917,-0.24589 z"
|
||||||
|
id="path496" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 705.29823,426.52862 v -21.6925 l 2.74532,0.0832 c 3.12768,0.0948 3.89424,0.4293 4.72483,2.06157 0.61397,1.20659 1.76821,5.63906 2.33099,8.95136 1.27555,7.50746 1.05966,16.78021 -0.57067,24.51085 -1.52786,7.24475 -1.97566,7.77797 -6.53195,7.77797 h -2.69852 z"
|
||||||
|
id="path498" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 584.73878,305.9748 c 0.003,-2.26451 1.14147,-4.16777 2.76325,-4.61938 1.23234,-0.34316 46.09771,-0.32639 47.35227,0.0177 0.6001,0.16459 1.31857,0.65313 2.00748,1.36501 1.06534,1.10085 1.37105,1.89697 1.3778,3.58804 l 0.003,0.64418 h -26.75233 -26.75234 l 10e-4,-0.99555 z"
|
||||||
|
id="path500" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 744.76749,392.34624 c -7.37403,-1.15256 -12.25912,-3.51316 -17.18139,-8.30249 -4.19,-4.07684 -9.97636,-11.23159 -14.15429,-20.84415 -6.80877,-15.6656 -12.32942,-19.2518 -16.1565,-24.99405 -0.5827,-0.8743 -3.10009,-5.66604 -4.55833,-7.29974 -3.50425,-3.92592 -5.49316,-5.94965 -6.99245,-7.1149 -0.67792,-0.52688 -2.15819,-0.77779 -2.10637,-0.82975 0.1682,-0.16863 10.68177,1.9607 15.83895,3.44149 6.54031,1.87794 9.83649,2.91531 21.26168,6.69147 24.21778,8.00427 37.13651,11.3397 48.9486,12.63781 1.92757,0.21183 4.08294,0.48465 4.78972,0.60624 4.01962,0.69158 8.00385,4.57809 8.87032,8.65275 0.19483,0.9162 0.25245,4.67159 0.19948,13.00069 l -0.0745,11.71234 -0.63074,1.34936 c -0.80435,1.72076 -2.07559,3.36646 -5.20034,6.73215 -1.37555,1.48161 -2.82564,3.19454 -3.22244,3.80651 l -0.72144,1.11267 -13.45364,-0.0227 c -9.97413,-0.0168 -13.9716,-0.10364 -15.45634,-0.33571 z"
|
||||||
|
id="path502"
|
||||||
|
sodipodi:nodetypes="ssssssssssssscssscsss" /><path
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:#000000;stroke-width:0.264985;stroke-opacity:1"
|
||||||
|
d="m 626.42004,812.0638 c -3.0151,-0.30334 -4.96457,-1.13982 -5.58976,-2.2103 -1.31153,-2.24565 -1.63054,-9.94619 -0.65837,-13.08723 0.61716,-1.99402 1.1237,-2.59841 3.95631,-3.1346 3.07565,-0.5822 10.37998,-0.38743 12.68678,0.34496 1.50914,0.47914 1.69385,0.57767 2.14224,1.78531 0.74868,2.0164 1.22658,7.31549 0.8778,10.29605 -0.36136,3.08801 -0.86268,4.19746 -2.35622,4.92047 -2.0881,1.01083 -7.02388,1.49128 -11.05878,1.08534 z"
|
||||||
|
id="path926"
|
||||||
|
sodipodi:nodetypes="sssssssss" /><path
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:#000000;stroke-width:0.264985;stroke-opacity:1"
|
||||||
|
d="m 626.45483,772.42523 c -1.19582,-0.13489 -3.06338,-0.4663 -3.83508,-0.72229 -1.34222,-0.44525 -1.84952,-0.79471 -2.34633,-2.1889 -0.75897,-2.1299 -0.65153,-9.67076 0.10744,-11.80066 0.64277,-1.8038 1.39271,-2.22659 4.72627,-2.66451 2.84021,-0.37312 11.47273,-0.10592 12.66771,0.35154 1.51479,0.57988 2.20815,3.48226 2.20178,8.48923 -0.004,3.1328 -0.28379,5.81187 -0.98109,6.87608 -0.21326,0.32548 -1.09366,1.1394 -1.83309,1.33166 -1.62821,0.42336 -7.87645,0.64719 -10.70761,0.32785 z"
|
||||||
|
id="path928"
|
||||||
|
sodipodi:nodetypes="ssssssssss" /><path
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:#000000;stroke-width:0.264985;stroke-opacity:1"
|
||||||
|
d="m 626.45219,732.49906 c -1.25777,-0.13165 -3.14347,-0.41083 -3.92609,-0.67038 -1.36508,-0.45271 -1.72145,-0.63254 -2.21967,-2.03069 -0.75897,-2.1299 -0.78566,-9.66466 -0.0267,-11.79456 0.64277,-1.8038 1.59031,-2.26853 4.92387,-2.70646 2.84021,-0.37311 11.2883,-0.0856 12.48328,0.3719 1.51479,0.57988 2.27239,3.48197 2.26602,8.48895 -0.004,3.1328 -0.58408,6.09459 -1.28138,7.1588 -0.21517,0.32839 -0.84775,0.6853 -1.5938,0.87529 -1.65266,0.42087 -7.69669,0.6137 -10.62554,0.30715 z"
|
||||||
|
id="path930"
|
||||||
|
sodipodi:nodetypes="sssssssssss" /><path
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:#000000;stroke-width:0.264985;stroke-opacity:1"
|
||||||
|
d="m 625.65956,693.89955 c -0.97518,-0.13612 -2.55333,-0.0903 -3.32293,-0.34698 -1.37509,-0.45857 -1.53415,-0.83609 -2.02375,-2.39853 -0.34888,-1.1134 -0.57835,-2.85799 -0.67551,-5.5487 -0.2167,-6.00139 0.52022,-7.93082 3.07167,-9.20691 1.28365,-0.64201 1.83934,-1.06269 7.10382,-1.06269 5.37865,0 5.54929,0.20323 7.00626,0.91889 1.84975,0.90844 2.42826,1.87471 2.83202,4.71762 0.53225,3.74752 -0.17476,11.16443 -1.26107,12.14752 -1.12933,1.02204 -8.85213,1.32114 -12.73051,0.77978 z"
|
||||||
|
id="path932"
|
||||||
|
sodipodi:nodetypes="ssssssssss" /><path
|
||||||
|
sodipodi:nodetypes="cccccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path489"
|
||||||
|
d="m 379.06905,101.33936 h 13.1901 l 0.037,-8.25531 h 14.1068 c 3.694,0 4.8671,3.29254 4.8671,8.2606 v 75.70196 c 0,3.53235 -3.4085,6.31095 -6.4405,6.31095 h -9.5226 c -2.5944,0 -2.7443,-2.75044 -3.0117,-5.11156 v -5.02502 h -13.0052 z"
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path491"
|
||||||
|
d="M 392.26755,173.06935 V 101.88171"
|
||||||
|
style="fill:#4d4d4d;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 320.74985,56.29539 v 15.94604 h 43.5888 V 56.01064 c 0,-2.09826 -1.8726,-3.04523 -3.5597,-3.4883 -12.173,-3.19604 -25.2766,-3.03408 -36.8326,0 -1.8219,0.47838 -3.1965,1.67683 -3.1965,3.77305 z"
|
||||||
|
id="path493"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccc" /><path
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:2.09975px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 278.71645,200.68211 c -1.8116,5.3094 -14.3159,15.23177 -26.804,17.54252 0,3.02085 2.1746,7.20824 6.6781,7.20824 h 42.9453 c 9.0444,0 6.7685,24.00009 -7.8827,24.00009 h -14.8228 c -30.7958,10.32445 -58.299,10.53516 -88.3562,0 h -15.6167 c -13.60575,0 -16.40685,-23.78104 -7.81066,-23.78104 h 42.12586 c 6.109,0 8.9689,-3.48568 8.6104,-7.02445 -10.9644,-3.70415 -20.7546,-8.55799 -26.2816,-17.58519 v -3.35273 h 87.2518 z"
|
||||||
|
id="path495"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccccccccccc" /><path
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1.84474px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 274.17465,197.4005 c 0,0.25865 0,6.33998 0,6.33998 0,2.6468 2.5651,3.68761 5.8562,3.68761 17.7306,0.98444 39.2718,0.92676 57.4315,0 3.0517,0 6.0443,-1.82692 6.0104,-3.78467 v -7.73095 h -69.2981 z"
|
||||||
|
id="path497"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sccccccs" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2.09975px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 258.08445,225.33728 h -45.0418"
|
||||||
|
id="path499"
|
||||||
|
inkscape:connector-curvature="0" /><path
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1.4781px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 355.50055,191.92715 v 11.14596 c 0,0.96002 -0.737,2.03381 -1.3112,2.03381 h -23.0257 c -0.7228,0 -1.5998,-1.11889 -1.5998,-2.48132 v -10.77963 z"
|
||||||
|
id="path501"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccc" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2.09975px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 252.26535,218.07198 h -35.7635"
|
||||||
|
id="path503"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cc" /><path
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1.84684px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 128.69523,197.40389 c 0,0.25924 0,6.35443 0,6.35443 0,2.65284 2.56501,3.69602 5.85597,3.69602 17.73073,0.98669 39.27175,0.92888 57.43165,0 3.0517,0 6.0443,-1.83107 6.0102,-3.7933 v -7.74857 h -69.29782 z"
|
||||||
|
id="path505"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sccccccs" /><path
|
||||||
|
sodipodi:nodetypes="ccccccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path509"
|
||||||
|
d="m 91.14151,199.65348 c -8.52966,0 -24.99089,-16.61076 -24.99089,-25.55625 v -58.65862 c 4.57443,-17.00507 13.35533,-35.47833 41.84537,-41.00408 4.97535,0 7.55529,-4.59359 7.55529,-7.40352 26.96999,-35.0496 56.25477,-53.08707 86.30587,-65.49263 h 63.6397 c 27.3731,12.02627 42.6345,29.98675 54.6313,49.5466 V 61.9055 c 0,4.46695 3.7756,9.11203 8.7178,9.11203 h 52.8878 v 128.70726 z"
|
||||||
|
style="fill:#00bbdb;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /><path
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path511"
|
||||||
|
d="M 100.1578,95.57843 H 327.54875 C 327.43015,49.18358 304.14675,1.15062 259.36955,1.15062 L 195.76105,1.8971 C 133.48741,13.03019 120.68895,56.85936 100.1578,95.57843 Z"
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
sodipodi:nodetypes="ccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path513"
|
||||||
|
d="m 81.49442,126.18349 h 247.95873 v 27.99243 c 0,9.45565 -12.3167,23.51364 -23.9962,23.51364 H 97.49165 c -12.6963,0 -22.09152,-12.0229 -22.09152,-21.64746 0,-11.5947 -1.02012,-29.85861 6.09429,-29.85861 z"
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0.0426219;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 216.49175,61.4392 v -1.87954 l 5.5759,-6.74897 c 3.0668,-3.71194 5.5759,-6.75827 5.5759,-6.76966 0,-0.0114 -2.2283,-0.0205 -4.9515,-0.0205 h -4.9514 v -1.75092 -1.75094 h 7.7716 7.7718 v 1.61419 1.61418 l -5.8379,7.04557 -5.8376,7.04554 6.0529,0.0114 6.0532,0.0114 v 1.7297 1.72968 h -8.6113 -8.6116 v -1.87951 z"
|
||||||
|
id="path519"
|
||||||
|
inkscape:connector-curvature="0" /><path
|
||||||
|
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0.0335108;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 236.52525,52.97079 V 42.61137 h 2.6255 2.6254 v 8.6079 8.60791 h 6.5824 6.5825 v 1.75151 1.75152 h -9.2079 -9.2079 z"
|
||||||
|
id="path4218"
|
||||||
|
inkscape:connector-curvature="0" /><path
|
||||||
|
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0.0325267;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 227.42615,152.06817 v -10.42336 h 2.4583 2.4584 v 8.66103 8.66102 h 6.1635 6.1634 v 1.76236 1.76232 h -8.6218 -8.6218 z"
|
||||||
|
id="path4220"
|
||||||
|
inkscape:connector-curvature="0" /></svg>
|
||||||
|
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 74 KiB |
File diff suppressed because it is too large
Load diff
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 75 KiB |
|
@ -11,14 +11,15 @@
|
||||||
id="Layer_1"
|
id="Layer_1"
|
||||||
x="0px"
|
x="0px"
|
||||||
y="0px"
|
y="0px"
|
||||||
viewBox="0 0 1000.8 1000"
|
viewBox="0 0 1000.8 1300"
|
||||||
style="enable-background:new 0 0 1000.8 1000;"
|
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
sodipodi:docname="JoyConRight.svg"
|
sodipodi:docname="Controller_JoyConRight.svg"
|
||||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"><metadata
|
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||||
|
width="1000.8"
|
||||||
|
height="1300"><metadata
|
||||||
id="metadata85"><rdf:RDF><cc:Work
|
id="metadata85"><rdf:RDF><cc:Work
|
||||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||||
id="defs83" /><sodipodi:namedview
|
id="defs83" /><sodipodi:namedview
|
||||||
pagecolor="#ffffff"
|
pagecolor="#ffffff"
|
||||||
bordercolor="#666666"
|
bordercolor="#666666"
|
||||||
|
@ -32,13 +33,14 @@
|
||||||
inkscape:window-height="1003"
|
inkscape:window-height="1003"
|
||||||
id="namedview81"
|
id="namedview81"
|
||||||
showgrid="false"
|
showgrid="false"
|
||||||
inkscape:zoom="0.715"
|
inkscape:zoom="0.70710678"
|
||||||
inkscape:cx="500.39999"
|
inkscape:cx="701.58686"
|
||||||
inkscape:cy="504.8442"
|
inkscape:cy="733.41147"
|
||||||
inkscape:window-x="1400"
|
inkscape:window-x="1400"
|
||||||
inkscape:window-y="0"
|
inkscape:window-y="0"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="1"
|
||||||
inkscape:current-layer="Layer_1" />
|
inkscape:current-layer="g315"
|
||||||
|
inkscape:document-rotation="0" />
|
||||||
<style
|
<style
|
||||||
type="text/css"
|
type="text/css"
|
||||||
id="style2">
|
id="style2">
|
||||||
|
@ -77,8 +79,13 @@
|
||||||
.st1{fill:#02C5E5;}
|
.st1{fill:#02C5E5;}
|
||||||
.st2{fill:#FF5F55;}
|
.st2{fill:#FF5F55;}
|
||||||
.st3{fill:#FFFFFF;}
|
.st3{fill:#FFFFFF;}
|
||||||
</style><g
|
</style><path
|
||||||
id="g315"><g
|
style="fill:#ff5f53;fill-opacity:1;stroke-width:0.176777"
|
||||||
|
d="m 336.48913,612.01334 c -4.48491,-0.96172 -17.26511,-2.20937 -14.21934,-5.20076 l -1.59612,-5.33256 4.69156,-28.97943 c -21.87609,0.35049 0.88574,-29.59975 1.14094,-31.15228 0.67186,-4.0867 0.63712,-6.98639 4.0089,-9.33254 4.31967,-3.0057 6.13876,-6.05239 15.39769,-6.04934 6.18575,0.002 6.23657,4.51842 7.63527,4.8094 2.83752,0.59027 9.26915,0.22171 11.12017,2.22098 1.29357,1.39718 -1.70326,4.54462 -1.05568,6.52843 l 0.45372,1.38995 3.01931,28.03144 c 2.5809,23.96121 -1.28772,28.6331 -1.52389,30.69067 -0.50713,4.41767 -1.36999,7.75168 -2.71808,9.24386 -0.75196,0.83233 -6.13557,2.17746 -7.4235,2.75447 -0.6956,0.31163 -1.65288,2.59566 -4.83555,2.70854 -6.19176,0.21959 -12.78623,-2.05009 -14.09542,-2.33083 z m 7.03011,-22.69305 c 2.05969,-1.10868 2.82647,-2.34895 4.0826,-6.60361 0.94044,-3.18536 1.27937,-3.92467 2.00093,-4.36459 0.80192,-0.48891 1.26549,-0.45046 1.96409,0.16291 0.71152,0.62473 1.00895,1.51574 1.00895,3.02259 0,1.56253 -0.45686,2.45036 -1.57367,3.05821 -0.47337,0.25764 -0.98442,0.46843 -1.13567,0.46843 -0.46699,0 -0.51735,0.31657 -0.38564,2.42443 l 0.12741,2.03924 0.99608,-0.11707 c 1.81227,-0.21299 3.67586,-1.28059 4.58801,-2.62833 0.73213,-1.08177 1.05118,-2.01238 1.28038,-3.73464 0.52157,-3.91942 -0.80021,-7.14962 -3.48153,-8.50821 -0.95096,-0.48184 -1.18331,-0.52396 -2.89025,-0.52396 -1.61522,0 -1.95941,0.0547 -2.65165,0.42127 -2.42724,1.2854 -3.01034,2.27706 -4.76741,8.10775 -0.81484,2.70397 -1.68257,3.5027 -3.32487,3.06047 -0.81096,-0.21836 -1.7952,-1.15122 -2.09882,-1.98922 -0.27463,-0.75801 -0.29371,-2.48144 -0.0369,-3.33844 0.11098,-0.37041 0.44343,-0.96663 0.73878,-1.32494 0.5549,-0.6732 2.03724,-1.48499 2.71713,-1.48802 0.21302,-8.8e-4 0.44057,-0.0879 0.50566,-0.19321 0.0651,-0.10531 0.0206,-1.09911 -0.0989,-2.20844 l -0.21726,-2.01697 -0.73033,0.1088 c -1.04346,0.15545 -2.73301,0.73031 -3.56485,1.21291 -1.00575,0.5835 -2.3307,2.05885 -2.82441,3.14502 -0.60372,1.32822 -0.8601,3.09117 -0.73888,5.08087 0.2291,3.76062 1.69285,6.01606 4.59237,7.07626 0.73645,0.26928 1.31213,0.32792 2.86609,0.29196 1.83004,-0.0424 2.0098,-0.0801 3.05264,-0.64147 z m 12.41532,-19.9635 v -2.27241 l -4.3514,-0.0924 c -4.61309,-0.098 -4.53528,-0.082 -4.77362,-0.9766 -0.38253,-1.43579 0.87656,-2.86072 4.54388,-5.14234 1.30429,-0.81146 2.86862,-1.78392 3.47629,-2.16102 l 1.10485,-0.68564 v -2.47936 c 0,-1.37252 -0.0718,-2.47937 -0.16095,-2.47937 -0.2065,0 -2.12366,1.07629 -5.14235,2.88691 -1.67092,1.00223 -2.71254,1.76796 -3.47394,2.55381 l -1.08745,1.12238 -0.2181,-0.6741 c -0.55224,-1.70685 -1.65782,-3.08363 -3.04416,-3.79088 -0.90425,-0.46132 -2.76434,-0.67068 -4.28507,-0.4823 -2.32805,0.28839 -4.02881,1.54469 -4.62261,3.41459 -0.2868,0.90314 -0.54591,5.91584 -0.57837,11.18885 l -0.0144,2.34229 h 11.3137 11.31371 z"
|
||||||
|
id="path139"
|
||||||
|
sodipodi:nodetypes="ssccsssssscssssssssssssssscsssssssssssssscssssssssccsssscsssscssssscccc" /><g
|
||||||
|
id="g315"
|
||||||
|
transform="translate(0,300.03245)"><g
|
||||||
class="st0"
|
class="st0"
|
||||||
id="g64">
|
id="g64">
|
||||||
<path
|
<path
|
||||||
|
@ -149,15 +156,17 @@
|
||||||
id="path62" />
|
id="path62" />
|
||||||
</g><path
|
</g><path
|
||||||
class="st3"
|
class="st3"
|
||||||
d="m 601.6,906.6 h -7.9 c -3.6,0 -6.4,-2.9 -6.5,-6.5 V 742.9 c 0,-4.9 1.2,-9.6 3.4,-13.9 l 6.7,-13 v -79.2 l -6.7,-13 c -2.2,-4.3 -3.4,-9.1 -3.4,-14 V 340.1 c 0,-4.9 1.2,-9.6 3.4,-13.9 l 6.7,-13 V 234 l -6.7,-13 c -2.2,-4.3 -3.4,-9.1 -3.4,-14 V 71.2 c 0,-3.6 2.9,-6.4 6.5,-6.5 h 7.9 c 3.6,0 6.4,2.9 6.5,6.5 v 828.9 c -0.1,3.6 -3,6.5 -6.5,6.5 z M 593.7,65.7 c -3,0 -5.5,2.4 -5.5,5.5 V 207 c 0,4.7 1.1,9.3 3.3,13.5 l 6.8,13.1 c 0,0.1 0.1,0.1 0.1,0.2 v 79.5 c 0,0.1 0,0.2 -0.1,0.2 l -6.8,13.1 c -2.2,4.2 -3.3,8.8 -3.3,13.5 v 269.7 c 0,4.7 1.1,9.3 3.3,13.5 l 6.8,13.1 c 0,0.1 0.1,0.1 0.1,0.2 v 79.5 c 0,0.1 0,0.2 -0.1,0.2 l -6.8,13.1 c -2.2,4.2 -3.3,8.8 -3.3,13.5 v 157.2 c 0,3 2.4,5.5 5.5,5.5 h 7.9 c 3,0 5.5,-2.4 5.5,-5.5 V 71.2 c 0,-3 -2.4,-5.5 -5.5,-5.5 z"
|
d="m 601.6,906.6 h -7.9 c -3.6,0 -6.4,-2.9 -6.5,-6.5 V 742.9 c 0,-4.9 1.2,-9.6 3.4,-13.9 l 6.7,-13 v -79.2 l -6.7,-13 c -2.2,-4.3 -3.4,-9.1 -3.4,-14 V 340.1 c 0,-4.9 1.2,-9.6 3.4,-13.9 l 6.7,-13 V 234 l -6.7,-13 c -2.2,-4.3 -3.4,-9.1 -3.4,-14 V 71.2 c 0,-3.6 2.9,-6.4 6.5,-6.5 h 7.9 c 3.6,0 6.4,2.9 6.5,6.5 1.06259,276.29779 1.22068,552.59764 0,828.9 -0.1,3.6 -3,6.5 -6.5,6.5 z M 593.7,65.7 c -3,0 -5.5,2.4 -5.5,5.5 V 207 c 0,4.7 1.1,9.3 3.3,13.5 l 6.8,13.1 c 0,0.1 0.1,0.1 0.1,0.2 v 79.5 c 0,0.1 0,0.2 -0.1,0.2 l -6.8,13.1 c -2.2,4.2 -3.3,8.8 -3.3,13.5 v 269.7 c 0,4.7 1.1,9.3 3.3,13.5 l 6.8,13.1 c 0,0.1 0.1,0.1 0.1,0.2 v 79.5 c 0,0.1 0,0.2 -0.1,0.2 l -6.8,13.1 c -2.2,4.2 -3.3,8.8 -3.3,13.5 v 157.2 c 0,3 2.4,5.5 5.5,5.5 h 7.9 c 3,0 5.5,-2.4 5.5,-5.5 V 71.2 c 0,-3 -2.4,-5.5 -5.5,-5.5 z"
|
||||||
id="path72"
|
id="path72"
|
||||||
style="fill:#000000" /><path
|
style="fill:#000000"
|
||||||
|
sodipodi:nodetypes="sscsccccssccccsscsccssssccssccssccssccssssssss" /><path
|
||||||
class="st3"
|
class="st3"
|
||||||
d="m 618.8,858.9 h -11.3 c -0.3,0 -0.5,-0.2 -0.5,-0.5 0,0 0,0 0,0 V 72 c 0,-0.3 0.2,-0.5 0.5,-0.5 h 11.3 c 0.3,0 0.5,0.2 0.5,0.5 v 786.4 c 0,0.3 -0.2,0.5 -0.5,0.5 0,0 0,0 0,0 z m -10.8,-1 h 10.3 V 72.5 H 608 Z"
|
d="m 618.8,858.9 h -11.3 c -0.3,0 -0.5,-0.2 -0.5,-0.5 v 0 l 0.75749,-786.429231 c 2.9e-4,-0.3 0.2,-0.5 0.5,-0.5 h 11.3 C 619.85749,71.470769 619.3,71.7 619.3,72 v 786.4 c 0,0.3 -0.2,0.5 -0.5,0.5 z m -9.93686,-1 H 618.3 l 0.75749,-785.429231 h -10.3 l 1.00926,8.753045 c -0.5826,256.113716 4.51479,511.751226 -1.08804,768.299606 -0.0608,2.78307 0.24763,5.59331 0.18443,8.37658 z"
|
||||||
id="path74"
|
id="path74"
|
||||||
style="fill:#000000" /><path
|
style="fill:#000000"
|
||||||
|
sodipodi:nodetypes="ssscsssssscccccsc" /><path
|
||||||
class="st3"
|
class="st3"
|
||||||
d="M 730.9,1000 H 624.7 c -3.6,0 -6.5,-2.9 -6.5,-6.5 v -978 c 0,-3.6 2.9,-6.5 6.5,-6.5 h 106.2 c 116.8,0 211.9,95.1 211.9,211.9 v 567.2 c 0,117 -94.8,211.9 -211.9,211.9 0,0 0,0 0,0 z M 624.7,10.1 c -3,0 -5.5,2.4 -5.5,5.5 v 978 c 0,3 2.4,5.5 5.5,5.5 h 106.2 c 116.3,0 210.9,-94.6 210.9,-210.9 V 220.9 C 941.8,104.6 847.2,10 730.9,10 Z"
|
d="m 730.68234,1000.2542 h -106.2 c -3.6,0 -6.5,-2.89995 -6.5,-6.49995 V 15.754249 c 0,-3.6 2.9,-6.5000003 6.5,-6.5000003 h 106.2 c 116.8,0 211.9,95.1000013 211.9,211.9000013 v 567.2 c 0,117 -94.8,211.89995 -211.9,211.89995 0,0 0,0 0,0 z m -106.2,-989.899951 c -3,0 -5.5,2.4 -5.5,5.5 V 993.85425 c 0,3 2.4,5.5 5.5,5.5 h 106.2 c 116.3,0 210.9,-94.6 210.9,-210.9 v -567.3 c 0,-116.3 -94.6,-210.900001 -210.9,-210.900001 z"
|
||||||
id="path76"
|
id="path76"
|
||||||
style="fill:#000000" /><path
|
style="fill:#000000" /><path
|
||||||
class="st2"
|
class="st2"
|
||||||
|
@ -168,33 +177,34 @@
|
||||||
d="m 597.9,717.1 h -4.2 c -3.8,0 -6.9,-3.1 -7,-7 v -67.6 c 0,-3.8 3.1,-6.9 7,-7 h 4.2 c 0.6,0 1,0.4 1,1 0,0 0,0 0,0 V 716 c 0,0.6 -0.5,1.1 -1,1.1 0,0 0,0 0,0 z m -4.2,-79.5 c -2.7,0 -5,2.2 -5,5 v 67.6 c 0,2.7 2.2,5 5,5 h 3.2 v -77.5 h -3.2 z"
|
d="m 597.9,717.1 h -4.2 c -3.8,0 -6.9,-3.1 -7,-7 v -67.6 c 0,-3.8 3.1,-6.9 7,-7 h 4.2 c 0.6,0 1,0.4 1,1 0,0 0,0 0,0 V 716 c 0,0.6 -0.5,1.1 -1,1.1 0,0 0,0 0,0 z m -4.2,-79.5 c -2.7,0 -5,2.2 -5,5 v 67.6 c 0,2.7 2.2,5 5,5 h 3.2 v -77.5 h -3.2 z"
|
||||||
id="path130"
|
id="path130"
|
||||||
style="fill:#000000" /><path
|
style="fill:#000000" /><path
|
||||||
style="fill:#ff5f55;fill-opacity:0.956863;stroke:#4d4d4d;stroke-width:1"
|
style="fill:#ff5f53;fill-opacity:1;stroke:#000005;stroke-width:1.00051;stroke-opacity:0.956863"
|
||||||
d="m 748.93436,998.67954 c 26.59545,-2.35471 50.45796,-9.1985 75.88056,-21.7626 65.98743,-32.61168 108.87577,-94.17749 116.99375,-167.94346 1.80381,-16.39057 1.80686,-591.16592 0.003,-608.68789 -2.68506,-26.08512 -9.29287,-49.0507 -20.75194,-72.12385 C 889.32253,64.257568 828.18558,20.735655 757.19631,11.511152 738.81239,9.1223039 622.08856,8.8130147 619.73408,11.146911 c -1.13928,1.129303 -1.47099,112.509439 -1.47099,493.898369 0,485.61761 0.0328,492.45765 2.37105,493.69808 2.83295,1.50294 111.21392,1.44894 128.30022,-0.0637 z"
|
d="m 748.76734,998.67923 c 26.61833,-2.35509 50.50138,-9.19997 75.94584,-21.76611 5.0911,-2.51431 10.04483,-5.20072 14.85582,-8.05153 19.10445,-11.32055 36.26919,-27.08285 49.59754,-41.73902 25.48932,-28.02866 45.45624,-70.0817 51.37605,-116.52411 0.084,-0.65912 0.3966,-4.2662 0.37335,-6.75389 -0.0641,-6.85752 0.64519,-20.00285 0.80157,-38.33851 0.66141,-77.55489 1.0938,-244.03988 1.06613,-376.43674 -0.0211,-101.20234 -0.3111,-182.48746 -0.97305,-188.91287 -2.68737,-26.08933 -9.30087,-49.05862 -20.7698,-72.13549 C 889.27628,64.106475 828.08674,20.577545 757.0364,11.351548 745.67399,9.8761207 696.33771,9.7004055 660.43479,10.025388 c -7.73693,0.07003 -14.06771,-0.081483 -20.13516,0.05607 -7.4696,0.169301 -12.89971,-0.06855 -16.20341,0.248963 -1.72548,0.165835 -3.02594,0.790181 -3.22758,0.989913 -0.10173,0.100777 -1.42468,1.382777 -1.53437,3.347983 -0.28881,5.173999 -0.25578,17.11445 -0.43762,38.051844 -0.0367,4.233968 -0.0729,8.833333 -0.10824,13.815332 -0.035,4.930626 0.13264,10.123636 0.0992,15.820541 -0.0515,8.771897 0.12426,18.558756 0.0715,29.251086 -0.0484,9.8101 -0.24503,20.49671 0.002,32.01614 0.19247,8.97238 0.20413,18.37601 0.1562,28.43632 -0.072,15.10409 0.59165,31.14878 0.32443,48.96901 -0.22457,14.97582 0.11579,29.98781 -0.0372,46.92447 -0.10009,11.07577 0.0792,22.61567 -0.021,34.60622 -0.0602,7.20067 -0.008,14.53968 -0.0794,22.07309 -0.49593,52.10724 -0.0184,112.20821 -0.0184,180.33298 0,254.31464 -0.31499,376.10005 -0.0496,435.15254 0.0344,7.66703 -0.1971,14.45107 -0.13045,20.14913 0.0257,2.19566 -0.0445,4.29755 -0.0184,6.23195 0.0449,3.31894 -0.0346,6.64265 0.013,9.25764 0.0534,2.93004 -0.065,5.80443 -0.006,7.96224 0.13585,4.98798 0.0957,8.09705 0.27441,10.03685 0.26175,2.84095 1.26489,3.57892 1.56035,3.82606 0.21876,0.18298 1.30179,0.92883 3.07939,1.08771 4.53273,0.40514 14.55751,0.34773 27.08968,0.22654 9.86391,-0.0954 21.28116,-0.23028 32.79643,-0.21023 32.13223,0.0559 65.23405,0.25492 64.87309,-0.006 z"
|
||||||
id="path1240" /><path
|
id="path1240"
|
||||||
|
sodipodi:nodetypes="ssssssssccsssssssssssssssssssssssssssss" /><path
|
||||||
class="st3"
|
class="st3"
|
||||||
d="m 715,763.2 c -23.1,0 -41.9,-18.7 -41.9,-41.9 0,-23.2 18.7,-41.9 41.9,-41.9 23.2,0 41.9,18.7 41.9,41.9 v 0 c -0.1,23.1 -18.8,41.8 -41.9,41.9 z m 0,-82.8 c -22.6,0 -40.9,18.3 -40.9,40.9 0,22.6 18.3,40.9 40.9,40.9 22.6,0 40.9,-18.3 40.9,-40.9 v 0 C 755.8,698.7 737.6,680.4 715,680.4 Z"
|
d="m 715,763.2 c -23.1,0 -41.9,-18.7 -41.9,-41.9 0,-23.2 18.7,-41.9 41.9,-41.9 23.2,0 41.9,18.7 41.9,41.9 v 0 c -0.1,23.1 -18.8,41.8 -41.9,41.9 z m 0,-82.8 c -22.6,0 -40.9,18.3 -40.9,40.9 0,22.6 18.3,40.9 40.9,40.9 22.6,0 40.9,-18.3 40.9,-40.9 v 0 C 755.8,698.7 737.6,680.4 715,680.4 Z"
|
||||||
id="path78"
|
id="path78"
|
||||||
style="fill:#000000" /><path
|
style="fill:#000000" /><path
|
||||||
class="st2"
|
class="st2"
|
||||||
d="m 782.2,203.2 h -5.5 l -7.8,-12.9 -7.8,12.9 h -5.4 l 10.6,-16.3 -9.8,-15.6 h 5.2 l 7.3,12 7.4,-12 h 5 l -9.8,15.4 z"
|
d="m 782.2,203.2 h -5.5 L 769.05805,192.28414 761.1,203.2 h -5.4 l 10.6,-16.3 -9.8,-15.6 h 5.2 l 7.43748,10.56391 L 776.4,171.3 h 5 l -9.8,15.4 z"
|
||||||
id="path88"
|
id="path88"
|
||||||
style="fill:#b3b3b3;fill-opacity:1" /><path
|
style="fill:#ffffff;fill-opacity:1"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" /><path
|
||||||
class="st2"
|
class="st2"
|
||||||
d="m 709.2,244.5 -11.6,20.6 v 11.4 h -4.4 V 265 l -11.6,-20.5 h 5.3 l 6.4,11.7 2.3,4.7 2.2,-4.3 6.4,-12.1 z"
|
d="m 709.2,244.5 -11.6,20.6 v 11.4 h -4.4 V 265 l -11.6,-20.5 h 5.3 l 6.4,11.7 2.08146,2.98786 L 697.8,256.6 l 6.4,-12.1 z"
|
||||||
id="path90"
|
id="path90"
|
||||||
style="fill:#b3b3b3" /><path
|
style="fill:#ffffff"
|
||||||
|
sodipodi:nodetypes="cccccccccccc" /><path
|
||||||
class="st2"
|
class="st2"
|
||||||
d="m 855.9,276.5 h -4.7 l -2.2,-7 h -13.3 l -2.3,7 h -4.5 l 10.6,-32 h 6 z m -8.2,-10.9 -5.4,-17.1 -5.4,17.1 z"
|
d="m 855.9,276.5 h -4.7 l -2.2,-7 -12.36339,0.32833 L 833.4,276.5 h -4.5 L 838.82682,241.29573 845.5,244.5 Z m -8.73488,-11.27058 -4.88343,-14.5941 -4.58555,14.81187 z"
|
||||||
id="path92"
|
id="path92"
|
||||||
style="fill:#b3b3b3" /><path
|
style="fill:#ffffff"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" /><path
|
||||||
class="st2"
|
class="st2"
|
||||||
d="m 779.4,340.4 c 0,1.4 -0.3,2.8 -0.9,4.1 -0.6,1.2 -1.5,2.2 -2.5,3 -1.2,0.9 -2.6,1.5 -4,1.9 -1.7,0.4 -3.4,0.7 -5.2,0.6 h -8.4 v -32 h 9.2 c 7.1,0 10.7,2.6 10.7,7.8 0,1.6 -0.4,3.1 -1.2,4.5 -1,1.4 -2.4,2.3 -4,2.8 0.9,0.2 1.7,0.4 2.5,0.8 0.8,0.4 1.5,0.9 2,1.5 0.6,0.6 1.1,1.4 1.4,2.2 0.2,0.8 0.4,1.8 0.4,2.8 z m -5.7,-14.1 c 0,-0.6 -0.1,-1.3 -0.3,-1.8 -0.2,-0.6 -0.6,-1.1 -1,-1.5 -0.6,-0.5 -1.3,-0.8 -2,-1 -1,-0.3 -2.1,-0.4 -3.2,-0.4 h -4.5 v 10 h 4.4 c 0.9,0 1.8,-0.1 2.7,-0.3 0.8,-0.2 1.5,-0.5 2.1,-1 0.6,-0.4 1,-1 1.3,-1.7 0.4,-0.7 0.5,-1.5 0.5,-2.3 z m 1.1,14.2 c 0,-0.8 -0.2,-1.5 -0.5,-2.2 -0.4,-0.7 -0.9,-1.2 -1.5,-1.7 -0.7,-0.5 -1.5,-0.8 -2.4,-1 -1,-0.3 -2.1,-0.4 -3.2,-0.4 h -4.5 v 11 h 4.6 c 2.5,0 4.4,-0.5 5.6,-1.4 1.3,-1 2,-2.6 1.9,-4.3 z"
|
d="m 779.4,340.4 c 0,1.4 -0.3,2.8 -0.9,4.1 -0.6,1.2 -1.5,2.2 -2.5,3 -1.2,0.9 -2.6,1.5 -4,1.9 -1.7,0.4 -3.4,0.7 -5.2,0.6 h -8.4 v -32 h 9.2 c 7.1,0 10.7,2.6 10.7,7.8 0,1.6 -0.4,3.1 -1.2,4.5 -1,1.4 -1.00535,2.3267 -2.60535,2.8267 0.9,0.2 0.30535,0.3733 1.10535,0.7733 0.8,0.4 1.5,0.9 2,1.5 0.6,0.6 1.1,1.4 1.4,2.2 0.2,0.8 0.4,1.8 0.4,2.8 z m -5.7,-14.1 c 0,-0.6 -0.1,-1.3 -0.3,-1.8 -0.2,-0.6 -0.6,-1.1 -1,-1.5 -0.6,-0.5 -1.3,-0.8 -2,-1 -1,-0.3 -2.1,-0.4 -3.2,-0.4 h -4.5 v 10 h 4.4 c 0.9,0 1.8,-0.1 2.7,-0.3 0.8,-0.2 1.5,-0.5 2.1,-1 0.6,-0.4 1,-1 1.3,-1.7 0.4,-0.7 0.5,-1.5 0.5,-2.3 z m 1.1,14.2 c 0,-0.8 -0.2,-1.5 -0.5,-2.2 -0.4,-0.7 -0.9,-1.2 -1.5,-1.7 -0.7,-0.5 -1.5,-0.8 -2.4,-1 -1,-0.3 -2.1,-0.4 -3.2,-0.4 h -4.5 v 11 h 4.6 c 2.5,0 4.4,-0.5 5.6,-1.4 1.3,-1 2,-2.6 1.9,-4.3 z"
|
||||||
id="path94"
|
id="path94"
|
||||||
style="fill:#b3b3b3" /><path
|
style="fill:#ffffff"
|
||||||
class="st2"
|
sodipodi:nodetypes="sccccccssccsccsscccsccscccsccccsccscc" /><path
|
||||||
d="M 715,701.3 695.4,721 h 5.6 v 16.8 h 28.2 V 721 h 5.3 z m 5.7,30.5 H 709.6 V 721 h 11.1 z"
|
|
||||||
id="path96"
|
|
||||||
style="fill:#333333" /><path
|
|
||||||
class="st2"
|
class="st2"
|
||||||
d="m 925.6,139.3 c -0.1,0 -0.1,0 -0.2,0 -0.3,-0.1 -0.6,-0.3 -0.7,-0.6 C 891.7,61 815.4,10.5 730.9,10.6 h -54.2 c -0.6,0 -1,-0.4 -1,-1 0,0 0,0 0,0 V 7 c 0,-3.8 3.1,-6.9 7,-7 h 51.2 c 85.2,0.1 162.4,50.1 197.3,127.8 1.2,2.6 0.6,5.7 -1.5,7.8 l -3.4,3.4 c -0.2,0.2 -0.5,0.3 -0.7,0.3 z M 677.7,8.6 h 53.2 c 84.7,-0.1 161.3,50.2 195,128 l 2.4,-2.4 v 0 c 1.5,-1.4 1.9,-3.6 1.1,-5.5 C 894.8,51.7 818.3,2.1 733.9,2 h -51.2 c -2.7,0 -5,2.2 -5,5 z"
|
d="m 925.6,139.3 c -0.1,0 -0.1,0 -0.2,0 -0.3,-0.1 -0.6,-0.3 -0.7,-0.6 C 891.7,61 815.4,10.5 730.9,10.6 h -54.2 c -0.6,0 -1,-0.4 -1,-1 0,0 0,0 0,0 V 7 c 0,-3.8 3.1,-6.9 7,-7 h 51.2 c 85.2,0.1 162.4,50.1 197.3,127.8 1.2,2.6 0.6,5.7 -1.5,7.8 l -3.4,3.4 c -0.2,0.2 -0.5,0.3 -0.7,0.3 z M 677.7,8.6 h 53.2 c 84.7,-0.1 161.3,50.2 195,128 l 2.4,-2.4 v 0 c 1.5,-1.4 1.9,-3.6 1.1,-5.5 C 894.8,51.7 818.3,2.1 733.9,2 h -51.2 c -2.7,0 -5,2.2 -5,5 z"
|
||||||
id="path132"
|
id="path132"
|
||||||
|
@ -216,9 +226,10 @@
|
||||||
id="path140"
|
id="path140"
|
||||||
style="fill:#000000" /><path
|
style="fill:#000000" /><path
|
||||||
class="st2"
|
class="st2"
|
||||||
d="m 695.5,299 c -21.2,0 -38.5,-17.2 -38.5,-38.5 0,-21.2 17.2,-38.5 38.5,-38.5 21.2,0 38.5,17.2 38.5,38.5 -0.1,21.2 -17.3,38.4 -38.5,38.5 z m 0,-75 c -20.1,0 -36.5,16.3 -36.5,36.5 0,20.1 16.3,36.5 36.5,36.5 20.1,0 36.5,-16.3 36.5,-36.5 C 731.9,240.4 715.6,224 695.5,224 Z"
|
d="m 695.5,299 c -21.2,0 -38.5,-17.2 -38.5,-38.5 0,-21.2 17.2,-38.5 38.5,-38.5 21.2,0 38.5,17.2 38.5,38.5 -0.1,21.2 -17.3,38.4 -38.5,38.5 z m 0,-75 c -20.1,0 -36.5,16.3 -36.5,36.5 0,20.1 16.20703,36.19743 36.40703,36.19743 C 715.50703,296.69743 732,280.7 732,260.5 731.9,240.4 715.6,224 695.5,224 Z"
|
||||||
id="path142"
|
id="path142"
|
||||||
style="fill:#000000" /><path
|
style="fill:#000000"
|
||||||
|
sodipodi:nodetypes="cssccssscs" /><path
|
||||||
class="st2"
|
class="st2"
|
||||||
d="m 715,750.2 c -16,0 -28.9,-13 -28.9,-28.9 0,-15.9 13,-28.9 28.9,-28.9 16,0 28.9,13 28.9,28.9 0,0 0,0 0,0 0,16 -12.9,28.9 -28.9,28.9 z m 0,-55.9 c -14.9,0 -26.9,12.1 -26.9,26.9 0,14.8 12.1,26.9 26.9,26.9 14.9,0 26.9,-12.1 26.9,-26.9 0,-14.8 -12,-26.8 -26.9,-26.9 z"
|
d="m 715,750.2 c -16,0 -28.9,-13 -28.9,-28.9 0,-15.9 13,-28.9 28.9,-28.9 16,0 28.9,13 28.9,28.9 0,0 0,0 0,0 0,16 -12.9,28.9 -28.9,28.9 z m 0,-55.9 c -14.9,0 -26.9,12.1 -26.9,26.9 0,14.8 12.1,26.9 26.9,26.9 14.9,0 26.9,-12.1 26.9,-26.9 0,-14.8 -12,-26.8 -26.9,-26.9 z"
|
||||||
id="path144"
|
id="path144"
|
||||||
|
@ -243,69 +254,350 @@
|
||||||
d="m 768.9,612.2 c -1.2,0 -2.3,0 -3.4,-0.1 -0.5,0 -0.9,-0.5 -0.9,-1 v -12.3 c 0,-2.5 -1.8,-4.6 -4.3,-4.9 -25.6,-3.9 -45.7,-24 -49.6,-49.6 -0.3,-2.5 -2.4,-4.3 -4.9,-4.3 h -12.3 c -0.5,0 -1,-0.4 -1,-0.9 -0.1,-1.1 -0.1,-2.2 -0.1,-3.4 0,-1.2 0,-2.3 0.1,-3.4 0,-0.5 0.5,-0.9 1,-0.9 h 12.3 c 2.5,0 4.6,-1.8 4.9,-4.3 3.9,-25.6 24,-45.7 49.6,-49.6 2.5,-0.3 4.3,-2.4 4.3,-4.9 v -12.3 c 0,-0.5 0.4,-1 0.9,-1 2.3,-0.1 4.5,-0.1 6.8,0 0.5,0 0.9,0.5 0.9,1 v 12.3 c 0,2.5 1.8,4.6 4.3,4.9 25.6,3.9 45.7,24 49.6,49.6 0.3,2.5 2.4,4.3 4.9,4.3 h 12.3 c 0.5,0 1,0.4 1,0.9 0.1,1.1 0.1,2.2 0.1,3.4 0,1.2 0,2.3 -0.1,3.4 0,0.5 -0.5,0.9 -1,0.9 H 832 c -2.5,0 -4.6,1.8 -4.9,4.3 -3.9,25.6 -24,45.7 -49.6,49.6 -2.5,0.3 -4.3,2.4 -4.3,4.9 v 12.3 c 0,0.5 -0.4,1 -0.9,1 -1.1,0 -2.2,0.1 -3.4,0.1 z m -2.3,-2.1 c 1.5,0.1 3.1,0.1 4.7,0 v -11.3 c 0,-3.5 2.6,-6.4 6,-6.9 24.7,-3.7 44.2,-23.1 47.9,-47.9 0.5,-3.4 3.4,-6 6.9,-6 h 11.3 c 0,-0.8 0,-1.5 0,-2.3 0,-0.8 0,-1.6 0,-2.3 H 832 c -3.5,0 -6.4,-2.6 -6.9,-6 -3.7,-24.7 -23.1,-44.2 -47.9,-47.9 -3.4,-0.5 -6,-3.4 -6,-6.9 v -11.3 c -1.5,-0.1 -3.1,-0.1 -4.7,0 v 11.3 c 0,3.5 -2.6,6.4 -6,6.9 -24.7,3.7 -44.2,23.1 -47.9,47.9 -0.5,3.4 -3.4,6 -6.9,6 h -11.3 c 0,0.8 0,1.5 0,2.3 0,0.8 0,1.6 0,2.3 h 11.3 c 3.5,0 6.4,2.6 6.9,6 3.7,24.7 23.1,44.2 47.9,47.9 3.4,0.5 6,3.4 6,6.9 v 11.3 z"
|
d="m 768.9,612.2 c -1.2,0 -2.3,0 -3.4,-0.1 -0.5,0 -0.9,-0.5 -0.9,-1 v -12.3 c 0,-2.5 -1.8,-4.6 -4.3,-4.9 -25.6,-3.9 -45.7,-24 -49.6,-49.6 -0.3,-2.5 -2.4,-4.3 -4.9,-4.3 h -12.3 c -0.5,0 -1,-0.4 -1,-0.9 -0.1,-1.1 -0.1,-2.2 -0.1,-3.4 0,-1.2 0,-2.3 0.1,-3.4 0,-0.5 0.5,-0.9 1,-0.9 h 12.3 c 2.5,0 4.6,-1.8 4.9,-4.3 3.9,-25.6 24,-45.7 49.6,-49.6 2.5,-0.3 4.3,-2.4 4.3,-4.9 v -12.3 c 0,-0.5 0.4,-1 0.9,-1 2.3,-0.1 4.5,-0.1 6.8,0 0.5,0 0.9,0.5 0.9,1 v 12.3 c 0,2.5 1.8,4.6 4.3,4.9 25.6,3.9 45.7,24 49.6,49.6 0.3,2.5 2.4,4.3 4.9,4.3 h 12.3 c 0.5,0 1,0.4 1,0.9 0.1,1.1 0.1,2.2 0.1,3.4 0,1.2 0,2.3 -0.1,3.4 0,0.5 -0.5,0.9 -1,0.9 H 832 c -2.5,0 -4.6,1.8 -4.9,4.3 -3.9,25.6 -24,45.7 -49.6,49.6 -2.5,0.3 -4.3,2.4 -4.3,4.9 v 12.3 c 0,0.5 -0.4,1 -0.9,1 -1.1,0 -2.2,0.1 -3.4,0.1 z m -2.3,-2.1 c 1.5,0.1 3.1,0.1 4.7,0 v -11.3 c 0,-3.5 2.6,-6.4 6,-6.9 24.7,-3.7 44.2,-23.1 47.9,-47.9 0.5,-3.4 3.4,-6 6.9,-6 h 11.3 c 0,-0.8 0,-1.5 0,-2.3 0,-0.8 0,-1.6 0,-2.3 H 832 c -3.5,0 -6.4,-2.6 -6.9,-6 -3.7,-24.7 -23.1,-44.2 -47.9,-47.9 -3.4,-0.5 -6,-3.4 -6,-6.9 v -11.3 c -1.5,-0.1 -3.1,-0.1 -4.7,0 v 11.3 c 0,3.5 -2.6,6.4 -6,6.9 -24.7,3.7 -44.2,23.1 -47.9,47.9 -0.5,3.4 -3.4,6 -6.9,6 h -11.3 c 0,0.8 0,1.5 0,2.3 0,0.8 0,1.6 0,2.3 h 11.3 c 3.5,0 6.4,2.6 6.9,6 3.7,24.7 23.1,44.2 47.9,47.9 3.4,0.5 6,3.4 6,6.9 v 11.3 z"
|
||||||
id="path154"
|
id="path154"
|
||||||
style="fill:#000000" /><path
|
style="fill:#000000" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 686.27756,295.45757 c -6.3268,-1.65761 -11.02024,-4.44224 -16.19729,-9.60987 -7.7249,-7.71084 -11.00252,-16.02709 -10.55426,-26.7792 0.56274,-13.49806 7.94054,-24.90282 19.94518,-30.83167 10.51307,-5.1922 21.47279,-5.27638 31.58153,-0.24258 7.93543,3.95157 13.41304,9.50319 17.2109,17.44344 5.18792,10.84649 4.24806,24.40322 -2.39714,34.5766 -4.99743,7.65076 -13.48676,13.69608 -22.04004,15.69491 -4.81862,1.12607 -12.72306,1.01273 -17.54888,-0.25163 z m 11.6608,-24.5355 v -5.81067 l 5.62044,-9.96942 c 3.09124,-5.48319 5.62044,-10.21511 5.62044,-10.51538 0,-0.30027 -1.15454,-0.54595 -2.56564,-0.54595 h -2.56564 l -4.20029,8.09641 c -2.67942,5.1648 -4.33588,7.8298 -4.57474,7.3601 -0.20594,-0.40496 -2.13104,-4.04835 -4.27799,-8.0964 l -3.90356,-7.36011 h -2.87335 c -1.58035,0 -2.87336,0.12781 -2.87336,0.28402 0,0.1562 2.64964,4.96636 5.88808,10.68923 l 5.88809,10.40522 v 5.63681 5.63682 h 2.40876 2.40876 z"
|
d="m 686.27756,295.45757 c -6.3268,-1.65761 -11.32251,-3.90411 -16.49956,-9.07174 -7.7249,-7.71084 -11.28942,-16.94502 -10.84116,-27.69713 0.56274,-13.49806 8.02922,-25.02897 20.03386,-30.95782 10.51307,-5.1922 22.55435,-5.30046 32.66309,-0.26666 7.93543,3.95157 12.83197,10.03322 16.62983,17.97347 5.18792,10.84649 4.24806,24.40322 -2.39714,34.5766 -4.99743,7.65076 -13.48676,13.69608 -22.04004,15.69491 -4.81862,1.12607 -12.72306,1.01273 -17.54888,-0.25163 z m 11.6608,-24.5355 v -5.81067 l 5.62044,-9.96942 c 3.09124,-5.48319 5.62044,-10.21511 5.62044,-10.51538 0,-0.30027 -1.15454,-0.54595 -2.56564,-0.54595 h -2.56564 l -4.20029,8.09641 c -2.67942,5.1648 -4.33588,7.8298 -4.57474,7.3601 -0.20594,-0.40496 -2.13104,-4.04835 -4.27799,-8.0964 l -3.90356,-7.36011 h -2.87335 c -1.58035,0 -2.87336,0.12781 -2.87336,0.28402 0,0.1562 2.64964,4.96636 5.88808,10.68923 l 5.88809,10.40522 v 5.63681 5.63682 h 2.40876 2.40876 z"
|
||||||
id="path1462" /><path
|
id="path1462"
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
sodipodi:nodetypes="sssssssssccssscssscssscccccc" /><path
|
||||||
d="m 762.70726,222.86949 c -4.07666,-0.78537 -10.17009,-3.29429 -13.6441,-5.61785 -6.91015,-4.6218 -11.71459,-10.88088 -14.5402,-18.94258 -1.34575,-3.83954 -1.49911,-4.98899 -1.49911,-11.23574 0,-6.24676 0.15336,-7.39621 1.49911,-11.23575 3.87774,-11.0635 11.80142,-19.0577 22.76847,-22.97107 4.25097,-1.51687 5.15889,-1.64602 11.57155,-1.64602 6.41266,0 7.32058,0.12915 11.57155,1.64602 14.51853,5.18065 23.77179,17.63258 24.42528,32.86862 0.45428,10.5913 -2.84072,19.07821 -10.28709,26.49636 -7.55957,7.53093 -14.1652,10.43737 -24.37154,10.72334 -3.38565,0.0949 -6.75791,0.0565 -7.49392,-0.0853 z m 2.38607,-25.68467 c 4.25443,-7.14961 3.37755,-7.25493 8.20926,0.98595 l 3.05431,5.20938 3.12152,0.01 3.12152,0.01 -1.22963,-2.0073 c -0.6763,-1.10401 -3.07664,-4.86619 -5.3341,-8.36039 l -4.10446,-6.35309 4.75516,-7.43514 c 2.61533,-4.08932 4.75516,-7.56602 4.75516,-7.72599 0,-0.15996 -1.24936,-0.21804 -2.77636,-0.12905 l -2.77635,0.16179 -3.10726,5.05393 c -1.70899,2.77966 -3.29562,5.24229 -3.52585,5.47251 -0.23022,0.23022 -1.93136,-2.10426 -3.78031,-5.18775 l -3.36174,-5.60633 h -2.95881 -2.95881 l 1.22685,2.0073 c 0.67476,1.10402 2.8714,4.62127 4.88142,7.81612 l 3.65457,5.80881 -4.85255,7.43415 c -2.66891,4.08878 -4.99211,7.79781 -5.16268,8.24229 -0.25287,0.65897 0.2216,0.80814 2.57051,0.80814 h 2.88063 z"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
id="path1464" /><path
|
d="m 762.70726,222.86949 c 0,-0.31779 -3.67998,-0.84661 -5.68279,-1.60232 -2.94688,-1.11193 -5.893,-2.63216 -7.96131,-4.01553 -6.91015,-4.62179 -11.71459,-10.88088 -14.5402,-18.94258 -1.34575,-3.83954 -2.05596,-5.2027 -2.05596,-11.44945 0,-6.24676 0.71021,-7.1825 2.05596,-11.02204 3.87774,-11.0635 11.80142,-19.0577 22.76847,-22.97107 4.25097,-1.51687 5.14759,-2.2896 11.56025,-2.2896 6.41266,0 7.33188,0.77273 11.58285,2.2896 14.51853,5.18065 24.01748,17.63258 24.67097,32.86862 0.45428,10.5913 -2.7416,19.49589 -10.18797,26.91404 -7.55957,7.53093 -14.42052,10.69917 -24.62686,10.98514 -3.38565,0.0949 -6.8474,-0.62298 -7.58341,-0.76478 z m 2.38607,-25.68467 c 4.25443,-7.14961 3.37755,-7.25493 8.20926,0.98595 l 3.05431,5.20938 3.12152,0.01 3.12152,0.01 -1.22963,-2.0073 c -0.6763,-1.10401 -3.07664,-4.86619 -5.3341,-8.36039 l -4.10446,-6.35309 4.75516,-7.43514 c 2.61533,-4.08932 4.75516,-7.56602 4.75516,-7.72599 0,-0.15996 -1.24936,-0.21804 -2.77636,-0.12905 l -2.77635,0.16179 -3.10726,5.05393 c -1.70899,2.77966 -3.29562,5.24229 -3.52585,5.47251 -0.23022,0.23022 -1.93136,-2.10426 -3.78031,-5.18775 l -3.36174,-5.60633 h -2.95881 -2.95881 l 1.22685,2.0073 c 0.67476,1.10402 2.8714,4.62127 4.88142,7.81612 l 3.65457,5.80881 -4.85255,7.43415 c -2.66891,4.08878 -4.99211,7.79781 -5.16268,8.24229 -0.25287,0.65897 0.2216,0.80814 2.57051,0.80814 h 2.88063 z"
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
id="path1464"
|
||||||
d="m 833.85476,295.72323 c -6.83119,-1.65863 -13.77734,-5.88165 -18.67395,-11.35311 -3.40208,-3.80148 -7.27107,-11.46438 -8.31543,-16.4695 -2.76322,-13.24277 2.63571,-27.85526 13.26894,-35.91309 19.99373,-15.15118 48.09433,-6.6877 56.44101,16.99918 1.86188,5.28381 2.27747,13.55775 0.97503,19.41195 -1.50813,6.77877 -4.55198,12.15816 -9.87968,17.46031 -5.26572,5.24048 -9.89475,7.95133 -16.43315,9.62357 -4.85615,1.24199 -12.80551,1.35206 -17.38277,0.24069 z m 0.90791,-22.33599 1.06927,-3.3455 6.50377,-0.1501 6.50377,-0.1501 0.98735,3.36178 0.98735,3.36179 2.51591,0.16314 c 1.8243,0.1183 2.51592,-0.0335 2.51592,-0.55237 0,-0.39353 -2.29576,-7.75345 -5.10169,-16.35537 l -5.10169,-15.63986 h -3.1506 -3.1506 l -5.20854,15.65695 c -2.86469,8.61132 -5.31927,15.95804 -5.45462,16.32605 -0.17576,0.47789 0.50564,0.6691 2.38452,0.6691 h 2.6306 z"
|
sodipodi:nodetypes="sssssssssssssscscccsscssscssscccsscssscc" /><path
|
||||||
id="path1466" /><path
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
d="m 834.9366,296.44624 c -6.69858,-0.99593 -15.58735,-5.79462 -20.80585,-12.87465 -3.02683,-4.10655 -6.22101,-10.66585 -7.26537,-15.67097 -2.76322,-13.24277 2.63571,-27.85526 13.26894,-35.91309 19.99373,-15.15118 48.09433,-6.6877 56.44101,16.99918 1.86188,5.28381 2.98287,13.31429 1.68043,19.16849 -1.50813,6.77877 -4.86668,12.85647 -10.19438,18.15862 -5.26572,5.24048 -9.89475,7.95133 -16.43315,9.62357 -4.85615,1.24199 -12.03259,1.20154 -16.69163,0.50885 z m -0.17393,-23.059 1.06927,-3.3455 6.50377,-0.1501 6.50377,-0.1501 0.98735,3.36178 0.98735,3.36179 2.51591,0.16314 c 1.8243,0.1183 2.51592,-0.0335 2.51592,-0.55237 0,-0.39353 -2.29576,-7.75345 -5.10169,-16.35537 l -5.10169,-15.63986 h -3.1506 -3.1506 l -5.20854,15.65695 c -2.86469,8.61132 -5.31927,15.95804 -5.45462,16.32605 -0.17576,0.47789 0.50564,0.6691 2.38452,0.6691 h 2.6306 z"
|
||||||
d="m 763.70798,369.86416 c -8.12397,-1.27622 -14.00129,-4.35733 -20.33165,-10.65861 -3.76197,-3.74468 -5.02094,-5.43974 -6.83916,-9.20812 -7.60051,-15.75262 -3.54817,-33.43875 10.18745,-44.46231 6.3567,-5.10159 13.61954,-7.5924 22.13836,-7.5924 29.9337,0 46.67981,33.83863 28.70945,58.01278 -7.44586,10.01634 -21.60997,15.83377 -33.86445,13.90866 z m 11.20335,-21.38348 c 3.07353,-1.75995 4.52918,-4.20847 4.57675,-7.69846 0.0443,-3.24643 -1.27165,-5.85301 -3.49954,-6.93201 l -1.49389,-0.72351 1.60877,-1.54129 c 1.87307,-1.79453 2.80455,-4.70189 2.3305,-7.27407 -0.92747,-5.03237 -3.68485,-6.33408 -13.45172,-6.35026 l -7.09246,-0.0118 v 16.10974 16.10973 l 7.3601,-0.18515 c 6.6513,-0.16732 7.58173,-0.31206 9.66149,-1.50296 z"
|
id="path1466"
|
||||||
id="path1468" /><path
|
sodipodi:nodetypes="sssssssssccccccssscccssscc" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
|
d="m 763.70798,369.86416 c -8.12397,-1.27623 -14.23623,-3.96267 -20.56659,-10.26395 -3.76197,-3.74468 -5.37393,-6.19207 -7.19215,-9.96045 -7.60051,-15.75262 -2.96024,-33.08108 10.77538,-44.10464 6.3567,-5.10159 13.61954,-7.5924 22.13836,-7.5924 29.9337,0 46.67982,33.83863 28.70945,58.01278 -2.79638,3.76175 -6.27683,7.45135 -10.51135,9.84091 -7.04064,3.97306 -15.70093,5.26986 -23.3531,4.06775 z m 11.20335,-21.38348 c 3.07353,-1.75995 4.52918,-4.20847 4.57675,-7.69846 0.0443,-3.24643 -1.27165,-5.85301 -3.49954,-6.93201 l -1.49389,-0.72351 1.60877,-1.54129 c 1.87307,-1.79453 2.80455,-4.70189 2.3305,-7.27407 -0.92747,-5.03237 -3.68485,-6.33408 -13.45172,-6.35026 l -7.09246,-0.0118 v 16.10974 16.10973 l 7.3601,-0.18515 c 6.6513,-0.16732 7.58173,-0.31206 9.66149,-1.50296 z"
|
||||||
|
id="path1468"
|
||||||
|
sodipodi:nodetypes="ssssssssssscssscccsss" /><path
|
||||||
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 762.70726,326.44188 v -4.88945 l 3.72999,0.26688 c 4.16057,0.29769 6.24901,1.33706 6.7575,3.36306 0.94714,3.77369 -1.80659,6.14376 -7.14199,6.14695 l -3.3455,0.002 z"
|
d="m 762.70726,326.44188 v -4.88945 l 3.72999,0.26688 c 4.16057,0.29769 6.24901,1.33706 6.7575,3.36306 0.94714,3.77369 -1.80659,6.14376 -7.14199,6.14695 l -3.3455,0.002 z"
|
||||||
id="path1470" /><path
|
id="path1470" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.999998"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:0.999998;stroke-opacity:1"
|
||||||
d="m 837.54718,264.82028 c 0,-0.76372 4.25204,-14.10124 4.62716,-14.51418 0.17889,-0.19692 1.32644,2.82483 2.55012,6.715 1.22368,3.89017 2.33144,7.35074 2.46168,7.69016 0.18748,0.48856 -0.7918,0.61711 -4.70107,0.61711 -3.25732,0 -4.93789,-0.17292 -4.93789,-0.50809 z"
|
d="m 837.54718,264.82028 c 0,-0.76372 4.25204,-14.10124 4.62716,-14.51418 0.17889,-0.19692 1.32644,2.82483 2.55012,6.715 1.22368,3.89017 2.33144,7.35074 2.46168,7.69016 0.18748,0.48856 -0.7918,0.61711 -4.70107,0.61711 -3.25732,0 -4.93789,-0.17292 -4.93789,-0.50809 z"
|
||||||
id="path1496" /><path
|
id="path1496" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.999998"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:0.999998;stroke-opacity:1"
|
||||||
d="m 763.06218,340.74443 v -5.12084 h 3.61513 c 4.59667,0 6.58099,0.93645 7.49973,3.5393 0.55274,1.56594 0.54465,2.04231 -0.0591,3.47983 -0.97646,2.32493 -3.07062,3.22256 -7.51823,3.22256 h -3.53752 z"
|
d="m 763.06218,340.74443 v -5.12084 h 3.61513 c 4.59667,0 6.58099,0.93645 7.49973,3.5393 0.55274,1.56594 0.54465,2.04231 -0.0591,3.47983 -0.97646,2.32493 -3.07062,3.22256 -7.51823,3.22256 h -3.53752 z"
|
||||||
id="path1498" /><path
|
id="path1498" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#1a1a1a;stroke-width:1;stroke-opacity:1"
|
||||||
d="m 766.92321,602.64753 c -0.29048,-8.92659 -0.85756,-9.59054 -10.1321,-11.86299 -21.45382,-5.25664 -37.29198,-20.85776 -42.70074,-42.06165 -0.55002,-2.15622 -1.00003,-4.47981 -1.00003,-5.16353 0,-0.68371 -1.0064,-2.24952 -2.23643,-3.47956 l -2.23643,-2.23643 h -6.9724 -6.97241 v -1.97332 -1.97332 h 5.94109 c 6.60342,0 9.93688,-1.00153 11.20212,-3.36564 0.44261,-0.82703 1.34271,-3.96544 2.00022,-6.97425 3.49259,-15.98235 14.91214,-30.68661 29.48362,-37.96428 4.71573,-2.35525 11.36654,-4.65443 15.50589,-5.36038 6.61875,-1.12879 8.22218,-3.61509 8.22218,-12.74947 v -5.94109 h 1.97332 1.97332 v 6.89625 c 0,6.61611 0.0735,6.97475 1.80888,8.82901 1.46262,1.5628 3.13096,2.25493 8.7155,3.61572 20.40883,4.97306 36.06052,19.9102 41.49254,39.59826 0.78813,2.85653 1.76467,6.36883 2.17007,7.80511 1.22789,4.35011 3.85392,5.61076 11.68766,5.61076 h 6.48046 v 1.97332 1.97332 h -6.6104 c -6.95598,0 -9.89025,0.84134 -10.81193,3.1001 -0.2638,0.64649 -1.18554,3.97814 -2.0483,7.40367 -5.38972,21.39923 -21.36363,37.35004 -42.22246,42.16138 -9.94989,2.29507 -10.66202,3.14671 -10.66202,12.75068 v 6.28151 h -1.91345 -1.91345 z"
|
d="m 766.92321,602.64753 c -0.29048,-8.92659 -0.82524,-9.72678 -10.1321,-11.86299 -21.0747,-4.8373 -37.20457,-20.14213 -42.61333,-41.34602 -0.55002,-2.15622 -1.08744,-5.19544 -1.08744,-5.87916 0,-0.68371 -1.0064,-2.24952 -2.23643,-3.47956 l -2.34864,-1.94853 -6.86019,-0.2879 h -6.97241 v -1.97332 -1.97332 h 5.94109 c 6.60342,0 9.93688,-1.00153 11.20212,-3.36564 0.44261,-0.82703 1.50127,-3.93512 2.00022,-6.97425 2.67764,-16.30961 14.91214,-30.68661 29.48362,-37.96428 4.71573,-2.35525 11.36654,-4.65443 15.50589,-5.36038 6.61875,-1.12879 8.22218,-3.61509 8.22218,-12.74947 v -5.94109 h 1.97332 1.97332 v 6.89625 c 0,6.61611 0.0735,6.97475 1.80888,8.82901 1.46262,1.5628 3.90685,1.70471 9.49139,3.0655 20.40883,4.97306 35.28463,20.46042 40.71665,40.14848 0.78813,2.85653 1.76467,6.36883 2.17007,7.80511 1.22789,4.35011 3.85392,5.61076 11.68766,5.61076 h 6.48046 v 1.97332 1.97332 h -6.6104 c -6.95598,0 -9.89025,0.84134 -10.81193,3.1001 -0.2638,0.64649 -1.27295,4.60779 -2.13571,8.03332 -5.38972,21.39923 -21.27622,36.72039 -42.13505,41.53173 -9.94989,2.29507 -10.66202,3.14671 -10.66202,12.75068 v 6.28151 h -1.91345 -1.91345 z"
|
||||||
id="path1500" /><path
|
id="path1500"
|
||||||
|
sodipodi:nodetypes="ssssscccccsssssscccsssssscccssssscccs" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
||||||
d=""
|
d=""
|
||||||
id="path1502" /><path
|
id="path1502" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
||||||
d="m 695.45795,526.49678 c 1.75282,-15.26781 9.42349,-30.89435 20.92126,-42.62035 11.95352,-12.1908 27.0212,-19.51188 45.22194,-21.97243 l 2.79554,-0.37793 v 6.18375 c 0,7.93282 -0.51936,8.65269 -7.23551,10.02904 -22.30129,4.57023 -40.70977,22.45408 -45.7072,44.40457 -2.01248,8.8395 -2.35691,9.12221 -11.11415,9.12221 h -5.42936 z"
|
d="m 695.45795,526.49678 c 1.75282,-15.26781 8.92367,-31.22618 20.42144,-42.95218 11.95352,-12.1908 27.52102,-19.18005 45.72176,-21.6406 l 2.79554,-0.37793 v 6.18375 c 0,7.93282 -0.12396,8.86863 -6.84011,10.24498 -22.30129,4.57023 -41.81316,22.08888 -46.1026,44.18863 -1.7607,9.07134 -2.35691,9.12221 -11.11415,9.12221 h -5.42936 z"
|
||||||
id="path1504" /><path
|
id="path1504"
|
||||||
|
sodipodi:nodetypes="ssscsssscs" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
||||||
d="M 754.53008,608.24817 C 722.31091,601.3332 698.78801,575.33696 695.1389,542.61223 l -0.23838,-2.13776 h 6.36187 c 5.30645,0 6.54081,0.19773 7.44049,1.19187 0.59325,0.65553 1.8242,4.13099 2.73545,7.72325 5.73315,22.60074 22.81787,39.26947 45.21411,44.1132 6.89875,1.49203 7.74425,2.60069 7.74425,10.15464 v 5.88328 l -2.13776,-0.0463 c -1.17577,-0.0255 -4.65375,-0.58628 -7.72885,-1.24626 z"
|
d="M 754.53008,608.24817 C 722.31091,601.3332 698.78801,575.33696 695.1389,542.61223 l -0.23838,-2.13776 h 6.36187 c 6.88754,0 6.85298,0.0191 7.74616,1.01913 1.26613,1.41754 1.51209,3.83358 2.42978,7.89599 4.79388,21.22157 24.19052,39.13835 46.58676,43.98208 6.89875,1.49203 6.3716,2.73181 6.3716,10.28576 v 5.88328 l -2.13776,-0.0463 c -1.17577,-0.0255 -4.65375,-0.58628 -7.72885,-1.24626 z"
|
||||||
id="path1506" /><path
|
id="path1506"
|
||||||
|
sodipodi:nodetypes="sscssssscsss" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
||||||
d="m 773.60552,603.37682 c 0,-7.26315 0.7124,-8.57514 5.06106,-9.32073 4.85038,-0.83162 11.1113,-2.92244 16.31659,-5.44891 15.80304,-7.67023 27.12455,-21.98721 31.55746,-39.907 0.97744,-3.95125 2.07685,-6.90365 2.75558,-7.39995 0.71733,-0.52453 3.39605,-0.82576 7.34299,-0.82576 h 6.21369 l -0.43161,3.7822 c -3.78834,33.19719 -31.7798,61.26383 -64.82878,65.00289 l -3.98698,0.45108 z"
|
d="m 773.33996,603.05325 c -0.28949,-7.25738 0.97796,-8.25157 5.32662,-8.99716 4.85038,-0.83162 11.1113,-2.92244 16.31659,-5.44891 15.80304,-7.67023 27.12455,-21.98721 31.55746,-39.907 0.97744,-3.95125 1.56987,-7.24086 2.2486,-7.73716 0.71733,-0.52453 3.90303,-0.48855 7.84997,-0.48855 h 6.21369 l -0.43161,3.7822 c -3.78834,33.19719 -31.7798,61.26383 -64.82878,65.00289 l -3.98698,0.45108 z"
|
||||||
id="path1508" /><path
|
id="path1508"
|
||||||
|
sodipodi:nodetypes="sssssscsscs" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
||||||
d="m 829.28285,529.78565 c -1.17591,-1.07273 -1.92806,-2.90835 -2.7333,-6.67061 -4.37909,-20.45999 -18.95972,-36.61709 -39.28934,-43.53733 -2.43875,-0.83016 -5.8241,-1.71782 -7.52299,-1.97259 -1.88233,-0.28227 -3.68318,-1.05749 -4.6103,-1.9846 -1.37609,-1.3761 -1.5214,-2.11712 -1.5214,-7.7588 v -6.23739 l 2.46665,0.33127 c 18.99503,2.55107 32.67768,9.21103 45.44487,22.12006 10.43139,10.54728 17.44069,23.80984 20.16018,38.14583 0.547,2.88355 0.99455,6.09813 0.99455,7.14349 v 1.90066 h -5.88329 c -5.18197,0 -6.07667,-0.17643 -7.50563,-1.47999 z"
|
d="m 828.66155,529.84176 c -1.17591,-1.07273 -1.30676,-2.96446 -2.112,-6.72672 -4.37909,-20.45999 -18.95972,-36.61709 -39.28934,-43.53733 -2.43875,-0.83016 -5.8241,-1.71782 -7.52299,-1.97259 -1.88233,-0.28227 -3.85602,-0.56229 -4.78314,-1.4894 -1.37609,-1.3761 -1.34856,-2.61232 -1.34856,-8.254 v -6.23739 l 2.46665,0.33127 c 18.99503,2.55107 32.67768,9.21103 45.44487,22.12006 10.43139,10.54728 17.44069,23.80984 20.16018,38.14583 0.547,2.88355 0.99455,6.09813 0.99455,7.14349 v 1.90066 h -5.88329 c -5.18197,0 -6.69797,-0.12032 -8.12693,-1.42388 z"
|
||||||
id="path1510" /><path
|
id="path1510"
|
||||||
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.999999"
|
sodipodi:nodetypes="sssssscsssscss" /><path
|
||||||
d="m 663.62068,131.03319 c -0.53326,-0.58925 -0.625,-1.69704 -0.625,-7.54707 v -6.85645 l -1.10115,-1.23333 -1.10115,-1.23332 -7.11278,-0.10646 c -9.08871,-0.13604 -8.43455,0.46843 -8.43455,-7.79389 0,-4.68262 0.12554,-6.289149 0.5353,-6.850301 0.49015,-0.671243 1.10329,-0.741434 7.26979,-0.832236 3.70397,-0.05454 7.12214,-0.18656 7.59593,-0.293374 0.47378,-0.106815 1.19541,-0.741963 1.60361,-1.411441 0.66219,-1.086052 0.74232,-1.921972 0.74358,-7.756551 8.2e-4,-3.782617 0.16622,-6.847257 0.39235,-7.269795 0.3648,-0.681634 0.8563,-0.730476 7.35092,-0.730476 6.49462,0 6.98613,0.04884 7.35092,0.730476 0.22614,0.422538 0.39154,3.487178 0.39236,7.269795 10e-4,5.834579 0.0814,6.670499 0.74358,7.756551 0.4082,0.669478 1.12983,1.304626 1.60361,1.411441 0.47379,0.106814 3.89196,0.238833 7.59593,0.293374 6.1665,0.0908 6.77964,0.160993 7.26979,0.832236 0.40976,0.561152 0.5353,2.167681 0.5353,6.850301 0,8.26232 0.65416,7.65785 -8.43455,7.79389 l -7.11278,0.10646 -1.10115,1.23332 -1.10115,1.23333 v 6.92207 c 0,6.22636 -0.0694,6.98488 -0.69062,7.54707 -0.58568,0.53003 -1.66715,0.62501 -7.11685,0.62501 -5.74601,0 -6.49238,-0.0731 -7.05124,-0.69063 z"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:0.999999;stroke-opacity:1"
|
||||||
id="path1512" /><path
|
d="m 663.62068,131.03319 c -0.53326,-0.58925 -0.625,-1.69704 -0.625,-7.54707 v -6.85645 l -1.10115,-1.23333 -1.10115,-1.23332 -7.11278,-0.10646 c -4.06806,-0.0609 -6.47681,0.46167 -7.5734,-0.16401 -1.35335,-0.7722 -0.86115,-3.06574 -0.86115,-7.62988 0,-4.68262 0.12554,-6.289149 0.5353,-6.850301 0.49015,-0.671243 1.10329,-0.741434 7.26979,-0.832236 3.70397,-0.05454 7.12214,-0.18656 7.59593,-0.293374 0.47378,-0.106815 1.19541,-0.741963 1.60361,-1.411441 0.66219,-1.086052 0.74232,-1.921972 0.74358,-7.756551 8.2e-4,-3.782617 0.16622,-6.847257 0.39235,-7.269795 0.3648,-0.681634 0.8563,-0.730476 7.35092,-0.730476 6.49462,0 6.98613,0.04884 7.35092,0.730476 0.22614,0.422538 0.39154,3.487178 0.39236,7.269795 10e-4,5.834579 0.0814,6.670499 0.74358,7.756551 0.4082,0.669478 1.12983,1.304626 1.60361,1.411441 0.47379,0.106814 3.89196,0.238833 7.59593,0.293374 6.1665,0.0908 6.77964,0.160993 7.26979,0.832236 0.40976,0.561152 0.5353,2.167681 0.5353,6.850301 0,4.82187 0.7369,7.18936 -0.88407,7.88102 -1.15658,0.4935 -3.76592,-0.14378 -7.55048,-0.0871 l -7.11278,0.10646 -1.10115,1.23332 -1.10115,1.23333 v 6.92207 c 0,6.22636 -0.0694,6.98488 -0.69062,7.54707 -0.58568,0.53003 -1.66715,0.62501 -7.11685,0.62501 -5.74601,0 -6.49238,-0.0731 -7.05124,-0.69063 z"
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
id="path1512"
|
||||||
d="m 709.89826,726.4428 v -5.25775 h 5.25776 5.25775 v 5.25775 5.25776 h -5.25775 -5.25776 z"
|
sodipodi:nodetypes="sscccssssssssssscssssssscccssss" /><path
|
||||||
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1.00067"
|
||||||
|
d="m 709.8986,726.4428 v -5.25741 h 5.30749 5.20734 v 5.25741 5.25742 h -5.20734 -5.30749 z"
|
||||||
id="path1514" /><path
|
id="path1514" /><path
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
||||||
d="m 708.88715,747.11324 c -7.7953,-1.94254 -14.19265,-7.02605 -17.61469,-13.99713 -2.11167,-4.3017 -2.80967,-7.2657 -2.80967,-11.93106 0,-4.6603 0.69677,-7.62382 2.80517,-11.93107 2.98868,-6.10556 8.92756,-11.23718 15.51022,-13.40195 4.61637,-1.51813 11.17625,-1.60821 15.65781,-0.215 15.04474,4.67704 23.00917,20.70184 17.43246,35.07495 -4.8049,12.38391 -18.34269,19.55071 -30.9813,16.40126 z m 20.42437,-17.43489 v -8.4933 h 2.62887 c 1.44589,0 2.62888,-0.13514 2.62888,-0.3003 0,-0.16516 -4.4121,-4.71516 -9.80467,-10.1111 l -9.80467,-9.8108 -9.81081,9.80467 c -5.39594,5.39257 -9.8108,9.94257 -9.8108,10.1111 0,0.16854 1.27399,0.30643 2.8311,0.30643 h 2.8311 v 8.4933 8.4933 h 14.1555 14.1555 z"
|
d="m 709.32587,761.61376 c -14.84534,-2.33618 -27.22151,-12.34303 -32.43644,-26.22673 -7.52289,-20.0282 2.33277,-43.0312 22.02756,-51.41208 6.07171,-2.58375 7.95693,-3.52014 15.69808,-3.49043 6.50926,0.025 7.91106,0.60374 11.25868,1.62027 14.44352,4.38591 24.64194,14.87492 28.58676,29.40132 0.78714,2.89856 1.10607,5.2416 1.09829,10.74202 -0.008,5.44704 -0.33673,6.15425 -1.11435,9.04799 -4.75273,17.68623 -20.04274,29.95104 -38.0751,30.54176 -2.55811,0.0838 -5.72767,-0.0171 -7.04348,-0.22412 z m 12.01917,-11.94961 c 11.93985,-2.6283 21.26602,-13.04595 22.49006,-25.12213 2.18282,-21.53536 -18.13115,-37.7028 -38.52104,-30.65805 -4.17709,1.44319 -6.99053,3.28712 -10.81791,7.09005 -2.821,2.80297 -3.81838,4.14269 -5.32568,7.15366 -2.55937,5.1126 -3.29841,8.68914 -3.02322,14.63061 0.31524,6.80606 2.15585,11.73401 6.30752,16.88741 6.75846,8.38917 18.22621,12.36591 28.89027,10.01845 z"
|
||||||
id="path1516" /><path
|
id="path1518"
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
sodipodi:nodetypes="cssssscsscssssssss" /><path
|
||||||
d="m 709.32587,761.61376 c -14.84534,-2.33618 -27.22151,-12.34303 -32.43644,-26.22673 -7.52289,-20.0282 2.33277,-43.0312 22.02756,-51.41208 6.07171,-2.58375 8.49788,-3.03235 16.23903,-3.00264 6.50926,0.025 7.37011,0.11595 10.71773,1.13248 14.44352,4.38591 24.64194,14.87492 28.58676,29.40132 0.78714,2.89856 0.92468,4.38074 0.9169,9.88116 -0.008,5.44704 -0.15534,7.01511 -0.93296,9.90885 -4.75273,17.68623 -20.04274,29.95104 -38.0751,30.54176 -2.55811,0.0838 -5.72767,-0.0171 -7.04348,-0.22412 z m 12.01917,-11.94961 c 11.93985,-2.6283 21.26602,-13.04595 22.49006,-25.12213 2.18282,-21.53536 -18.13115,-37.7028 -38.52104,-30.65805 -4.17709,1.44319 -6.99053,3.28712 -10.81791,7.09005 -2.821,2.80297 -3.81838,4.14269 -5.32568,7.15366 -2.55937,5.1126 -3.29841,8.68914 -3.02322,14.63061 0.31524,6.80606 2.15585,11.73401 6.30752,16.88741 6.75846,8.38917 18.22621,12.36591 28.89027,10.01845 z"
|
style="opacity:1;fill:#ff5f55;fill-opacity:0.956863;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
id="path1518" /><path
|
d="m 591.47251,714.31134 c -1.32743,-0.80942 -2.29002,-0.92179 -2.47367,-5.31313 -0.18144,-4.33862 0.062,-13.48601 0.062,-32.6299 0,-32.80523 -0.46981,-35.19682 0.63005,-36.25656 0.0664,-0.064 0.1032,-0.14627 0.16097,-0.21975 1.14169,-1.45141 2.68891,-2.12685 4.87199,-2.12685 h 1.91275 v 38.63637 38.63636 l -1.98864,-0.002 c -1.28887,-7.5e-4 -2.40626,-0.25607 -3.17548,-0.72512 z"
|
||||||
style="opacity:1;fill:#ff5f55;fill-opacity:0.956863;stroke:#4d4d4d;stroke-width:1"
|
id="path1520"
|
||||||
d="m 591.47251,714.31134 c -2.59326,-1.58129 -2.41164,1.27628 -2.41164,-37.94303 0,-35.39705 0.002,-35.47278 0.79102,-36.47631 1.14169,-1.45141 2.68891,-2.12685 4.87199,-2.12685 h 1.91275 v 38.63637 38.63636 l -1.98864,-0.002 c -1.28887,-7.5e-4 -2.40626,-0.25607 -3.17548,-0.72512 z"
|
sodipodi:nodetypes="cssscscccccc" /><path
|
||||||
id="path1520" /><path
|
style="opacity:1;fill:#ff5f55;fill-opacity:0.956863;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
style="opacity:1;fill:#ff5f55;fill-opacity:0.956863;stroke:#4d4d4d;stroke-width:1"
|
d="m 592.87653,312.11027 c -0.50555,-0.0951 -1.32392,-0.43812 -1.8186,-0.76224 -0.77901,-0.51042 -1.53827,-0.76694 -1.82846,-2.70306 -0.48349,-3.2259 -0.1686,-11.38158 -0.1686,-35.10181 0,-19.2629 -0.52222,-28.34633 -0.3807,-32.53262 0.0922,-2.72597 0.77878,-3.23422 1.00023,-3.60909 0.93375,-1.58064 2.4287,-2.28781 4.83664,-2.28781 h 2.11959 V 273.75 312.38636 l -1.42045,-0.0516 c -0.78125,-0.0284 -1.83409,-0.1294 -2.33965,-0.22451 z"
|
||||||
d="m 592.87653,312.11027 c -0.50555,-0.0951 -1.32393,-0.43811 -1.8186,-0.76224 -2.07696,-1.36087 -1.99706,0.15175 -1.99706,-37.80487 0,-31.80626 0.058,-35.19116 0.61953,-36.14171 0.93372,-1.58066 2.4287,-2.28781 4.83664,-2.28781 h 2.11959 V 273.75 312.38636 l -1.42045,-0.0516 c -0.78125,-0.0284 -1.83409,-0.1294 -2.33965,-0.22451 z"
|
id="path1522"
|
||||||
id="path1522" /><path
|
sodipodi:nodetypes="ssssssscccsss" /><path
|
||||||
style="opacity:1;fill:#000000;fill-opacity:0.956863;stroke:#4d4d4d;stroke-width:1"
|
style="opacity:1;fill:#000000;fill-opacity:0.956863;stroke:#4d4d4d;stroke-width:1"
|
||||||
d="M 921.31509,126.45258 C 911.22775,105.90097 899.41123,89.210741 883.15837,72.558198 848.342,36.885643 804.48862,15.547979 753.51164,9.4762173 748.44895,8.8732107 740.43487,8.6841876 712.59008,8.5110262 L 677.96414,8.2956939 V 6.8885761 c 0,-0.9784616 0.48302,-1.8901352 1.58557,-2.9926826 l 1.58556,-1.5855648 h 30.73203 c 16.92783,0 33.54939,0.2176979 37.00428,0.4846569 50.75274,3.9216602 97.06468,24.5817024 133.31418,59.4722764 17.58138,16.922285 31.48259,35.738975 42.78184,57.909488 4.28368,8.40514 4.87972,10.05538 4.25358,11.77682 -0.41652,1.14511 -2.61821,3.7514 -3.13345,3.70927 -0.14438,-0.0118 -2.29207,-4.15642 -4.77264,-9.21026 z"
|
d="M 921.31509,126.45258 C 911.22775,105.90097 899.41123,89.210741 883.15837,72.558198 848.342,36.885643 804.48862,15.547979 753.51164,9.4762173 748.44895,8.8732107 740.43487,8.6841876 712.59008,8.5110262 L 677.96414,8.2956939 V 6.8885761 c 0,-0.9784616 0.0131,-2.9650392 1.40163,-3.6743483 l 2.12353,-1.1288295 30.378,0.2249304 c 16.92737,0.1253367 33.54939,0.2176979 37.00428,0.4846569 50.75274,3.9216602 97.06468,24.5817024 133.31418,59.4722764 17.58138,16.922285 31.48259,35.738975 42.78184,57.909488 4.28368,8.40514 4.87972,10.05538 4.25358,11.77682 -0.41652,1.14511 -2.66192,4.17147 -3.17716,4.12934 -0.14438,-0.0118 -2.24836,-4.57649 -4.72893,-9.63033 z"
|
||||||
id="path1524" /><path
|
id="path1524"
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
sodipodi:nodetypes="sssscsscsssssss" /><path
|
||||||
d="m 591.56604,904.17079 c -2.01964,-1.17632 -2.15587,-6.52992 -2.15587,-84.72244 v -83.46676 l 4.9277,-10.18986 4.92769,-10.18984 v -39.48272 -39.48272 l -4.92769,-9.84523 -4.9277,-9.84523 V 475.04429 333.1426 l 4.9277,-10.18986 4.92769,-10.18984 v -39.48272 -39.48272 l -4.93732,-9.86447 -4.93732,-9.86446 0.31761,-73.44555 0.31761,-73.44554 6.5676,-0.375829 c 3.78331,-0.216499 7.3086,0.239148 8.31548,1.074785 1.50292,1.24731 1.74788,59.776984 1.74788,417.620064 v 416.16945 l -2.73795,1.91775 c -3.10138,2.17229 -9.13889,2.45924 -12.35311,0.58713 z"
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
id="path1530" /><path
|
d="m 590.08186,903.77298 c -0.55877,-0.54988 -1.70743,-1.18329 -1.55645,-5.03977 0.26239,-6.70193 -0.21555,-27.16243 -0.13871,-79.12435 l 0.29646,-82.56455 2.57494,-6.44666 7.90468,-15.05275 0.10278,-39.42573 L 598.9,636.5 l -7.10988,-13.23431 -2.91024,-7.69331 -0.38184,-7.29025 0.0879,-48.02714 -0.10334,-22.13198 0.0966,-34.13422 0.0553,-10.47634 0.0117,-10.49224 -0.0696,-8.60257 0.0161,-25.57403 -0.005,-19.35155 -0.14968,-27.48393 0.0746,-21.58573 -0.0172,-11.0146 0.10416,-19.60547 -0.0482,-10.22715 0.54617,-5.68471 1.91706,-5.78584 2.96237,-5.52269 5.28838,-9.81904 V 273.28018 L 598.9,233.7 l -5.2812,-9.75149 -2.68351,-5.33049 -1.81693,-5.13665 -0.73664,-7.59716 0.23713,-13.31736 -0.12377,-12.24771 -0.0136,-11.08368 -0.0374,-10.84778 0.0307,-9.87039 0.01,-6.53596 0.018,-2.90392 0.0682,-17.39197 0.0306,-21.51034 -10e-4,-10.808249 -0.0542,-8.443665 0.017,-5.12553 -0.22211,-5.939713 2.2004,-3.055633 L 593.7,65.7 l 3.21783,0.0589 c 1.41548,0.02591 2.72523,0.05679 3.94006,0.2405 0.8633,0.130547 1.83634,0.127121 2.58513,0.398351 0.99296,0.35967 1.67802,1.018584 2.03567,1.315407 0.20827,0.172853 1.21427,1.722556 1.32566,4.747437 0.0757,2.056368 -0.0202,4.681671 -0.01,8.332014 0.0118,4.09125 0.083,9.689119 0.0361,16.361518 -0.0703,10.012523 -0.0176,23.117313 -0.0816,40.379883 -0.0488,13.18104 0.19588,28.6727 0.14409,46.98667 -0.17752,62.76594 -0.24767,157.98682 -0.2362,300.97578 l 0.0334,416.2456 -1.26287,1.82282 c -1.80326,2.60281 -12.60786,2.90243 -15.34573,0.2081 z"
|
||||||
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#4d4d4d;stroke-width:1"
|
id="path1530"
|
||||||
|
sodipodi:nodetypes="sssccccccccccccccccccccccccccccccccccccccccccccccsssssssssscsss" /><path
|
||||||
|
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
|
||||||
d="M 609.12095,465.08874 V 72.721096 h 4.31173 4.31173 V 465.08874 857.45638 h -4.31173 -4.31173 z"
|
d="M 609.12095,465.08874 V 72.721096 h 4.31173 4.31173 V 465.08874 857.45638 h -4.31173 -4.31173 z"
|
||||||
id="path1532" /></g></svg>
|
id="path1532" /><ellipse
|
||||||
|
id="path3879"
|
||||||
|
style="fill:#999595;fill-opacity:1;stroke:#000000;stroke-width:2.39278;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
cx="714.8844"
|
||||||
|
cy="721.06708"
|
||||||
|
rx="40.266735"
|
||||||
|
ry="40.271378" /><ellipse
|
||||||
|
style="fill:#3a3d40;fill-opacity:1;stroke:#000000;stroke-width:2.72654;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path3881"
|
||||||
|
cx="714.94818"
|
||||||
|
cy="721.38947"
|
||||||
|
rx="34.056984"
|
||||||
|
ry="34.485676" /><path
|
||||||
|
class="st2"
|
||||||
|
d="m 715,694.3 -26.77014,26.41636 h 7.64861 v 22.52766 h 38.51622 v -22.52766 h 7.23886 z m 7.78519,40.89843 h -15.16064 v -14.48207 h 15.16064 z"
|
||||||
|
id="path96"
|
||||||
|
style="fill:#000000;stroke-width:1.35332" /></g><ellipse
|
||||||
|
id="ellipse382"
|
||||||
|
style="fill:#2e2f31;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
cx="344.63858"
|
||||||
|
cy="859.60608"
|
||||||
|
rx="15.571124"
|
||||||
|
ry="14.069173" /><path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path384"
|
||||||
|
d="m 443.0983,809.82781 v 45.80985"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path386"
|
||||||
|
d="m 436.0092,815.74618 v 36.37333"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path388"
|
||||||
|
d="m 355.92023,980.61127 c -0.159,2.38632 -0.9339,4.18348 -2.3494,5.44717 -1.0538,0.94086 -2.4969,1.60298 -4.1869,1.92092 -0.3864,0.0726 -1.0871,0.1771 -1.0975,0.16314 0,-0.005 -0.093,-0.85306 -0.2017,-1.88773 -0.1082,-1.03464 -0.2053,-1.93454 -0.2156,-1.9998 -0.018,-0.10426 -0.01,-0.11846 0.052,-0.11846 0.1214,0 0.6621,-0.12294 1.0604,-0.24083 1.8948,-0.56173 2.9076,-1.69881 3.1357,-3.52037 0.053,-0.4186 0.023,-1.49252 -0.051,-1.88234 -0.1958,-1.02944 -0.6378,-1.79009 -1.336,-2.30018 -0.5453,-0.39839 -0.9906,-0.54269 -1.6797,-0.54425 -0.4911,0 -0.7649,0.0565 -1.0906,0.22816 -0.224,0.11845 -0.5342,0.39899 -0.7138,0.64552 -0.4284,0.5885 -0.6382,1.17335 -1.3991,3.89925 -0.4752,1.70296 -0.7598,2.51481 -1.1909,3.39834 -0.584,1.19653 -1.3563,2.06447 -2.414,2.7127 -0.5828,0.35721 -1.3337,0.64064 -2.0474,0.7727 -0.3392,0.0631 -0.4902,0.0716 -1.1851,0.0709 -0.6888,-7.5e-4 -0.842,-0.01 -1.1342,-0.0703 -1.7103,-0.34894 -3.1451,-1.32436 -3.9859,-2.70946 -0.3778,-0.62245 -0.6928,-1.42824 -0.8702,-2.22642 -0.3894,-1.7521 -0.3112,-4.07304 0.1924,-5.71076 0.2323,-0.7556 0.6307,-1.54303 1.0637,-2.10262 0.2976,-0.38477 1.0376,-1.06011 1.4626,-1.33492 0.6802,-0.43973 1.5737,-0.79266 2.4151,-0.95396 0.4254,-0.0815 0.9688,-0.14541 1.2361,-0.14541 h 0.1571 l 2e-4,0.18183 c 2e-4,0.0998 0.039,0.97141 0.087,1.93652 0.048,0.96511 0.086,1.80485 0.086,1.86617 l 10e-5,0.11137 -0.3029,0.0565 c -0.6791,0.12626 -1.358,0.40173 -1.7702,0.71779 -0.8027,0.61542 -1.1472,1.52476 -1.1467,3.02784 3e-4,0.9899 0.1461,1.66912 0.5004,2.33009 0.4111,0.76692 0.8552,1.07989 1.5814,1.1146 0.5403,0.0263 0.9144,-0.092 1.2917,-0.40687 0.6036,-0.50373 1.0028,-1.42843 1.6845,-3.90103 0.5306,-1.92496 0.7696,-2.6569 1.1769,-3.6043 0.7236,-1.68302 1.723,-2.76077 3.1653,-3.41339 0.8627,-0.39031 1.6574,-0.56193 2.8045,-0.60571 1.3619,-0.0523 2.6128,0.24529 3.8083,0.90462 1.3364,0.73709 2.2925,1.87859 2.8381,3.38818 0.4756,1.31608 0.6841,3.06752 0.5698,4.78495 v 0 z"
|
||||||
|
style="fill:#000000;stroke:#000000;stroke-width:0.0133722;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path390"
|
||||||
|
d="m 344.68166,571.55323 -11.22758,0.0524 0.0282,-4.64898 c 0.0146,-2.39871 0.018,-4.79751 0.034,-5.29725 0.1201,-2.99844 0.50834,-4.47151 1.80242,-5.57094 1.43938,-1.29933 3.86276,-1.68857 6.05962,-1.28878 1.22398,0.1999 2.1495,0.86284 2.97159,1.66242 0.75529,0.79959 1.34588,1.99896 1.58337,3.29829 0.053,0.29984 0.0886,0.10698 0.12964,0.007 0.026,0 0.17696,-0.007 0.36596,-0.20693 0.79258,-1.09943 1.50437,-1.8495 2.85325,-2.64909 0.78279,-0.49974 1.13628,-0.74914 4.08763,-2.44826 l 2.49546,-1.39927 0.01,2.39875 c 0,1.99896 -2e-4,2.4987 -0.034,2.4987 -0.023,0 -1.34447,0.89954 -2.93445,1.79907 -4.59312,2.79854 -5.0351,3.37378 -5.57969,3.97346 -0.54019,0.69964 -0.66221,0.81512 -0.69151,2.41429 l 0.48716,0.75844 4.08351,0.26903 4.69846,0.0106 -0.0199,2.16917 0.0199,2.25025 -11.13382,-0.0473 z m -1.74891,-9.39408 c -0.041,-0.69963 -0.114,-1.29932 -0.18719,-1.49922 -0.2217,-0.79958 -0.88159,-1.39927 -1.75178,-1.59917 -0.32459,-0.1 -1.14798,-0.1 -1.50817,-0.1 -0.87379,0.1 -1.48218,0.49974 -1.85017,1.19938 -0.3531,0.69964 -0.3777,0.99948 -0.3791,4.69756 l -7e-4,2.4987 h 2.85636 2.85645 v -2.2988 c 0,-1.29933 -0.018,-2.59865 -0.036,-2.8985 z"
|
||||||
|
style="fill:#000000;stroke:#000000;stroke-width:0.0133722;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
sodipodi:nodetypes="ccscccccccccccscccccccccccccccccccscc" /><path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path392"
|
||||||
|
d="m 333.0763,580.70071 c 0.2699,-3.09839 1.47058,-5.09735 3.82724,-6.39667 0.94539,-0.49974 2.47236,-0.99948 3.66664,-1.09943 h 0.2144 l 0.021,0.1 c 0.037,0.19989 0.41959,3.89797 0.40439,3.89797 -0.01,0 -0.17189,0.1 -0.36389,0.1 -0.1921,0 -0.53819,0.0999 -0.76929,0.1999 -1.79067,0.49974 -2.78005,1.59916 -3.10355,3.19833 -0.099,0.49974 -0.1074,1.59917 -0.015,2.19886 0.1217,0.69964 0.322,1.19938 0.62179,1.59917 0.41149,0.59969 0.98798,0.99948 1.60627,1.19938 0.3497,0.0999 1.05159,0.19989 1.39958,0.0999 0.68299,-0.19989 1.12958,-0.49974 1.53758,-1.29932 0.28619,-0.49974 0.48609,-1.09943 1.12488,-3.39823 0.58179,-2.09891 0.89518,-2.99845 1.46878,-3.99793 0.54769,-0.99948 1.29527,-1.69911 2.25086,-2.2988 1.01618,-0.59969 2.16996,-0.89953 3.44104,-0.79959 1.09519,0 2.11077,0.29985 3.03455,0.89954 0.67949,0.39979 1.15789,0.79958 1.62308,1.49922 0.94818,1.29932 1.41878,2.99844 1.41828,5.09735 -5e-4,2.39875 -0.5283,4.19782 -1.61348,5.59709 -0.28049,0.29984 -0.87698,0.89953 -1.25648,1.09943 -1.02518,0.69963 -2.17746,1.09942 -3.55564,1.19937 -0.2116,0 -0.38909,0 -0.39449,0 -0.015,0 -0.2131,-4.09787 -0.2004,-4.09787 0.01,0 0.1496,-0.0999 0.31999,-0.0999 0.96079,-0.1999 1.73388,-0.59969 2.16607,-1.09943 0.33459,-0.3998 0.56069,-0.89954 0.68789,-1.49922 0.1015,-0.49974 0.1113,-1.69912 0.018,-2.19886 -0.1453,-0.89953 -0.46589,-1.59917 -0.92189,-1.99896 -0.48339,-0.49974 -1.31478,-0.59969 -1.98367,-0.29985 -0.30419,0.0999 -0.66298,0.3998 -0.87728,0.69964 -0.397,0.59969 -0.77619,1.69912 -1.28808,3.59813 -0.61799,2.19886 -1.08688,3.49818 -1.64607,4.49766 -0.90499,1.59917 -2.40657,2.59865 -4.21394,2.99844 -0.65499,0.1 -1.14148,0.1 -1.88937,0.1 -0.52549,0 -0.75938,0 -1.08948,-0.1 -1.82277,-0.39979 -3.39374,-1.29932 -4.32833,-2.69859 -0.65799,-0.99948 -1.07878,-2.19886 -1.27778,-3.79803 -0.053,-0.39979 -0.097,-2.2988 -0.063,-2.6986 v 0 z"
|
||||||
|
style="fill:#000000;stroke:#000000;stroke-width:0.0135255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path394"
|
||||||
|
d="m 344.34473,966.1041 h -11.2417 v -2.07865 -2.07863 h 9.3507 9.3505 v -5.19669 -5.19663 h 1.8911 1.8912 v 7.27527 7.27533 z"
|
||||||
|
style="fill:#000000;stroke:#000000;stroke-width:0.0135255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 409.8518,320.05567 -2.8025,-2.94026 -2.1084,-1.796 -3.8978,-2.62047 -4.9398,-2.55642 -3.8113,-1.26102 -3.8729,-0.82355 -1.3897,-0.20254 -2.8884,-0.16657 h -57.7923 l -1.5715,0.14912 -1.7697,0.23885 -1.7748,0.23784 -2.7296,0.54225 -2.3129,0.60501 -2.4432,0.75415 -2.944,0.94164 -2.1288,0.90223 -3.8498,1.71494 -2.7574,1.53514 -2.1058,1.19382 -3.235,2.15931 -2.4201,1.63397 -1.436,1.20278 -1.896,1.44906 -3.2118,2.6021 -2.4228,2.54068 -4.259,4.68887 -2.5995,3.24851 -1.6774,2.6235 -1.271,2.18323 -1.9119,3.72736 -0.727,1.6468 -1.1613,2.96158 -0.6623,2.59781 -0.7848,3.27106 -0.3398,2.68009 -0.048,2.38299 v 3.99567 2.84426 875.03454 l 0.1638,2.4919 0.3452,3.3929 1.2989,4.7686 1.2397,3.7743 3.6049,7.2541 2.5738,4.0559 2.4685,3.1987 1.4819,1.9751 2.6694,2.8626 3.0699,3.022 2.1765,1.9253 4.0187,3.1181 4.1145,2.8537 2.3075,1.2731 3.5235,1.8455 3.6903,1.6798 4.1541,1.4538 3.7259,1.1675 3.6825,0.7441 3.285,0.4416 3.0789,0.2674 h 56.728 l 2.2738,-0.2161 3.6621,-0.6453 2.1372,-0.5088 2.6035,-0.8999 3.7077,-1.5118 3.7208,-1.891 3.1188,-1.9598 2.4944,-2.0592 3.0857,-2.8789 3.1141,-3.8291 2.3879,-3.9155 1.3793,-3.2339 1.0698,-2.9013 0.8145,-3.3519 0.4154,-3.6021 0.024,-2.1424 V 343.15522 l -0.2807,-2.93341 -0.6388,-3.84483 -1.3177,-4.25655 -1.5322,-3.68324 -2.5337,-4.45711 -1.9699,-2.57666 z"
|
||||||
|
id="path396" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 395.3929,1180.0491 v 6.0661 l 0.2504,2.2569 -0.22889,0.3633 0.0188,0.4323 0.0368,0.983 -1.0319,1.3186 -1.91624,1.5403 -1.8286,1.4972 -2.1313,1.0814 -1.9039,0.5267 -1.6018,0.1436 h -79.7814 l -1.9951,-0.4092 -2.2181,-0.8515 -1.5437,-0.8939 -1.324,-1.0482 -0.8339,-0.9964 -0.9297,-1.4644 -0.5711,-1.0947 -0.331,-0.8522 -0.2214,-1.445 v -0.9701 -816.23528 l 0.1524,-0.78853 0.1354,-0.61772 0.2239,-0.77581 0.2629,-0.76027 0.5285,-1.02162 0.7718,-1.1054 0.9507,-1.04883 1.5188,-1.1948 1.1498,-0.70115 1.3513,-0.54994 1.7628,-0.48373 1.567,-0.17203 h 79.0926 l 1.0991,0.0989 1.3891,0.27672 2.2207,0.74493 1.1905,0.67498 1.4954,1.14485 0.8938,0.8516 1.1289,1.64893 0.7411,1.63916 0.386,1.57396 0.05,1.06242 c -0.0804,114.31284 -0.10418,228.63693 -0.0983,342.96694 0.008,155.52282 0.0712,311.05662 0.12178,466.58792 z"
|
||||||
|
id="path398"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccsc" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 280.0489,334.04973 -2.8746,2.16498 -1.3945,1.27122 -1.1064,1.18868 -1.3392,1.49729 -1.3821,1.73597 -1.1375,1.54737 -1.1471,1.61493 -1.7633,2.77824 -1.1335,1.98857 -0.9191,1.69028 -1.3324,2.59146 -1.1121,2.32402 -1.5658,3.3824 -0.6357,1.21716 -0.7728,1.8524 -0.7249,1.7502 -0.989,2.11092 -1.0447,2.26153 -0.86,1.70122 -0.7487,1.45807 -0.7784,1.50072 -1.1616,2.03112 -0.6994,1.16648 -1.3216,2.11047 -1.1613,1.58472 -0.9183,1.1248 -1.4672,1.69512 -1.42,1.41779 -1.9934,1.72491 -2.2557,1.72298 -2.1512,1.20455 -1.3718,0.68514 -3.115,1.23076 -4.1538,1.06111 -3.0868,0.4675 -3.2213,0.30214 h -28.4829 l -0.9465,0.0522 -0.9784,0.35707 -1.1635,0.4739 -0.9822,0.69974 -1.0146,1.07545 -0.9282,1.35489 -0.6502,1.7225 -0.1277,1.59156 0.296,1.44131 0.7415,1.59064 1.9905,3.44769 2.4225,4.15209 2.3354,3.53006 1.3741,1.96135 1.2426,1.70362 1.4133,1.82618 1.3411,1.74059 2.1466,2.65906 1.9723,2.30436 1.0859,1.37163 2.4142,2.76344 1.3089,1.52486 3.0336,3.39354 1.5816,1.80314 1.3444,1.31094 2.4631,2.62274 1.0462,1.088 4.8462,5.01965 3.6011,3.76598 1.7432,1.82423 2.1054,2.24013 6.0616,6.47629 2.3937,2.58723 2.014,2.19763 1.6282,1.85126 1.1405,1.25224 1.6465,1.98007 1.726,2.18054 1.5288,1.91466 1.2553,1.47803 1.1294,1.5201 1.6519,2.24592 1.1514,1.59813 1.313,1.80747 1.0891,1.73386 1.8619,2.95681 1.9716,3.31485 1.215,2.46611 1.3695,2.68245 0.9533,2.4215 1.0707,2.90707 0.7627,2.01532 h 0.6246"
|
||||||
|
id="path400" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 419.6848,525.27774 h 3.3148 l 1.2108,0.19587 1.4197,0.53011 1.5704,0.97007 0.9319,0.98029 0.8244,1.30095 0.4607,1.28829 0.064,0.91052 0.1581,2.35685 0.2578,3.05672 0.2171,3.22797 0.2039,3.98205 0.1256,3.05298 0.1452,4.34265 0.086,5.4517 v 13.88157 l -0.1562,2.15427 -0.069,2.19292 -0.2028,3.00598 -0.2269,2.94631 -0.169,2.82951 -0.3265,4.36272 -0.1216,1.92949 -0.121,1.18236 -0.3083,1.24744 -0.7538,1.13179 -1.0196,0.99385 -1.5458,0.79964 -1.2805,0.22452 h -4.5718 -0.1723 z"
|
||||||
|
id="path402" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 419.7599,446.71674 h 3.3148 l 1.2108,0.19587 1.4197,0.53011 1.5704,0.97007 0.9319,0.98029 0.8244,1.30095 0.4608,1.28829 0.064,0.91052 0.158,2.35685 0.2578,3.05672 0.2171,3.22797 0.2039,3.98205 0.1256,3.05298 0.1452,4.34265 0.086,5.4517 v 13.88157 l -0.1562,2.15427 -0.07,2.19292 -0.2028,3.00598 -0.2269,2.94631 -0.169,2.82951 -0.3264,4.36272 -0.1217,1.92949 -0.121,1.18236 -0.3083,1.24744 -0.7538,1.13179 -1.0196,0.99385 -1.5458,0.79964 -1.2805,0.22452 h -4.5717 -0.1724 z"
|
||||||
|
id="path404" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 419.3182,991.21629 0.7067,0.005 1.1504,0.26365 0.9444,0.76195 0.3328,0.70813 v 46.67098 l -0.351,0.8325 -1.1666,0.8966 -0.7662,0.1774 -0.7976,-0.036 z"
|
||||||
|
id="path406"
|
||||||
|
sodipodi:nodetypes="ccccccccccc" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 292.23542,321.94382 -2.85482,0.19193 -3.5205,0.79532 -3.2999,0.79136 -3.3568,0.85492 -10.5848,3.04972 -8.2427,2.61122 -6.9829,2.30208 -8.1913,2.71333 -6.855,2.11775 -7.5618,2.21755 -3.0235,0.89028 -3.0148,0.78091 -2.5919,0.65281 -4.3968,1.00847 -3.4498,0.73028 -4.1489,0.73001 -5.6739,0.74708 -2.2602,0.25755 -2.5162,0.19354 -1.5131,0.53719 -1.7144,0.82362 -1.1537,0.80424 -0.8192,0.61627 -1.0935,1.16923 -1.2892,1.65867 -1.0363,2.0311 -0.4006,1.59894 -0.1889,1.03517 v 22.38615 l 0.1909,1.30564 0.4958,1.40886 0.8296,1.64975 0.8332,1.21754 1.2656,1.51781 1.473,1.67519 1.7472,1.806 1.5258,1.66687 1.0269,1.42626 0.5157,0.92256"
|
||||||
|
id="path408"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccc" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 419.5504,789.12692 1.0104,0.39157 1.2284,0.93414 1.2742,1.0266 1.3335,1.34755 1.3498,1.58941 1.4074,1.79596 1.068,1.4886 0.8509,1.19973 0.8928,1.39146 0.9973,1.62576 0.6021,1.24333 0.8025,1.68804 0.9324,1.96316 0.9148,2.22486 0.6262,1.90738 0.5734,2.0049 0.5948,2.79681 0.1489,0.35893 1.1814,-0.13758 0.9744,-0.18453 1.2915,-0.53944 1.0017,-0.68907 1.1544,-0.99535 0.604,-0.85004 0.4934,-1.12029 0.3702,-1.37331 v -45.33419 l 0.2034,-1.17653 0.748,-1.09495 0.8786,-0.84648 1.1084,-0.65922 1.6277,-0.61299 1.9995,-0.31181 2.419,-0.0432 3.3419,0.50976 2.789,1.02605 1.7576,0.92574 1.4806,0.99459 2.1054,1.92583 1.357,1.78977 0.7746,1.80358 0.5382,2.14337 0.1755,1.82459 v 15.36545 l 0.7426,2.32837 0.8151,3.04194 0.6637,2.10231 1.4461,5.39684 0.1081,0.54415 0.3624,1.61807 0.4384,2.00735 0.5281,2.58998 0.5111,2.93668 0.532,3.40847 0.5218,3.68177 0.2738,2.55863 0.1742,1.97306 0.125,1.76412 0.1687,2.52444 0.093,2.5116 0.1008,2.95717 0.032,3.58916 -0.1372,3.61839 -0.1588,3.45509"
|
||||||
|
id="path410" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 419.5504,878.18361 1.0104,-0.39157 1.2284,-0.93414 1.2742,-1.0266 1.3335,-1.34755 1.3498,-1.58941 1.4074,-1.79596 1.068,-1.4886 0.8509,-1.19973 0.8928,-1.39146 0.9973,-1.62576 0.6021,-1.24333 0.8025,-1.68804 0.9324,-1.96316 0.9148,-2.22486 0.6262,-1.90738 0.5734,-2.0049 0.5948,-2.79681 0.1489,-0.35893 1.1814,0.13758 0.9744,0.18453 1.2915,0.53944 1.0017,0.68907 1.1544,0.99535 0.604,0.85004 0.4934,1.12029 0.3702,1.37331 v 45.33419 l 0.2034,1.17653 0.748,1.09495 0.8786,0.84648 1.1084,0.65922 1.6277,0.61299 1.9995,0.31181 2.419,0.0432 3.3419,-0.50976 2.789,-1.02605 1.7576,-0.92574 1.4806,-0.99459 2.1054,-1.92583 1.357,-1.78977 0.7746,-1.80358 0.5382,-2.14337 0.1755,-1.82459 v -15.36545 l 0.7426,-2.32837 0.8151,-3.04194 0.6637,-2.10231 1.4461,-5.39684 0.1081,-0.54415 0.3624,-1.61807 0.4384,-2.00735 0.5281,-2.58998 0.5111,-2.93668 0.532,-3.40847 0.5218,-3.68177 0.2738,-2.55863 0.1742,-1.97306 0.125,-1.76412 0.1687,-2.52444 0.093,-2.5116 0.1008,-2.95717 0.032,-3.58916 -0.1372,-3.61839 -0.1588,-3.45509"
|
||||||
|
id="path412" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 345.6694,529.78706 h -6.1466 l -2.0406,0.16173 -1.1253,0.1953 -1.5748,0.44867 -1.3791,0.53886 -1.4965,0.74967 -1.1637,0.77396 -1.2064,0.95657 -1.075,1.06404 -1.1014,1.41493 -0.594,1.14722 -0.5358,1.29229 -0.5077,1.36813 -0.1092,1.5301 -0.019,1.06031 v 58.69762 l 0.1365,1.11638 0.2065,0.99097 0.3274,0.9147 0.2958,0.88818 0.5023,0.98607 0.7034,1.07023 0.7271,0.83072 1.1425,1.22917 0.9548,0.84847 1.1231,0.73807 1.3029,0.76185 1.5781,0.61856 1.753,0.41994 1.6248,0.25206 1.9291,0.0355 12.21761,-0.15231 1.24069,0.009 1.4416,-0.26481 1.209,-0.3538 1.3406,-0.58952 1.2548,-0.64457 0.9072,-0.5388 1.0383,-0.81994 0.7108,-0.73783 0.6713,-0.63536 1.2672,-1.78476 1.0821,-2.39096 0.4226,-1.73078 0.032,-1.77014 v -58.93942 l -0.1414,-0.90899 -0.2101,-0.66149 -0.2984,-1.07142 -0.4418,-1.07685 -0.4733,-1.01774 -0.3698,-0.61491 -0.9962,-1.35072 -0.9572,-1.00027 -0.9422,-0.8506 -0.8825,-0.60388 -1.188,-0.67727 -1.3389,-0.66409 -0.8725,-0.3618 -0.9794,-0.32179 -0.9048,-0.1841 -1.4328,-0.23747 -0.4669,-0.0583 -1.0123,-0.0549 z"
|
||||||
|
id="path414"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 345.6694,929.08474 h -6.1466 l -2.0406,0.16173 -1.1253,0.1953 -1.5748,0.44867 -1.3791,0.53886 -1.4965,0.74967 -1.1637,0.77396 c -0.40213,0.31886 -0.80427,-0.0101 -1.2064,0.95657 -1.1612,-0.13384 -0.80827,0.40421 -1.2124,0.60632 l -1.03457,1.59803 -0.52343,1.42184 -0.5358,1.29229 -0.5077,1.36813 -0.1092,1.5301 -0.019,1.06031 v 58.69758 l 0.1365,1.1164 0.2065,0.991 0.3274,0.9147 0.2958,0.8882 0.5023,0.986 0.7034,1.0703 0.7271,0.8307 1.1425,1.2292 0.9548,0.8484 1.1231,0.7381 1.3029,0.7618 1.5781,0.6186 0.84467,0.2023 0.90833,0.2176 1.6248,0.2521 1.9291,0.035 h 12.2138 l 1.2445,-0.1435 1.4416,-0.2648 1.209,-0.3538 1.3406,-0.5895 1.2548,-0.6446 0.9072,-0.5388 1.0383,-0.8199 0.7108,-0.7378 0.6713,-0.6354 1.2672,-1.7847 1.0821,-2.391 0.4226,-1.7308 0.032,-1.77012 v -58.93942 l -0.1414,-0.90899 -0.2101,-0.66149 -0.2984,-1.07142 -0.4418,-1.07685 -0.4733,-1.01774 -0.3698,-0.61491 -0.9962,-1.35072 -0.9572,-1.00027 -0.9422,-0.8506 -0.8825,-0.60388 -1.188,-0.67727 -1.3389,-0.66409 -0.8725,-0.3618 -0.9794,-0.32179 -0.9048,-0.1841 -1.4328,-0.23747 -0.4669,-0.0583 -1.0123,-0.0549 z"
|
||||||
|
id="path416"
|
||||||
|
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 269.3709,404.13671 h -4.9495 l -1.0113,0.19773 -1.022,0.65678 -0.7694,0.84217 -0.623,1.27551 -0.4117,1.3715 -0.6037,2.17152 -0.5303,2.14305 -0.3827,1.9667 -0.3142,1.95063 -0.2528,2.01116 -0.2212,2.18086 -0.1418,2.35493 -0.046,2.05813 0.034,2.89349 0.1866,2.92296 0.2597,3.11808 0.3257,2.74124 0.4726,2.4298 0.3837,2.06422 0.6228,2.42502 0.4876,1.70136 0.5673,1.13322 0.656,0.75539 0.7893,0.54624 0.78,0.31802 0.8271,0.091 h 5.1673 0.2296 v -44.33098 z"
|
||||||
|
id="path426" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 419.3062,396.58247 h 3.3623 l 0.9525,0.25724 0.8868,0.75004 0.3797,1.09319 v 10.77754 l -0.3997,0.99826 -0.4739,0.71234 -0.6363,0.44149 -0.5074,0.1596 h -3.3662 -0.2116 z"
|
||||||
|
id="path428" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 368.2112,1052.977 h -46.6816 l 23.3408,36.9165 z"
|
||||||
|
id="path430" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 368.2112,1097.1347 h -46.6816 l 23.3408,36.9165 z"
|
||||||
|
id="path432" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 368.2112,1141.3197 h -46.6816 l 23.3408,36.9165 z"
|
||||||
|
id="path434" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 343.5847,1042.2128 h -27.013 l -1.8698,0.2799 -1.342,0.3586 -1.606,0.6627 -1.1661,0.7504 -1.1412,0.8758 -0.7833,0.8235 -0.7034,0.7948 -0.6319,1.1103 -0.4797,0.9867 -0.3453,1.0256 -0.2487,1.1948 -0.069,0.83 v 125.1345 l 0.052,0.8702 0.1667,1.0482 0.4222,1.1949 0.7328,1.4918 0.8537,1.1485 1.4176,1.3519 1.1779,0.9169 1.5965,0.8574 1.9127,0.6145 1.7443,0.195 h 57.292 l 1.482,-0.1169 1.5379,-0.379 1.0258,-0.4189 1.0471,-0.555 0.7983,-0.4851 1.0868,-0.8153 1.1798,-1.2764 0.6871,-0.9185 0.4367,-0.7747 0.3972,-0.7651 0.3643,-1.035 0.1713,-0.7948 0.086,-1.2186 v -125.1426 l -0.076,-1.0984 -0.204,-0.9502 -0.2266,-0.7979 -0.3429,-0.7631 -0.7969,-1.4695 -0.8643,-1.1417 -1.3636,-1.2219 -1.4025,-0.9472 -0.7682,-0.4017 -1.6691,-0.5921 -1.312,-0.2496 -1.4844,-0.1821 -1.158,0.01 z"
|
||||||
|
id="path436" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 390.4523,307.66577 v -3.14841 l -0.3715,-1.45506 -0.7559,-1.06735 -1.1876,-0.97885 -1.7025,-0.48365 h -45.228 l -1.5835,0.18859 -1.2132,0.58802 -0.8602,0.6336 -0.6208,0.61481 -0.7767,1.21911 -0.2726,1.3989 v 2.48519 z"
|
||||||
|
id="path438" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 419.68509,599.75674 h 3.3148 l 1.2108,0.19587 1.41971,0.53011 1.5704,0.97007 0.9319,0.98029 0.8244,1.30095 0.4607,1.28829 0.064,0.91052 0.1581,2.35685 0.2578,3.05672 0.2171,3.22797 0.2039,3.98205 0.1256,3.05298 0.1452,4.34265 0.086,5.4517 v 13.88157 l -0.1562,2.15427 -0.069,2.19292 -0.2028,3.00598 -0.2269,2.94631 -0.169,2.82951 -0.3265,4.36272 -0.1216,1.92949 -0.121,1.18236 -0.3083,1.24744 -0.7538,1.13179 -1.0196,0.99385 -1.5458,0.79964 -1.28051,0.22452 h -4.5718 -0.1723 z"
|
||||||
|
id="path440" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 420.36151,634.93249 v -34.75633 l 2.0263,0.23815 c 2.75467,0.32376 4.80203,1.57598 5.69709,3.48449 1.06072,2.26176 1.52361,9.71023 1.72256,27.71794 0.14637,13.24854 0.0672,17.02245 -0.52828,25.19166 -0.77583,10.64303 -0.85918,10.95183 -3.29112,12.19251 -0.89452,0.45635 -2.06849,0.68792 -3.48749,0.68792 h -2.13906 z"
|
||||||
|
id="path506" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 420.36151,560.56402 v -34.75143 l 1.85933,0.15785 c 2.39951,0.20371 4.31925,1.13642 5.48512,2.66497 0.83656,1.09678 0.97668,1.7388 1.39976,6.41356 0.25858,2.85712 0.56214,12.52586 0.67458,21.48608 0.1781,14.19187 0.11309,17.54027 -0.50447,25.983 l -0.70891,9.69168 -1.16519,1.20216 c -1.30344,1.34481 -2.86398,1.89866 -5.35797,1.90159 l -1.68225,0.002 z"
|
||||||
|
id="path508" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 420.36151,481.93505 v -34.75712 l 1.92371,0.19854 c 2.49155,0.25715 4.263,1.11778 5.41822,2.63234 1.41345,1.85314 1.85463,7.51526 2.10513,27.01756 0.17647,13.73942 0.10561,18.07268 -0.42766,26.14973 -0.46732,7.07821 -0.78975,9.98262 -1.19916,10.80185 -0.79619,1.59315 -3.17954,2.71422 -5.77033,2.71422 h -2.04991 z"
|
||||||
|
id="path510" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 447.5015,906.00098 c -1.8715,-0.70661 -2.9819,-1.7154 -3.3712,-3.06268 -0.2644,-0.9154 -0.3472,-22.05223 -0.2745,-70.13291 l 0.1041,-68.8226 1.2946,-1.18645 c 2.041,-1.87038 4.9744,-2.37787 9.1933,-1.59049 4.2243,0.78838 8.8238,4.07342 10.363,7.40147 0.6902,1.49247 0.7677,2.40752 0.9325,11.01292 l 0.1796,9.38522 1.7041,5.81417 c 7.6872,26.22849 7.7031,50.97284 0.05,77.62707 l -1.8918,6.58875 -0.1107,9.17132 -0.1107,9.17132 -1.0625,1.92041 c -1.2599,2.27718 -3.7071,4.33173 -6.8926,5.78647 -1.902,0.86861 -2.8591,1.06811 -5.6666,1.18115 -2.0013,0.0806 -3.8109,-0.0275 -4.4404,-0.26514 z"
|
||||||
|
id="path512" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 441.6385,852.73071 c -0.5999,-0.72278 -2.3597,-1.63125 -3.6993,-1.9097 l -1.06248,-0.22083 -0.092,-16.88205 -0.092,-16.88205 1.50858,-0.39612 c 0.8297,-0.21787 2.1062,-0.86942 2.8367,-1.4479 l 1.3281,-1.05178 v 19.67251 c 0,10.81988 -0.06,19.67251 -0.1337,19.67251 -0.074,0 -0.3409,-0.24956 -0.594,-0.55459 z"
|
||||||
|
id="path514" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 420.05417,833.61702 v -43.39693 l 0.79594,0.42597 c 0.43776,0.23429 1.60747,1.27059 2.59935,2.30289 4.51391,4.69789 9.10684,12.69355 10.93014,19.02792 l 0.9034,3.1385 v 18.51411 18.51411 l -0.90522,3.13851 c -1.92215,6.6643 -6.56913,14.65718 -11.23693,19.32767 -1.32154,1.3223 -2.55667,2.40418 -2.74474,2.40418 -0.21796,0 -0.34194,-15.73501 -0.34194,-43.39693 z"
|
||||||
|
id="path516" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff5f53;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 313.99198,1292.8085 c -0.96622,-0.2545 -2.10487,-0.9559 -3.09247,-1.3094 -1.70548,-0.6104 -3.38805,-1.3678 -5.04339,-2.0839 -13.35521,-5.7781 -24.71137,-15.7518 -30.37881,-29.3689 l -5.07081,-12.1835 0.21567,-447.85593 -1.68502,-452.83955 5.21819,-6.82435 c 6.70736,-8.77188 19.17143,-19.4178 30.32839,-25.75165 12.83574,-7.28691 20.41017,-6.77706 55.40112,-6.27587 29.89918,0.42825 32.28987,-0.2527 38.18687,2.89292 7.63586,4.07316 15.0438,13.06457 18.54681,20.55351 0.66444,1.42047 1.68556,3.4563 2.05056,13.27608 1.04826,28.20251 0.44492,121.62908 -0.18564,457.03992 l -0.066,459.79922 -0.81036,6.3982 -3.45262,8.1963 c -1.76025,4.1787 -8.98897,10.0118 -12.10386,12.1705 -10.15801,7.0395 -14.51748,6.4392 -48.74484,6.3559 -20.03132,-0.049 -28.55486,0.083 -34.44933,-1.0022 -1.84725,-0.34 1.41291,0.4661 -0.16387,0.051 z m 78.87474,-99.2762 3.27873,-3.0802 v -65.5066 l -0.2424,-215.7738 0.25427,-68.97059 0.0331,-61.49435 c 0.11334,-210.56388 -0.50479,-313.30624 -0.8914,-364.08471 -0.35613,-46.77635 -0.40721,-49.50115 -1.95288,-50.80192 l -2.99002,-2.51629 -44.14324,-1.50348 -43.58958,0.51399 -4.70273,2.60905 -3.53443,3.53443 v 412.25021 412.25016 l 2.86193,2.7659 c 2.93271,2.8342 4.77438,2.8884 47.72015,2.8884 43.86243,0 44.67543,-0.052 47.8985,-3.0802 z"
|
||||||
|
id="path524"
|
||||||
|
sodipodi:nodetypes="sssscccsssssssccsssssssccccssscccccccsss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff5f53;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 264.23721,492.50948 c -4.04844,-8.33293 -16.624,-23.7182 -35.08385,-43.12156 -26.81029,-28.1806 -38.94038,-44.27168 -38.0073,-50.84946 0.2392,-1.68623 1.46532,-4.24344 5.12049,-5.01886 3.19131,-0.67702 8.11058,0.35187 17.45091,-0.0198 23.39935,-0.93118 25.92443,-0.22204 34.18969,-9.37069 2.82569,-3.12771 9.72884,-13.68396 13.55981,-21.88811 2.0257,-4.33811 4.05045,-8.45316 5.51052,-10.90389 0.76226,-1.27947 1.07024,-2.31363 1.47031,-2.76411 0.28284,-0.31849 0.76027,-0.22269 0.8214,-0.25623 1.85097,-1.01578 0.12781,12.83353 -0.1142,27.83216 l 0.24214,24.66349 -0.68216,2.60676 h -3.52801 c -5.21935,0 -7.63511,7.05409 -7.62545,22.26651 0.0108,17.00318 1.77689,22.92697 7.15611,24.00281 l 4.16908,0.83382 v 23.90572 c 0,13.14815 0.49174,29.00863 0.25743,29.00863 -0.23432,0 -3.28323,-7.58512 -4.90692,-10.92716 z"
|
||||||
|
id="path526"
|
||||||
|
sodipodi:nodetypes="sssssssssssccssscssss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 295.1401,1185.4149 c -3.06937,-3.2672 5.67849,-7.7931 8.85227,-71.9607 l 3.14349,-63.5553 0.59066,-4.8296 c 0.52648,-4.3049 8.30627,-3.402 38.30164,-3.402 25.86749,0 38.24755,-2.2189 38.03519,0.9698 l 3.45868,11.3714 -2.79167,59.5757 3.06297,66.1632 -6.74309,5.9725 c -2.39371,2.1201 -8.12035,2.5912 -34.16751,2.5912 -30.89856,0 -48.7031,0.3392 -51.74263,-2.8962 z m 60.60873,-26.4444 c 6.3449,-10.045 11.38379,-15.7341 11.38379,-16.2306 0,-0.4966 -8.67254,-0.2057 -22.30766,-0.2057 -13.63512,0 -20.98513,-0.1734 -20.98513,0.1875 0,1.9194 20.33259,34.7155 21.23584,34.1572 0.58838,-0.3636 4.32826,-7.8634 10.67316,-17.9084 z m 1.57196,-45.1746 c 6.02548,-9.6095 10.68997,-15.7918 10.34635,-16.1355 -0.34362,-0.3436 -10.16328,-1.4002 -23.54772,-1.1865 l -22.58982,0.6608 12.33804,18.1627 c 12.12402,17.8476 11.33234,16.5866 12.68919,15.1005 0.93353,-1.0226 4.73849,-6.9926 10.76396,-16.602 z m -4.74836,-38.5533 c 6.72239,-10.6062 12.20345,-20.4597 11.88264,-20.7805 -0.32082,-0.3208 -6.79848,0.016 -20.13412,-0.1191 l -20.97842,-0.2121 10.503,17.5628 c 6.49171,10.8554 11.17262,15.0769 11.09751,17.0875 -0.008,0.2094 0.90699,-2.9325 7.62939,-13.5386 z"
|
||||||
|
id="path528"
|
||||||
|
sodipodi:nodetypes="sscssscccsssssssssssscsssssscsss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 195.38552,386.2328 c -4.58371,-5.30681 -4.27509,-6.14052 -4.27509,-19.98524 0,-17.24523 1.72279,-19.61607 15.05755,-21.23724 9.67784,-1.17658 22.06465,-2.66101 54.5917,-14.7228 13.93049,-5.16576 29.54685,-8.05337 29.95931,-7.6409 0.41247,0.41246 -7.82477,7.64243 -12.70328,12.40148 -7.11384,6.93963 -10.0361,11.45679 -15.83597,23.5081 -9.7373,20.23271 -12.31671,25.43301 -19.9502,29.92064 -5.8988,3.46784 -9.64568,4.83664 -24.46127,4.50485 l -16.87996,-0.37801 z"
|
||||||
|
id="path530"
|
||||||
|
sodipodi:nodetypes="ssssssssscs" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 260.25826,445.73518 c -0.87612,-2.14266 -2.24387,-11.42662 -2.30953,-18.43896 -0.0789,-8.42481 0.5889,-15.94359 2.95394,-19.86196 1.46407,-2.42565 4.20484,-2.8223 5.93526,-3.15555 0.81862,-0.15765 2.20028,-0.94768 2.77122,0.7176 1.00427,2.92917 0.90932,10.69905 0.90932,23.15575 0,20.49599 0.29677,21.57233 -2.45639,21.57233 -1.7985,0 -6.80502,-1.5465 -7.80382,-3.98921 z"
|
||||||
|
id="path532"
|
||||||
|
sodipodi:nodetypes="ssssssss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 335.78812,307.06698 c 0,-1.77848 0.75861,-5.19179 4.31531,-6.11265 4.01911,-1.04059 12.44741,0.017 24.70426,0.21676 11.74082,0.19135 18.48536,-0.47698 21.97918,0.38297 2.88441,0.70995 3.12648,3.58747 3.31976,4.59386 0.43963,2.28916 -2.61413,0.94 -26.90979,0.94 -14.47139,0 -27.40872,0.6628 -27.40872,-0.0209 z"
|
||||||
|
id="path534"
|
||||||
|
sodipodi:nodetypes="sssssss" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 424.74041,404.13845 c 8.8e-4,-3.58112 0.0807,-4.98041 0.17728,-3.10952 0.0966,1.87089 0.0959,4.8009 -0.002,6.51113 -0.0975,1.71024 -0.17656,0.17952 -0.17569,-3.40161 z"
|
||||||
|
id="path536" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 420.0381,404.10822 v -6.7918 l 1.87821,0.15545 1.87822,0.15545 0.14568,5.50942 c 0.1916,7.24582 0.0477,7.76327 -2.15865,7.76327 h -1.74346 z"
|
||||||
|
id="path538" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 334.02423,1070.9922 -10.6817,-16.8613 10.97722,-0.1953 c 6.03746,-0.1074 15.72027,-0.1074 21.51734,0 l 10.54013,0.1953 -10.29748,16.2913 c -5.66361,8.9602 -10.53965,16.5478 -10.83564,16.8613 -0.296,0.3136 -5.34494,-7.0175 -11.21987,-16.2913 z"
|
||||||
|
id="path548" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 334.02948,1115.1625 -10.82491,-17.1159 11.04619,-0.1953 c 6.07541,-0.1074 15.82454,-0.1074 21.66473,0 l 10.61853,0.1953 -10.74364,16.9996 c -5.90901,9.3498 -10.78693,17.052 -10.83982,17.1159 -0.0529,0.064 -4.96738,-7.5858 -10.92108,-16.9996 z"
|
||||||
|
id="path550" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 334.13106,1159.4901 -10.61146,-16.8195 10.88868,-0.1953 c 5.98878,-0.1074 15.60026,-0.1074 21.35885,0 l 10.47016,0.1953 -10.39596,16.468 c -5.71779,9.0575 -10.55411,16.6262 -10.74739,16.8195 -0.19329,0.1933 -5.12658,-7.2173 -10.96288,-16.468 z"
|
||||||
|
id="path552" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 420.0231,1016.5918 c 0,-20.55693 0.0782,-24.48013 0.48787,-24.48013 1.26302,0 1.28964,0.54348 1.19693,24.43313 l -0.0911,23.4691 -0.79685,0.529 -0.79686,0.5291 z"
|
||||||
|
id="path572" /><path
|
||||||
|
style="fill:#ff5f53;fill-opacity:1;stroke:#1a1a1a;stroke-width:0.25;stroke-opacity:1"
|
||||||
|
d="m 336.33885,1011.7736 c -0.4903,-0.1025 -1.34011,-0.499 -1.86387,-0.5891 -2.10906,-0.3631 -4.24247,-1.0485 -6.03886,-2.8281 -2.21068,-2.1901 -2.45772,-4.2576 -2.92495,-7.2201 -0.0644,-0.4083 -0.33547,-3.32902 -0.7219,-7.96551 -0.47191,-5.66195 -0.26588,-14.13412 -0.22086,-24.07743 l 0.13273,-29.31033 2.1854,-3.07209 c 1.68451,-2.36796 2.85286,-4.8002 5.70807,-6.16483 3.14456,-1.50292 4.3061,-1.05628 13.1741,-0.94462 7.32026,0.0922 8.2212,0.0618 9.5738,0.56462 4.38444,1.62985 7.57683,5.059 8.6811,9.18385 0.22909,0.85573 0.41962,8.86488 0.21397,32.35897 l -0.056,30.50887 -0.83085,2.4841 c -0.94256,2.8179 -3.22521,4.2492 -5.91157,5.5336 -1.13944,0.5447 -2.59573,1.1447 -3.33637,1.2835 -1.10922,0.2079 -5.88727,0.4361 -10.04355,0.3913 -2.3498,-0.025 -3.61164,0.2383 -5.14351,0.029 -0.87269,-0.1194 -0.99665,0.165 -1.3228,0.097 z m 13.30469,-23.7451 c 2.76719,-0.58714 4.69699,-2.04661 5.74377,-4.34391 0.47551,-1.04356 0.57052,-1.68351 0.57531,-3.875 0.009,-4.20728 -1.02802,-6.30701 -3.78078,-7.65381 -2.39779,-1.17313 -5.79519,-0.86226 -7.69553,0.70416 -1.16483,0.96015 -1.85705,2.35288 -3.009,6.05403 -1.00853,3.24035 -1.41582,4.0427 -2.17437,4.28345 -1.5805,0.50163 -2.90029,-1.36574 -2.62256,-3.71068 0.19465,-1.64357 0.66036,-2.28932 2.02759,-2.81147 1.12124,-0.4282 1.13535,-0.44797 1.13263,-1.58714 -0.002,-0.63445 -0.0725,-1.57541 -0.15771,-2.09104 -0.13433,-0.81269 -0.24453,-0.9375 -0.82772,-0.9375 -2.30578,0 -4.85058,1.92056 -5.66126,4.27257 -0.69366,2.01248 -0.63686,5.68454 0.11372,7.35243 1.14973,2.55483 2.92227,3.72494 5.66589,3.74023 1.40395,0.008 2.00379,-0.11802 2.99769,-0.62888 1.9043,-0.97879 2.69476,-2.2324 3.99147,-6.3301 1.20414,-3.80517 1.74731,-4.65625 2.9717,-4.65625 0.97546,0 2.09342,0.64567 2.49633,1.44174 1.35565,2.67848 0.17187,5.70204 -2.55195,6.51812 -0.93521,0.2802 -1.0352,0.38787 -1.03324,1.11268 0.003,0.96835 0.28627,3.42746 0.39535,3.42746 0.0428,0 0.67403,-0.12649 1.40267,-0.28109 z m 5.94981,-29.21891 v -7.5 h -2 -2 v 5.25 5.25 h -9.25 -9.25 v 2.25 2.25 h 11.25 11.25 z"
|
||||||
|
id="path987"
|
||||||
|
sodipodi:nodetypes="sssssscsssssscssssssssscsssssscsssscssssscssccccccccccccc" /><path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 300.85,1194.9934 c -1.71731,-0.8472 -4.91972,-2.1462 -5.54391,-3.5161 -0.83944,-1.8424 0.86542,-110.6107 0.86542,-412.9166 0,-355.43486 -2.26943,-409.5887 -1.00378,-412.03621 2.62275,-5.07184 6.80299,-6.80795 52.50153,-5.38304 l 40.5665,0.52575 3.70004,2.69699 2.40356,3.70288 v 409.59752 c 0,267.41961 0.6532,377.35501 0.22653,405.85801 -0.0462,3.0834 0.15924,4.3842 0.0303,5.658 -0.0851,0.8402 -0.5067,2.1372 -0.56245,2.2596 -2.45684,5.3924 -4.14164,3.9318 -48.47815,3.9071 -34.72063,-0.019 -42.05298,0.9547 -44.70561,-0.3539 z m 80.27252,-10.4604 c 2.12921,-1.989 3.21222,-4.1353 3.6646,-7.2624 0.35319,-2.4415 0.50577,-32.4911 0.33906,-66.777 l -0.30309,-62.3379 -1.817,-4.7667 -4.72991,-1.7818 -30.78478,-0.3127 c -34.35748,-0.3489 -37.22985,0.016 -40.34521,5.1254 -1.88189,3.0863 -1.95191,5.545 -1.95552,68.6629 l -0.004,65.4619 3.40582,3.4058 3.40582,3.4059 h 33.05076 33.05075 z m -22.91983,-173.0609 c 1.57682,-0.8154 3.84958,-2.6835 5.00011,-4.1461 2.02772,-2.5779 2.08689,-3.5907 2.08689,-36.43981 l -0.69949,-33.99855 -2.38805,-3.40626 c -3.72994,-4.24816 -8.21239,-5.25265 -18.24178,-5.26006 -5.84642,-0.004 -8.30481,0.20024 -11.76537,1.9453 -7.84443,3.95572 -7.97242,4.60298 -7.97242,40.31894 0,34.66614 0.41247,35.72854 7.12185,40.21074 2.99392,2.0001 4.44288,2.362 13.60803,2.362 7.24014,0 11.25811,-0.556 13.25023,-1.5862 z m -5.95573,-138.90396 c 6.10086,-3.11739 8.53502,-6.75988 8.53502,-12.77184 0,-8.4223 -5.95352,-14.17655 -15.26265,-14.7518 -7.02351,-0.43401 -12.57208,2.34255 -15.43573,7.72419 -7.14597,13.42935 8.05461,27.00867 22.16336,19.79945 z m 1.45148,-63.42988 c 1.10087,-1.10086 1.57412,-3.48865 1.57412,-7.94215 0,-8.51585 -1.07862,-9.51627 -10.26023,-9.51627 -9.38389,0 -10.77573,1.20668 -10.77573,9.34222 0,8.48897 1.31434,9.69032 10.60168,9.69032 5.28806,0 7.7177,-0.43166 8.86016,-1.57412 z m 0.37207,-38.69473 c 0.69725,-0.69725 1.20205,-4.03875 1.20205,-7.9569 0,-8.44376 -1.52314,-9.87359 -10.51798,-9.87359 -8.88853,0 -10.51798,1.47199 -10.51798,9.50153 0,8.65087 1.00564,9.53101 10.89005,9.53101 4.68578,0 8.21631,-0.4745 8.94386,-1.20205 z m -0.62982,-39.52257 c 2.44013,-2.20828 2.62327,-13.43508 0.25775,-15.80059 -2.26592,-2.26593 -15.101,-2.20499 -17.62997,0.0837 -2.48085,2.24514 -2.59975,12.86248 -0.17405,15.54285 2.27669,2.51572 14.82125,2.64015 17.54627,0.17404 z m -0.1057,-38.44592 c 1.6168,-0.86529 1.93757,-2.13749 1.93757,-7.6844 0,-9.02878 -1.23743,-10.31119 -9.94949,-10.31119 -9.51513,0 -11.08647,1.3467 -11.08647,9.50153 0,8.51102 1.08671,9.53101 10.15453,9.53101 3.85346,0 7.8782,-0.46663 8.94386,-1.03695 z m 4.89747,-81.8069 c 5.473,-3.60783 6.98335,-3.06909 7.02174,-39.48044 0.0344,-32.65824 -0.45612,-33.68452 -2.485,-36.2638 -1.3225,-1.68128 -2.16617,-2.68325 -3.79664,-3.53269 -2.85079,-1.4852 -6.79655,-1.97333 -14.0201,-1.97333 -9.16515,0 -9.82283,0.81199 -12.81675,2.81203 -6.85365,4.57854 -7.27471,4.72625 -6.9653,40.5757 0.2612,30.26439 -0.11042,32.144 1.7811,34.65729 3.82743,5.08555 5.86745,5.85717 18.30393,5.87882 9.72787,0.0169 10.49635,-1.03831 12.97702,-2.67358 z"
|
||||||
|
id="path504"
|
||||||
|
sodipodi:nodetypes="ssssscccssssssssscccssccccccsssscscssssssssssssssssssssssssssssssssssssssssssss" /><path
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:#333333;stroke-width:0.373293;stroke-opacity:1"
|
||||||
|
d="m 337.67662,692.88512 c -2.67305,-0.96309 -3.2939,-2.84605 -3.09019,-9.37193 0.17168,-5.49938 0.64108,-6.64523 3.20441,-7.82229 1.52187,-0.69884 2.42425,-0.79766 7.30307,-0.79982 6.75767,-0.003 7.98061,0.38279 9.09592,2.86921 0.61253,1.3655 0.72342,2.47625 0.73034,7.31525 0.007,5.38513 -0.0388,5.75973 -0.82685,6.67489 -0.62002,0.71994 -1.40826,1.06314 -3.06165,1.33297 -3.40014,0.55493 -11.60256,0.43314 -13.35505,-0.19828 z"
|
||||||
|
id="path989" /><path
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:#333333;stroke-width:0.370491;stroke-opacity:1"
|
||||||
|
d="m 339.04414,731.97109 c -3.60561,-0.93726 -4.48264,-2.73045 -4.45483,-9.10842 0.0218,-5.00727 0.73904,-7.15345 2.73101,-8.17253 1.29271,-0.66135 2.19762,-0.74953 7.69168,-0.74953 8.49855,0 8.96303,0.26628 9.77396,5.60339 0.32491,2.13833 0.32915,3.61396 0.0172,5.9992 -0.53103,4.06091 -1.10757,5.18233 -3.09269,6.01548 -2.09206,0.87802 -9.89752,1.13216 -12.66637,0.41241 z"
|
||||||
|
id="path991" /><path
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:#333333;stroke-width:0.365528;stroke-opacity:1"
|
||||||
|
d="m 337.75825,770.7391 c -2.54567,-0.94315 -3.11216,-2.48804 -3.09149,-8.43076 0.028,-8.05586 1.30547,-9.15871 10.57454,-9.12914 4.14079,0.0132 5.1614,0.13044 6.36851,0.73158 2.63337,1.31141 2.92902,2.08079 3.06977,7.98827 0.13827,5.8041 -0.24296,8.00904 -1.50624,8.71158 -1.28401,0.71409 -13.55834,0.81639 -15.41509,0.12847 z"
|
||||||
|
id="path993" /><path
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:#333333;stroke-width:0.370789;stroke-opacity:1"
|
||||||
|
d="m 340.25178,810.31175 c -2.30728,-0.35082 -4.07035,-1.26307 -4.79602,-2.48153 -0.63065,-1.05893 -0.72313,-1.90705 -0.72313,-6.63222 0,-8.75452 0.4422,-9.15459 10.11842,-9.15459 9.55452,0 9.93447,0.34222 9.93447,8.94819 0,8.55026 -0.56098,9.15949 -8.62352,9.3653 -2.64352,0.0675 -5.30312,0.0472 -5.91022,-0.0451 z"
|
||||||
|
id="path995" /><path
|
||||||
|
sodipodi:nodetypes="cccccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4136"
|
||||||
|
d="m 620.05176,101.33936 h -13.19009 l -0.0372,-8.25531 h -14.10678 c -3.694,0 -4.86707,3.29254 -4.86707,8.2606 v 75.70196 c 0,3.53235 3.40852,6.31095 6.44045,6.31095 h 9.52259 c 2.5944,0 2.74434,-2.75044 3.01169,-5.11156 v -5.02502 h 13.00529 z"
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4138"
|
||||||
|
d="M 606.85329,173.06935 V 101.88171"
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 678.37103,56.29539 v 15.94604 h -43.5888 V 56.01064 c 0,-2.09826 1.87258,-3.04523 3.55963,-3.4883 12.17302,-3.19604 25.27663,-3.03408 36.83267,0 1.82189,0.47838 3.1965,1.67683 3.1965,3.77305 z"
|
||||||
|
id="path4158"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccc" /><path
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:2.15573;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 720.40437,200.84448 c 1.81167,5.59747 14.31597,16.05818 26.80398,18.49431 0,3.18475 -2.17456,7.59933 -6.67803,7.59933 h -42.94533 c -9.04439,0 -6.76848,25.30224 7.88272,25.30224 h 14.82275 c 30.79579,10.88463 58.29906,11.10676 88.35628,0 h 15.61665 c 13.60575,0 16.40685,-25.0713 7.81066,-25.0713 h -42.12588 c -6.10893,0 -8.96884,-3.67481 -8.61035,-7.40557 10.9644,-3.90513 20.75456,-9.02232 26.28159,-18.53931 v -3.53463 h -87.25178 z"
|
||||||
|
id="path4146"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccccccccccc" /><path
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1.97231;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 724.94622,197.61379 c 0,0.29572 0,7.24873 0,7.24873 0,3.02618 -2.56512,4.21618 -5.85626,4.21618 -17.73054,1.12554 -39.27177,1.0596 -57.43145,0 -3.05168,0 -6.04433,-2.08878 -6.01039,-4.32715 v -8.83908 h 69.2981 z"
|
||||||
|
id="path4154"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sccccccs" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2.15573;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 741.03641,226.83735 h 45.04178"
|
||||||
|
id="path4148"
|
||||||
|
inkscape:connector-curvature="0" /><path
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:2.1477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 643.93309,192.24653 v 12.01609 c 0,1.03496 1.44365,2.19259 2.56837,2.19259 h 45.10268 c 1.41577,0 3.13375,-1.20624 3.13375,-2.67504 v -11.62115 z"
|
||||||
|
id="path4142"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccc" /><path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2.15573;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 746.85546,219.17785 h 35.76351"
|
||||||
|
id="path4150"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cc" /><path
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1.96467;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 870.42561,197.60063 c 0,0.29344 0,7.19268 0,7.19268 0,3.00278 -2.56501,4.18358 -5.85597,4.18358 -17.73073,1.11684 -39.27172,1.05141 -57.43168,0 -3.05166,0 -6.04429,-2.07262 -6.01013,-4.29369 v -8.77073 h 69.29778 z"
|
||||||
|
id="path4144"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sccccccs" /><path
|
||||||
|
sodipodi:nodetypes="sccccccs"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4160"
|
||||||
|
d="m 797.67583,197.63487 c 0,0.29939 0,7.33855 0,7.33855 0,3.06368 -2.56511,4.26842 -5.85601,4.26842 -17.73077,1.1395 -39.27177,1.07274 -57.4317,0 -3.05168,0 -6.0443,-2.11465 -6.01014,-4.38077 v -8.9486 h 69.29785 z"
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:1.9845;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
|
||||||
|
sodipodi:nodetypes="ccccccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4140"
|
||||||
|
d="m 907.97933,199.65348 c 8.52966,0 24.99089,-16.61076 24.99089,-25.55625 v -58.65862 c -4.57443,-17.00507 -13.35533,-35.47833 -41.84537,-41.00408 -4.97535,0 -7.55529,-4.59359 -7.55529,-7.40352 -26.96999,-35.0496 -56.25473,-53.08707 -86.3059,-65.49263 h -63.63968 c -27.37307,12.02627 -42.63451,29.98675 -54.6313,49.5466 V 61.9055 c 0,4.46695 -3.77561,9.11203 -8.71777,9.11203 h -52.88777 v 128.70726 z"
|
||||||
|
style="fill:#ff5f53;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /><path
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4166"
|
||||||
|
d="M 898.96304,95.57843 H 671.57211 c 0.11854,-46.39485 23.40196,-94.42781 68.1792,-94.42781 l 63.60853,0.74648 c 62.27359,11.13309 75.07205,54.96226 95.6032,93.68133 z"
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
sodipodi:nodetypes="ccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4168"
|
||||||
|
d="M 917.62642,126.18349 H 669.66769 v 27.99243 c 0,9.45565 12.31669,23.51364 23.99616,23.51364 h 207.96534 c 12.6963,0 22.09152,-12.0229 22.09152,-21.64746 0,-11.5947 1.02012,-29.85861 -6.09429,-29.85861 z"
|
||||||
|
style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:2.30124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
|
||||||
|
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0.0426219;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 754.52313,152.06817 v -10.42123 l 4.83314,5.9e-4 c 2.65811,3.3e-4 5.22066,0.0205 5.69422,0.0424 2.06412,0.0999 3.36854,0.38224 4.26309,0.92274 1.37392,0.83011 2.28986,2.29536 2.52187,4.03406 0.0698,0.53061 0.0278,1.70342 -0.0814,2.19391 -0.3657,1.6476 -1.32187,2.879 -2.82086,3.63292 -0.57443,0.2889 -1.45224,0.5764 -2.13805,0.70022 -0.28454,0.0512 -0.51679,0.1037 -0.51608,0.11614 6.8e-4,0.0137 0.15343,0.11316 0.3387,0.22298 0.59653,0.35375 1.21864,0.8364 1.75031,1.3583 0.86316,0.8471 1.40854,1.61519 3.70213,5.21324 0.77646,1.21827 1.44017,2.25774 1.4746,2.30996 l 0.0626,0.0949 h -2.53768 -2.53792 l -1.69473,-2.47872 c -3.18932,-4.66409 -3.60893,-5.21082 -4.38563,-5.71206 -0.59814,-0.38608 -1.12447,-0.49152 -2.64298,-0.52955 l -1.02243,-0.0258 v 4.37299 4.37295 h -2.13132 -2.13132 v -10.42122 z m 10.52829,-1.70253 c 0.90687,-0.11613 1.36601,-0.31747 1.80747,-0.79267 0.44566,-0.47955 0.62444,-0.99717 0.62444,-1.80829 0,-1.12302 -0.42359,-1.86219 -1.30232,-2.27314 -0.68255,-0.31921 -0.57259,-0.31053 -4.17686,-0.33119 l -3.21837,-0.0182 v 2.66568 2.66571 l 2.87406,-0.0205 c 2.26803,-0.0161 2.98311,-0.0346 3.39158,-0.087 v 0 z"
|
||||||
|
id="path4232"
|
||||||
|
inkscape:connector-curvature="0" /><path
|
||||||
|
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0.0426219;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 763.60822,52.91602 V 42.51329 l 5.50031,0.0182 c 5.86555,0.0182 5.99551,0.0235 7.21251,0.23684 0.72764,0.12779 1.2063,0.27395 1.73262,0.5297 0.56119,0.27264 0.92919,0.53686 1.3444,0.96517 0.6865,0.70821 1.17119,1.61242 1.4232,2.65506 0.10465,0.43649 0.11392,0.54629 0.11623,1.4018 6.9e-4,0.72536 -0.0233,1.00826 -0.0743,1.29452 -0.49307,2.37268 -2.15713,3.86338 -4.92053,4.40866 -0.52052,0.10275 -0.58004,0.12279 -0.5089,0.17313 0.044,0.0312 0.27805,0.18384 0.51935,0.33899 1.26535,0.81414 2.04879,1.63119 3.24347,3.38328 0.43519,0.6382 3.38993,5.24266 3.43201,5.34806 0.0233,0.0423 -0.49075,0.051 -2.51118,0.0421 l -2.53257,-0.0114 -1.89628,-2.76629 c -2.70088,-3.93961 -3.00426,-4.35632 -3.57776,-4.91249 -0.79112,-0.76705 -1.35952,-0.94266 -3.17329,-0.98035 l -1.06565,-0.0228 v 4.3512 4.35117 h -2.13132 -2.13131 v -10.4027 z m 10.29044,-1.66304 c 0.70021,-0.0758 1.02521,-0.15376 1.4046,-0.337 0.60955,-0.2945 1.03662,-0.84304 1.20307,-1.54567 0.0907,-0.37929 0.0884,-1.17286 -0.002,-1.51464 -0.27525,-1.03723 -1.09727,-1.6771 -2.30428,-1.79364 -0.22549,-0.0228 -1.74122,-0.0399 -3.36922,-0.0406 l -2.96011,-0.002 v 2.66306 2.66304 l 2.78783,-0.0228 c 1.66078,-0.0137 2.97079,-0.0419 3.23998,-0.0711 v 0 z"
|
||||||
|
id="path4234"
|
||||||
|
inkscape:connector-curvature="0" /><path
|
||||||
|
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0.0426219;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 743.58665,61.4392 v -1.87954 l 5.57588,-6.74897 c 3.06678,-3.71194 5.57589,-6.75827 5.57589,-6.76966 0,-0.0114 -2.22827,-0.0205 -4.95147,-0.0205 h -4.95146 v -1.75092 -1.75094 h 7.7716 7.77183 v 1.61419 1.61418 l -5.83789,7.04557 -5.83763,7.04554 6.05291,0.0114 6.05316,0.0114 v 1.7297 1.72968 h -8.6113 -8.61152 v -1.87951 z"
|
||||||
|
id="path4236"
|
||||||
|
inkscape:connector-curvature="0" /><path
|
||||||
|
style="fill:#ff5f53;fill-opacity:1;stroke-width:0.176777"
|
||||||
|
d="m 337.37689,564.16039 c 0.004,-3.45814 0.214,-4.28994 1.21089,-4.80544 1.18361,-0.61208 3.0461,-0.20122 3.8108,0.84064 0.33284,0.45348 0.37167,0.7949 0.42717,3.75651 l 0.0611,3.25769 h -2.7569 -2.7569 z"
|
||||||
|
id="path141" /></svg>
|
||||||
|
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 88 KiB |
|
@ -254,9 +254,9 @@ namespace Ryujinx.Ui.Windows
|
||||||
_controllerImage.Pixbuf = _controllerType.ActiveId switch
|
_controllerImage.Pixbuf = _controllerType.ActiveId switch
|
||||||
{
|
{
|
||||||
"ProController" => new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Controller_ProCon.svg", 400, 400),
|
"ProController" => new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Controller_ProCon.svg", 400, 400),
|
||||||
"JoyconLeft" => new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Controller_JoyConLeft.svg", 400, 400),
|
"JoyconLeft" => new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Controller_JoyConLeft.svg", 400, 500),
|
||||||
"JoyconRight" => new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Controller_JoyConRight.svg", 400, 400),
|
"JoyconRight" => new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Controller_JoyConRight.svg", 400, 500),
|
||||||
_ => new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Controller_JoyConPair.svg", 400, 400),
|
_ => new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Controller_JoyConPair.svg", 400, 500),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"sdk": {
|
"sdk": {
|
||||||
"version": "5.0.100"
|
"version": "5.0.100",
|
||||||
|
"rollForward": "latestFeature"
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue