images/smilies/face-glasses.svg
author Dan
Fri, 05 Oct 2007 01:57:00 -0400
changeset 162 e1a22031b5bd
parent 0 902822492a68
permissions -rw-r--r--
Major revamps to the template parser. Fixed a few security holes that could allow PHP to be injected in untimely places in TPL code. Improved Ux for XSS attempt in tplWikiFormat. Documented many functions. Backported much cleaner parser from 2.0 branch. Beautified a lot of code in the depths of the template class. Pretty much a small-scale Extreme Makeover.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://web.resource.org/cc/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   sodipodi:docname="face-glasses.svg"
   sodipodi:docbase="/home/jimmac/gfx/ximian/tango-icon-theme/scalable/emotes"
   inkscape:version="0.43+devel"
   sodipodi:version="0.32"
   id="svg4376"
   height="48px"
   width="48px">
  <defs
     id="defs3">
    <linearGradient
       id="linearGradient4467">
      <stop
         style="stop-color:#ffffff;stop-opacity:1;"
         offset="0"
         id="stop4469" />
      <stop
         style="stop-color:#ffffff;stop-opacity:0.24761905;"
         offset="1.0000000"
         id="stop4471" />
    </linearGradient>
    <radialGradient
       inkscape:collect="always"
       xlink:href="#linearGradient4467"
       id="radialGradient5122"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1.913572,-5.717108e-24,-4.217183e-24,1.662023,4.360788,-11.71828)"
       cx="15.414371"
       cy="13.078408"
       fx="15.414371"
       fy="13.078408"
       r="6.6562500" />
    <linearGradient
       id="linearGradient4454">
      <stop
         style="stop-color:#729fcf;stop-opacity:0.20784314;"
         offset="0.0000000"
         id="stop4456" />
      <stop
         style="stop-color:#729fcf;stop-opacity:0.67619050;"
         offset="1.0000000"
         id="stop4458" />
    </linearGradient>
    <radialGradient
       inkscape:collect="always"
       xlink:href="#linearGradient4454"
       id="radialGradient4460"
       cx="18.240929"
       cy="21.817987"
       fx="18.240929"
       fy="21.817987"
       r="8.3085051"
       gradientUnits="userSpaceOnUse" />
    <linearGradient
       id="linearGradient3290">
      <stop
         id="stop3292"
         offset="0.0000000"
         style="stop-color:#fffcde;stop-opacity:1.0000000;" />
      <stop
         style="stop-color:#f6e76a;stop-opacity:1.0000000;"
         offset="0.64485979"
         id="stop3294" />
      <stop
         id="stop3296"
         offset="1.0000000"
         style="stop-color:#ffb738;stop-opacity:1.0000000;" />
    </linearGradient>
    <radialGradient
       r="8.9020796"
       fy="15.755712"
       fx="29.158466"
       cy="15.720984"
       cx="29.288071"
       gradientUnits="userSpaceOnUse"
       id="radialGradient2714"
       xlink:href="#linearGradient3290"
       inkscape:collect="always" />
    <linearGradient
       id="linearGradient2509">
      <stop
         style="stop-color:#fffbd5;stop-opacity:1.0000000;"
         offset="0.0000000"
         id="stop2511" />
      <stop
         style="stop-color:#edd400;stop-opacity:1.0000000;"
         offset="1.0000000"
         id="stop2513" />
    </linearGradient>
    <radialGradient
       gradientTransform="matrix(0.617019,0,0,0.617019,9.054796,7.969543)"
       id="aigrd2"
       cx="25.0527"
       cy="39.5928"
       r="15.7572"
       fx="25.0527"
       fy="39.5928"
       gradientUnits="userSpaceOnUse">
      <stop
         offset="0.0000000"
         style="stop-color:#777777;stop-opacity:1.0000000;"
         id="stop8602" />
      <stop
         offset="1"
         style="stop-color:#000000"
         id="stop8604" />
    </radialGradient>
    <linearGradient
       id="linearGradient4565"
       inkscape:collect="always">
      <stop
         id="stop4567"
         offset="0"
         style="stop-color:#000000;stop-opacity:1;" />
      <stop
         id="stop4569"
         offset="1"
         style="stop-color:#000000;stop-opacity:0;" />
    </linearGradient>
    <linearGradient
       id="linearGradient3824">
      <stop
         id="stop3826"
         offset="0"
         style="stop-color:#ffffff;stop-opacity:1;" />
      <stop
         id="stop3828"
         offset="1.0000000"
         style="stop-color:#c9c9c9;stop-opacity:1.0000000;" />
    </linearGradient>
    <linearGradient
       id="linearGradient3800">
      <stop
         id="stop3802"
         offset="0.0000000"
         style="stop-color:#ffeed6;stop-opacity:1.0000000;" />
      <stop
         style="stop-color:#e49c2f;stop-opacity:1.0000000;"
         offset="0.50000000"
         id="stop8664" />
      <stop
         id="stop3804"
         offset="1.0000000"
         style="stop-color:#ffc66c;stop-opacity:1.0000000;" />
    </linearGradient>
    <radialGradient
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,0.000000,25.71429)"
       r="19.714285"
       fy="38.571430"
       fx="24.714285"
       cy="38.571430"
       cx="24.714285"
       id="radialGradient4571"
       xlink:href="#linearGradient4565"
       inkscape:collect="always" />
    <radialGradient
       inkscape:collect="always"
       xlink:href="#linearGradient4454"
       id="radialGradient5150"
       gradientUnits="userSpaceOnUse"
       cx="18.240929"
       cy="21.817987"
       fx="18.240929"
       fy="21.817987"
       r="8.3085051" />
    <radialGradient
       inkscape:collect="always"
       xlink:href="#linearGradient4467"
       id="radialGradient5152"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(1.913572,-5.717108e-24,-4.217183e-24,1.662023,-20.16955,-11.71828)"
       cx="15.414371"
       cy="13.078408"
       fx="15.414371"
       fy="13.078408"
       r="6.6562500" />
  </defs>
  <sodipodi:namedview
     inkscape:window-y="282"
     inkscape:window-x="571"
     inkscape:window-height="739"
     inkscape:window-width="872"
     inkscape:showpageshadow="false"
     inkscape:document-units="px"
     inkscape:grid-bbox="true"
     showgrid="false"
     inkscape:current-layer="layer1"
     inkscape:cy="34.650275"
     inkscape:cx="46.379937"
     inkscape:zoom="5.6568542"
     inkscape:pageshadow="2"
     inkscape:pageopacity="0.0"
     borderopacity="0.19607843"
     bordercolor="#666666"
     pagecolor="#ffffff"
     id="base"
     fill="#edd400" />
  <metadata
     id="metadata4">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title>Face - Happy</dc:title>
        <dc:subject>
          <rdf:Bag>
            <rdf:li>emoticon</rdf:li>
            <rdf:li>emote</rdf:li>
            <rdf:li>smiley</rdf:li>
            <rdf:li>happy</rdf:li>
            <rdf:li>:)</rdf:li>
            <rdf:li>:-)</rdf:li>
          </rdf:Bag>
        </dc:subject>
        <cc:license
           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
        <dc:creator>
          <cc:Agent>
            <dc:title>Jakub Steiner</dc:title>
          </cc:Agent>
        </dc:creator>
        <dc:source>http://jimmac.musichall.cz</dc:source>
      </cc:Work>
      <cc:License
         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
        <cc:permits
           rdf:resource="http://web.resource.org/cc/Reproduction" />
        <cc:permits
           rdf:resource="http://web.resource.org/cc/Distribution" />
        <cc:requires
           rdf:resource="http://web.resource.org/cc/Notice" />
        <cc:requires
           rdf:resource="http://web.resource.org/cc/Attribution" />
        <cc:permits
           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
        <cc:requires
           rdf:resource="http://web.resource.org/cc/ShareAlike" />
      </cc:License>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:groupmode="layer"
     inkscape:label="Layer 1"
     id="layer1">
    <path
       d="M 44.428570 38.571430 A 19.714285 6.5714288 0 1 1  5.0000000,38.571430 A 19.714285 6.5714288 0 1 1  44.428570 38.571430 z"
       sodipodi:ry="6.5714288"
       sodipodi:rx="19.714285"
       sodipodi:cy="38.571430"
       sodipodi:cx="24.714285"
       id="path4563"
       style="opacity:0.53164557;color:#000000;fill:url(#radialGradient4571);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
       sodipodi:type="arc" />
    <path
       transform="matrix(2.083142,0.000000,0.000000,2.083142,-40.54715,-16.49224)"
       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
       sodipodi:ry="8.6620579"
       sodipodi:rx="8.6620579"
       sodipodi:cy="19.008621"
       sodipodi:cx="31.112698"
       id="path4320"
       style="overflow:visible;display:inline;visibility:visible;stroke-opacity:1.0000000;stroke-dashoffset:0.0000000;stroke-dasharray:none;stroke-miterlimit:4.0000000;marker-end:none;marker-mid:none;marker-start:none;marker:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:0.48004404;stroke:#9c8c0a;fill-rule:evenodd;fill-opacity:1.0000000;fill:url(#radialGradient2714);color:#000000;opacity:1.0000000"
       sodipodi:type="arc" />
    <g
       id="g5201">
      <path
         transform="translate(-2.875,-0.625)"
         d="M 38.375 19.1875 A 2.375 0.5625 0 1 1  33.625,19.1875 A 2.375 0.5625 0 1 1  38.375 19.1875 z"
         sodipodi:ry="0.5625"
         sodipodi:rx="2.375"
         sodipodi:cy="19.1875"
         sodipodi:cx="36"
         id="path5197"
         style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
         sodipodi:type="arc" />
      <path
         sodipodi:type="arc"
         style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
         id="path5199"
         sodipodi:cx="36"
         sodipodi:cy="19.1875"
         sodipodi:rx="2.375"
         sodipodi:ry="0.5625"
         d="M 38.375 19.1875 A 2.375 0.5625 0 1 1  33.625,19.1875 A 2.375 0.5625 0 1 1  38.375 19.1875 z"
         transform="translate(-20.25,-0.625)" />
    </g>
    <path
       transform="matrix(1.979782,0.000000,0.000000,1.979782,-37.33128,-14.52746)"
       sodipodi:type="arc"
       style="opacity:0.67721519;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
       id="path4322"
       sodipodi:cx="31.112698"
       sodipodi:cy="19.008621"
       sodipodi:rx="8.6620579"
       sodipodi:ry="8.6620579"
       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
    <path
       sodipodi:nodetypes="czczc"
       id="path2659"
       d="M 30.657426,26.772382 C 29.168451,29.351362 27.427451,31.210005 24.328216,31.210005 C 21.317153,31.210005 19.112903,29.067863 17.737227,26.685122 C 18.995657,28.193572 20.83858,29.926356 24.197327,29.926356 C 28.210521,29.926356 28.912231,28.491487 30.657426,26.772382 z "
       style="opacity:0.36000001;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
    <path
       style="fill:url(#aigrd2);fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
       d="M 30.657426,26.423345 C 29.168451,29.002324 27.427451,30.860968 24.328216,30.860968 C 21.317153,30.860968 19.112903,28.718826 17.737227,26.336085 C 18.995657,27.844534 20.83858,29.577318 24.197327,29.577318 C 28.210521,29.577318 28.912231,28.14245 30.657426,26.423345 z "
       id="path8606"
       sodipodi:nodetypes="czczc" />
    <g
       id="g1506"
       transform="translate(0.375,2.75)"
       style="stroke:#414141;stroke-opacity:1">
      <path
         d="M 21.036428 12.467883 A 9.5459423 9.5459423 0 1 1  1.9445438,12.467883 A 9.5459423 9.5459423 0 1 1  21.036428 12.467883 z"
         sodipodi:ry="9.5459423"
         sodipodi:rx="9.5459423"
         sodipodi:cy="12.467883"
         sodipodi:cx="11.490486"
         id="path1500"
         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#414141;stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
         sodipodi:type="arc" />
      <path
         transform="translate(24.57196,0)"
         sodipodi:type="arc"
         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#414141;stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
         id="path1502"
         sodipodi:cx="11.490486"
         sodipodi:cy="12.467883"
         sodipodi:rx="9.5459423"
         sodipodi:ry="9.5459423"
         d="M 21.036428 12.467883 A 9.5459423 9.5459423 0 1 1  1.9445438,12.467883 A 9.5459423 9.5459423 0 1 1  21.036428 12.467883 z" />
      <path
         sodipodi:open="true"
         sodipodi:end="1.3891474"
         sodipodi:start="0"
         d="M 21.036428,12.467883 A 9.5459423,9.5459423 0 0 1 13.214976,21.856767"
         sodipodi:ry="9.5459423"
         sodipodi:rx="9.5459423"
         sodipodi:cy="12.467883"
         sodipodi:cx="11.490486"
         id="path1504"
         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#414141;stroke-width:1.59850872;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
         sodipodi:type="arc"
         transform="matrix(-0.40175,-0.479532,0.479532,-0.40175,22.40521,22.90045)" />
    </g>
    <path
       transform="matrix(1.032158,0,0,1.032158,18.26107,-3.8646)"
       d="M 25.897786 18.478292 A 8.3085051 8.3085051 0 1 1  9.280776,18.478292 A 8.3085051 8.3085051 0 1 1  25.897786 18.478292 z"
       sodipodi:ry="8.3085051"
       sodipodi:rx="8.3085051"
       sodipodi:cy="18.478292"
       sodipodi:cx="17.589281"
       id="path4452"
       style="color:#000000;fill:url(#radialGradient4460);fill-opacity:1;fill-rule:evenodd;stroke:#3063a3;stroke-width:0.968844;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dashoffset:0;stroke-opacity:1;visibility:visible"
       sodipodi:type="arc" />
    <path
       id="path4462"
       d="M 36.254111,7.7185784 C 32.41098,7.7185784 29.298923,10.830635 29.298923,14.673768 C 29.298923,15.783682 29.609104,16.804907 30.071721,17.736342 C 30.99596,18.077005 31.977761,18.308785 33.019806,18.308785 C 37.573888,18.308785 41.210928,14.720961 41.491971,10.237329 C 40.214543,8.7277552 38.385018,7.7185784 36.254111,7.7185784 z "
       style="opacity:0.83422457;color:#000000;fill:url(#radialGradient5122);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
    <path
       sodipodi:type="arc"
       style="color:#000000;fill:url(#radialGradient5150);fill-opacity:1;fill-rule:evenodd;stroke:#3063a3;stroke-width:0.968844;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dashoffset:0;stroke-opacity:1;visibility:visible"
       id="path5146"
       sodipodi:cx="17.589281"
       sodipodi:cy="18.478292"
       sodipodi:rx="8.3085051"
       sodipodi:ry="8.3085051"
       d="M 25.897786 18.478292 A 8.3085051 8.3085051 0 1 1  9.280776,18.478292 A 8.3085051 8.3085051 0 1 1  25.897786 18.478292 z"
       transform="matrix(1.032158,0,0,1.032158,-6.269258,-3.8646)" />
    <path
       style="opacity:0.83422457;color:#000000;fill:url(#radialGradient5152);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
       d="M 11.723783,7.7185784 C 7.8806502,7.7185784 4.7685932,10.830635 4.7685932,14.673768 C 4.7685932,15.783682 5.0787742,16.804907 5.5413912,17.736342 C 6.4656302,18.077005 7.4474312,18.308785 8.4894762,18.308785 C 13.04356,18.308785 16.6806,14.720961 16.961643,10.237329 C 15.684215,8.7277552 13.85469,7.7185784 11.723783,7.7185784 z "
       id="path5148" />
  </g>
</svg>