xmlgraphics-batik-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vha...@apache.org
Subject cvs commit: xml-batik/test-resources/org/apache/batik/bridge scriptPermissions2.svg scriptPermissions.svg
Date Mon, 17 Jun 2002 13:02:36 GMT
vhardy      2002/06/17 06:02:36

  Modified:    test-resources/org/apache/batik/bridge scriptPermissions.svg
  Added:       test-resources/org/apache/batik/bridge
                        scriptPermissions2.svg
  Log:
  Additional/extended security tests
  
  Revision  Changes    Path
  1.2       +131 -107  xml-batik/test-resources/org/apache/batik/bridge/scriptPermissions.svg
  
  Index: scriptPermissions.svg
  ===================================================================
  RCS file: /home/cvs/xml-batik/test-resources/org/apache/batik/bridge/scriptPermissions.svg,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- scriptPermissions.svg	17 Jun 2002 08:07:38 -0000	1.1
  +++ scriptPermissions.svg	17 Jun 2002 13:02:36 -0000	1.2
  @@ -1,107 +1,131 @@
  -<?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 (C) The Apache Software Foundation. All rights reserved.        -->
  -<!--                                                                           -->
  -<!-- This software is published under the terms of the Apache Software License -->
  -<!-- version 1.1, a copy of which has been included with this distribution in  -->
  -<!-- the LICENSE file.                                                         -->
  -<!-- ========================================================================= -->
  -
  -<!-- ========================================================================= -->
  -<!-- Checks that access to critical functions is not allowed.                  -->
  -<!--                                                                           -->
  -<!-- @author vincent.hardy@sun.com                                             -->
  -<!-- @version $Id$   -->
  -<!-- ========================================================================= -->
  -
  -<svg xmlns="http://www.w3.org/2000/svg" 
  -     xmlns:xlink="http://www.w3.org/1999/xlink" 
  -     xmlns:test="http://xml.apache.org/batik/test"
  -     width="450" height="500" viewBox="0 0 450 500">
  -
  -    <test:testResult id="testResult" result="passed"/>
  -    <script type="text/ecmascript"><![CDATA[
  -
  -    var insertAt = "";
  -    var curURI = "";
  -
  -    function insertContentAt(uri, insertionPoint) {
  -        insertAt = insertionPoint;
  -        curURI = uri;
  -        getURL(uri, onInsert);
  -    }
  -
  -    function onInsert(status) {
  -        if (status.success == false) {
  -            alert("Could not get " + curURI);
  -            return;
  -        }
  -
  -        var insertionPoint = document.getElementById(insertAt);
  -
  -        if (insertionPoint == null) {
  -            alert("Could not find : " + insertAt);
  -            return;
  -        }
  -
  -        var svgContent = status.content;
  -
  -        var svgContentRoot = parseXML(svgContent, document);
  -
  -        if (svgContentRoot == null) {
  -            alert("Could not parse content from : " + insertAt);
  -            return;
  -        }
  -
  -        insertionPoint.appendChild(svgContentRoot);
  -    }
  -    ]]></script>
  -
  -    <g id="insertionPoint">
  -    </g>
  -
  -    <g transform="translate(225, 100)">
  -        <style type="text/css"><![CDATA[
  -
  -        .testButton {
  -            fill: white;
  -            fill-opacity: .5;
  -            stroke: black;
  -            shape-rendering: crispEdges;
  -        }
  -
  -        .buttonLabel {
  -            fill: black;
  -            text-anchor: middle;
  -        }
  -
  -        .title {
  -            text-anchor: middle;
  -        }
  -
  -        ]]>
  -        </style>
  -
  -        <defs>
  -            <rect class="testButton" id="testButton" x="-60" y="-20" width="120" height="30" />
  -        </defs>
  -
  -        <text transform="translate(0,0)" class="title" y="-40">Click on one of the following buttons 
  -            <tspan x="0" dy="1.2em">to test unsecure content insertion</tspan>
  -            <tspan x="0" dy="1.2em">(the result depends on the security settings)</tspan></text>
  -
  -        <g transform="translate(0,120)">
  -            <use xlink:href="#testButton" onclick="insertContentAt('http://nagoya.apache.org/batik_1.1/batik-1.1/samples/asf-logo.svg', 'insertionPoint')" />
  -            <text class="buttonLabel">Network Access</text>
  -        </g>
  -        
  -        <g transform="translate(0,160)">
  -            <use xlink:href="#testButton" onclick="insertContentAt('../../../../../samples/batikFX.svg', 'insertionPoint')" />
  -            <text class="buttonLabel">File System Access</text>
  -        </g>
  -        
  -    </g>
  -</svg>
  +<?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 (C) The Apache Software Foundation. All rights reserved.        -->
  +<!--                                                                           -->
  +<!-- This software is published under the terms of the Apache Software License -->
  +<!-- version 1.1, a copy of which has been included with this distribution in  -->
  +<!-- the LICENSE file.                                                         -->
  +<!-- ========================================================================= -->
  +
  +<!-- ========================================================================= -->
  +<!-- Checks that access to critical functions is not allowed.                  -->
  +<!--                                                                           -->
  +<!-- @author vincent.hardy@sun.com                                             -->
  +<!-- @version $Id$   -->
  +<!-- ========================================================================= -->
  +
  +<svg xmlns="http://www.w3.org/2000/svg" 
  +     xmlns:xlink="http://www.w3.org/1999/xlink" 
  +     xmlns:test="http://xml.apache.org/batik/test"
  +     width="450" height="500" viewBox="0 0 450 500">
  +
  +    <test:testResult id="testResult" result="passed"/>
  +    <script type="text/ecmascript"><![CDATA[
  +
  +    var insertAt = "";
  +    var curURI = "";
  +
  +    function insertContentAt(uri, insertionPoint) {
  +        insertAt = insertionPoint;
  +        curURI = uri;
  +        getURL(uri, onInsert);
  +    }
  +
  +    function onInsert(status) {
  +        if (status.success == false) {
  +            alert("Could not get " + curURI);
  +            return;
  +        }
  +
  +        var insertionPoint = document.getElementById(insertAt);
  +
  +        if (insertionPoint == null) {
  +            alert("Could not find : " + insertAt);
  +            return;
  +        }
  +
  +        var svgContent = status.content;
  +
  +        var svgContentRoot = parseXML(svgContent, document);
  +
  +        if (svgContentRoot == null) {
  +            alert("Could not parse content from : " + insertAt);
  +            return;
  +        }
  +
  +        insertionPoint.appendChild(svgContentRoot);
  +    }
  +
  +    function insertLocalContentAt(uri, insertAt) {
  +        var g = document.getElementById(insertAt);
  +        if (g == null) {
  +            alert("Could not find : " + insertAt);
  +        }
  +
  +        var svgNS = "http://www.w3.org/2000/svg";
  +        var xlinkNS = "http://www.w3.org/1999/xlink" ;
  +        var use = document.createElementNS(svgNS, "use");
  +        use.setAttributeNS(null, "x", "0");
  +        use.setAttributeNS(null, "y", "0");
  +        use.setAttributeNS(null, "width", "100%");
  +        use.setAttributeNS(null, "height", "100%");
  +        use.setAttributeNS(xlinkNS, "href", uri);
  +        g.appendChild(use);
  +    }
  +    ]]></script>
  +
  +    <g id="insertionPoint">
  +    </g>
  +
  +    <g transform="translate(225, 100)">
  +        <style type="text/css"><![CDATA[
  +
  +        .testButton {
  +            fill: white;
  +            fill-opacity: .5;
  +            stroke: black;
  +            shape-rendering: crispEdges;
  +        }
  +
  +        .buttonLabel {
  +            fill: black;
  +            text-anchor: middle;
  +        }
  +
  +        .title {
  +            text-anchor: middle;
  +        }
  +
  +        ]]>
  +        </style>
  +
  +        <defs>
  +            <rect class="testButton" id="testButton" x="-60" y="-20" width="120" height="30" />
  +
  +            <rect id="testRect" x="0" y="0" width="100%" height="100%" fill="gold" />
  +        </defs>
  +
  +        <text transform="translate(0,0)" class="title" y="-40">Click on one of the following buttons 
  +            <tspan x="0" dy="1.2em">to test unsecure content insertion</tspan>
  +            <tspan x="0" dy="1.2em">(the result depends on the security settings)</tspan></text>
  +
  +        <g transform="translate(0,120)">
  +            <use xlink:href="#testButton" onclick="insertContentAt('http://nagoya.apache.org/batik_1.1/batik-1.1/samples/asf-logo.svg', 'insertionPoint')" />
  +            <text class="buttonLabel">Network Access</text>
  +        </g>
  +        
  +        <g transform="translate(0,160)">
  +            <use xlink:href="#testButton" onclick="insertContentAt('../../../../../samples/batikFX.svg', 'insertionPoint')" />
  +            <text class="buttonLabel">File System Access</text>
  +        </g>
  +        
  +        <g transform="translate(0,200)">
  +            <use xlink:href="#testButton" onclick="insertLocalContentAt('#testRect', 'insertionPoint')" />
  +            <text class="buttonLabel">Internal Use</text>
  +        </g>
  +        
  +    </g>
  +</svg>
  
  
  
  1.1                  xml-batik/test-resources/org/apache/batik/bridge/scriptPermissions2.svg
  
  Index: scriptPermissions2.svg
  ===================================================================
  <?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 (C) The Apache Software Foundation. All rights reserved.        -->
  <!--                                                                           -->
  <!-- This software is published under the terms of the Apache Software License -->
  <!-- version 1.1, a copy of which has been included with this distribution in  -->
  <!-- the LICENSE file.                                                         -->
  <!-- ========================================================================= -->
  
  <!-- ========================================================================= -->
  <!-- Checks access to external resources is allowed on internal references for -->
  <!-- all elements to which it applies. This test should be run manually with   -->
  <!-- the script security off and the resource origin set to no external        -->
  <!-- resources allowed. If successful, all content should be inserted by       -->
  <!-- clicking on the various buttons and no SecurityException should be        -->
  <!-- thrown.                                                                   -->
  <!--                                                                           -->
  <!-- @author vincent.hardy@sun.com                                             -->
  <!-- @version $Id: scriptPermissions2.svg,v 1.1 2002/06/17 13:02:36 vhardy Exp $  -->
  <!-- ========================================================================= -->
  <!-- altGlyph and glyphRef are missing because their testing could not be automated -->
  <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">
  
      <script><![CDATA[
  
  function testTarget(securityTarget) {
     var insertionPoint = document.getElementById("insertionPoint");
     var t = document.getElementById(securityTarget);
     insertionPoint.appendChild(t);
  }
  
  ]]></script>
  
  
  
      <defs>
          <rect id="testRect" x="0" y="0" width="100%" height="100%" fill="gold" />
          <rect id="testRect2" x="0" y="0" width="100%" height="100%" fill="crimson" />
          <text id="testText">This is my text</text>
          <filter id="externalFeImage">
              <feImage xlink:href="#testRect" />
          </filter>
  
          <rect id="feImage" x="0" y="0" width="100%" height="100%" filter="url(#externalFeImage)" />
  
          <use id="use" xlink:href="#testRect2" x="0" y="0" width="100%" height="100%" />
  
          <g id="tref">
              <text x="20" y="20"><tref xlink:href="#testText" /></text>
          </g>
  
              <path id="Path1" style="fill:none; stroke:blue;" transform="scale(0.30,0.50)"
                    d="M 100 100 C100 0 400 00 400 100"/>
  
          <g id="textPath">
  	      <text font-size="20" style="text-anchor:start">
                  <textPath xlink:href="#Path1" startOffset="0%">Text <tspan fill="red" dy="-10">on</tspan><tspan dy="10"> a Path</tspan></textPath>
              </text>
          </g>
  
          <g id="altGlyph" font-family="LocalSVGComic">
              <text x="30" y="80">a
  <altGlyph xlink:href="#purpleB">b</altGlyph>c
  <altGlyph xlink:href="#purpleD">d</altGlyph>e
  <altGlyph xlink:href="#purpleF">f</altGlyph>g</text>            
          </g>
  
          <g id="glyphRef" font-family="LocalSVGComic" font-size="40">
              <text x="30" y="130">ab
  <altGlyph xlink:href="#purpleC1">c</altGlyph>
  <altGlyph xlink:href="#purpleD1">d</altGlyph>
  <altGlyph xlink:href="#purpleE1">e</altGlyph>fg</text>
          </g>
  
  	<linearGradient id="genericGrad">
  		<stop style="stop-color:crimson" offset="0" />
  		<stop style="stop-color:orange" offset=".5" />
  		<stop style="stop-color:gold" offset="1" />
  	</linearGradient>
  
  	<radialGradient id="genericRadialGrad">
  		<stop style="stop-color:crimson" offset="0" />
  		<stop style="stop-color:orange" offset=".5" />
  		<stop style="stop-color:gold" offset="1" />
  	</radialGradient>
  
          <g id="linearGradientA">
              <rect x="0" y="0" width="100%" height="100%" fill="url(#genericGrad)" />
          </g>
  
          <g id="linearGradientB">
              <linearGradient id="localLinearGradient" xlink:href="#genericGrad" />
              <circle cx="50%" cy="50%" r="50%" fill="url(#localLinearGradient)" />
          </g>
  
          <g id="radialGradientA">
              <rect x="0" y="0" width="100%" height="100%" fill="url(#genericRadialGrad)" />
          </g>
  
          <g id="radialGradientB">
              <radialGradient id="localRadialGradient" xlink:href="#genericRadialGrad" />
              <circle cx="50%" cy="50%" r="50%" fill="url(#localRadialGradient)" />
          </g>
  
          <pattern id="pattern1" x="0" y="0" width=".75" height="50%">
              <circle cx="10" cy="10" r="10" style="fill:red" />
              <rect x="10" y="10" width="15" height="15" style="fill:green"/>
          </pattern>
  
          <g id="patternA">
              <rect x="0" y="0" width="100%" height="100%" fill="url(#pattern1)" />
          </g>
  
          <g id="patternB">
              <pattern id="localPattern" xlink:href="#pattern1" />
              <circle cx="50%" cy="50%" r="50%" fill="url(#localPattern)" />
          </g>
  
        <filter id="Turb1" filterUnits="objectBoundingBox" 
                x="0%" y="0%" width="100%" height="100%">
          <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/>
        </filter>
  
        <filter id="Turb2" filterUnits="objectBoundingBox" 
                x="0%" y="0%" width="100%" height="100%">
          <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/>
        </filter>
  
          <g id="filterA">
              <rect x="0" y="0" width="100%" height="100%" filter="url(#Turb1)" />
          </g>
  
          <g id="filterB">
              <filter id="localFilter" xlink:href="#Turb2" />
              <rect x="0" y="0" width="100%" height="100%" filter="url(#localFilter)" />
          </g>
  
          <g id="font-face-uri">
              <text x="10" y="100" font-size="40" font-family="'Batik SVGFont'">Batik</text>
          </g>
      </defs>
  
  
      <g id="insertionPoint">
      </g>
  
      <g id="testButtonsOverlay" transform="translate(165, 120)" >
  
          <style type="text/css"><![CDATA[
          .testButton {
              fill: white;
              fill-opacity: .5;
              stroke: black;
              shape-rendering: crispEdges;
          }
  
          .buttonLabel {
              fill: black;
              text-anchor: middle;
          }
  
          .title {
              text-anchor: middle;
          }
      ]]>
          </style>
          <defs>
              <rect class="testButton" id="testButton" x="-60" y="-20" width="120" height="30" />
          </defs>
  
          <text transform="translate(60,0)" class="title" y="-40">Click on one of the following buttons 
              <tspan x="0" dy="1.2em">to test unsecure content insertion</tspan></text>
  
          <g transform="translate(0,50)">
              <use xlink:href="#testButton" onclick="testTarget('use')" />
              <text class="buttonLabel">&lt;use&gt;</text>
          </g>
  
          <g transform="translate(0,80)">
              <use xlink:href="#testButton" onclick="testTarget('feImage')" />
              <text class="buttonLabel">&lt;feImage&gt;</text>
          </g>
  
          <g transform="translate(0,110)">
              <use xlink:href="#testButton" onclick="testTarget('tref')" />
              <text class="buttonLabel">&lt;tref&gt;</text>
          </g>
  
          <g transform="translate(0,140)">
              <use xlink:href="#testButton" onclick="testTarget('textPath')" />
              <text class="buttonLabel">&lt;textPath&gt;</text>
          </g>
  
          <g transform="translate(0,200)">
              <use xlink:href="#testButton" onclick="testTarget('linearGradientA')" />
              <text class="buttonLabel">&lt;linearGradientA&gt;</text>
          </g>
  
          <g transform="translate(0,230)">
              <use xlink:href="#testButton" onclick="testTarget('linearGradientB')" />
              <text class="buttonLabel">&lt;linearGradientB&gt;</text>
          </g>
  
          <g transform="translate(0,260)">
              <use xlink:href="#testButton" onclick="testTarget('altGlyph')" />
              <text class="buttonLabel">&lt;altGlyph&gt;</text>
          </g>
  
          <g transform="translate(120, -240)">
          <g transform="translate(0,260)">
              <use xlink:href="#testButton" onclick="testTarget('radialGradientA')" />
              <text class="buttonLabel">&lt;radialGradientA&gt;</text>
          </g>
  
          <g transform="translate(0,290)">
              <use xlink:href="#testButton" onclick="testTarget('radialGradientB')" />
              <text class="buttonLabel">&lt;radialGradientB&gt;</text>
          </g>
  
          <g transform="translate(0,320)">
              <use xlink:href="#testButton" onclick="testTarget('patternA')" />
              <text class="buttonLabel">&lt;patternA&gt;</text>
          </g>
  
          <g transform="translate(0,350)">
              <use xlink:href="#testButton" onclick="testTarget('patternB')" />
              <text class="buttonLabel">&lt;patternB&gt;</text>
          </g>
  
          <g transform="translate(0,380)">
              <use xlink:href="#testButton" onclick="testTarget('filterA')" />
              <text class="buttonLabel">&lt;filterA&gt;</text>
          </g>
  
          <g transform="translate(0,410)">
              <use xlink:href="#testButton" onclick="testTarget('filterB')" />
              <text class="buttonLabel">&lt;filterB&gt;</text>
          </g>
  
          <g transform="translate(0,440)">
              <use xlink:href="#testButton" onclick="testTarget('font-face-uri')" />
              <text class="buttonLabel">&lt;font-face-uri&gt;</text>
          </g>
  
          <g transform="translate(0,470)">
              <use xlink:href="#testButton" onclick="testTarget('glyphRef')" />
              <text class="buttonLabel">&lt;glyphRef&gt;</text>
          </g>
  
          </g>
  
      </g>
              <font horiz-adv-x="959">
              <font-face
               font-family="LocalSVGComic"            
               units-per-em="2048"
               panose-1="3 15 7 2 3 3 2 2 2 4"
               ascent="2257"
               descent="597"/>
             <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z"/>
             
             <!-- "a" glyph -->
             <glyph unicode="a" glyph-name="a" horiz-adv-x="1048" d="M920 -66Q901 -66 851 -22Q806 19 784 51Q688 -1 615 -27T493 -54Q259 -54 152 78Q51 202 51 458Q51 700 217 872T615 1044Q702 1044 810 999Q946 943 946 864Q946 837 926 816Q916 778 911 691T904 468Q903
  344 921 272Q931 228 984 96Q991 78 1007 43L1013 26Q1013 -14 985 -40T920 -66zM712 629Q712 672 717 722T734 830Q697 849 671 858T628 867Q473 867 361 741T248 449Q248 285 306 203T480 121Q576 121 643 156Q679 175 744 232Q712 497 712 629z"/>
             <!-- "b" glyph -->
             <glyph unicode="b" glyph-name="b" horiz-adv-x="1215" d="M606 -42Q453 -42 328 18Q296 -30 250 -30Q212 -30 186 -4T159 63Q159 89 161 140T164 217Q164 323 159 534T153 852Q153 925 154 1128T155 1406Q155 1466 180 1514Q213 1575 271 1575Q346 1575 346 1488Q346
  1474 341 1447T336 1406L333 1187L331 932Q418 991 496 1020T644 1050Q859 1050 993 885Q1119 730 1119 504Q1119 276 972 117T606 -42zM644 861Q562 861 476 815Q434 792 332 716L330 543L331 387L332 223Q380 201 467 167Q529 148 606 148Q751 148 844 250T937
  504Q937 653 862 753Q781 861 644 861z"/>
             <!-- "c" glyph -->
             <glyph unicode="c" glyph-name="c" horiz-adv-x="1052" d="M591 -63Q386 -63 249 61Q105 191 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285
  526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 65 815 -3Q680 -63 591 -63z"/>
             <!-- "d" glyph -->
             <glyph unicode="d" glyph-name="d" horiz-adv-x="1203" d="M1060 883Q1048 736 1048 589Q1048 256 1079 86Q1081 72 1081 63Q1081 23 1053 -3T988 -29Q926 -29 897 61Q825 8 748 -19T586 -46Q379 -46 243 92Q103 233 103 454Q103 721 244 882T612 1043Q728 1043
  791 1007L885 938Q899 1359 918 1505Q931 1594 1009 1594Q1100 1594 1100 1497Q1100 1358 1060 883zM616 857Q448 857 364 758T280 458Q280 329 371 236T586 143Q670 143 728 174Q762 192 839 257Q854 270 868 288L865 461L866 577L868 695Q830 776 767 816T616
  857z"/>
             <!-- "e" glyph -->
             <glyph unicode="e" glyph-name="e" horiz-adv-x="1122" d="M606 -46Q380 -46 240 67Q87 192 87 417Q87 677 213 853Q350 1045 579 1045Q745 1045 850 989Q979 920 979 777Q979 677 866 595Q816 559 654 483L272 302Q328 219 411 177T606 135Q675 135 768 161Q886
  194 920 247T993 301Q1028 301 1055 275T1083 213Q1083 102 904 22Q751 -46 606 -46zM579 865Q457 865 376 771T255 486L562 632Q743 720 820 785Q734 865 579 865z"/>
             <!-- "f" glyph -->
             <glyph unicode="f" glyph-name="f" horiz-adv-x="1041" d="M811 1406Q569 1406 540 1070L537 1008Q707 1020 757 1020Q916 1020 916 920Q916 847 838 833Q804 827 759 828T528 815L520 587Q520 525 524 401T528 216Q528 26 506 -80Q489 -160 413 -160Q372 -160
  343 -134T314 -67Q314 -59 316 -47Q337 83 337 236L334 509V799Q209 789 176 789Q75 789 75 886Q75 985 250 990L346 993Q349 1049 361 1145Q387 1367 473 1472Q577 1599 798 1599Q941 1599 941 1502Q941 1406 811 1406z"/>
             <!-- "g" glyph -->
             <glyph unicode="g" glyph-name="g" horiz-adv-x="1087" d="M962 431L939 95Q933 -105 898 -232Q853 -394 754 -471Q634 -564 407 -564Q274 -564 184 -546Q58 -521 58 -442Q58 -353 145 -353Q181 -353 265 -370T451 -386Q643 -383 716 -200Q764 -78 767 175Q713
  75 639 25T468 -25Q287 -25 174 98T60 419Q60 689 215 854Q375 1024 651 1024Q744 1024 807 1000T903 928Q1010 925 1010 809Q1010 738 989 619Q966 481 962 431zM641 864Q451 864 347 733Q254 615 254 433Q254 288 309 215T474 142Q575 142 670 256Q756 361 768
  464Q789 572 813 803Q773 834 730 849T641 864z"/>
             <!-- purple "a" glyph -->
             <glyph id="purpleA" horiz-adv-x="1048">
                 <path style="fill:purple" d="M920 -66Q901 -66 851 -22Q806 19 784 51Q688 -1 615 -27T493 -54Q259 -54 152 78Q51 202 51 458Q51 700 217 872T615 1044Q702 1044 810 999Q946 943 946 864Q946 837 926 816Q916 778 911 691T904 468Q903
  344 921 272Q931 228 984 96Q991 78 1007 43L1013 26Q1013 -14 985 -40T920 -66zM712 629Q712 672 717 722T734 830Q697 849 671 858T628 867Q473 867 361 741T248 449Q248 285 306 203T480 121Q576 121 643 156Q679 175 744 232Q712 497 712 629z"/>
             </glyph>
             <!-- purple "b" glyph -->
             <glyph id="purpleB" horiz-adv-x="1215">
                 <path style="fill:purple" d="M606 -42Q453 -42 328 18Q296 -30 250 -30Q212 -30 186 -4T159 63Q159 89 161 140T164 217Q164 323 159 534T153 852Q153 925 154 1128T155 1406Q155 1466 180 1514Q213 1575 271 1575Q346 1575 346 1488Q346
  1474 341 1447T336 1406L333 1187L331 932Q418 991 496 1020T644 1050Q859 1050 993 885Q1119 730 1119 504Q1119 276 972 117T606 -42zM644 861Q562 861 476 815Q434 792 332 716L330 543L331 387L332 223Q380 201 467 167Q529 148 606 148Q751 148 844 250T937
  504Q937 653 862 753Q781 861 644 861z"/>
             </glyph>
             <!-- purple "c" glyph -->
             <glyph id="purpleC" horiz-adv-x="1052">
                 <path style="fill:purple" d="M591 -63Q386 -63 249 61Q105 191 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285
  526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 65 815 -3Q680 -63 591 -63z"/>
             </glyph>
             <!-- purple "d" glyph -->
             <glyph id="purpleD" horiz-adv-x="1203">
                 <path style="fill:purple" d="M1060 883Q1048 736 1048 589Q1048 256 1079 86Q1081 72 1081 63Q1081 23 1053 -3T988 -29Q926 -29 897 61Q825 8 748 -19T586 -46Q379 -46 243 92Q103 233 103 454Q103 721 244 882T612 1043Q728 1043
  791 1007L885 938Q899 1359 918 1505Q931 1594 1009 1594Q1100 1594 1100 1497Q1100 1358 1060 883zM616 857Q448 857 364 758T280 458Q280 329 371 236T586 143Q670 143 728 174Q762 192 839 257Q854 270 868 288L865 461L866 577L868 695Q830 776 767 816T616
  857z"/>
             </glyph>
             <!-- purple "e" glyph -->
             <glyph id="purpleE" horiz-adv-x="1122">
                 <path style="fill:purple" d="M606 -46Q380 -46 240 67Q87 192 87 417Q87 677 213 853Q350 1045 579 1045Q745 1045 850 989Q979 920 979 777Q979 677 866 595Q816 559 654 483L272 302Q328 219 411 177T606 135Q675 135 768 161Q886
  194 920 247T993 301Q1028 301 1055 275T1083 213Q1083 102 904 22Q751 -46 606 -46zM579 865Q457 865 376 771T255 486L562 632Q743 720 820 785Q734 865 579 865z"/>
             </glyph>
             <!-- purple "f" glyph -->
             <glyph id="purpleF" horiz-adv-x="1041">
                 <path style="fill:purple" d="M811 1406Q569 1406 540 1070L537 1008Q707 1020 757 1020Q916 1020 916 920Q916 847 838 833Q804 827 759 828T528 815L520 587Q520 525 524 401T528 216Q528 26 506 -80Q489 -160 413 -160Q372 -160
  343 -134T314 -67Q314 -59 316 -47Q337 83 337 236L334 509V799Q209 789 176 789Q75 789 75 886Q75 985 250 990L346 993Q349 1049 361 1145Q387 1367 473 1472Q577 1599 798 1599Q941 1599 941 1502Q941 1406 811 1406z"/>
             </glyph>
             <!-- purple "g" glyph -->
             <glyph id="purpleG" horiz-adv-x="1087">
                 <path style="fill:purple" d="M962 431L939 95Q933 -105 898 -232Q853 -394 754 -471Q634 -564 407 -564Q274 -564 184 -546Q58 -521 58 -442Q58 -353 145 -353Q181 -353 265 -370T451 -386Q643 -383 716 -200Q764 -78 767 175Q713
  75 639 25T468 -25Q287 -25 174 98T60 419Q60 689 215 854Q375 1024 651 1024Q744 1024 807 1000T903 928Q1010 925 1010 809Q1010 738 989 619Q966 481 962 431zM641 864Q451 864 347 733Q254 615 254 433Q254 288 309 215T474 142Q575 142 670 256Q756 361 768
  464Q789 572 813 803Q773 834 730 849T641 864z"/>
             </glyph>
             </font>
             
             <altGlyphDef id="BCD">
                 <glyphRef xlink:href="batikFont.svg#B"/>
                 <glyphRef xlink:href="#purpleC"/>
                 <glyphRef xlink:href="#purpleD"/>
             </altGlyphDef>
             <altGlyphDef id="purpleC1">
                 <glyphRef xlink:href="#purpleC"/>
             </altGlyphDef>
             <altGlyphDef id="purpleD1">
                 <glyphRef xlink:href="#purpleD"/>
             </altGlyphDef>
             <altGlyphDef id="purpleE1">
                 <glyphRef xlink:href="#purpleE"/>
             </altGlyphDef>
             <altGlyphDef id="items">
                  <altGlyphItem>
                      <glyphRef xlink:href="#badRef"/>
                      <glyphRef xlink:href="#purpleC"/>
                  </altGlyphItem>
                  <altGlyphItem>
                      <glyphRef xlink:href="#purpleD"/>
                  </altGlyphItem>
              </altGlyphDef>
  
              <font horiz-adv-x="150" id="Batik">
                  <font-face
                      font-family="Batik SVGFont"
                      units-per-em="240"
                      ascent="190"
                      descent="50"
                      alphabetic="0"/>
  
                  <missing-glyph horiz-adv-x="150" d="M20 0 V240 H100 V0 z"/>
  
  
                  <glyph unicode=" " glyph-name=" " horiz-adv-x="100"/>
  
                  <glyph id="B" unicode="B" glyph-name="B" horiz-adv-x="130"> 
                      <g transform="scale(1,-1)translate(0,-170)">
                          <path d="M21.244,141.963V40.831c0-6.188-0.57-10.773-1.707-13.754c-1.137-2.977-3.066-5.461-5.793-7.449c-1.137-0.766-2.367-1.395-3.695-1.891s-3.012-0.938-5.055-1.32c-2.125-0.371-3.488-0.781-4.094-1.23s-0.906-1.121-0.906-2.02
                                   c0-1.195,0.32-2.035,0.969-2.52c0.645-0.484,1.953-0.73,3.93-0.73c0.758,0,3.816,0.211,9.176,0.625c5.355,0.418,10.387,0.625,15.098,0.625c2.961,0,7.883-0.207,14.758-0.625c6.875-0.414,12.324-0.625,16.352-0.625c16.711,0,29.762,3.461,39.145,10.379
                                   s14.074,16.574,14.074,28.965c0,7.148-1.793,13.418-5.375,18.816c-3.586,5.398-9,9.996-16.242,13.797v2.18c11.574,2.051,20.445,6.547,26.613,13.492s9.254,15.879,9.254,26.805c0,15.406-5.184,27.645-15.551,36.715s-24.473,13.602-42.316,13.602
                                   c-6.078,0-13.367-0.293-21.871-0.875c-8.508-0.586-13.898-0.875-16.172-0.875c-6.762,0-13.863,0.348-21.301,1.043c-1.824,0.137-2.965,0.207-3.418,0.207c-0.609,0-1.199-0.344-1.77-1.027s-0.852-1.406-0.852-2.172c0-1.598,1.355-2.93,4.074-3.996l0.113-0.055
                                   c1.809-0.836,3.223-1.574,4.242-2.223c1.02-0.645,1.906-1.387,2.66-2.223c2.039-2.047,3.492-4.516,4.359-7.402s1.301-7.254,1.301-13.105z M39.244,73.209c0,3.648,0.453,5.93,1.367,6.84c0.914,0.914,2.816,1.367,5.711,1.367h16.555
                                   c12.023,0,20.758-2.031,26.203-6.098c5.441-4.066,8.164-10.508,8.164-19.324c0-10.945-4.188-20.027-12.559-27.246c-8.375-7.219-18.914-10.832-31.625-10.832c-5.711,0-9.441,0.855-11.191,2.566s-2.625,5.148-2.625,10.316v42.41z M39.244,150.737
                                   c0,6.539,1.789,10.953,5.371,13.242c3.578,2.293,11.16,3.438,22.746,3.438c14.172,0,24.82-3.031,31.945-9.094s10.688-15.156,10.688-27.281c0-13.031-4.234-23.188-12.695-30.461s-20.316-10.914-35.563-10.914H47.463c-3.578,0-5.84,0.477-6.793,1.426
                                   s-1.426,3.285-1.426,7.004v52.641z"/>
                         <!-- Put the Squiggle in the B -->
                         <use xlink:href="#Batik_Squiggle" 
                              transform="translate(45,103)" />
                       </g>
  		    </glyph>
  
                  <glyph id="a" unicode="a" glyph-name="a" horiz-adv-x="105"> 
                      <path transform="scale(1,-1)translate(-125, -170)"
                        d="M194.825,161.952c-5.238,4.766-10.891,8.285-16.961,10.559c-6.07,2.27-12.863,3.406-20.375,3.406c-7.363,0-12.98-1.922-16.848-5.762c-3.871-3.844-5.805-9.414-5.805-16.719c0-9.359,4.266-16.758,12.805-22.195
                          c8.535-5.438,23.766-10.215,45.695-14.324v-15.789c0-7.09-2.16-12.523-6.477-16.297s-10.523-5.664-18.625-5.664c-6.891,0-11.758,0.992-14.598,2.977s-4.258,5.336-4.258,10.063c0,1.984,0.281,4.27,0.852,6.863s0.855,4.156,0.855,4.688
                          c0,1.07-0.516,1.945-1.547,2.633s-2.352,1.027-3.953,1.027c-3.055,0-5.652-0.816-7.793-2.449s-3.207-3.664-3.207-6.098c0-6.605,3.664-12.625,11-18.055c7.332-5.43,15.977-8.148,25.93-8.148c13.906,0,23.727,2.621,29.465,7.855
                          c5.734,5.238,8.605,14.535,8.605,27.891v42.844c0,6.516,0.621,10.715,1.867,12.594s3.609,2.816,7.086,2.816c0.602,0,1.434-0.035,2.492-0.113c1.055-0.078,1.773-0.117,2.152-0.117c0.527,0,1.02,0.246,1.473,0.73c0.453,0.488,0.68,1.07,0.68,1.742
                          c0,1.574-1.273,2.887-3.816,3.934s-5.785,1.574-9.73,1.574c-4.176,0-7.668-1.039-10.477-3.117s-4.973-5.191-6.488-9.348z M193.037,122.167c-16.43,3.43-27.789,7.273-34.074,11.535c-6.285,4.266-9.426,9.973-9.426,17.129c0,5.559,1.512,9.879,4.543,12.961
                          c3.027,3.086,7.27,4.625,12.723,4.625c7.492,0,13.738-1.941,18.738-5.832c4.996-3.887,7.496-8.813,7.496-14.777v-25.641z"/>
                  </glyph>
  
                  <glyph id="ti" unicode="ti" glyph-name="ti" horiz-adv-x="100"> 
                      <g style="fill:#FF0000;" transform="scale(1,-1)translate(-215,-170)">
                          <path d="M311.259,168.69c-0.684-0.531-2.199-0.871-4.551-1.023c-1.441,0-2.711-0.113-3.813-0.34s-2.105-0.57-3.012-1.027c-3.035-1.594-5.102-3.586-6.203-5.98c-1.102-2.391-1.648-6.625-1.648-12.703v-35.543c0-11.688,0.188-23.227,0.566-34.617
                                   c0.078-2.047,0.117-3.227,0.117-3.531c0-1.594-0.191-2.617-0.57-3.074c-0.383-0.453-1.066-0.684-2.059-0.684c-1.066,0-9.44,3.681-11.451,4.196s-6.655,1.804-11.209,1.804h-20.266V55.045c0-1.148-0.117-1.918-0.344-2.301s-0.684-0.578-1.363-0.578
                                   c-1.219,0-3.059,2.172-5.527,6.516s-4.727,7.617-6.777,9.824c-2.887,3.199-5.98,6.246-9.285,9.141s-4.953,4.609-4.953,5.141c0,0.609,0.375,1.203,1.129,1.773s1.434,0.855,2.035,0.855h8.586v59.84c0,11.266,2.051,19.273,6.16,24.027
                                   c4.105,4.754,10.875,7.133,20.305,7.133c5.724,0,11.038-1.066,15.948-3.17c4.26-0.381,8.633-0.58,13.126-0.58c4.328,0,8.957,0.211,13.895,0.625c4.934,0.414,7.668,0.625,8.199,0.625c1.141,0,2.09-0.266,2.848-0.793c0.758-0.531,1.141-1.176,1.141-1.934
                                   c0-1.137-0.344-1.969-1.023-2.5z M251.317,163.288c-2.773-2.922-4.156-7.227-4.156-12.914v-64.957c0,0,12.812,0.543,13.215,0.57c1.194,0.081,2.965,0.184,5.164,0.184c3.867,0,6.23,1.637,7.637,3.914c1.402,2.281,2.105,7.367,2.105,15.266v42.039
                                   c0,4.781-0.285,8.273-0.848,10.477c-0.566,2.203-1.563,4.211-2.992,6.031c-0.758,0.836-1.961,1.863-3.617,3.074c-0.292,0.169-0.532,0.312-0.731,0.434c-1.229,0.172-2.446,0.261-3.651,0.261c-5.313,0-9.355-1.457-12.125-4.379z"/>
                          <path d="M284.067,48.667c1.969,0,4.207-1.535,6.711-4.605c2.5-3.07,3.754-5.555,3.754-7.453c0-1.969-1.309-4.453-3.926-7.449c-2.617-2.992-4.648-4.492-6.086-4.492c-1.594,0-3.695,1.555-6.313,4.664s-3.926,5.766-3.926,7.961c0,2.352,1.137,4.836,3.41,7.453s4.398,3.922,6.375,3.922z"/>
                      </g>
                  </glyph>
  
  
                  <glyph id="k" unicode="k" glyph-name="k" horiz-adv-x="120"> 
                      <path transform="scale(1,-1)translate(-310, -170)"
                         d="M331.507,147.307V35.413c0-8.078-0.68-13.219-2.031-15.43s-3.906-3.316-7.664-3.316h-1.805c-1.387,0-2.465-0.242-3.23-0.734c-0.77-0.492-1.191-1.188-1.27-2.094c0-1.656,1.977-2.941,5.93-3.848l0.23-0.074
                          c1.824-0.301,3.516-0.68,5.074-1.133s3.098-0.984,4.617-1.594c2.66-1.059,5.586-2.535,8.781-4.43c3.191-1.895,5.246-2.844,6.16-2.844c0.984,0,1.746,0.383,2.277,1.141s0.801,1.859,0.801,3.301c0,0.305-0.039,1.082-0.113,2.332
                          c-0.078,1.254-0.113,2.375-0.113,3.359c-0.383,5.391-0.668,10.684-0.859,15.883s-0.285,10.531-0.285,15.996v80.641l33.148-30.207c1.434-1.367,2.566-2.715,3.398-4.047c0.832-1.328,1.25-2.527,1.25-3.594c0-1.289-1.324-2.316-3.969-3.078
                          c-0.305-0.074-0.566-0.148-0.793-0.227c-1.891-0.375-3.215-0.828-3.969-1.359c-0.758-0.527-1.133-1.242-1.133-2.148c0-0.68,0.453-1.262,1.359-1.754s2.004-0.738,3.289-0.738c0.301,0,2.305,0.211,6.008,0.625c3.703,0.418,7.297,0.625,10.773,0.625
                          c2.871,0,6.141-0.207,9.809-0.625c3.664-0.414,5.875-0.625,6.633-0.625c1.438,0,2.496,0.227,3.176,0.68s1.02,1.133,1.02,2.039c0,1.734-1.285,2.828-3.855,3.281h-0.113c-1.133,0.152-2.27,0.379-3.402,0.684s-2.305,0.723-3.516,1.254
                          c-7.332,2.891-13.758,7.07-19.273,12.543c-0.605,0.684-1.059,1.141-1.359,1.367l-19.73,17.781c10.66,14.914,19.223,26.215,25.688,33.902s11.59,12.672,15.371,14.953c3.023,1.75,6.879,2.969,11.566,3.652c0.375,0.078,0.641,0.113,0.793,0.113
                          c2.191,0.152,3.609,0.438,4.254,0.852c0.641,0.414,1,1.113,1.078,2.094c0,1.133-0.512,1.922-1.535,2.375s-3.012,0.68-5.965,0.68h-19.277c-5,0-15.23-10.113-30.684-30.34c-5.609-7.375-10.117-13.227-13.523-17.563l-6.516,6.156v15.617
                          c0,6.852,0.531,11.344,1.602,13.477c1.066,2.133,3.086,3.883,6.059,5.25c1.219,0.535,3.121,0.992,5.715,1.371c0.078,0.023,0.152,0.031,0.23,0.031c2.133,0.152,3.523,0.492,4.172,1.023s0.973,1.363,0.973,2.5c0,0.836-0.344,1.496-1.027,1.988
                          s-1.594,0.738-2.734,0.738c-0.305,0-2.758-0.211-7.355-0.625c-4.602-0.414-8.992-0.625-13.172-0.625c-6.309,0-12.313,0.375-18.016,1.125c-0.914,0.082-1.445,0.125-1.594,0.125c-0.836,0-1.523-0.25-2.055-0.746s-0.797-1.09-0.797-1.777
                          c0-0.766,0.262-1.473,0.789-2.121c0.523-0.648,1.613-1.434,3.27-2.355c0.375-0.227,0.789-0.492,1.242-0.797c1.273-0.758,2.215-1.445,2.816-2.055c1.277-1.367,2.16-3.074,2.648-5.129c0.488-2.051,0.734-5.926,0.734-11.629z"/>
                   </glyph>
  
                   <hkern g1="B"  g2="a"  k="5"/>
                   <hkern g1="a"  g2="t"  k="14"/>
                   <hkern g1="a"  g2="ti" k="14"/>
                   <hkern g1="i"  g2="k"  k="6"/>
                   <hkern g1="ti" g2="k"  k="6"/>
              </font>
  
          <defs>
  
  
            <g id="Batik_Squiggle">  
  
              <path id="Batik_Squiggle_Blue" style="fill:#6666FF;" 
                    d="M7,22c2.783-3.428,5.975-5.999,9.896-8.025c-1.157-1.682-2.313-3.363-3.47-5.045c-3.529,8.583-9.506,15.878-12.988,24.507c-1.424,3.528,1.087,7.368,4.788,4.606c4.628-3.453,9.209-6.988,12.807-11.548
                       c-1.737-1.683-3.474-3.367-5.21-5.05c-1.203,2.039-2.795,3.63-4.451,5.306c1.724,1.675,3.448,3.35,5.171,5.025c1.737-2.343,4.278-3.896,6.66-5.5c-1.726-1.112-3.452-2.225-5.177-3.337c-0.412,1.82-1.716,3.448-2.165,5.333c-0.819,3.436,2.431,5.561,5.228,3.37
                       c1.089-0.853,2.121-1.741,3.154-2.66c0.27-0.24,2.352-2.781,1.087-1.242c-1.901,0.256-3.802,0.513-5.703,0.769c-0.442-1.809-0.591-2.103-0.447-0.882c0.061,0.692,0.135,1.383,0.222,2.073c0.547,4.68,6.211-1.189,6.884-2.75c0.811-1.877,1.806-4.181,0.519-6.087
                       c-1.083-1.603-3.412-1.174-4.709-0.111c-1.155,0.947-2.154,2.039-3.312,2.981c1.743,1.123,3.485,2.247,5.228,3.37c0.401-1.833,1.678-3.476,2.114-5.365c0.839-3.633-2.323-5.241-5.177-3.337c-4.064,2.711-7.516,5.554-10.458,9.476
                       c-3.299,4.397,0.973,9.229,5.171,5.025c2.33-2.333,4.55-4.69,6.248-7.532c2.625-4.394-1.298-9.954-5.21-5.05c-3.095,3.878-6.791,6.867-10.729,9.847c1.596,1.536,3.192,3.071,4.788,4.606c3.412-8.649,9.323-16.011,12.686-24.702
                       c0.948-2.451,0.194-7.002-3.47-5.045c-5.309,2.836-9.933,6.46-13.639,11.23c-1.319,1.697-3.073,4.564-1.681,6.745c1.318,2.063,4.239,0.358,5.343-1.001z"/>
  
              <path id="Batik_Squiggle_Red" style="fill:#FF0000;" 
                    d="M36,13c1.095-1.054,2.151-1.838,3.493-2.567c-0.949-2.375-1.897-4.749-2.846-7.124c-1.96,3.858-3.554,8.012-5.898,11.658c-1.202,1.87-1.95,4.149-1.307,6.371c0.461,1.592,2.045,2.92,3.719,1.958
                       c2.792-1.606,5.072-3.694,7.356-5.946c-1.631-1.296-3.263-2.592-4.895-3.888c0.423-2.181-0.838,1.04-1.041,1.472c-0.595,1.267-0.875,2.5-1.14,3.864c-0.396,2.038,1.298,6.281,4.05,4.513c3.503-2.25,7.211-4.155,10.708-6.416c-0.86-2.792-1.721-5.585-2.582-8.377
                       c-2.26,3.495-4.161,7.205-6.419,10.698c-1.166,1.803-3.031,9.546,1.622,8.659c2.694-0.513,5.223-2.283,7.228-4.094c-1.4-2.216-2.8-4.432-4.2-6.648c-1.777,2.892-3.42,4.527-4.006,8.079c-0.355,2.152,1.243,6.147,4.078,4.521c2.237-1.284,4.184-2.972,6.395-4.286
                       c2.267-1.346,3.457-4.071,3.249-6.675c-0.157-1.958-1.758-4.435-4.029-3.175c-2.268,1.258-4.202,2.985-6.443,4.271c1.359,1.507,2.719,3.014,4.078,4.521c-0.546,1.443-0.411,1.566,0.405,0.371c0.791-0.92,1.374-1.96,2.007-2.989
                       c1.776-2.889-0.048-10.398-4.2-6.648c-0.903,0.816-2.232,2.09-3.469,2.326c0.541,2.886,1.081,5.772,1.622,8.659c2.26-3.495,4.161-7.205,6.419-10.698c1.215-1.88,1.976-4.14,1.287-6.376c-0.469-1.523-2.212-3.072-3.869-2.001
                       c-3.493,2.259-7.202,4.153-10.688,6.422c1.35,1.504,2.7,3.008,4.05,4.513c-0.386,2.161,0.771-1.038,0.976-1.492c0.577-1.276,0.878-2.497,1.123-3.869c0.493-2.755-2.1-6.696-4.895-3.888c-1.704,1.712-3.375,3.525-5.479,4.751c0.804,2.776,1.608,5.553,2.413,8.329
                       c2.776-4.455,4.699-9.286,6.938-14.016c0.902-1.905,1.375-9.486-2.846-7.124c-1.896,1.062-3.539,2.305-5.063,3.851c-1.783,1.808-2.738,4.762-2.12,7.262c0.545,2.203,2.574,2.816,4.221,1.232z"/>
  
              <path id="Batik_Squiggle_Green" style="fill:#33CC33;" 
                    d="M24,44c0.783-0.504,1.606-0.938,2.469-1.301c-1.583-1.209-3.166-2.419-4.748-3.628c-2.467,3.958-3.438,8.551-5.454,12.714c-2.352,4.856,3.013,5.929,6.132,3.061c3.375-3.103,7.41-5.351,10.752-8.495
                       c-2.078-1.06-4.155-2.12-6.233-3.18c-1.059,2.217-1.887,4.529-3.542,6.382c-3.302,3.697,0.169,7.709,4.344,5.127c4.005-2.478,8.331-4.002,11.861-7.246c-2.243-0.696-4.485-1.393-6.728-2.089c-0.215,1.156-1.024,2.195-1.661,3.168
                       c-3.016,4.607,3.391,6.075,6.246,3.195c2.925-2.951,5.072-5.702,6.501-9.646c1.441-3.978-3.187-4.057-5.543-2.891c-1.383,0.685-2.487,1.158-4.03,1.306c1.048,1.237,2.097,2.475,3.145,3.712c0.125-0.477,1.471-1.594,1.964-2.097
                       c2.829-2.878,1.002-6.963-3.061-5.589c-2.886,0.976-5.777,1.933-8.535,3.236c0.28,2.457,0.561,4.913,0.841,7.369c0.352-0.233,0.71-0.457,1.068-0.681c0.451-0.278,0.911-0.541,1.379-0.791c-0.923,0.3-0.715,0.262,0.625-0.115c2.553-0.935,4.935-3.57,5.073-6.385
                       c0.154-3.138-3.764-2.988-5.619-1.686c-2.035,1.429-3.433,2.693-4.696,4.823c0.983-0.965,1.966-1.93,2.949-2.895c-0.115,0.083-0.23,0.167-0.345,0.25c-1.448,1.045-2.816,2.212-3.498,3.921c-0.501,1.257-0.279,3.353,1.588,3.168
                       c1.579-0.156,3.114-0.367,4.511-1.194c-0.039,0.023,3.256-2.522,1.495-1.309c-1.873-0.562-3.745-1.124-5.618-1.687c0.139-0.474,0.279-0.949,0.418-1.423c1.762-1.264,3.523-2.527,5.285-3.791c-2.419,0.446-4.606,1.661-6.651,2.991
                       c-1.733,1.126-3.506,2.876-3.606,5.088c-0.11,2.417,2.563,3.155,4.448,2.281c2.775-1.286,5.681-2.224,8.582-3.182c-0.685-2.2-1.37-4.401-2.055-6.601c-2.17,2.169-4.635,4.408-5.459,7.474c-0.627,2.334,0.756,3.929,3.145,3.712c3.196-0.29,5.958-1.573,8.806-2.973
                       c-1.848-0.963-3.695-1.927-5.543-2.891c-0.48,1.318-1.07,2.204-2.055,3.192c2.082,1.065,4.164,2.13,6.246,3.195c1.067-1.622,2.254-3.462,2.616-5.39c0.854-4.542-4.149-4.445-6.728-2.089c-2.762,2.523-6.394,3.631-9.534,5.592c1.448,1.709,2.896,3.418,4.344,5.127
                       c2.271-2.566,3.568-5.538,5.016-8.597c2.284-4.825-3.085-6.168-6.233-3.18c-3.328,3.158-7.349,5.426-10.644,8.623c2.044,1.02,4.088,2.041,6.132,3.061c1.928-4.203,2.889-8.988,5.245-12.96c2.417-4.074-1.607-5.273-4.748-3.628
                       c-3.403,1.783-6.204,3.945-8.23,7.255c-0.98,1.601-1.226,4.278,1.271,4.468c2.564,0.195,5.004-1.875,6.301-3.884z"/>
  
          </g> 
  
  
              <!-- ============================= -->
              <!-- Batik SVG Font Definition     -->
              <!-- ============================= -->
  
              <font horiz-adv-x="150" id="Batik">
                  <font-face
                      font-family="Batik SVGFont"
                      units-per-em="240"
                      ascent="190"
                      descent="50"
                      alphabetic="0"/>
  
                  <missing-glyph horiz-adv-x="150" d="M20 0 V240 H100 V0 z"/>
  
  
                  <glyph unicode=" " glyph-name=" " horiz-adv-x="100"/>
  
                  <glyph id="B" unicode="B" glyph-name="B" horiz-adv-x="130"> 
                      <g transform="scale(1,-1)translate(0,-170)">
                          <path d="M21.244,141.963V40.831c0-6.188-0.57-10.773-1.707-13.754c-1.137-2.977-3.066-5.461-5.793-7.449c-1.137-0.766-2.367-1.395-3.695-1.891s-3.012-0.938-5.055-1.32c-2.125-0.371-3.488-0.781-4.094-1.23s-0.906-1.121-0.906-2.02
                                   c0-1.195,0.32-2.035,0.969-2.52c0.645-0.484,1.953-0.73,3.93-0.73c0.758,0,3.816,0.211,9.176,0.625c5.355,0.418,10.387,0.625,15.098,0.625c2.961,0,7.883-0.207,14.758-0.625c6.875-0.414,12.324-0.625,16.352-0.625c16.711,0,29.762,3.461,39.145,10.379
                                   s14.074,16.574,14.074,28.965c0,7.148-1.793,13.418-5.375,18.816c-3.586,5.398-9,9.996-16.242,13.797v2.18c11.574,2.051,20.445,6.547,26.613,13.492s9.254,15.879,9.254,26.805c0,15.406-5.184,27.645-15.551,36.715s-24.473,13.602-42.316,13.602
                                   c-6.078,0-13.367-0.293-21.871-0.875c-8.508-0.586-13.898-0.875-16.172-0.875c-6.762,0-13.863,0.348-21.301,1.043c-1.824,0.137-2.965,0.207-3.418,0.207c-0.609,0-1.199-0.344-1.77-1.027s-0.852-1.406-0.852-2.172c0-1.598,1.355-2.93,4.074-3.996l0.113-0.055
                                   c1.809-0.836,3.223-1.574,4.242-2.223c1.02-0.645,1.906-1.387,2.66-2.223c2.039-2.047,3.492-4.516,4.359-7.402s1.301-7.254,1.301-13.105z M39.244,73.209c0,3.648,0.453,5.93,1.367,6.84c0.914,0.914,2.816,1.367,5.711,1.367h16.555
                                   c12.023,0,20.758-2.031,26.203-6.098c5.441-4.066,8.164-10.508,8.164-19.324c0-10.945-4.188-20.027-12.559-27.246c-8.375-7.219-18.914-10.832-31.625-10.832c-5.711,0-9.441,0.855-11.191,2.566s-2.625,5.148-2.625,10.316v42.41z M39.244,150.737
                                   c0,6.539,1.789,10.953,5.371,13.242c3.578,2.293,11.16,3.438,22.746,3.438c14.172,0,24.82-3.031,31.945-9.094s10.688-15.156,10.688-27.281c0-13.031-4.234-23.188-12.695-30.461s-20.316-10.914-35.563-10.914H47.463c-3.578,0-5.84,0.477-6.793,1.426
                                   s-1.426,3.285-1.426,7.004v52.641z"/>
                         <!-- Put the Squiggle in the B -->
                         <use xlink:href="#Batik_Squiggle" 
                              transform="translate(45,103)" />
                       </g>
  		    </glyph>
  
                  <glyph id="a" unicode="a" glyph-name="a" horiz-adv-x="105"> 
                      <path transform="scale(1,-1)translate(-125, -170)"
                        d="M194.825,161.952c-5.238,4.766-10.891,8.285-16.961,10.559c-6.07,2.27-12.863,3.406-20.375,3.406c-7.363,0-12.98-1.922-16.848-5.762c-3.871-3.844-5.805-9.414-5.805-16.719c0-9.359,4.266-16.758,12.805-22.195
                          c8.535-5.438,23.766-10.215,45.695-14.324v-15.789c0-7.09-2.16-12.523-6.477-16.297s-10.523-5.664-18.625-5.664c-6.891,0-11.758,0.992-14.598,2.977s-4.258,5.336-4.258,10.063c0,1.984,0.281,4.27,0.852,6.863s0.855,4.156,0.855,4.688
                          c0,1.07-0.516,1.945-1.547,2.633s-2.352,1.027-3.953,1.027c-3.055,0-5.652-0.816-7.793-2.449s-3.207-3.664-3.207-6.098c0-6.605,3.664-12.625,11-18.055c7.332-5.43,15.977-8.148,25.93-8.148c13.906,0,23.727,2.621,29.465,7.855
                          c5.734,5.238,8.605,14.535,8.605,27.891v42.844c0,6.516,0.621,10.715,1.867,12.594s3.609,2.816,7.086,2.816c0.602,0,1.434-0.035,2.492-0.113c1.055-0.078,1.773-0.117,2.152-0.117c0.527,0,1.02,0.246,1.473,0.73c0.453,0.488,0.68,1.07,0.68,1.742
                          c0,1.574-1.273,2.887-3.816,3.934s-5.785,1.574-9.73,1.574c-4.176,0-7.668-1.039-10.477-3.117s-4.973-5.191-6.488-9.348z M193.037,122.167c-16.43,3.43-27.789,7.273-34.074,11.535c-6.285,4.266-9.426,9.973-9.426,17.129c0,5.559,1.512,9.879,4.543,12.961
                          c3.027,3.086,7.27,4.625,12.723,4.625c7.492,0,13.738-1.941,18.738-5.832c4.996-3.887,7.496-8.813,7.496-14.777v-25.641z"/>
                  </glyph>
  
                  <glyph id="ti" unicode="ti" glyph-name="ti" horiz-adv-x="100"> 
                      <g style="fill:#FF0000;" transform="scale(1,-1)translate(-215,-170)">
                          <path d="M311.259,168.69c-0.684-0.531-2.199-0.871-4.551-1.023c-1.441,0-2.711-0.113-3.813-0.34s-2.105-0.57-3.012-1.027c-3.035-1.594-5.102-3.586-6.203-5.98c-1.102-2.391-1.648-6.625-1.648-12.703v-35.543c0-11.688,0.188-23.227,0.566-34.617
                                   c0.078-2.047,0.117-3.227,0.117-3.531c0-1.594-0.191-2.617-0.57-3.074c-0.383-0.453-1.066-0.684-2.059-0.684c-1.066,0-9.44,3.681-11.451,4.196s-6.655,1.804-11.209,1.804h-20.266V55.045c0-1.148-0.117-1.918-0.344-2.301s-0.684-0.578-1.363-0.578
                                   c-1.219,0-3.059,2.172-5.527,6.516s-4.727,7.617-6.777,9.824c-2.887,3.199-5.98,6.246-9.285,9.141s-4.953,4.609-4.953,5.141c0,0.609,0.375,1.203,1.129,1.773s1.434,0.855,2.035,0.855h8.586v59.84c0,11.266,2.051,19.273,6.16,24.027
                                   c4.105,4.754,10.875,7.133,20.305,7.133c5.724,0,11.038-1.066,15.948-3.17c4.26-0.381,8.633-0.58,13.126-0.58c4.328,0,8.957,0.211,13.895,0.625c4.934,0.414,7.668,0.625,8.199,0.625c1.141,0,2.09-0.266,2.848-0.793c0.758-0.531,1.141-1.176,1.141-1.934
                                   c0-1.137-0.344-1.969-1.023-2.5z M251.317,163.288c-2.773-2.922-4.156-7.227-4.156-12.914v-64.957c0,0,12.812,0.543,13.215,0.57c1.194,0.081,2.965,0.184,5.164,0.184c3.867,0,6.23,1.637,7.637,3.914c1.402,2.281,2.105,7.367,2.105,15.266v42.039
                                   c0,4.781-0.285,8.273-0.848,10.477c-0.566,2.203-1.563,4.211-2.992,6.031c-0.758,0.836-1.961,1.863-3.617,3.074c-0.292,0.169-0.532,0.312-0.731,0.434c-1.229,0.172-2.446,0.261-3.651,0.261c-5.313,0-9.355-1.457-12.125-4.379z"/>
                          <path d="M284.067,48.667c1.969,0,4.207-1.535,6.711-4.605c2.5-3.07,3.754-5.555,3.754-7.453c0-1.969-1.309-4.453-3.926-7.449c-2.617-2.992-4.648-4.492-6.086-4.492c-1.594,0-3.695,1.555-6.313,4.664s-3.926,5.766-3.926,7.961c0,2.352,1.137,4.836,3.41,7.453s4.398,3.922,6.375,3.922z"/>
                      </g>
                  </glyph>
  
  
                  <glyph id="k" unicode="k" glyph-name="k" horiz-adv-x="120"> 
                      <path transform="scale(1,-1)translate(-310, -170)"
                         d="M331.507,147.307V35.413c0-8.078-0.68-13.219-2.031-15.43s-3.906-3.316-7.664-3.316h-1.805c-1.387,0-2.465-0.242-3.23-0.734c-0.77-0.492-1.191-1.188-1.27-2.094c0-1.656,1.977-2.941,5.93-3.848l0.23-0.074
                          c1.824-0.301,3.516-0.68,5.074-1.133s3.098-0.984,4.617-1.594c2.66-1.059,5.586-2.535,8.781-4.43c3.191-1.895,5.246-2.844,6.16-2.844c0.984,0,1.746,0.383,2.277,1.141s0.801,1.859,0.801,3.301c0,0.305-0.039,1.082-0.113,2.332
                          c-0.078,1.254-0.113,2.375-0.113,3.359c-0.383,5.391-0.668,10.684-0.859,15.883s-0.285,10.531-0.285,15.996v80.641l33.148-30.207c1.434-1.367,2.566-2.715,3.398-4.047c0.832-1.328,1.25-2.527,1.25-3.594c0-1.289-1.324-2.316-3.969-3.078
                          c-0.305-0.074-0.566-0.148-0.793-0.227c-1.891-0.375-3.215-0.828-3.969-1.359c-0.758-0.527-1.133-1.242-1.133-2.148c0-0.68,0.453-1.262,1.359-1.754s2.004-0.738,3.289-0.738c0.301,0,2.305,0.211,6.008,0.625c3.703,0.418,7.297,0.625,10.773,0.625
                          c2.871,0,6.141-0.207,9.809-0.625c3.664-0.414,5.875-0.625,6.633-0.625c1.438,0,2.496,0.227,3.176,0.68s1.02,1.133,1.02,2.039c0,1.734-1.285,2.828-3.855,3.281h-0.113c-1.133,0.152-2.27,0.379-3.402,0.684s-2.305,0.723-3.516,1.254
                          c-7.332,2.891-13.758,7.07-19.273,12.543c-0.605,0.684-1.059,1.141-1.359,1.367l-19.73,17.781c10.66,14.914,19.223,26.215,25.688,33.902s11.59,12.672,15.371,14.953c3.023,1.75,6.879,2.969,11.566,3.652c0.375,0.078,0.641,0.113,0.793,0.113
                          c2.191,0.152,3.609,0.438,4.254,0.852c0.641,0.414,1,1.113,1.078,2.094c0,1.133-0.512,1.922-1.535,2.375s-3.012,0.68-5.965,0.68h-19.277c-5,0-15.23-10.113-30.684-30.34c-5.609-7.375-10.117-13.227-13.523-17.563l-6.516,6.156v15.617
                          c0,6.852,0.531,11.344,1.602,13.477c1.066,2.133,3.086,3.883,6.059,5.25c1.219,0.535,3.121,0.992,5.715,1.371c0.078,0.023,0.152,0.031,0.23,0.031c2.133,0.152,3.523,0.492,4.172,1.023s0.973,1.363,0.973,2.5c0,0.836-0.344,1.496-1.027,1.988
                          s-1.594,0.738-2.734,0.738c-0.305,0-2.758-0.211-7.355-0.625c-4.602-0.414-8.992-0.625-13.172-0.625c-6.309,0-12.313,0.375-18.016,1.125c-0.914,0.082-1.445,0.125-1.594,0.125c-0.836,0-1.523-0.25-2.055-0.746s-0.797-1.09-0.797-1.777
                          c0-0.766,0.262-1.473,0.789-2.121c0.523-0.648,1.613-1.434,3.27-2.355c0.375-0.227,0.789-0.492,1.242-0.797c1.273-0.758,2.215-1.445,2.816-2.055c1.277-1.367,2.16-3.074,2.648-5.129c0.488-2.051,0.734-5.926,0.734-11.629z"/>
                   </glyph>
  
                   <hkern g1="B"  g2="a"  k="5"/>
                   <hkern g1="a"  g2="t"  k="14"/>
                   <hkern g1="a"  g2="ti" k="14"/>
                   <hkern g1="i"  g2="k"  k="6"/>
                   <hkern g1="ti" g2="k"  k="6"/>
              </font>
  
  
              <altGlyphDef id="a1">
                  <glyphRef xlink:href="#a"/>
              </altGlyphDef>
  
              <altGlyphDef id="bcde">
                    <glyphRef xlink:href="#B"/>
                    <glyphRef xlink:href="fontGlyphsBoth.svg#c"/>
                    <glyphRef xlink:href="fontGlyphsBoth.svg#d"/>
                    <glyphRef xlink:href="fontGlyphsBoth.svg#e"/>
              </altGlyphDef>
  		
  
             <altGlyphDef id="bcItems">
                    <altGlyphItem>
                          <glyphRef xlink:href="#B"/>
                    </altGlyphItem>
                    <altGlyphItem>
                        <glyphRef xlink:href="badRef#c"/>
                        <glyphRef xlink:href="fontGlyphsBoth.svg#c"/>
                    </altGlyphItem>
              </altGlyphDef>
  
          </defs>
  
      <font-face font-family="Batik SVGFont">
          <font-face-src>
              <font-face-uri xlink:href="#Batik"/>
          </font-face-src>
      </font-face>
  
  </svg>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org


Mime
View raw message