<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

<!--

   Copyright 2001  The Apache Software Foundation 

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

-->
<!-- ========================================================================= -->
<!-- GVT under the spot-light!                                                 -->
<!--                                                                           -->
<!-- @author vincent.hardy@eng.sun.com                                         -->
<!-- @version $Id$ -->
<!-- ========================================================================= -->

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="500" viewBox="0 0 450 500">

    <defs>
		<path id="G" transform="translate(-38.28, -32.5)" d="M48,47.5H36.875V30.75h39.5c0.064,1.465,0.113,2.555,0.146,3.27c0.031,0.715,0.049,1.35,0.049,1.902c0,4.098-0.393,7.838-1.174,11.221s-1.922,6.375-3.42,8.977c-3.648,6.115-8.357,10.791-14.123,14.027
			C52.088,73.381,45.539,75,38.211,75c-5.408,0-10.434-0.904-15.074-2.709c-4.643-1.807-8.756-4.469-12.338-7.984c-3.551-3.516-6.238-7.535-8.063-12.061C0.912,47.723,0,42.807,0,37.5c0-5.338,0.92-10.277,2.76-14.818s4.521-8.537,8.041-11.988
			c3.551-3.482,7.656-6.135,12.316-7.959C27.777,0.912,32.811,0,38.221,0c7.33,0,13.846,1.605,19.549,4.814s10.363,7.908,13.98,14.096l-22.967,8.465c-1.205-1.973-2.654-3.445-4.346-4.418c-1.693-0.971-3.631-1.457-5.811-1.457c-3.811,0-6.848,1.447-9.109,4.338
			c-2.262,2.893-3.393,6.775-3.393,11.648c0,5.037,1.139,8.945,3.418,11.723c2.277,2.777,5.5,4.166,9.668,4.166c2.473,0,4.482-0.518,6.029-1.553S47.707,49.346,48,47.5z"/>
		<path id="V" style="stroke:none;" transform="translate(-39.1625, -35.75)" d="M27.271,71.5L0,0h27.807l7.566,25.885c1.105,3.777,1.928,6.969,2.465,9.574c0.535,2.605,0.885,5.047,1.049,7.324h0.488c0.324-2.408,0.789-4.947,1.391-7.617s1.375-5.568,2.32-8.695L51.09,0h27.285L51.188,71.5H27.271z"/>
		<path id="T" style="stroke:none;" transform="translate(-27.0625, -35.75)" d="M14.25,71.5V23.375H0V0h54.125v23.375h-14.25V71.5H14.25z"/>

        <filter id="dropShadow" width="1.5" height="1.5">
            <feGaussianBlur in="SourceGraphic" stdDeviation="4 4"/> 
            <feOffset dx="4" dy="4" />
        </filter>

		<filter id="emboss" >
	        <feGaussianBlur in="SourceAlpha" stdDeviation="6" result="blur"/>
            <feSpecularLighting in="blur" surfaceScale="-3" 
                specularConstant="1" specularExponent="20" 
                lighting-color="white"  result="spec" kernelUnitLength="1" >
                <feDistantLight azimuth="45" elevation="60" />
	    </feSpecularLighting>

	    <feComposite in="spec" in2="SourceGraphic" 
                         operator="in" result="specOut"/>
	    <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic"
                         k1="0" k2="1" k3="1" k4="0" result="litPaint2"/> 
		</filter>

        <radialGradient id="redGradient" cx="0" cy="0" r="2" fx="-0.2" fy="-0.2" >
            <stop offset="0" stop-color="red" />
            <stop offset="1" stop-color="black" />
        </radialGradient>

        <radialGradient id="greenGradient" cx="0" cy="0" r="2" fx="-0.2" fy="-0.2" >
            <stop offset="0" stop-color="rgb(60, 255, 160)" />
            <stop offset="1" stop-color="black" />
        </radialGradient>

        <radialGradient id="blueGradient" cx="1" cy="1" r="2">
            <stop offset="0" stop-color="rgb(160, 60, 255)" />
            <stop offset="1" stop-color="black" />
        </radialGradient>

        <radialGradient id="goldGradient" cx="1" cy="1" r="2">
            <stop offset="0" stop-color="gold" />
            <stop offset="1" stop-color="black" />
        </radialGradient>
    </defs>

    <g fill="url(#redGradient)">
        <rect width="150" height="125" />
        <rect width="150" height="125" x="150" />
        <rect width="150" height="125" x="300" />
        <g transform="translate(75, 62.5)" fill="gold">
            <use xlink:href="#G" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#G" filter="url(#emboss)"/>
            <use xlink:href="#V" x="150" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#V" x="150" filter="url(#emboss)"/>
            <use xlink:href="#T" x="300" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#T" x="300" filter="url(#emboss)"/>
        </g>
    </g>

    <g fill="url(#greenGradient)" transform="translate(0, 125)">
        <rect width="150" height="125" />
        <rect width="150" height="125" x="150" />
        <rect width="150" height="125" x="300" />
        <g transform="translate(75, 62.5)" fill="rgb(130, 30, 225)">
            <use xlink:href="#G" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#G" filter="url(#emboss)"/>
            <use xlink:href="#V" x="150" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#V" x="150" filter="url(#emboss)"/>
            <use xlink:href="#T" x="300" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#T" x="300" filter="url(#emboss)"/>
        </g>
    </g>

    <g fill="url(#blueGradient)" transform="translate(0, 250)">
        <rect width="150" height="125" />
        <rect width="150" height="125" x="150" />
        <rect width="150" height="125" x="300" />
        <g transform="translate(75, 62.5)" fill="rgb(10, 205, 110)">
            <use xlink:href="#G" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#G" filter="url(#emboss)"/>
            <use xlink:href="#V" x="150" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#V" x="150" filter="url(#emboss)"/>
            <use xlink:href="#T" x="300" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#T" x="300" filter="url(#emboss)"/>
        </g>
    </g>

    <g fill="url(#goldGradient)" transform="translate(0, 375)">
        <rect width="150" height="125" />
        <rect width="150" height="125" x="150" />
        <rect width="150" height="125" x="300" />
        <g transform="translate(75, 62.5)" fill="rgb(220, 0, 0)">
            <use xlink:href="#G" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#G" filter="url(#emboss)"/>
            <use xlink:href="#V" x="150" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#V" x="150" filter="url(#emboss)"/>
            <use xlink:href="#T" x="300" fill="black" filter="url(#dropShadow)"/>
            <use xlink:href="#T" x="300" filter="url(#emboss)"/>
        </g>
    </g>

</svg>
