You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(61) |
Nov
(11) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(17) |
Aug
(18) |
Sep
(10) |
Oct
(8) |
Nov
(138) |
Dec
(38) |
2007 |
Jan
(19) |
Feb
(10) |
Mar
(21) |
Apr
(9) |
May
(17) |
Jun
(22) |
Jul
(8) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <gub...@us...> - 2007-07-10 10:43:04
|
Revision: 345 http://svn.sourceforge.net/frostwire/?rev=345&view=rev Author: gubatron Date: 2007-07-10 03:43:06 -0700 (Tue, 10 Jul 2007) Log Message: ----------- Added changes to changelog Modified Paths: -------------- trunk/build/changelog Modified: trunk/build/changelog =================================================================== --- trunk/build/changelog 2007-07-10 10:29:46 UTC (rev 344) +++ trunk/build/changelog 2007-07-10 10:43:06 UTC (rev 345) @@ -1,3 +1,16 @@ +version 4.13.2 (July 2007): +- No more \xD2BETA\xD3, this is the final release of the 4.13.1.8 branch +- Included translation to Portuguese (Since our Brazilian User Base is the second biggest one out there). +- Cleaner debian installer (Thanks to the \xD2Ubunteros\xD3 that kept complaining). +- Compatibility fix for Beryl (Thanks to the \xD2Ubunteros\xD3 again) +- Frostwire will actually shutdown on Linux without you having to set up the Tray System settings. +- Updates on Chat Banner system. Memory Leak fixed, Banners can be targetted by language, ip range and country. (Want to advertise on the FrostWire Chat?) +- Misc Updates to the Chat and Lots to the Chat Server (Ianw's the man ruling those lands). +- When music files are launched they\xD5re automatically added to the playlist (Finally). +- Fixed bug on \xD2Explore\xD3 button where it\xD5d launch the file instead of the folder that contains the file. +- Dev. tools to synchronize translation files, and quick build script. +- Removed all Simpp messages + version 4.13.1: - Added IRC Chat (only for Windows and Mac until we resolve AWT Font bug for Linux on PJIRC) - Merged Bittorrent support This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-07-10 10:29:44
|
Revision: 344 http://svn.sourceforge.net/frostwire/?rev=344&view=rev Author: gubatron Date: 2007-07-10 03:29:46 -0700 (Tue, 10 Jul 2007) Log Message: ----------- Missing splash screen Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/images/default_splash.png Modified: trunk/gui/com/limegroup/gnutella/gui/images/default_splash.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <alk...@us...> - 2007-07-09 20:55:49
|
Revision: 343 http://svn.sourceforge.net/frostwire/?rev=343&view=rev Author: alkalinex Date: 2007-07-09 13:55:49 -0700 (Mon, 09 Jul 2007) Log Message: ----------- Recompiled irc.jar with -target 1.5 Modified Paths: -------------- trunk/lib/jars/irc.jar Modified: trunk/lib/jars/irc.jar =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <alk...@us...> - 2007-07-09 18:22:48
|
Revision: 342 http://svn.sourceforge.net/frostwire/?rev=342&view=rev Author: alkalinex Date: 2007-07-09 11:22:48 -0700 (Mon, 09 Jul 2007) Log Message: ----------- Updated irc.jar to version 0.4c Modified Paths: -------------- trunk/lib/jars/irc.jar Modified: trunk/lib/jars/irc.jar =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-07-09 14:13:49
|
Revision: 340 http://svn.sourceforge.net/frostwire/?rev=340&view=rev Author: gubatron Date: 2007-07-09 07:04:53 -0700 (Mon, 09 Jul 2007) Log Message: ----------- new splash screen for release, thanks Stitzu Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/images/splash.png trunk/gui/com/limegroup/gnutella/gui/images/splashpro.png Modified: trunk/gui/com/limegroup/gnutella/gui/images/splash.png =================================================================== (Binary files differ) Modified: trunk/gui/com/limegroup/gnutella/gui/images/splashpro.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-07-09 14:13:40
|
Revision: 341 http://svn.sourceforge.net/frostwire/?rev=341&view=rev Author: gubatron Date: 2007-07-09 07:05:48 -0700 (Mon, 09 Jul 2007) Log Message: ----------- new splash screen for release, thanks Stitzu Modified Paths: -------------- trunk/lib/themes/pinstripes/default_splash.png trunk/lib/themes/pinstripes/splash.png Modified: trunk/lib/themes/pinstripes/default_splash.png =================================================================== (Binary files differ) Modified: trunk/lib/themes/pinstripes/splash.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-07-09 13:04:34
|
Revision: 339 http://svn.sourceforge.net/frostwire/?rev=339&view=rev Author: gubatron Date: 2007-07-09 06:04:36 -0700 (Mon, 09 Jul 2007) Log Message: ----------- Fixed version number, to denote this is a stable release of 4.13 Modified Paths: -------------- trunk/core/com/limegroup/gnutella/util/CommonUtils.java Modified: trunk/core/com/limegroup/gnutella/util/CommonUtils.java =================================================================== --- trunk/core/com/limegroup/gnutella/util/CommonUtils.java 2007-07-09 11:16:34 UTC (rev 338) +++ trunk/core/com/limegroup/gnutella/util/CommonUtils.java 2007-07-09 13:04:36 UTC (rev 339) @@ -30,7 +30,7 @@ /** * Constant for the current version of FrostWire. */ - private static final String FROSTWIRE_VERSION = "4.13.1.8"; + private static final String FROSTWIRE_VERSION = "4.13.2"; /** * Variable used for testing only, it's value is set to whatever the test This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-07-09 11:16:33
|
Revision: 338 http://svn.sourceforge.net/frostwire/?rev=338&view=rev Author: gubatron Date: 2007-07-09 04:16:34 -0700 (Mon, 09 Jul 2007) Log Message: ----------- AI files converted to svg for Stitzu and open source graphic designers Added Paths: ----------- trunk/lib/graphicdesign/frostwire_black_sticker.svg trunk/lib/graphicdesign/frostwire_multiple_spheres_with_print_info.svg Added: trunk/lib/graphicdesign/frostwire_black_sticker.svg =================================================================== --- trunk/lib/graphicdesign/frostwire_black_sticker.svg (rev 0) +++ trunk/lib/graphicdesign/frostwire_black_sticker.svg 2007-07-09 11:16:34 UTC (rev 338) @@ -0,0 +1,1032 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14576) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="319.33px" height="383.891px" viewBox="0 0 319.33 383.891" enable-background="new 0 0 319.33 383.891" + xml:space="preserve"> +<pattern x="-173.32" y="556.123" width="69" height="69" patternUnits="userSpaceOnUse" id="Polka_Dot_Pattern" viewBox="2.125 -70.896 69 69" overflow="visible"> + <g> + <polygon fill="none" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/> + <polygon fill="#F7BC60" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/> + <g> + <path fill="#FFFFFF" d="M61.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M54.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M46.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M38.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M31.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M23.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M15.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M8.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M0.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19C0.361-71.362,0.3-71.4,0.248-71.335 + c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + </g> + <g> + <path fill="#FFFFFF" d="M69.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128 + c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + </g> + <path fill="#FFFFFF" d="M0.495-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128 + c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224C0.5-71.68,0.503-71.744,0.51-71.626 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <g> + <g> + <path fill="#FFFFFF" d="M69.439-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M61.778-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M54.118-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M46.458-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M38.797-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M31.137-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M23.477-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M15.816-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M8.156-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M0.495-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143C2-61.45,2.217-61.397,2.391-61.46c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + </g> + <g> + <path fill="#FFFFFF" d="M69.439-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M61.778-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M54.118-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M46.458-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M38.797-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M31.137-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M23.477-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M15.816-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M8.156-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M0.495-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-56.374,0.503-56.438,0.51-56.32 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + </g> + <g> + <path fill="#FFFFFF" d="M69.439-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M61.778-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M54.118-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M46.458-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M38.797-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M31.137-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M23.477-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M15.816-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M8.156-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M0.495-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + </g> + <g> + <path fill="#FFFFFF" d="M69.439-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M61.778-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M54.118-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M46.458-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M38.797-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M31.137-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M23.477-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M15.816-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M8.156-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + C8.15-41.004,8.149-41.02,8.14-41.04"/> + <path fill="#FFFFFF" d="M0.495-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + </g> + <g> + <path fill="#FFFFFF" d="M69.439-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M61.778-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M54.118-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M46.458-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M38.797-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M31.137-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M23.477-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M15.816-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M8.156-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M0.495-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-33.416,0.503-33.48,0.51-33.362 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + </g> + <g> + <path fill="#FFFFFF" d="M69.439-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 + c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 + c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 + c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 + c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 + c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 + c-0.021,0.011-0.021-0.005-0.03-0.025"/> + <path fill="#FFFFFF" d="M61.778-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 + c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 + c-0.01,0.119,0.017,0.266,0.068,0.... [truncated message content] |
From: <gub...@us...> - 2007-06-29 10:19:33
|
Revision: 337 http://svn.sourceforge.net/frostwire/?rev=337&view=rev Author: gubatron Date: 2007-06-29 03:19:35 -0700 (Fri, 29 Jun 2007) Log Message: ----------- Created Tagged Release for 4.13.1.8 Added Paths: ----------- tags/frostwire_4.13.1.8_jun_29_2007/ Copied: tags/frostwire_4.13.1.8_jun_29_2007 (from rev 336, trunk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-28 22:36:35
|
Revision: 336 http://svn.sourceforge.net/frostwire/?rev=336&view=rev Author: gubatron Date: 2007-06-28 15:36:37 -0700 (Thu, 28 Jun 2007) Log Message: ----------- last fix with play and add to library Modified Paths: -------------- trunk/build/makeLinuxPackages trunk/gui/com/limegroup/gnutella/gui/GUIUtils.java trunk/gui/com/limegroup/gnutella/gui/download/DownloadMediator.java trunk/gui/com/limegroup/gnutella/gui/library/LibraryTableMediator.java Modified: trunk/build/makeLinuxPackages =================================================================== --- trunk/build/makeLinuxPackages 2007-06-27 13:26:47 UTC (rev 335) +++ trunk/build/makeLinuxPackages 2007-06-28 22:36:37 UTC (rev 336) @@ -3,7 +3,7 @@ #Its usually invoked by the main build script, once it finishes building everything. #define some variables for the folders that we'll be using -FW_VERSION=4.13.1.6 +FW_VERSION=4.13.1.8 BUILD_DIR=$1 #if you only run THIS script, do ./makeDebianPackage `pwd` echo "BUILD DIR ${BUILD_DIR}" FW_DIR=${BUILD_DIR}/frostwire-${FW_VERSION} Modified: trunk/gui/com/limegroup/gnutella/gui/GUIUtils.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/GUIUtils.java 2007-06-27 13:26:47 UTC (rev 335) +++ trunk/gui/com/limegroup/gnutella/gui/GUIUtils.java 2007-06-28 22:36:37 UTC (rev 336) @@ -539,8 +539,7 @@ * @return if audio has been launched in limewire's player */ public static boolean launchOrEnqueueFile(File file, boolean audioLaunched) { - boolean limePlaysFile = GUIMediator.isPlaylistVisible() - && PlaylistMediator.isPlayableFile(file); + boolean limePlaysFile = PlaylistMediator.isPlayableFile(file);//GUIMediator.isPlaylistVisible() && PlaylistMediator.isPlayableFile(file); if (limePlaysFile) { if (!audioLaunched) { GUIMediator.instance().launchAudio(file); @@ -556,6 +555,15 @@ } return false; } + + public static boolean launchAndEnqueueFile(File file, boolean audioLaunched) { + if (PlaylistMediator.isPlayableFile(file)) { + GUIMediator.instance().launchAudio(file); + PlaylistMediator.instance().addFileToPlaylist(file); + return true; + } + return false; + } /** * Sets the location of <tt>dialog</tt> so it appears centered regarding Modified: trunk/gui/com/limegroup/gnutella/gui/download/DownloadMediator.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/download/DownloadMediator.java 2007-06-27 13:26:47 UTC (rev 335) +++ trunk/gui/com/limegroup/gnutella/gui/download/DownloadMediator.java 2007-06-28 22:36:37 UTC (rev 336) @@ -513,7 +513,7 @@ }); return; } - _audioLaunched = GUIUtils.launchOrEnqueueFile(toLaunch, _audioLaunched); + _audioLaunched = GUIUtils.launchAndEnqueueFile(toLaunch, _audioLaunched); if (isLast) { // reset cursor to default in last runnable GUIMediator.safeInvokeAndWait(new Runnable() { Modified: trunk/gui/com/limegroup/gnutella/gui/library/LibraryTableMediator.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/library/LibraryTableMediator.java 2007-06-27 13:26:47 UTC (rev 335) +++ trunk/gui/com/limegroup/gnutella/gui/library/LibraryTableMediator.java 2007-06-28 22:36:37 UTC (rev 336) @@ -1003,7 +1003,7 @@ else { File fragment = dl.getDownloadFragment(); if (fragment != null) { - _audioLaunched = GUIUtils.launchOrEnqueueFile(fragment, _audioLaunched); + _audioLaunched = GUIUtils.launchAndEnqueueFile(fragment, _audioLaunched); } else { GUIMediator.instance().setFrameCursor(Cursor.getDefaultCursor()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-27 13:26:52
|
Revision: 335 http://svn.sourceforge.net/frostwire/?rev=335&view=rev Author: gubatron Date: 2007-06-27 06:26:47 -0700 (Wed, 27 Jun 2007) Log Message: ----------- Documentation fix Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java Modified: trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java 2007-06-27 12:21:08 UTC (rev 334) +++ trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java 2007-06-27 13:26:47 UTC (rev 335) @@ -114,7 +114,7 @@ /** Private implementation of a TimerTask. This one will reload all banners every 30 minutes - in case we updated sponsors.xml, this way the user doesn't have to restart FrostWire to see + in case we updated banners.xml, this way the user doesn't have to restart FrostWire to see new messages */ private class BannersRefreshTask extends TimerTask { private BannerContainer container; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-27 12:21:07
|
Revision: 334 http://svn.sourceforge.net/frostwire/?rev=334&view=rev Author: gubatron Date: 2007-06-27 05:21:08 -0700 (Wed, 27 Jun 2007) Log Message: ----------- Fix on makeHashes.py, yay Modified Paths: -------------- trunk/build/makeHashes.py Modified: trunk/build/makeHashes.py =================================================================== --- trunk/build/makeHashes.py 2007-06-27 04:55:35 UTC (rev 333) +++ trunk/build/makeHashes.py 2007-06-27 12:21:08 UTC (rev 334) @@ -12,5 +12,7 @@ line = f + "=" + str(md5.new(fp.read()).hexdigest()).upper() fp.close output.write(line + "\n") + print line +output.close() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-27 04:56:19
|
Revision: 333 http://svn.sourceforge.net/frostwire/?rev=333&view=rev Author: gubatron Date: 2007-06-26 21:55:35 -0700 (Tue, 26 Jun 2007) Log Message: ----------- now all splashes have been updated Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/images/default_splash.png trunk/gui/com/limegroup/gnutella/gui/images/default_splash_pro.png Modified: trunk/gui/com/limegroup/gnutella/gui/images/default_splash.png =================================================================== (Binary files differ) Modified: trunk/gui/com/limegroup/gnutella/gui/images/default_splash_pro.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-27 04:46:32
|
Revision: 332 http://svn.sourceforge.net/frostwire/?rev=332&view=rev Author: gubatron Date: 2007-06-26 21:46:34 -0700 (Tue, 26 Jun 2007) Log Message: ----------- silencing debug messages Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java Modified: trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-27 04:40:46 UTC (rev 331) +++ trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-27 04:46:34 UTC (rev 332) @@ -50,17 +50,17 @@ Thread t = new Thread(new Runnable() { public void run() { byte[] ipBytes = RouterService.getExternalAddress(); - System.out.println("Fetching ip address on separate thread"); - System.out.println("My IP address looks like this ->" + ipBytesToString(ipBytes)); + //System.out.println("Fetching ip address on separate thread"); + //System.out.println("My IP address looks like this ->" + ipBytesToString(ipBytes)); while (ipBytesToString(ipBytes).equals("0.0.0.0")) { - System.out.println("Waiting one more second to get the ipAddress"); + //System.out.println("Waiting one more second to get the ipAddress"); try { Thread.currentThread().sleep(1000); } catch (Exception e) {}; ipBytes = RouterService.getExternalAddress(); } String ip = ipBytesToString(ipBytes); - System.out.println("MY IP ADDRESS IS THIS ->>>> " + ip); + //System.out.println("MY IP ADDRESS IS THIS ->>>> " + ip); SponsorBanner.ipAddress = ip; } }); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-27 04:40:45
|
Revision: 331 http://svn.sourceforge.net/frostwire/?rev=331&view=rev Author: gubatron Date: 2007-06-26 21:40:46 -0700 (Tue, 26 Jun 2007) Log Message: ----------- fixing splash screens, still showing old one for some reason Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/images/splash.png trunk/gui/com/limegroup/gnutella/gui/images/splashpro.png trunk/lib/themes/pinstripes/default_splash.png Modified: trunk/gui/com/limegroup/gnutella/gui/images/splash.png =================================================================== (Binary files differ) Modified: trunk/gui/com/limegroup/gnutella/gui/images/splashpro.png =================================================================== (Binary files differ) Modified: trunk/lib/themes/pinstripes/default_splash.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-27 03:55:58
|
Revision: 330 http://svn.sourceforge.net/frostwire/?rev=330&view=rev Author: gubatron Date: 2007-06-26 20:55:57 -0700 (Tue, 26 Jun 2007) Log Message: ----------- fw black sticker in png Added Paths: ----------- trunk/lib/graphicdesign/frostwire_black_sticker.png Added: trunk/lib/graphicdesign/frostwire_black_sticker.png =================================================================== (Binary files differ) Property changes on: trunk/lib/graphicdesign/frostwire_black_sticker.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-26 04:13:12
|
Revision: 329 http://svn.sourceforge.net/frostwire/?rev=329&view=rev Author: gubatron Date: 2007-06-25 21:13:10 -0700 (Mon, 25 Jun 2007) Log Message: ----------- Ready to build, Banners support torrents. Only need splash screen Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java Modified: trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java 2007-06-22 02:28:56 UTC (rev 328) +++ trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java 2007-06-26 04:13:10 UTC (rev 329) @@ -49,7 +49,7 @@ private void setupBannerRefreshTask() { //Every 30 minutes have the Timer attempt to reload all banners bannerRefresher = new Timer(true); - bannerRefresher.scheduleAtFixedRate(new BannersRefreshTask(this),0,5000); //60000*30); + bannerRefresher.scheduleAtFixedRate(new BannersRefreshTask(this),0,60000*30); } //setupBannerRefreshTask private void setupMouseListeners() { @@ -124,7 +124,7 @@ } public void run() { - System.out.println("BANNER REFRESH TASK - Reload banners from server"); + //System.out.println("BANNER REFRESH TASK - Reload banners from server"); this.container.refreshBanners(); } } //class BannersRefreshTask Modified: trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-22 02:28:56 UTC (rev 328) +++ trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-26 04:13:10 UTC (rev 329) @@ -31,6 +31,7 @@ import com.limegroup.gnutella.gui.GUIMediator; import com.limegroup.gnutella.gui.download.DownloadMediator; import org.apache.commons.httpclient.URI; +import org.apache.commons.httpclient.URIException; import com.limegroup.gnutella.RouterService; @@ -130,7 +131,7 @@ InputSource src = null; try { - connection = (HttpURLConnection) (new URL("http://sponsors.frostwire.com/sponsors.test.xml")).openConnection(); + connection = (HttpURLConnection) (new URL("http://sponsors.frostwire.com/banners.xml")).openConnection(); String userAgent = "FrostWire/" + CommonUtils.getOS() + "/" + CommonUtils.getFrostWireVersion(); connection.setRequestProperty("User-Agent",userAgent); src = new InputSource(connection.getInputStream()); @@ -233,7 +234,7 @@ //Skip if system country not on given list of countries for this banner if (countries != null && !banner.hasCountry(banner.getSystemCountry())) { - System.out.println("BANNER SKIPPED FOR COUNTRY NON MATCHING"); + //System.out.println("BANNER SKIPPED FOR COUNTRY NON MATCHING"); return; } @@ -241,12 +242,12 @@ if (language != null && !language.equals("") && !banner.getSystemLanguage().equals(banner.getLanguage())) { - System.out.println("BANNER SKIPPED FOR LANGUAGE NOT MATCHING"); + //System.out.println("BANNER SKIPPED FOR LANGUAGE NOT MATCHING"); return; } //IP RANGES MATCHING - System.out.println("OUR IP ADDRESS IS -> " + SponsorBanner.ipAddress); + //System.out.println("OUR IP ADDRESS IS -> " + SponsorBanner.ipAddress); if (SponsorBanner.ipAddress.equals("0.0.0.0")) { //If Ip hasn't been set, don't bother filtering SponsorBanner.fetchIpAddress(); @@ -254,16 +255,16 @@ banner.getIpRanges() != null && banner.getIpRanges().size() > 0) { if (!ipMatchesRanges(SponsorBanner.ipAddress, banner.getIpRanges())) { - System.out.println("BANNER SKIPPED FOR IP RANGE NOT MATCHING"); + //System.out.println("BANNER SKIPPED FOR IP RANGE NOT MATCHING"); return; } } //All filters passed, add to resulting banner list. - System.out.println(); - System.out.println("Banner Added " + banner.getUrl()); + //System.out.println(); + //System.out.println("Banner Added " + banner.getUrl()); this._result.add(banner); - System.out.println(); + //System.out.println(); } } //startElement @@ -400,6 +401,7 @@ this.setSize(new Dimension(this.getWidth(),this.getHeight())); addMouseListener(new MouseAdapter() { + //THIS IS WHAT HAPPENS WHEN THEY CLICK ON THE BANNER public void mouseClicked(MouseEvent evt) { //depending on banner type if set, we do something else, //maybe start a download on the network. @@ -411,8 +413,28 @@ } if (getType().equals("torrent")) { - System.out.println("SponsorBanner.mouseClicked: Should open a torrent."); - //DownloadMediator.instance().openTorrentURI(new URI(getUrl(),false)); + //System.out.println("SponsorBanner.mouseClicked: Should open a torrent."); + String urlString = getUrl(); + + try { + URI uri = new URI(urlString); + + String scheme = uri.getScheme(); + if(scheme == null || !scheme.equalsIgnoreCase("http")) { + //System.out.println("Not a torrent URL"); + return; + } + + String authority = uri.getAuthority(); + if(authority == null || authority.equals("") || authority.indexOf(' ') != -1) { + //System.out.println("Invalid authority"); + return; + } + + GUIMediator.instance().openTorrentURI(uri); + } catch (URIException e) { + System.out.println(e); + } return; } } //mouseClicked @@ -481,7 +503,7 @@ } public String getSystemLanguage() { - String language = System.getProperty("user.language"); + //String language = System.getProperty("user.language"); if (language == null) language = ""; return language; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-22 02:28:55
|
Revision: 328 http://svn.sourceforge.net/frostwire/?rev=328&view=rev Author: gubatron Date: 2007-06-21 19:28:56 -0700 (Thu, 21 Jun 2007) Log Message: ----------- Changes mouse cursor on mouse hover over banner Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java Modified: trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-21 12:39:50 UTC (rev 327) +++ trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-22 02:28:56 UTC (rev 328) @@ -24,6 +24,7 @@ import java.awt.Dimension; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.awt.Cursor; import javax.swing.JLabel; import com.limegroup.gnutella.util.CommonUtils; @@ -414,7 +415,15 @@ //DownloadMediator.instance().openTorrentURI(new URI(getUrl(),false)); return; } - } + } //mouseClicked + + public void mouseEntered(MouseEvent evt) { + setCursor(new Cursor(Cursor.HAND_CURSOR)); + } //mouseEntered + + public void mouseExited(MouseEvent evt) { + setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); + } //mouseExited }); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-21 12:40:00
|
Revision: 327 http://svn.sourceforge.net/frostwire/?rev=327&view=rev Author: gubatron Date: 2007-06-21 05:39:50 -0700 (Thu, 21 Jun 2007) Log Message: ----------- More turning off SIMPP and LIME UPDATE messages Modified Paths: -------------- trunk/core/com/limegroup/gnutella/Connection.java trunk/core/com/limegroup/gnutella/MessageRouter.java trunk/core/com/limegroup/gnutella/messages/vendor/CapabilitiesVM.java trunk/core/com/limegroup/gnutella/messages/vendor/MessagesSupportedVendorMessage.java trunk/core/com/limegroup/gnutella/messages/vendor/VendorMessageFactory.java trunk/core/com/limegroup/gnutella/settings/SettingsFactory.java Modified: trunk/core/com/limegroup/gnutella/Connection.java =================================================================== --- trunk/core/com/limegroup/gnutella/Connection.java 2007-06-21 12:16:06 UTC (rev 326) +++ trunk/core/com/limegroup/gnutella/Connection.java 2007-06-21 12:39:50 UTC (rev 327) @@ -1466,7 +1466,8 @@ * Sends the SimppVM down the connection */ public void handleSimppVM(SimppVM simppVM) throws IOException { - send(simppVM); + return; + //send(simppVM); } Modified: trunk/core/com/limegroup/gnutella/MessageRouter.java =================================================================== --- trunk/core/com/limegroup/gnutella/MessageRouter.java 2007-06-21 12:16:06 UTC (rev 326) +++ trunk/core/com/limegroup/gnutella/MessageRouter.java 2007-06-21 12:39:50 UTC (rev 327) @@ -477,8 +477,8 @@ setMessageHandler(GiveStatsVendorMessage.class, new GiveStatsHandler()); setMessageHandler(StatisticVendorMessage.class, new StatisticsHandler()); setMessageHandler(HeadPing.class, new HeadPingHandler()); - setMessageHandler(SimppRequestVM.class, new SimppRequestVMHandler()); - setMessageHandler(SimppVM.class, new SimppVMHandler()); + //setMessageHandler(SimppRequestVM.class, new SimppRequestVMHandler()); + //setMessageHandler(SimppVM.class, new SimppVMHandler()); setMessageHandler(UpdateRequest.class, new UpdateRequestHandler()); setMessageHandler(UpdateResponse.class, new UpdateResponseHandler()); setMessageHandler(HeadPong.class, new HeadPongHandler()); @@ -2095,7 +2095,9 @@ */ private void handleSimppRequest(final SimppRequestVM simppReq, final ReplyHandler handler ) { - if(simppReq.getVersion() > SimppRequestVM.VERSION) + return; //do nothing on simpps + /** + if(simppReq.getVersion() > SimppRequestVM.VERSION) return; //we are not going to deal with these types of requests. byte[] simppBytes = SimppManager.instance().getSimppBytes(); if(simppBytes != null) { @@ -2106,6 +2108,7 @@ return; } } + */ } @@ -3027,13 +3030,13 @@ private class SimppRequestVMHandler implements MessageHandler { public void handleMessage(Message msg, InetSocketAddress addr, ReplyHandler handler) { - handleSimppRequest((SimppRequestVM)msg, handler); + //handleSimppRequest((SimppRequestVM)msg, handler); } } private class SimppVMHandler implements MessageHandler { public void handleMessage(Message msg, InetSocketAddress addr, ReplyHandler handler) { - handleSimppVM((SimppVM)msg); + //handleSimppVM((SimppVM)msg); } } Modified: trunk/core/com/limegroup/gnutella/messages/vendor/CapabilitiesVM.java =================================================================== --- trunk/core/com/limegroup/gnutella/messages/vendor/CapabilitiesVM.java 2007-06-21 12:16:06 UTC (rev 326) +++ trunk/core/com/limegroup/gnutella/messages/vendor/CapabilitiesVM.java 2007-06-21 12:39:50 UTC (rev 327) @@ -117,13 +117,16 @@ FeatureSearchData.FEATURE_SEARCH_MAX_SELECTOR); hashSet.add(smp); + /** smp = new SupportedMessageBlock(SIMPP_CAPABILITY_BYTES, SimppManager.instance().getVersion()); - hashSet.add(smp); + hashSet.add(smp); */ + /* smp = new SupportedMessageBlock(LIME_UPDATE_BYTES, UpdateHandler.instance().getLatestId()); hashSet.add(smp); + */ } Modified: trunk/core/com/limegroup/gnutella/messages/vendor/MessagesSupportedVendorMessage.java =================================================================== --- trunk/core/com/limegroup/gnutella/messages/vendor/MessagesSupportedVendorMessage.java 2007-06-21 12:16:06 UTC (rev 326) +++ trunk/core/com/limegroup/gnutella/messages/vendor/MessagesSupportedVendorMessage.java 2007-06-21 12:39:50 UTC (rev 327) @@ -121,6 +121,7 @@ UDPCrawlerPong.VERSION); hashSet.add(smp); //Simpp Request message + /* smp = new SupportedMessageBlock(F_LIME_VENDOR_ID, F_SIMPP_REQ, SimppRequestVM.VERSION); @@ -136,6 +137,7 @@ F_HEADER_UPDATE, HeaderUpdateVendorMessage.VERSION); hashSet.add(smp); + */ } Modified: trunk/core/com/limegroup/gnutella/messages/vendor/VendorMessageFactory.java =================================================================== --- trunk/core/com/limegroup/gnutella/messages/vendor/VendorMessageFactory.java 2007-06-21 12:16:06 UTC (rev 326) +++ trunk/core/com/limegroup/gnutella/messages/vendor/VendorMessageFactory.java 2007-06-21 12:39:50 UTC (rev 327) @@ -48,8 +48,10 @@ setParser(VendorMessage.F_CAPABILITIES, VendorMessage.F_NULL_VENDOR_ID, new CapabilitiesVMParser()); setParser(VendorMessage.F_GIVE_STATS, VendorMessage.F_LIME_VENDOR_ID, new GiveStatsVendorMessageParser()); setParser(VendorMessage.F_STATISTICS, VendorMessage.F_LIME_VENDOR_ID, new StatisticVendorMessageParser()); + /* setParser(VendorMessage.F_SIMPP_REQ, VendorMessage.F_LIME_VENDOR_ID, new SimppRequestVMParser()); - setParser(VendorMessage.F_SIMPP, VendorMessage.F_LIME_VENDOR_ID, new SimppVMParser()); + setParser(VendorMessage.F_SIMPP, VendorMessage.F_LIME_VENDOR_ID, new SimppVMParser());*/ + setParser(VendorMessage.F_CRAWLER_PING, VendorMessage.F_LIME_VENDOR_ID, new UDPCrawlerPingParser()); setParser(VendorMessage.F_UDP_HEAD_PING, VendorMessage.F_LIME_VENDOR_ID, new HeadPingParser()); setParser(VendorMessage.F_UDP_HEAD_PONG, VendorMessage.F_LIME_VENDOR_ID, new HeadPongParser()); Modified: trunk/core/com/limegroup/gnutella/settings/SettingsFactory.java =================================================================== --- trunk/core/com/limegroup/gnutella/settings/SettingsFactory.java 2007-06-21 12:16:06 UTC (rev 326) +++ trunk/core/com/limegroup/gnutella/settings/SettingsFactory.java 2007-06-21 12:39:50 UTC (rev 327) @@ -693,7 +693,9 @@ String simppKey) { settings.add(setting); setting.reload(); + //Simpp related checks... + /* if(simppKey != null) { //Check if simpp value was specified before this setting was loaded SimppSettingsManager simppSetMan = SimppSettingsManager.instance(); @@ -707,6 +709,7 @@ //update the mapping of the simpp key to the setting. simppKeyToSetting.put(simppKey, setting); } + */ } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-21 12:16:09
|
Revision: 326 http://svn.sourceforge.net/frostwire/?rev=326&view=rev Author: gubatron Date: 2007-06-21 05:16:06 -0700 (Thu, 21 Jun 2007) Log Message: ----------- Banner Filtering by IP Ranges IS ALIVE Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java Modified: trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-21 11:48:05 UTC (rev 325) +++ trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-21 12:16:06 UTC (rev 326) @@ -273,25 +273,19 @@ * @return */ public boolean ipMatchesRanges(String ip, Set<String> ipRanges) { - - System.out.println("ipMatchesRanges("+ip+",...) "); - if (ip!=null || ip.equals("0.0.0.0")) { + if (ip==null || ip.equals("0.0.0.0")) { return false; //should probably throw an exception here } - if (ipRanges == null) { - System.out.println("ipMatchesRanges - ipRanges null??? wtf wtf wtf"); - } - + if (ipRanges != null && ip != null) { - System.out.println("About to try a look through the ipRanges"); Iterator<String> iterator = ipRanges.iterator(); String ipRange = null; while (iterator.hasNext()) { ipRange = iterator.next(); - System.out.println("About to compare ("+ip+") vs ("+ipRange+")"); + //System.out.println("About to compare ("+ip+") vs ("+ipRange+")"); if (ipMatchesRange(ip,ipRange)) { - System.out.println("Found a match -> " + ip + " vs " + ipRange); + //System.out.println("Found a match -> " + ip + " vs " + ipRange); return true; } } //for @@ -321,7 +315,7 @@ int octetIndex = 0; if (ipOctets.length != ipRangeOctets.length) { - System.out.println("Octet lengths don't match"); + //System.out.println("Octet lengths don't match"); return false; } @@ -329,17 +323,17 @@ //If I get a wild card, or if the current octect matches //the ipRange octect, we have a match - System.out.println("Comparing ("+octet+") vs ("+ipRangeOctets[octetIndex]+")"); + //System.out.println("Comparing ("+octet+") vs ("+ipRangeOctets[octetIndex]+")"); if (!(ipRangeOctets[octetIndex].equals("*") || ipRangeOctets[octetIndex].equals("x") || ipRangeOctets[octetIndex].equals(octet))) { - System.out.println("FAILED\n"); + //System.out.println("FAILED\n"); return false; } - System.out.println("PASSED"); + //System.out.println("PASSED"); octetIndex+=1; } - System.out.println(); + //System.out.println(); return true; } //ipMatchesRange This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-21 11:48:04
|
Revision: 325 http://svn.sourceforge.net/frostwire/?rev=325&view=rev Author: gubatron Date: 2007-06-21 04:48:05 -0700 (Thu, 21 Jun 2007) Log Message: ----------- Grabs the IP (forgot to do .start() on thread). Now some stupid logic error with Ip Range pattern matching Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java Modified: trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java 2007-06-21 10:42:47 UTC (rev 324) +++ trunk/gui/com/limegroup/gnutella/gui/sponsors/BannerContainer.java 2007-06-21 11:48:05 UTC (rev 325) @@ -88,6 +88,8 @@ add(banner, banner.getImageSrc()); } + this.repaint(); + //Every 5 seconds have the Timer attempt to switch the current banner lastTimeSwitched = Calendar.getInstance().getTimeInMillis(); bannerSwitcher.scheduleAtFixedRate(new BannerSwitchTask(this),0,5000); @@ -164,6 +166,7 @@ if (now > timeOfExpiration) { lastTimeSwitched = now; layout.next(this); + this.repaint(); } } //switchBanner } Modified: trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-21 10:42:47 UTC (rev 324) +++ trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-21 11:48:05 UTC (rev 325) @@ -17,6 +17,7 @@ import java.util.HashMap; import java.util.Set; import java.util.LinkedHashSet; +import java.util.Iterator; import java.io.IOException; @@ -37,12 +38,6 @@ public static String ipAddress = ipBytesToString(RouterService.getExternalAddress()); - static { - System.out.println("SponsorBanner.static - fetching ip address"); - fetchIpAddress(); - System.out.println("SponsorBanner.static - got ip address -> " + ipAddress); - } - /** * This method fires up a thread and tries to get * the external ip address. @@ -53,7 +48,7 @@ Thread t = new Thread(new Runnable() { public void run() { byte[] ipBytes = RouterService.getExternalAddress(); - + System.out.println("Fetching ip address on separate thread"); System.out.println("My IP address looks like this ->" + ipBytesToString(ipBytes)); while (ipBytesToString(ipBytes).equals("0.0.0.0")) { @@ -67,6 +62,7 @@ SponsorBanner.ipAddress = ip; } }); + t.start(); } /** @@ -198,12 +194,14 @@ String[] ips = ipranges_string.split(","); for (String ip:ips) { ipRanges.add(ip); + System.out.println("Added IP Range -> " + ip); } } else { + System.out.println("No IP Ranges"); ipRanges = null; } - //banner type (optional) + //banner type (optional) [for next versions, to open torrents, etc.] String type = null; if (atts.getValue("type")!=null) { type = new String(atts.getValue("type")); @@ -245,30 +243,26 @@ System.out.println("BANNER SKIPPED FOR LANGUAGE NOT MATCHING"); return; } - - //TODO: Check if our IP exists within the ranges. - System.out.println("OUR IP ADDRESS IS ->"); - System.out.println(SponsorBanner.ipAddress); + //IP RANGES MATCHING + System.out.println("OUR IP ADDRESS IS -> " + SponsorBanner.ipAddress); if (SponsorBanner.ipAddress.equals("0.0.0.0")) { + //If Ip hasn't been set, don't bother filtering SponsorBanner.fetchIpAddress(); - } - - //If IP Ranges are given, and we know our IP address - //we try to filter out. - if (!SponsorBanner.ipAddress.equals("0.0.0.0") && + } else if (!SponsorBanner.ipAddress.equals("0.0.0.0") && banner.getIpRanges() != null && banner.getIpRanges().size() > 0) { - if (!ipMatchesRanges(SponsorBanner.ipAddress, banner.getIpRanges())) { System.out.println("BANNER SKIPPED FOR IP RANGE NOT MATCHING"); return; } } - //All filters passed, add to resulting banner list. + System.out.println(); + System.out.println("Banner Added " + banner.getUrl()); this._result.add(banner); + System.out.println(); } } //startElement @@ -279,18 +273,28 @@ * @return */ public boolean ipMatchesRanges(String ip, Set<String> ipRanges) { - if (ip!=null && ip.equals("0.0.0.0")) { + + System.out.println("ipMatchesRanges("+ip+",...) "); + if (ip!=null || ip.equals("0.0.0.0")) { return false; //should probably throw an exception here } + if (ipRanges == null) { + System.out.println("ipMatchesRanges - ipRanges null??? wtf wtf wtf"); + } + if (ipRanges != null && ip != null) { - boolean foundAMatch = false; - for (String ipRange : ipRanges) { + System.out.println("About to try a look through the ipRanges"); + Iterator<String> iterator = ipRanges.iterator(); + String ipRange = null; + while (iterator.hasNext()) { + ipRange = iterator.next(); + System.out.println("About to compare ("+ip+") vs ("+ipRange+")"); if (ipMatchesRange(ip,ipRange)) { + System.out.println("Found a match -> " + ip + " vs " + ipRange); return true; } } //for - return false; } //if return false; @@ -308,29 +312,39 @@ * @param ipRange * @return */ - public boolean ipMatchesRange(String ip, String ipRange) { - if (ip == null) return false; - if (ipRange == null) return false; + public boolean ipMatchesRange(String ip, String ipRange) { + if (ip == null) { System.out.println("ip null"); return false; } + if (ipRange == null) { System.out.println("ipRange null"); return false; } - String[] ipOctets = ip.split("\\."); - String[] ipRangeOctets = ipRange.split("\\."); - int octetIndex = 0; + String[] ipOctets = ip.split("\\."); + String[] ipRangeOctets = ipRange.split("\\."); + int octetIndex = 0; - if (ipOctets.length != ipRangeOctets.length) return false; + if (ipOctets.length != ipRangeOctets.length) { + System.out.println("Octet lengths don't match"); + return false; + } - for (String octet:ipOctets) { - //If I get a wild card, or if the current octect matches - //the ipRange octect, we have a match - if (!(ipRangeOctets[octetIndex].equals("*") || - ipRangeOctets[octetIndex].equals("x") || - ipRangeOctets[octetIndex].equals(octet))) { - return false; - } - octetIndex+=1; - } - return true; - } //ipMatchesRange + for (String octet:ipOctets) { + //If I get a wild card, or if the current octect matches + //the ipRange octect, we have a match + System.out.println("Comparing ("+octet+") vs ("+ipRangeOctets[octetIndex]+")"); + if (!(ipRangeOctets[octetIndex].equals("*") || + ipRangeOctets[octetIndex].equals("x") || + ipRangeOctets[octetIndex].equals(octet))) { + System.out.println("FAILED\n"); + return false; + } + System.out.println("PASSED"); + octetIndex+=1; + } + System.out.println(); + return true; + } //ipMatchesRange + + + public void skippedEntity(String name) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-21 10:42:46
|
Revision: 324 http://svn.sourceforge.net/frostwire/?rev=324&view=rev Author: gubatron Date: 2007-06-21 03:42:47 -0700 (Thu, 21 Jun 2007) Log Message: ----------- Added quickbuild Added Paths: ----------- trunk/build/quickbuild Added: trunk/build/quickbuild =================================================================== --- trunk/build/quickbuild (rev 0) +++ trunk/build/quickbuild 2007-06-21 10:42:47 UTC (rev 324) @@ -0,0 +1,20 @@ +#This script just builds gui/ and creates FrostWire jar. +PROJECT_DIR=$PWD/../ + +#Build gui +cd $PROJECT_DIR/gui +ant + +#Make FrostWireJar +ant FrostWireJar +rm $PROJECT_DIR/lib/jars/FrostWire.jar +cp $PROJECT_DIR/gui/lib/FrostWire.jar $PROJECT_DIR/lib/jars/ +cp $PROJECT_DIR/gui/lib/FrostWire.jar $PROJECT_DIR/build + +#fix the 'hashes' file +cd $PROJECT_DIR/build +#ls *.jar -1 | xargs md5sum | awk {'print $2"="toupper($1)'} > hashes +python makeHashes.py + +echo Should be ready to execute if ant didn't fail +echo \ No newline at end of file Property changes on: trunk/build/quickbuild ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-19 05:08:01
|
Revision: 323 http://svn.sourceforge.net/frostwire/?rev=323&view=rev Author: gubatron Date: 2007-06-18 22:08:02 -0700 (Mon, 18 Jun 2007) Log Message: ----------- Almost there, just having a little trouble refreshing external ip address for some reason Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java Modified: trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-19 05:07:52 UTC (rev 322) +++ trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-19 05:08:02 UTC (rev 323) @@ -30,9 +30,73 @@ import com.limegroup.gnutella.gui.download.DownloadMediator; import org.apache.commons.httpclient.URI; +import com.limegroup.gnutella.RouterService; + public class SponsorBanner extends JLabel { private SponsorLoader _sponsorLoader = new SponsorLoader(); + + public static String ipAddress = ipBytesToString(RouterService.getExternalAddress()); + static { + System.out.println("SponsorBanner.static - fetching ip address"); + fetchIpAddress(); + System.out.println("SponsorBanner.static - got ip address -> " + ipAddress); + } + + /** + * This method fires up a thread and tries to get + * the external ip address. + */ + public static void fetchIpAddress() { + //We'll try to get the external ipAddress from RouterService + //and try, and try, 1 second at the time. + Thread t = new Thread(new Runnable() { + public void run() { + byte[] ipBytes = RouterService.getExternalAddress(); + + System.out.println("My IP address looks like this ->" + ipBytesToString(ipBytes)); + + while (ipBytesToString(ipBytes).equals("0.0.0.0")) { + System.out.println("Waiting one more second to get the ipAddress"); + try { Thread.currentThread().sleep(1000); } catch (Exception e) {}; + ipBytes = RouterService.getExternalAddress(); + } + + String ip = ipBytesToString(ipBytes); + System.out.println("MY IP ADDRESS IS THIS ->>>> " + ip); + SponsorBanner.ipAddress = ip; + } + }); + } + + /** + * Converts a byte array ip address into a String representation of the ip + * @param ip + * @return + */ + public static String ipBytesToString(byte[] ip) { + if (ip == null) { + return new String("0.0.0.0"); + } + + int i=0; + String result = new String(); + while(i < ip.length) { + + result += Byte.toString(ip[i]); + i++; + if (i < ip.length) { + result += "."; + } //if + } //while + + return result; + } //ipBytesToString + + /** + * Uses a SponsorLoader to return a fresh set of Banners from the server. + * @return + */ public HashSet<SponsorBanner> getBannersFromServer() { return getSponsorLoader().loadBanners(); } @@ -53,14 +117,18 @@ language="en" duration="60" /> */ + public String ipAddress = new String("0.0.0.0"); + private boolean _status = false; private HashSet<SponsorBanner> _result = new HashSet<SponsorBanner>(); - /** Connects to sponsors.frostwire.com/sponsors.xml and downloads the meta data */ + /** + * Connects to sponsors.frostwire.com/sponsors.xml and downloads the meta data + * This class is an XML ContentHandler, so this method will create an + * XMLReader and use the XML parsing methods to instantiate Banner Objects. + * */ public HashSet<SponsorBanner> loadBanners() { - - HttpURLConnection connection = null; InputSource src = null; @@ -180,13 +248,90 @@ //TODO: Check if our IP exists within the ranges. + System.out.println("OUR IP ADDRESS IS ->"); + System.out.println(SponsorBanner.ipAddress); + if (SponsorBanner.ipAddress.equals("0.0.0.0")) { + SponsorBanner.fetchIpAddress(); + } + + //If IP Ranges are given, and we know our IP address + //we try to filter out. + if (!SponsorBanner.ipAddress.equals("0.0.0.0") && + banner.getIpRanges() != null && + banner.getIpRanges().size() > 0) { + + if (!ipMatchesRanges(SponsorBanner.ipAddress, banner.getIpRanges())) { + System.out.println("BANNER SKIPPED FOR IP RANGE NOT MATCHING"); + return; + } + } //All filters passed, add to resulting banner list. this._result.add(banner); } - } + } //startElement + /** Compares an ip address to a bunch of ipRange expressions. + * If at least one matches, then it returns true. + * @param ip + * @param ipRanges + * @return + */ + public boolean ipMatchesRanges(String ip, Set<String> ipRanges) { + if (ip!=null && ip.equals("0.0.0.0")) { + return false; + //should probably throw an exception here + } + if (ipRanges != null && ip != null) { + boolean foundAMatch = false; + for (String ipRange : ipRanges) { + if (ipMatchesRange(ip,ipRange)) { + return true; + } + } //for + return false; + } //if + + return false; + } //ipMatchesRanges + + /** + * Compares ip octects to a single ipRange. + * Examples + * ip = 192.168.34.2 + * ipRange = 192.168.*.* + * output = true + * + * Only wildcards allowed are * and x, represents any number from 0-255 + * @param ip + * @param ipRange + * @return + */ + public boolean ipMatchesRange(String ip, String ipRange) { + if (ip == null) return false; + if (ipRange == null) return false; + + String[] ipOctets = ip.split("\\."); + String[] ipRangeOctets = ipRange.split("\\."); + int octetIndex = 0; + + if (ipOctets.length != ipRangeOctets.length) return false; + + for (String octet:ipOctets) { + //If I get a wild card, or if the current octect matches + //the ipRange octect, we have a match + if (!(ipRangeOctets[octetIndex].equals("*") || + ipRangeOctets[octetIndex].equals("x") || + ipRangeOctets[octetIndex].equals(octet))) { + return false; + } + octetIndex+=1; + } + return true; + } //ipMatchesRange + + public void skippedEntity(String name) { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-19 05:07:51
|
Revision: 322 http://svn.sourceforge.net/frostwire/?rev=322&view=rev Author: gubatron Date: 2007-06-18 22:07:52 -0700 (Mon, 18 Jun 2007) Log Message: ----------- Almost there, just having a little trouble refreshing external ip address for some reason Modified Paths: -------------- trunk/build/build Modified: trunk/build/build =================================================================== --- trunk/build/build 2007-06-14 03:56:51 UTC (rev 321) +++ trunk/build/build 2007-06-19 05:07:52 UTC (rev 322) @@ -23,7 +23,6 @@ #Make the MessageBundles.jar cd $PROJECT_DIR/lib/messagebundles -#jar -cfv MessagesBundles.jar resources totd xml *.properties sh makeBundle.sh cp $PROJECT_DIR/lib/messagebundles/MessagesBundles.jar $PROJECT_DIR/build rm $PROJECT_DIR/lib/messagebundles/MessagesBundles.jar This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gub...@us...> - 2007-06-14 03:56:50
|
Revision: 321 http://svn.sourceforge.net/frostwire/?rev=321&view=rev Author: gubatron Date: 2007-06-13 20:56:51 -0700 (Wed, 13 Jun 2007) Log Message: ----------- Sponsors can target more than one country per banner Modified Paths: -------------- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java Modified: trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java =================================================================== --- trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-14 03:56:26 UTC (rev 320) +++ trunk/gui/com/limegroup/gnutella/gui/sponsors/SponsorBanner.java 2007-06-14 03:56:51 UTC (rev 321) @@ -14,9 +14,9 @@ import java.net.URL; import java.net.HttpURLConnection; +import java.util.HashMap; import java.util.Set; import java.util.LinkedHashSet; -import java.util.StrinkTokenizer; import java.io.IOException; @@ -142,10 +142,15 @@ } //country - Set<String> country = null; + HashMap<String, String> countries = null; if (atts.getValue("countries")!=null) { + countries = new HashMap<String,String>(); String countries_str = new String(atts.getValue("countries")); - StringTokenizer + countries_str = countries_str.trim(); + String[] countries_array = countries_str.split(","); + for (String country: countries_array) { + countries.put(country.toUpperCase(),country.toUpperCase()); + } } //language @@ -154,31 +159,29 @@ language = new String(atts.getValue("language")); } - SponsorBanner banner = new SponsorBanner(href, - src, - width, - height, - duration, - ipRanges, - type, - country, - language); - //FILTERING HAPPENS HERE. - - if (country != null && - !country.equals("") && - !banner.getSystemCountry().equals(banner.getCountry())) { + SponsorBanner banner = new SponsorBanner(href,src,width,height,duration,ipRanges,type,countries,language); + + //FILTERING HAPPENS HERE. + + //Skip if system country not on given list of countries for this banner + if (countries != null && + !banner.hasCountry(banner.getSystemCountry())) { System.out.println("BANNER SKIPPED FOR COUNTRY NON MATCHING"); return; } + //Skip language if lang not on given list of languages for this banner if (language != null && !language.equals("") && !banner.getSystemLanguage().equals(banner.getLanguage())) { System.out.println("BANNER SKIPPED FOR LANGUAGE NOT MATCHING"); return; } + + //TODO: Check if our IP exists within the ranges. + + //All filters passed, add to resulting banner list. this._result.add(banner); } @@ -220,7 +223,7 @@ int duration, Set<String> ipRanges, String type, - String country, + HashMap<String,String> countries, String language) { this.setUrl(url); this.setImageSrc(imageSrc); @@ -231,9 +234,8 @@ this.setType(type); - if (country != null) { - //TODO: Make this, setCountries(). Tokenize the string by commas. - this.setCountry(country); + if (countries != null) { + this.setCountries(countries); } if (language != null) { @@ -270,7 +272,7 @@ private int duration; private Set<String> ipRanges = null; private String type = null; - private String country = null; + private HashMap<String, String> countries = null; private String language = null; private String locale = null; @@ -285,7 +287,29 @@ public String getType() { return this.type; } public String getBannerLocale() { return this.locale; } - public String getCountry() { return this.country; } + + public void addCountry(String country) { + if (country == null) + return; + + if (this.countries == null) + this.countries = new HashMap<String,String>(); + + this.countries.put(country, country); + } + + public boolean hasCountry(String country) { + if (this.countries == null || country == null) + return false; + return this.countries.containsKey(country); + } + + public void setCountries(HashMap<String,String> countries) { + this.countries = countries; + } + + public HashMap<String,String> getCountries() { return this.countries; } + public String getLanguage() { return this.language; } public String getSystemCountry() { @@ -328,7 +352,6 @@ this.type = type; } - public void setCountry(String country) { this.country = country; } public void setLanguage(String language) { this.language = language; } public void setBannerLocale(String locale) {this.locale = locale; } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |