<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>18617</bug_id>
          
          <creation_ts>2008-04-19 00:50:01 -0700</creation_ts>
          <short_desc>[CAIRO] SVG/Canvas fonts miss gradients/pattern support</short_desc>
          <delta_ts>2009-02-27 00:21:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Cairo</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>78239</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-19 00:50:01 -0700</bug_when>
    <thetext>The problem: The color of a Text in SVG is always black. It&apos;s related to WebCore/platform/graphics/cairo/FontCairo.cpp.

    cairo_set_source_rgba(cr, red, green, blue, alpha);

overwrites the color-set of SVG. But without the line, fonts in HTML get invisible. There should be something like:

    if (!svg) {}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78313</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-20 12:15:14 -0700</bug_when>
    <thetext>It&apos;s a little bit more problematic. If you comment the line out (...source_rgb()) the text is rendered fine (gradients and colors). But if the text has a stroke. The complete text is filled with the settings of the stroke. 
Cg gives a setTextDrawingMode(cTextStroke) or setTextDrawingMode(cTextFill) in SVGPaintServer... back to GraphicsContext. 
Perhaps cairo should do the same?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78878</commentid>
    <comment_count>2</comment_count>
      <attachid>20811</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-24 23:16:33 -0700</bug_when>
    <thetext>Created attachment 20811
dosplay of SVG-Text

In Cairo SVG-text works with this changes. But texts on normal webpages are broken. Perhaps HTML-texts should do the same like SVG-texts. To hard-code the font-color isn&apos;t a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78897</commentid>
    <comment_count>3</comment_count>
      <attachid>20815</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-25 03:30:16 -0700</bug_when>
    <thetext>Created attachment 20815
Display SVG-text

SVG-Text is now displayed right and the most HTML-pages work now too. 
Some texts still don&apos;t get there color (like text in buttons or textfields). They are white. Stroke of HTML-text doesn&apos;t work like they should.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78928</commentid>
    <comment_count>4</comment_count>
      <attachid>20821</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-25 12:14:47 -0700</bug_when>
    <thetext>Created attachment 20821
Display SVG-text

The patch of above is the wrong file. Now the right one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78936</commentid>
    <comment_count>5</comment_count>
      <attachid>20823</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-25 13:43:59 -0700</bug_when>
    <thetext>Created attachment 20823
Display texts in SVG and HTML

This patch fixes the problem with displaying texts in SVG and HTML. I had to use a workaround to get a full support.

I had to hard-code the fill-rule for SVG&apos;s to CAIRO_FILL_RULE_EVEN_ODD to differentiate between HTML- and SVG-texts. For HTML-text the font-color has to be hard-coded at present. If you don&apos;t do it (e.g. use of setPlatformFillColor(), see attachment above) not all HTML-objects are displayed right.
HTML makes only use of CAIRO_FILL_RULE_WINDING.

I couldn&apos;t find any optical differences in SVG between the two fill-rules.

This patch fixes bug-report: 18663, 15619 too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78962</commentid>
    <comment_count>6</comment_count>
      <attachid>20830</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-26 04:29:52 -0700</bug_when>
    <thetext>Created attachment 20830
Painting of texts in SVG and HTML

Same changes like above:
SVG- and HTML-text are displayed well now, with a workaround. Added support for text-stroke (SVG needs it).

Plus text-shadow on stroked Texts in HTML/CSS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79026</commentid>
    <comment_count>7</comment_count>
      <attachid>20845</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-26 22:58:19 -0700</bug_when>
    <thetext>Created attachment 20845
Painting of texts in SVG and HTML

The workaround only affects texts in SVG now. More information look 2 comments above.

This patch fixes bug-report: 18663, 15619 too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79170</commentid>
    <comment_count>8</comment_count>
      <attachid>20845</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-04-28 13:22:34 -0700</bug_when>
    <thetext>Comment on attachment 20845
Painting of texts in SVG and HTML

I appreciate the push to get SVG fixed but we can&apos;t really take a patch that misuses fill rule as a flag to denote text drawing. We&apos;ll need to figure out how to do this properly -- we might need to fix the GraphicsContext abstraction if it&apos;s too closely tied to the assumption that the platform graphics library has separate brushes for text and graphics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79189</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-28 22:23:01 -0700</bug_when>
    <thetext>It should be possible to add displaysSVGtext() and setDiaplaysSVGtext() to GraphicsContext. You could differentiate between HTML- and SVG-text again but it would be a hack to.

Another idea was to use setPlatformFillColor(); and setPlatformStrokeColor();(Isn&apos;t used yet).

But if you try to give the fillColor to &apos;cairo_t* cr = m_data-&gt;cr;&apos; with cairo_set_source_rgba(), not every text in HTML is affected by it (strange).
And there will be problems to include text-stroke of CSS into Cairo since the complete text uses the fillColor or the strokeColor (depending which Color was set at last).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98597</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-11-12 23:36:56 -0800</bug_when>
    <thetext>*** Bug 15619 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98598</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-11-12 23:44:11 -0800</bug_when>
    <thetext>Solid colors will be fixed with https://bugs.webkit.org/show_bug.cgi?id=20699 (third part). I can&apos;t run LayoutTests, so I can&apos;t land it yet.

To fix patterns and gradients they have to be platformindependent first:
https://bugs.webkit.org/show_bug.cgi?id=21205
https://bugs.webkit.org/show_bug.cgi?id=20543</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99162</commentid>
    <comment_count>12</comment_count>
      <attachid>25237</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-11-18 08:41:09 -0800</bug_when>
    <thetext>Created attachment 25237
Fonts with Pattern/Gradient

Moved the fill and stroke code out of fillPath() and strokePath() to common methods for paths and texts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99163</commentid>
    <comment_count>13</comment_count>
      <attachid>25238</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-11-18 08:47:09 -0800</bug_when>
    <thetext>Created attachment 25238
Fonts with Pattern/Gradient

The same idea as the previous patch, but add own methods for text fill/stroke. The other patch could be a bit slower on filling paths (but not noticeable).

I would prefer the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111400</commentid>
    <comment_count>14</comment_count>
      <attachid>28065</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-02-26 23:58:54 -0800</bug_when>
    <thetext>Created attachment 28065
Fonts with Pattern/Gradient

Make use of the new calls fillGradient/strokeGradient and fillPattern/strokePattern in GraphicsContext to support patterns and gradient on Fonts in Cairo.
I also added support for globalAlpha on Fonts for Cairo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111401</commentid>
    <comment_count>15</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-02-27 00:01:50 -0800</bug_when>
    <thetext>I forgot to mension that I commented the clipToImageBuffer on CanvasRenderingContext2D::drawTextInternal. Just CG needs this hack for filling and stroking texts with gradients. All other platforms have their own way to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111404</commentid>
    <comment_count>16</comment_count>
      <attachid>28065</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-02-27 00:15:51 -0800</bug_when>
    <thetext>Comment on attachment 28065
Fonts with Pattern/Gradient

r=me, the CG specific path makes me sad, oh well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111405</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-02-27 00:21:23 -0800</bug_when>
    <thetext>landed in r41279.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20811</attachid>
            <date>2008-04-24 23:16:33 -0700</date>
            <delta_ts>2008-04-25 03:30:16 -0700</delta_ts>
            <desc>dosplay of SVG-Text</desc>
            <filename>CairoSVGText.patch</filename>
            <type>text/plain</type>
            <size>4846</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjUzMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDgtMDQtMjQgIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXQVJOSU5H
OiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICBJbiBDYWlybyBTVkct
dGV4dCB3b3JrcyB3aXRoIHRoaXMgY2hhbmdlcy4gQnV0IHRleHRzIG9uIG5vcm1hbCB3ZWJwYWdl
cyBhcmUgYnJva2VuLiBQZXJoYXBzCisgICAgICAgIEhUTUwtdGV4dHMgc2hvdWxkIGRvIHRoZSBz
YW1lIGxpa2UgU1ZHLXRleHRzLiBUbyBoYXJkLWNvZGUgdGhlIGZvbnQtY29sb3IgaXNuJ3QgYSBn
b29kIGlkZWEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAgICAgICogc3Zn
L2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVyR3JhZGllbnRDYWlyby5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQYWludFNlcnZlckdyYWRpZW50OjpzZXR1cCk6CisgICAgICAgICogc3Zn
L2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVyU29saWRDYWlyby5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQYWludFNlcnZlclNvbGlkOjpzZXR1cCk6CisKIDIwMDgtMDQtMjQgIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5
YXR0LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJv
LmNwcAkocmV2aXNpb24gMzI0ODMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDEzICs3NSwxOCBAQCB2b2lkIEZv
bnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBjCiAgICAgICAgIGNhaXJvX3Nob3dfZ2x5
cGhzKGNyLCBnbHlwaHMsIG51bUdseXBocyk7CiAKICAgICAgICAgY2Fpcm9fcmVzdG9yZShjcik7
CisgICAgfSAgICAKKworICAgIGlmIChjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSAmIGNUZXh0
RmlsbCkgeworICAgICAgICBjYWlyb19nbHlwaF9wYXRoKGNyLCBnbHlwaHMsIG51bUdseXBocyk7
CisgICAgICAgIGNhaXJvX3Nob3dfZ2x5cGhzKGNyLCBnbHlwaHMsIG51bUdseXBocyk7CiAgICAg
fQogCi0gICAgZmxvYXQgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE7Ci0gICAgZmlsbENvbG9yLmdl
dFJHQkEocmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpOwotICAgIGNhaXJvX3NldF9zb3VyY2Vfcmdi
YShjciwgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpOworICAgIGlmIChjb250ZXh0LT50ZXh0RHJh
d2luZ01vZGUoKSAmIGNUZXh0U3Ryb2tlKSB7ICAgCisgICAgICAgIGNhaXJvX2dseXBoX3BhdGgo
Y3IsIGdseXBocywgbnVtR2x5cGhzKTsKKyAgICAgICAgY2Fpcm9fc3Ryb2tlKGNyKTsKKyAgICB9
CiAKLSAgICBjYWlyb19zaG93X2dseXBocyhjciwgZ2x5cGhzLCBudW1HbHlwaHMpOwogCiAgICAg
Ly8gUmUtZW5hYmxlIHRoZSBwbGF0Zm9ybSBzaGFkb3cgd2UgZGlzYWJsZWQgZWFybGllcgogICAg
IGlmIChoYXNTaGFkb3cpCkluZGV4OiBXZWJDb3JlL3N2Zy9ncmFwaGljcy9jYWlyby9TVkdQYWlu
dFNlcnZlckdyYWRpZW50Q2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2dyYXBo
aWNzL2NhaXJvL1NWR1BhaW50U2VydmVyR3JhZGllbnRDYWlyby5jcHAJKHJldmlzaW9uIDMyNDgz
KQorKysgV2ViQ29yZS9zdmcvZ3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJHcmFkaWVudENh
aXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDYgKzEyNiwzNiBAQCBib29sIFNWR1BhaW50
U2VydmVyR3JhZGllbnQ6OnNldHVwKEdyYXBoCiAgICAgICAgIGNhaXJvX3BhdHRlcm5fYWRkX2Nv
bG9yX3N0b3BfcmdiYShwYXR0ZXJuLCBvZmZzZXQsIGNvbG9yLnJlZCgpIC8gMjU1LjAsIGNvbG9y
LmdyZWVuKCkgLyAyNTUuMCwgY29sb3IuYmx1ZSgpIC8gMjU1LjAsIGNvbG9yLmFscGhhKCkgLyAy
NTUuMCk7CiAgICAgfQogCisgICAgLy8gVE9ETzogc2hhcmUgdGhpcyBjb2RlIHdpdGggb3RoZXIg
UGFpbnRTZXJ2ZXJzCisKKyAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3Qt
PnN0eWxlKCktPnN2Z1N0eWxlKCk7CisKKyAgICBpZiAoKHR5cGUgJiBBcHBseVRvRmlsbFRhcmdl
dFR5cGUpICYmIHN0eWxlLT5oYXNGaWxsKCkpIHsKKyAgICAgICAgY2Fpcm9fc2V0X2ZpbGxfcnVs
ZShjciwgc3R5bGUtPmZpbGxSdWxlKCkgPT0gUlVMRV9FVkVOT0REID8gQ0FJUk9fRklMTF9SVUxF
X0VWRU5fT0REIDogQ0FJUk9fRklMTF9SVUxFX1dJTkRJTkcpOworCisgICAgICAgIGlmIChpc1Bh
aW50aW5nVGV4dCkKKyAgICAgICAgICAgIGNvbnRleHQtPnNldFRleHREcmF3aW5nTW9kZShjVGV4
dEZpbGwpOworICAgIH0KKworICAgIGlmICgodHlwZSAmIEFwcGx5VG9TdHJva2VUYXJnZXRUeXBl
KSAmJiBzdHlsZS0+aGFzU3Ryb2tlKCkpIHsKKyAgICAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgo
Y3IsIFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVUb0xlbmd0aChvYmplY3QsIHN0eWxlLT5z
dHJva2VXaWR0aCgpLCAxLjApKTsKKyAgICAgICAgY29udGV4dC0+c2V0TGluZUNhcChzdHlsZS0+
Y2FwU3R5bGUoKSk7CisgICAgICAgIGNvbnRleHQtPnNldExpbmVKb2luKHN0eWxlLT5qb2luU3R5
bGUoKSk7CisgICAgICAgIGlmIChzdHlsZS0+am9pblN0eWxlKCkgPT0gTWl0ZXJKb2luKQorICAg
ICAgICAgICAgY29udGV4dC0+c2V0TWl0ZXJMaW1pdChzdHlsZS0+c3Ryb2tlTWl0ZXJMaW1pdCgp
KTsKKworICAgICAgICBjb25zdCBEYXNoQXJyYXkmIGRhc2hlcyA9IGRhc2hBcnJheUZyb21SZW5k
ZXJpbmdTdHlsZShvYmplY3QtPnN0eWxlKCkpOworICAgICAgICBkb3VibGUqIGRzaCA9IG5ldyBk
b3VibGVbZGFzaGVzLnNpemUoKV07CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAgOyBpIDwg
ZGFzaGVzLnNpemUoKSA7IGkrKykKKyAgICAgICAgICAgIGRzaFtpXSA9IGRhc2hlc1tpXTsKKyAg
ICAgICAgZG91YmxlIGRhc2hPZmZzZXQgPSBTVkdSZW5kZXJTdHlsZTo6Y3NzUHJpbWl0aXZlVG9M
ZW5ndGgob2JqZWN0LCBzdHlsZS0+c3Ryb2tlRGFzaE9mZnNldCgpLCAwLjApOworICAgICAgICBj
YWlyb19zZXRfZGFzaChjciwgZHNoLCBkYXNoZXMuc2l6ZSgpLCBkYXNoT2Zmc2V0KTsKKyAgICAg
ICAgZGVsZXRlW10gZHNoOworCisgICAgICAgIGlmIChpc1BhaW50aW5nVGV4dCkKKyAgICAgICAg
ICAgIGNvbnRleHQtPnNldFRleHREcmF3aW5nTW9kZShjVGV4dFN0cm9rZSk7CisgICAgfQorCiAg
ICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgcGF0dGVybik7CiAgICAgY2Fpcm9fcGF0dGVybl9kZXN0
cm95KHBhdHRlcm4pOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9ncmFwaGljcy9jYWlyby9TVkdQYWlu
dFNlcnZlclNvbGlkQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNz
L2NhaXJvL1NWR1BhaW50U2VydmVyU29saWRDYWlyby5jcHAJKHJldmlzaW9uIDMyNDgzKQorKysg
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJTb2xpZENhaXJvLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsOSBAQCBib29sIFNWR1BhaW50U2VydmVyU29saWQ6
OnNldHVwKEdyYXBoaWNzCiAgICAgICAgIGFscGhhID0gc3R5bGUtPmZpbGxPcGFjaXR5KCk7CiAK
ICAgICAgICAgY2Fpcm9fc2V0X2ZpbGxfcnVsZShjciwgc3R5bGUtPmZpbGxSdWxlKCkgPT0gUlVM
RV9FVkVOT0REID8gQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0REIDogQ0FJUk9fRklMTF9SVUxFX1dJ
TkRJTkcpOworCisgICAgICAgIGlmIChpc1BhaW50aW5nVGV4dCkKKyAgICAgICAgICAgIGNvbnRl
eHQtPnNldFRleHREcmF3aW5nTW9kZShjVGV4dEZpbGwpOwogICAgIH0KIAogICAgIGlmICgodHlw
ZSAmIEFwcGx5VG9TdHJva2VUYXJnZXRUeXBlKSAmJiBzdHlsZS0+aGFzU3Ryb2tlKCkpIHsKQEAg
LTYwLDYgKzYzLDkgQEAgYm9vbCBTVkdQYWludFNlcnZlclNvbGlkOjpzZXR1cChHcmFwaGljcwog
ICAgICAgICBkb3VibGUgZGFzaE9mZnNldCA9IFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVU
b0xlbmd0aChvYmplY3QsIHN0eWxlLT5zdHJva2VEYXNoT2Zmc2V0KCksIDAuMCk7CiAgICAgICAg
IGNhaXJvX3NldF9kYXNoKGNyLCBkc2gsIGRhc2hlcy5zaXplKCksIGRhc2hPZmZzZXQpOwogICAg
ICAgICBkZWxldGVbXSBkc2g7CisKKyAgICAgICAgaWYgKGlzUGFpbnRpbmdUZXh0KQorICAgICAg
ICAgICAgY29udGV4dC0+c2V0VGV4dERyYXdpbmdNb2RlKGNUZXh0U3Ryb2tlKTsKICAgICB9CiAK
ICAgICBjYWlyb19zZXRfc291cmNlX3JnYmEoY3IsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20815</attachid>
            <date>2008-04-25 03:30:16 -0700</date>
            <delta_ts>2008-04-25 12:14:47 -0700</delta_ts>
            <desc>Display SVG-text</desc>
            <filename>CairoPattern.patch</filename>
            <type>text/plain</type>
            <size>3295</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjQ0MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMDgtMDQtMjMgIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGF0
dGVybi1zdXBwb3J0IGZvciBTVkcgaW4gQ2Fpcm8uCisKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3Mv
Y2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuOjpzZXR1cCk6CisKIDIwMDgtMDQtMjMgIEp1c3RpbiBHYXJj
aWEgIDxqdXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KSW5kZXg6IFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVy
UGF0dGVybkNhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9ncmFwaGljcy9jYWly
by9TVkdQYWludFNlcnZlclBhdHRlcm5DYWlyby5jcHAJKHJldmlzaW9uIDMyNDMwKQorKysgV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuQ2Fpcm8uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMCwxNCArMjAsNjYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAog
I2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJT
VkdQYWludFNlcnZlclBhdHRlcm4uaCIKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgor
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5j
bHVkZSAiU1ZHUGF0dGVybkVsZW1lbnQuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29s
IFNWR1BhaW50U2VydmVyUGF0dGVybjo6c2V0dXAoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwg
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFNWR1BhaW50VGFyZ2V0VHlwZSB0eXBlLCBib29s
IGlzUGFpbnRpbmdUZXh0KSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisKKyAgICBG
bG9hdFJlY3QgdGFyZ2V0UmVjdCA9IG9iamVjdC0+cmVsYXRpdmVCQm94KGZhbHNlKTsKKyAgICBt
X293bmVyRWxlbWVudC0+YnVpbGRQYXR0ZXJuKHRhcmdldFJlY3QpOworCisgICAgY2Fpcm9fc3Vy
ZmFjZV90KiBpbWFnZSA9IHRpbGUoKS0+c3VyZmFjZSgpOworICAgIGlmICghaW1hZ2UpIC8vIElm
IGl0J3MgdG9vIGVhcmx5IHdlIHdvbid0IGhhdmUgYW4gaW1hZ2UgeWV0LgorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBjYWlyb190KiBjciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
OworCisgICAgY2Fpcm9fcGF0dGVybl90KiBwYXR0ZXJuID0gY2Fpcm9fcGF0dGVybl9jcmVhdGVf
Zm9yX3N1cmZhY2UoaW1hZ2UpOworICAgIGNhaXJvX3BhdHRlcm5fc2V0X2V4dGVuZChwYXR0ZXJu
LCBDQUlST19FWFRFTkRfUkVQRUFUKTsKKworICAgIGNhaXJvX3BhdHRlcm5fc2V0X2ZpbHRlcihw
YXR0ZXJuLCBDQUlST19GSUxURVJfQklMSU5FQVIpOworCisgICAgY2Fpcm9fbWF0cml4X3QgcGF0
dGVybl9tYXRyaXggPSBwYXR0ZXJuVHJhbnNmb3JtKCk7CisgICAgY2Fpcm9fbWF0cml4X3QgcGhh
c2VfbWF0cml4ID0gezEsIDAsIDAsIDEsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKX07
CisgICAgY2Fpcm9fbWF0cml4X3QgY29tYmluZWQ7CisgICAgY2Fpcm9fbWF0cml4X211bHRpcGx5
KCZjb21iaW5lZCwgJnBhdHRlcm5fbWF0cml4LCAmcGhhc2VfbWF0cml4KTsKKyAgICBjYWlyb19t
YXRyaXhfaW52ZXJ0KCZjb21iaW5lZCk7CisgICAgY2Fpcm9fcGF0dGVybl9zZXRfbWF0cml4KHBh
dHRlcm4sICZjb21iaW5lZCk7CisKKyAgICAvLyBUT0RPOiBzaGFyZSB0aGlzIGNvZGUgd2l0aCBv
dGhlciBQYWludFNlcnZlcnMKKworICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdHlsZSA9IG9i
amVjdC0+c3R5bGUoKS0+c3ZnU3R5bGUoKTsKKworICAgIGlmICgodHlwZSAmIEFwcGx5VG9GaWxs
VGFyZ2V0VHlwZSkgJiYgc3R5bGUtPmhhc0ZpbGwoKSkgeworICAgICAgICBjYWlyb19zZXRfZmls
bF9ydWxlKGNyLCBzdHlsZS0+ZmlsbFJ1bGUoKSA9PSBSVUxFX0VWRU5PREQgPyBDQUlST19GSUxM
X1JVTEVfRVZFTl9PREQgOiBDQUlST19GSUxMX1JVTEVfV0lORElORyk7CisgICAgfQorCisgICAg
aWYgKCh0eXBlICYgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUpICYmIHN0eWxlLT5oYXNTdHJva2Uo
KSkgeworICAgICAgICBjYWlyb19zZXRfbGluZV93aWR0aChjciwgU1ZHUmVuZGVyU3R5bGU6OmNz
c1ByaW1pdGl2ZVRvTGVuZ3RoKG9iamVjdCwgc3R5bGUtPnN0cm9rZVdpZHRoKCksIDEuMCkpOwor
ICAgICAgICBjb250ZXh0LT5zZXRMaW5lQ2FwKHN0eWxlLT5jYXBTdHlsZSgpKTsKKyAgICAgICAg
Y29udGV4dC0+c2V0TGluZUpvaW4oc3R5bGUtPmpvaW5TdHlsZSgpKTsKKyAgICAgICAgaWYgKHN0
eWxlLT5qb2luU3R5bGUoKSA9PSBNaXRlckpvaW4pCisgICAgICAgICAgICBjb250ZXh0LT5zZXRN
aXRlckxpbWl0KHN0eWxlLT5zdHJva2VNaXRlckxpbWl0KCkpOworCisgICAgICAgIGNvbnN0IERh
c2hBcnJheSYgZGFzaGVzID0gZGFzaEFycmF5RnJvbVJlbmRlcmluZ1N0eWxlKG9iamVjdC0+c3R5
bGUoKSk7CisgICAgICAgIGRvdWJsZSogZHNoID0gbmV3IGRvdWJsZVtkYXNoZXMuc2l6ZSgpXTsK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCA7IGkgPCBkYXNoZXMuc2l6ZSgpIDsgaSsrKQor
ICAgICAgICAgICAgZHNoW2ldID0gZGFzaGVzW2ldOworICAgICAgICBkb3VibGUgZGFzaE9mZnNl
dCA9IFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVUb0xlbmd0aChvYmplY3QsIHN0eWxlLT5z
dHJva2VEYXNoT2Zmc2V0KCksIDAuMCk7CisgICAgICAgIGNhaXJvX3NldF9kYXNoKGNyLCBkc2gs
IGRhc2hlcy5zaXplKCksIGRhc2hPZmZzZXQpOworICAgICAgICBkZWxldGVbXSBkc2g7CisgICAg
fQorCisgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgcGF0dGVybik7CisgICAgY2Fpcm9fcGF0dGVy
bl9kZXN0cm95KHBhdHRlcm4pOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20821</attachid>
            <date>2008-04-25 12:14:47 -0700</date>
            <delta_ts>2008-04-25 13:43:59 -0700</delta_ts>
            <desc>Display SVG-text</desc>
            <filename>CairoSVGText.patch</filename>
            <type>text/plain</type>
            <size>7218</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjU1NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDgtMDQtMjUgIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXQVJOSU5H
OiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICBTVkctVGV4dCBzaSBu
b3cgZGlzcGxheWVkIHJpZ2h0IGFuZCB0aGUgbW9zdCBIVE1MLXBhZ2VzIHdvcmsgbm93IHRvby4g
CisgICAgICAgIFNvbWUgdGV4dHMgc3RpbGwgZG9uJ3QgZ2V0IHRoZXJlIGNvbG9yLiBUaGV5IGFy
ZSB3aGl0ZS4gU3Ryb2tlIG9mCisgICAgICAgIEhUTUwtdGV4dCBkb2Vzbid0IHdvcmsgeWV0Lgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1GaWxsQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVN0cm9rZUNvbG9yKToKKyAgICAgICAgKiBzdmcv
Z3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJHcmFkaWVudENhaXJvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhaW50U2VydmVyR3JhZGllbnQ6OnNldHVwKToKKyAgICAgICAgKiBzdmcv
Z3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJTb2xpZENhaXJvLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhaW50U2VydmVyU29saWQ6OnNldHVwKToKKwogMjAwOC0wNC0yNSAgQmVuamFt
aW4gTWV5ZXIgIDxibWV5ZXJAdHJvbGx0ZWNoLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBI
b2xnZXIuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fp
cm8uY3BwCShyZXZpc2lvbiAzMjQ4MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vRm9udENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAogICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCiAgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCiAgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IFBST0ZJVFM7IHN0cm9rZVRoaWNrbmVzc09SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgpAQCAtNzcsMTEgKzc3LDE2IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFw
aGljc0NvbnRleHQqIGMKICAgICAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiAgICAgfQogCi0gICAg
ZmxvYXQgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE7Ci0gICAgZmlsbENvbG9yLmdldFJHQkEocmVk
LCBncmVlbiwgYmx1ZSwgYWxwaGEpOwotICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiYShjciwgcmVk
LCBncmVlbiwgYmx1ZSwgYWxwaGEpOworICAgIGlmIChjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUo
KSAmIGNUZXh0RmlsbCkgeworICAgICAgICBjYWlyb19zaG93X2dseXBocyhjciwgZ2x5cGhzLCBu
dW1HbHlwaHMpOworICAgIH0KKworICAgIGlmIChjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSAm
IGNUZXh0U3Ryb2tlKSB7ICAgCisgICAgICAgIGNhaXJvX2dseXBoX3BhdGgoY3IsIGdseXBocywg
bnVtR2x5cGhzKTsKKyAgICAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGggKGNyLCBjb250ZXh0LT5z
dHJva2VUaGlja25lc3MoKSk7CisgICAgICAgIGNhaXJvX3N0cm9rZShjcik7CisgICAgfQogCi0g
ICAgY2Fpcm9fc2hvd19nbHlwaHMoY3IsIGdseXBocywgbnVtR2x5cGhzKTsKIAogICAgIC8vIFJl
LWVuYWJsZSB0aGUgcGxhdGZvcm0gc2hhZG93IHdlIGRpc2FibGVkIGVhcmxpZXIKICAgICBpZiAo
aGFzU2hhZG93KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAJKHJldmlzaW9uIDMyNDgzKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ5NywxNCArNDk3LDE4IEBAIEludFBvaW50IEdyYXBoaWNzQ29udGV4
dDo6b3JpZ2luKCkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtRmlsbENvbG9y
KGNvbnN0IENvbG9yJiBjb2wpCiB7Ci0gICAgLy8gRklYTUU6IHRoaXMgaXMgcHJvYmFibHkgYSBu
by1vcCBidXQgSSdtIG5vdCBzdXJlCi0gICAgLy8gbm90SW1wbGVtZW50ZWQoKTsgLy8gY29tbWVu
dGVkLW91dCBiZWNhdXNlIGl0J3MgY2hhdHR5IGFuZCBjbHV0dGVycyBvdXRwdXQKKyAgICBpZiAo
cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgY2Fpcm9fdCogY3IgPSBt
X2RhdGEtPmNyOworICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiYShjciwgY29sLnJlZCgpIC8gMjU1
LjAsIGNvbC5ncmVlbigpIC8gMjU1LjAsIGNvbC5ibHVlKCkgLyAyNTUuMCwgY29sLmFscGhhKCkg
LyAyNTUuMCk7ICAgIAogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TdHJv
a2VDb2xvcihjb25zdCBDb2xvciYgY29sKQogewotICAgIC8vIEZJWE1FOiB0aGlzIGlzIHByb2Jh
Ymx5IGEgbm8tb3AgYnV0IEknbSBub3Qgc3VyZQotICAgIC8vbm90SW1wbGVtZW50ZWQoKTsgLy8g
Y29tbWVudGVkLW91dCBiZWNhdXNlIGl0J3MgY2hhdHR5IGFuZCBjbHV0dGVycyBvdXRwdXQKKyAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgY2Fpcm9fdCog
Y3IgPSBtX2RhdGEtPmNyOworICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiYShjciwgY29sLnJlZCgp
IC8gMjU1LjAsIGNvbC5ncmVlbigpIC8gMjU1LjAsIGNvbC5ibHVlKCkgLyAyNTUuMCwgY29sLmFs
cGhhKCkgLyAyNTUuMCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVN0
cm9rZVRoaWNrbmVzcyhmbG9hdCBzdHJva2VUaGlja25lc3MpCkluZGV4OiBXZWJDb3JlL3N2Zy9n
cmFwaGljcy9jYWlyby9TVkdQYWludFNlcnZlckdyYWRpZW50Q2Fpcm8uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVyR3JhZGllbnRDYWly
by5jcHAJKHJldmlzaW9uIDMyNDgzKQorKysgV2ViQ29yZS9zdmcvZ3JhcGhpY3MvY2Fpcm8vU1ZH
UGFpbnRTZXJ2ZXJHcmFkaWVudENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDYgKzEy
NiwzNiBAQCBib29sIFNWR1BhaW50U2VydmVyR3JhZGllbnQ6OnNldHVwKEdyYXBoCiAgICAgICAg
IGNhaXJvX3BhdHRlcm5fYWRkX2NvbG9yX3N0b3BfcmdiYShwYXR0ZXJuLCBvZmZzZXQsIGNvbG9y
LnJlZCgpIC8gMjU1LjAsIGNvbG9yLmdyZWVuKCkgLyAyNTUuMCwgY29sb3IuYmx1ZSgpIC8gMjU1
LjAsIGNvbG9yLmFscGhhKCkgLyAyNTUuMCk7CiAgICAgfQogCisgICAgLy8gVE9ETzogc2hhcmUg
dGhpcyBjb2RlIHdpdGggb3RoZXIgUGFpbnRTZXJ2ZXJzCisKKyAgICBjb25zdCBTVkdSZW5kZXJT
dHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0eWxlKCk7CisKKyAgICBpZiAoKHR5
cGUgJiBBcHBseVRvRmlsbFRhcmdldFR5cGUpICYmIHN0eWxlLT5oYXNGaWxsKCkpIHsKKyAgICAg
ICAgY2Fpcm9fc2V0X2ZpbGxfcnVsZShjciwgc3R5bGUtPmZpbGxSdWxlKCkgPT0gUlVMRV9FVkVO
T0REID8gQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0REIDogQ0FJUk9fRklMTF9SVUxFX1dJTkRJTkcp
OworCisgICAgICAgIGlmIChpc1BhaW50aW5nVGV4dCkKKyAgICAgICAgICAgIGNvbnRleHQtPnNl
dFRleHREcmF3aW5nTW9kZShjVGV4dEZpbGwpOworICAgIH0KKworICAgIGlmICgodHlwZSAmIEFw
cGx5VG9TdHJva2VUYXJnZXRUeXBlKSAmJiBzdHlsZS0+aGFzU3Ryb2tlKCkpIHsKKyAgICAgICAg
Y29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVU
b0xlbmd0aChvYmplY3QsIHN0eWxlLT5zdHJva2VXaWR0aCgpLCAxLjApKTsKKyAgICAgICAgY29u
dGV4dC0+c2V0TGluZUNhcChzdHlsZS0+Y2FwU3R5bGUoKSk7CisgICAgICAgIGNvbnRleHQtPnNl
dExpbmVKb2luKHN0eWxlLT5qb2luU3R5bGUoKSk7CisgICAgICAgIGlmIChzdHlsZS0+am9pblN0
eWxlKCkgPT0gTWl0ZXJKb2luKQorICAgICAgICAgICAgY29udGV4dC0+c2V0TWl0ZXJMaW1pdChz
dHlsZS0+c3Ryb2tlTWl0ZXJMaW1pdCgpKTsKKworICAgICAgICBjb25zdCBEYXNoQXJyYXkmIGRh
c2hlcyA9IGRhc2hBcnJheUZyb21SZW5kZXJpbmdTdHlsZShvYmplY3QtPnN0eWxlKCkpOworICAg
ICAgICBkb3VibGUqIGRzaCA9IG5ldyBkb3VibGVbZGFzaGVzLnNpemUoKV07CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDAgOyBpIDwgZGFzaGVzLnNpemUoKSA7IGkrKykKKyAgICAgICAgICAg
IGRzaFtpXSA9IGRhc2hlc1tpXTsKKyAgICAgICAgZG91YmxlIGRhc2hPZmZzZXQgPSBTVkdSZW5k
ZXJTdHlsZTo6Y3NzUHJpbWl0aXZlVG9MZW5ndGgob2JqZWN0LCBzdHlsZS0+c3Ryb2tlRGFzaE9m
ZnNldCgpLCAwLjApOworICAgICAgICBjYWlyb19zZXRfZGFzaChjciwgZHNoLCBkYXNoZXMuc2l6
ZSgpLCBkYXNoT2Zmc2V0KTsKKyAgICAgICAgZGVsZXRlW10gZHNoOworCisgICAgICAgIGlmIChp
c1BhaW50aW5nVGV4dCkKKyAgICAgICAgICAgIGNvbnRleHQtPnNldFRleHREcmF3aW5nTW9kZShj
VGV4dFN0cm9rZSk7CisgICAgfQorCiAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgcGF0dGVybik7
CiAgICAgY2Fpcm9fcGF0dGVybl9kZXN0cm95KHBhdHRlcm4pOwogCkluZGV4OiBXZWJDb3JlL3N2
Zy9ncmFwaGljcy9jYWlyby9TVkdQYWludFNlcnZlclNvbGlkQ2Fpcm8uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVyU29saWRDYWlyby5j
cHAJKHJldmlzaW9uIDMyNDgzKQorKysgV2ViQ29yZS9zdmcvZ3JhcGhpY3MvY2Fpcm8vU1ZHUGFp
bnRTZXJ2ZXJTb2xpZENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTIgKzQyLDE1IEBA
IGJvb2wgU1ZHUGFpbnRTZXJ2ZXJTb2xpZDo6c2V0dXAoR3JhcGhpY3MKICAgICAgICAgYWxwaGEg
PSBzdHlsZS0+ZmlsbE9wYWNpdHkoKTsKIAogICAgICAgICBjYWlyb19zZXRfZmlsbF9ydWxlKGNy
LCBzdHlsZS0+ZmlsbFJ1bGUoKSA9PSBSVUxFX0VWRU5PREQgPyBDQUlST19GSUxMX1JVTEVfRVZF
Tl9PREQgOiBDQUlST19GSUxMX1JVTEVfV0lORElORyk7CisKKyAgICAgICAgaWYgKGlzUGFpbnRp
bmdUZXh0KQorICAgICAgICAgICAgY29udGV4dC0+c2V0VGV4dERyYXdpbmdNb2RlKGNUZXh0Rmls
bCk7CiAgICAgfQogCiAgICAgaWYgKCh0eXBlICYgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUpICYm
IHN0eWxlLT5oYXNTdHJva2UoKSkgewogICAgICAgICBhbHBoYSA9IHN0eWxlLT5zdHJva2VPcGFj
aXR5KCk7CiAKLSAgICAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgoY3IsIFNWR1JlbmRlclN0eWxl
Ojpjc3NQcmltaXRpdmVUb0xlbmd0aChvYmplY3QsIHN0eWxlLT5zdHJva2VXaWR0aCgpLCAxLjAp
KTsKKyAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKFNWR1JlbmRlclN0eWxlOjpj
c3NQcmltaXRpdmVUb0xlbmd0aChvYmplY3QsIHN0eWxlLT5zdHJva2VXaWR0aCgpLCAxLjApKTsK
ICAgICAgICAgY29udGV4dC0+c2V0TGluZUNhcChzdHlsZS0+Y2FwU3R5bGUoKSk7CiAgICAgICAg
IGNvbnRleHQtPnNldExpbmVKb2luKHN0eWxlLT5qb2luU3R5bGUoKSk7CiAgICAgICAgIGlmIChz
dHlsZS0+am9pblN0eWxlKCkgPT0gTWl0ZXJKb2luKQpAQCAtNjAsNiArNjMsOSBAQCBib29sIFNW
R1BhaW50U2VydmVyU29saWQ6OnNldHVwKEdyYXBoaWNzCiAgICAgICAgIGRvdWJsZSBkYXNoT2Zm
c2V0ID0gU1ZHUmVuZGVyU3R5bGU6OmNzc1ByaW1pdGl2ZVRvTGVuZ3RoKG9iamVjdCwgc3R5bGUt
PnN0cm9rZURhc2hPZmZzZXQoKSwgMC4wKTsKICAgICAgICAgY2Fpcm9fc2V0X2Rhc2goY3IsIGRz
aCwgZGFzaGVzLnNpemUoKSwgZGFzaE9mZnNldCk7CiAgICAgICAgIGRlbGV0ZVtdIGRzaDsKKwor
ICAgICAgICBpZiAoaXNQYWludGluZ1RleHQpCisgICAgICAgICAgICBjb250ZXh0LT5zZXRUZXh0
RHJhd2luZ01vZGUoY1RleHRTdHJva2UpOwogICAgIH0KIAogICAgIGNhaXJvX3NldF9zb3VyY2Vf
cmdiYShjciwgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpOwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20823</attachid>
            <date>2008-04-25 13:43:59 -0700</date>
            <delta_ts>2008-04-26 04:29:52 -0700</delta_ts>
            <desc>Display texts in SVG and HTML</desc>
            <filename>CairoSVGText.patch</filename>
            <type>text/plain</type>
            <size>6293</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjU3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDgtMDQtMjUgIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXQVJOSU5H
OiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICBHZXQgZGlzcGxheWlu
ZyBvZiB0ZXh0cyBpbiBTVkcgYW5kIGluIEhUTUwgZm9yIENhaXJvIGZpeGVkIHdpdGggYSB3b3Jr
YXJvdW5kLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHN2Zy9n
cmFwaGljcy9jYWlyby9TVkdQYWludFNlcnZlckdyYWRpZW50Q2Fpcm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGFpbnRTZXJ2ZXJHcmFkaWVudDo6c2V0dXApOgorICAgICAgICAqIHN2Zy9n
cmFwaGljcy9jYWlyby9TVkdQYWludFNlcnZlclNvbGlkQ2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGFpbnRTZXJ2ZXJTb2xpZDo6c2V0dXApOgorCiAyMDA4LTA0LTI1ICBUb3IgQXJu
ZSBWZXN0YsO4ICA8dGF2ZXN0Ym9AdHJvbGx0ZWNoLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJv
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRD
YWlyby5jcHAJKHJldmlzaW9uIDMyNDgzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9Gb250Q2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHZvaWQg
Rm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGMKICAgICB9CiAKICAgICBDb2xvciBm
aWxsQ29sb3IgPSBjb250ZXh0LT5maWxsQ29sb3IoKTsKKyAgICBDb2xvciBzdHJva2VDb2xvciA9
IGNvbnRleHQtPnN0cm9rZUNvbG9yKCk7CiAKICAgICAvLyBUZXh0IHNoYWRvdywgaW5zcGlyZWQg
YnkgRm9udE1hYwogICAgIEludFNpemUgc2hhZG93U2l6ZTsKQEAgLTc3LDExICs3OCwyMSBAQCB2
b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBjCiAgICAgICAgIGNhaXJvX3Jl
c3RvcmUoY3IpOwogICAgIH0KIAotICAgIGZsb2F0IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhOwot
ICAgIGZpbGxDb2xvci5nZXRSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKLSAgICBjYWly
b19zZXRfc291cmNlX3JnYmEoY3IsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAgICBpZiAo
Y29udGV4dC0+dGV4dERyYXdpbmdNb2RlKCkgJiBjVGV4dEZpbGwpIHsKKyAgICAgICAgaWYgKCEo
Y2Fpcm9fZ2V0X2ZpbGxfcnVsZShjcikgPT0gQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0REKSkKKyAg
ICAgICAgICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiYShjciwgZmlsbENvbG9yLnJlZCgpIC8gMjU1
LjAsIGZpbGxDb2xvci5ncmVlbigpIC8gMjU1LjAsIGZpbGxDb2xvci5ibHVlKCkgLyAyNTUuMCwg
ZmlsbENvbG9yLmFscGhhKCkgLyAyNTUuMCk7CisgICAgICAgIGNhaXJvX3Nob3dfZ2x5cGhzKGNy
LCBnbHlwaHMsIG51bUdseXBocyk7CisgICAgICAgIGNhaXJvX2ZpbGxfcHJlc2VydmUoY3IpOwor
ICAgIH0KIAotICAgIGNhaXJvX3Nob3dfZ2x5cGhzKGNyLCBnbHlwaHMsIG51bUdseXBocyk7Cisg
ICAgaWYgKGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpICYgY1RleHRTdHJva2UpIHsKKyAgICAg
ICAgY2Fpcm9fZ2x5cGhfcGF0aChjciwgZ2x5cGhzLCBudW1HbHlwaHMpOworICAgICAgICBpZiAo
IShjYWlyb19nZXRfZmlsbF9ydWxlKGNyKSA9PSBDQUlST19GSUxMX1JVTEVfRVZFTl9PREQpKQor
ICAgICAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZV9yZ2JhKGNyLCBzdHJva2VDb2xvci5yZWQoKSAv
IDI1NS4wLCBzdHJva2VDb2xvci5ncmVlbigpIC8gMjU1LjAsIHN0cm9rZUNvbG9yLmJsdWUoKSAv
IDI1NS4wLCBzdHJva2VDb2xvci5hbHBoYSgpIC8gMjU1LjApOworICAgICAgICBjYWlyb19zZXRf
ZmlsbF9ydWxlKGNyLENBSVJPX0ZJTExfUlVMRV9FVkVOX09ERCk7CisgICAgICAgIGNhaXJvX3Nl
dF9saW5lX3dpZHRoKGNyLCBjb250ZXh0LT5zdHJva2VUaGlja25lc3MoKSk7CisgICAgICAgIGNh
aXJvX3N0cm9rZShjcik7CisgICAgfQogCiAgICAgLy8gUmUtZW5hYmxlIHRoZSBwbGF0Zm9ybSBz
aGFkb3cgd2UgZGlzYWJsZWQgZWFybGllcgogICAgIGlmIChoYXNTaGFkb3cpCkluZGV4OiBXZWJD
b3JlL3N2Zy9ncmFwaGljcy9jYWlyby9TVkdQYWludFNlcnZlckdyYWRpZW50Q2Fpcm8uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVyR3Jh
ZGllbnRDYWlyby5jcHAJKHJldmlzaW9uIDMyNDgzKQorKysgV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
Y2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJHcmFkaWVudENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTI2LDYgKzEyNiwzOSBAQCBib29sIFNWR1BhaW50U2VydmVyR3JhZGllbnQ6OnNldHVwKEdyYXBo
CiAgICAgICAgIGNhaXJvX3BhdHRlcm5fYWRkX2NvbG9yX3N0b3BfcmdiYShwYXR0ZXJuLCBvZmZz
ZXQsIGNvbG9yLnJlZCgpIC8gMjU1LjAsIGNvbG9yLmdyZWVuKCkgLyAyNTUuMCwgY29sb3IuYmx1
ZSgpIC8gMjU1LjAsIGNvbG9yLmFscGhhKCkgLyAyNTUuMCk7CiAgICAgfQogCisgICAgLy8gVE9E
Tzogc2hhcmUgdGhpcyBjb2RlIHdpdGggb3RoZXIgUGFpbnRTZXJ2ZXJzCisKKyAgICBjb25zdCBT
VkdSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0eWxlKCk7CisKKyAg
ICBpZiAoKHR5cGUgJiBBcHBseVRvRmlsbFRhcmdldFR5cGUpICYmIHN0eWxlLT5oYXNGaWxsKCkp
IHsKKyAgICAgICAgLy9jYWlyb19zZXRfZmlsbF9ydWxlKGNyLCBzdHlsZS0+ZmlsbFJ1bGUoKSA9
PSBSVUxFX0VWRU5PREQgPyBDQUlST19GSUxMX1JVTEVfRVZFTl9PREQgOiBDQUlST19GSUxMX1JV
TEVfV0lORElORyk7CisgICAgICAgIGNhaXJvX3NldF9maWxsX3J1bGUoY3IsIENBSVJPX0ZJTExf
UlVMRV9FVkVOX09ERCk7CisKKyAgICAgICAgaWYgKGlzUGFpbnRpbmdUZXh0KQorICAgICAgICAg
ICAgY29udGV4dC0+c2V0VGV4dERyYXdpbmdNb2RlKGNUZXh0RmlsbCk7CisgICAgfQorCisgICAg
aWYgKCh0eXBlICYgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUpICYmIHN0eWxlLT5oYXNTdHJva2Uo
KSkgeworICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VUaGlja25lc3MoU1ZHUmVuZGVyU3R5bGU6
OmNzc1ByaW1pdGl2ZVRvTGVuZ3RoKG9iamVjdCwgc3R5bGUtPnN0cm9rZVdpZHRoKCksIDEuMCkp
OworICAgICAgICBjb250ZXh0LT5zZXRMaW5lQ2FwKHN0eWxlLT5jYXBTdHlsZSgpKTsKKyAgICAg
ICAgY29udGV4dC0+c2V0TGluZUpvaW4oc3R5bGUtPmpvaW5TdHlsZSgpKTsKKyAgICAgICAgaWYg
KHN0eWxlLT5qb2luU3R5bGUoKSA9PSBNaXRlckpvaW4pCisgICAgICAgICAgICBjb250ZXh0LT5z
ZXRNaXRlckxpbWl0KHN0eWxlLT5zdHJva2VNaXRlckxpbWl0KCkpOworCisgICAgICAgIGNvbnN0
IERhc2hBcnJheSYgZGFzaGVzID0gZGFzaEFycmF5RnJvbVJlbmRlcmluZ1N0eWxlKG9iamVjdC0+
c3R5bGUoKSk7CisgICAgICAgIGRvdWJsZSogZHNoID0gbmV3IGRvdWJsZVtkYXNoZXMuc2l6ZSgp
XTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCA7IGkgPCBkYXNoZXMuc2l6ZSgpIDsgaSsr
KQorICAgICAgICAgICAgZHNoW2ldID0gZGFzaGVzW2ldOworICAgICAgICBkb3VibGUgZGFzaE9m
ZnNldCA9IFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVUb0xlbmd0aChvYmplY3QsIHN0eWxl
LT5zdHJva2VEYXNoT2Zmc2V0KCksIDAuMCk7CisgICAgICAgIGNhaXJvX3NldF9kYXNoKGNyLCBk
c2gsIGRhc2hlcy5zaXplKCksIGRhc2hPZmZzZXQpOworICAgICAgICBkZWxldGVbXSBkc2g7CisK
KyAgICAgICAgY2Fpcm9fc2V0X2ZpbGxfcnVsZShjciwgQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0RE
KTsKKworICAgICAgICBpZiAoaXNQYWludGluZ1RleHQpCisgICAgICAgICAgICBjb250ZXh0LT5z
ZXRUZXh0RHJhd2luZ01vZGUoY1RleHRTdHJva2UpOworICAgIH0KKwogICAgIGNhaXJvX3NldF9z
b3VyY2UoY3IsIHBhdHRlcm4pOwogICAgIGNhaXJvX3BhdHRlcm5fZGVzdHJveShwYXR0ZXJuKTsK
IApJbmRleDogV2ViQ29yZS9zdmcvZ3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJTb2xpZENh
aXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9ncmFwaGljcy9jYWlyby9TVkdQYWlu
dFNlcnZlclNvbGlkQ2Fpcm8uY3BwCShyZXZpc2lvbiAzMjQ4MykKKysrIFdlYkNvcmUvc3ZnL2dy
YXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVyU29saWRDYWlyby5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDEzICs0MSwxOCBAQCBib29sIFNWR1BhaW50U2VydmVyU29saWQ6OnNldHVwKEdyYXBo
aWNzCiAgICAgaWYgKCh0eXBlICYgQXBwbHlUb0ZpbGxUYXJnZXRUeXBlKSAmJiBzdHlsZS0+aGFz
RmlsbCgpKSB7CiAgICAgICAgIGFscGhhID0gc3R5bGUtPmZpbGxPcGFjaXR5KCk7CiAKLSAgICAg
ICAgY2Fpcm9fc2V0X2ZpbGxfcnVsZShjciwgc3R5bGUtPmZpbGxSdWxlKCkgPT0gUlVMRV9FVkVO
T0REID8gQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0REIDogQ0FJUk9fRklMTF9SVUxFX1dJTkRJTkcp
OworICAgICAgICAvL2NhaXJvX3NldF9maWxsX3J1bGUoY3IsIHN0eWxlLT5maWxsUnVsZSgpID09
IFJVTEVfRVZFTk9ERCA/IENBSVJPX0ZJTExfUlVMRV9FVkVOX09ERCA6IENBSVJPX0ZJTExfUlVM
RV9XSU5ESU5HKTsKKyAgICAgICAgY2Fpcm9fc2V0X2ZpbGxfcnVsZShjciwgQ0FJUk9fRklMTF9S
VUxFX0VWRU5fT0REKTsKKworCisgICAgICAgIGlmIChpc1BhaW50aW5nVGV4dCkKKyAgICAgICAg
ICAgIGNvbnRleHQtPnNldFRleHREcmF3aW5nTW9kZShjVGV4dEZpbGwpOwogICAgIH0KIAogICAg
IGlmICgodHlwZSAmIEFwcGx5VG9TdHJva2VUYXJnZXRUeXBlKSAmJiBzdHlsZS0+aGFzU3Ryb2tl
KCkpIHsKICAgICAgICAgYWxwaGEgPSBzdHlsZS0+c3Ryb2tlT3BhY2l0eSgpOwogCi0gICAgICAg
IGNhaXJvX3NldF9saW5lX3dpZHRoKGNyLCBTVkdSZW5kZXJTdHlsZTo6Y3NzUHJpbWl0aXZlVG9M
ZW5ndGgob2JqZWN0LCBzdHlsZS0+c3Ryb2tlV2lkdGgoKSwgMS4wKSk7CisgICAgICAgIGNvbnRl
eHQtPnNldFN0cm9rZVRoaWNrbmVzcyhTVkdSZW5kZXJTdHlsZTo6Y3NzUHJpbWl0aXZlVG9MZW5n
dGgob2JqZWN0LCBzdHlsZS0+c3Ryb2tlV2lkdGgoKSwgMS4wKSk7CiAgICAgICAgIGNvbnRleHQt
PnNldExpbmVDYXAoc3R5bGUtPmNhcFN0eWxlKCkpOwogICAgICAgICBjb250ZXh0LT5zZXRMaW5l
Sm9pbihzdHlsZS0+am9pblN0eWxlKCkpOwogICAgICAgICBpZiAoc3R5bGUtPmpvaW5TdHlsZSgp
ID09IE1pdGVySm9pbikKQEAgLTYwLDYgKzY1LDEwIEBAIGJvb2wgU1ZHUGFpbnRTZXJ2ZXJTb2xp
ZDo6c2V0dXAoR3JhcGhpY3MKICAgICAgICAgZG91YmxlIGRhc2hPZmZzZXQgPSBTVkdSZW5kZXJT
dHlsZTo6Y3NzUHJpbWl0aXZlVG9MZW5ndGgob2JqZWN0LCBzdHlsZS0+c3Ryb2tlRGFzaE9mZnNl
dCgpLCAwLjApOwogICAgICAgICBjYWlyb19zZXRfZGFzaChjciwgZHNoLCBkYXNoZXMuc2l6ZSgp
LCBkYXNoT2Zmc2V0KTsKICAgICAgICAgZGVsZXRlW10gZHNoOworCisgICAgICAgIGNhaXJvX3Nl
dF9maWxsX3J1bGUoY3IsIENBSVJPX0ZJTExfUlVMRV9FVkVOX09ERCk7CisgICAgICAgIGlmIChp
c1BhaW50aW5nVGV4dCkKKyAgICAgICAgICAgIGNvbnRleHQtPnNldFRleHREcmF3aW5nTW9kZShj
VGV4dFN0cm9rZSk7CiAgICAgfQogCiAgICAgY2Fpcm9fc2V0X3NvdXJjZV9yZ2JhKGNyLCByZWQs
IGdyZWVuLCBibHVlLCBhbHBoYSk7Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20830</attachid>
            <date>2008-04-26 04:29:52 -0700</date>
            <delta_ts>2008-04-26 22:58:19 -0700</delta_ts>
            <desc>Painting of texts in SVG and HTML</desc>
            <filename>CairoSVGText.patch</filename>
            <type>text/plain</type>
            <size>8770</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjU5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMDQtMjYgIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXQVJOSU5H
OiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICBTVkctIGFuZCBIVE1M
LXRleHQgYXJlIGRpc3BsYXllZCB3ZWxsIG5vdywgd2l0aCBhIHdvcmthcm91bmQuIEFkZGVkCisg
ICAgICAgIHN1cHBvcnQgZm9yIHRleHQtc3Ryb2tlIChTVkcgbmVlZHMgaXQpIGFuZCBtb2RpZmll
ZCB0ZXh0LXNoYWRvdyB0byB3b3JrCisgICAgICAgIG9uIHN0cm9rZWQgdGV4dHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2NhaXJvL1NW
R1BhaW50U2VydmVyR3JhZGllbnRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYWlu
dFNlcnZlckdyYWRpZW50OjpzZXR1cCk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2NhaXJvL1NW
R1BhaW50U2VydmVyU29saWRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYWludFNl
cnZlclNvbGlkOjpzZXR1cCk6CisKIDIwMDgtMDQtMjUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0uCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCShyZXZpc2lvbiAzMjQ4
MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhp
Y3NDb250ZXh0KiBjCiAgICAgfQogCiAgICAgQ29sb3IgZmlsbENvbG9yID0gY29udGV4dC0+Zmls
bENvbG9yKCk7CisgICAgQ29sb3Igc3Ryb2tlQ29sb3IgPSBjb250ZXh0LT5zdHJva2VDb2xvcigp
OwogCiAgICAgLy8gVGV4dCBzaGFkb3csIGluc3BpcmVkIGJ5IEZvbnRNYWMKICAgICBJbnRTaXpl
IHNoYWRvd1NpemU7CkBAIC02MCwyOCArNjEsNTAgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdy
YXBoaWNzQ29udGV4dCogYwogICAgIGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFk
b3dCbHVyLCBzaGFkb3dDb2xvcik7CiAKICAgICAvLyBUT0RPOiBCbHVyIHN1cHBvcnQKLSAgICBi
b29sIGhhc1NoYWRvdyA9IGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbCAm
JiBzaGFkb3dDb2xvci5pc1ZhbGlkKCkgJiYgIXNoYWRvd1NpemUuaXNFbXB0eSgpOwotICAgIGlm
IChoYXNTaGFkb3cpIHsKLSAgICAgICAgLy8gRGlzYWJsZSBncmFwaGljcyBjb250ZXh0IHNoYWRv
d3MgKG5vdCB5ZXQgaW1wbGVtZW50ZWQpIGFuZCBwYWludCB0aGVtIG1hbnVhbGx5Ci0gICAgICAg
IGNvbnRleHQtPmNsZWFyU2hhZG93KCk7Ci0gICAgICAgIENvbG9yIHNoYWRvd0ZpbGxDb2xvcihz
aGFkb3dDb2xvci5yZWQoKSwgc2hhZG93Q29sb3IuZ3JlZW4oKSwgc2hhZG93Q29sb3IuYmx1ZSgp
LCBzaGFkb3dDb2xvci5hbHBoYSgpICogZmlsbENvbG9yLmFscGhhKCkgLyAyNTUpOwotICAgICAg
ICBjYWlyb19zYXZlKGNyKTsKKyAgICBib29sIGhhc1NoYWRvdyA9IHNoYWRvd0NvbG9yLmlzVmFs
aWQoKSAmJiAhc2hhZG93U2l6ZS5pc0VtcHR5KCk7CiAKLSAgICAgICAgZmxvYXQgcmVkLCBncmVl
biwgYmx1ZSwgYWxwaGE7Ci0gICAgICAgIHNoYWRvd0ZpbGxDb2xvci5nZXRSR0JBKHJlZCwgZ3Jl
ZW4sIGJsdWUsIGFscGhhKTsKLSAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZV9yZ2JhKGNyLCByZWQs
IGdyZWVuLCBibHVlLCBhbHBoYSk7CisgICAgLy8gRGlzYWJsZSBncmFwaGljcyBjb250ZXh0IHNo
YWRvd3MgKG5vdCB5ZXQgaW1wbGVtZW50ZWQpIGFuZCBwYWludCB0aGVtIG1hbnVhbGx5CisgICAg
aWYgKGhhc1NoYWRvdykKKyAgICAgICAgY29udGV4dC0+Y2xlYXJTaGFkb3coKTsKIAotICAgICAg
ICBjYWlyb190cmFuc2xhdGUoY3IsIHNoYWRvd1NpemUud2lkdGgoKSwgc2hhZG93U2l6ZS5oZWln
aHQoKSk7CisgICAgaWYgKGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpICYgY1RleHRGaWxsKSB7
CisgICAgICAgIC8vIFBhaW50IHNoYWRvd3MgbWFudWFsbHkgKG5vdCB5ZXQgaW1wbGVtZW50ZWQp
CisgICAgICAgIGlmIChoYXNTaGFkb3cpIHsKKyAgICAgICAgICAgIENvbG9yIHNoYWRvd0ZpbGxD
b2xvcihzaGFkb3dDb2xvci5yZWQoKSwgc2hhZG93Q29sb3IuZ3JlZW4oKSwgc2hhZG93Q29sb3Iu
Ymx1ZSgpLCBzaGFkb3dDb2xvci5hbHBoYSgpICogZmlsbENvbG9yLmFscGhhKCkgLyAyNTUpOwor
ICAgICAgICAgICAgY2Fpcm9fc2F2ZShjcik7CisgICAgICAgICAgICBjYWlyb19zZXRfc291cmNl
X3JnYmEoY3IsIHNoYWRvd0ZpbGxDb2xvci5yZWQoKSAvIDI1NS4wLCBzaGFkb3dGaWxsQ29sb3Iu
Z3JlZW4oKSAvIDI1NS4wLCBzaGFkb3dGaWxsQ29sb3IuYmx1ZSgpIC8gMjU1LjAsIHNoYWRvd0Zp
bGxDb2xvci5hbHBoYSgpKTsKKworICAgICAgICAgICAgY2Fpcm9fdHJhbnNsYXRlKGNyLCBzaGFk
b3dTaXplLndpZHRoKCksIHNoYWRvd1NpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgY2Fpcm9f
c2hvd19nbHlwaHMoY3IsIGdseXBocywgbnVtR2x5cGhzKTsKKworICAgICAgICAgICAgY2Fpcm9f
cmVzdG9yZShjcik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCEoY2Fpcm9fZ2V0X2ZpbGxfcnVs
ZShjcikgPT0gQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0REKSkKKyAgICAgICAgICAgIGNhaXJvX3Nl
dF9zb3VyY2VfcmdiYShjciwgZmlsbENvbG9yLnJlZCgpIC8gMjU1LjAsIGZpbGxDb2xvci5ncmVl
bigpIC8gMjU1LjAsIGZpbGxDb2xvci5ibHVlKCkgLyAyNTUuMCwgZmlsbENvbG9yLmFscGhhKCkg
LyAyNTUuMCk7CiAgICAgICAgIGNhaXJvX3Nob3dfZ2x5cGhzKGNyLCBnbHlwaHMsIG51bUdseXBo
cyk7Ci0KLSAgICAgICAgY2Fpcm9fcmVzdG9yZShjcik7CisgICAgICAgIGNhaXJvX2ZpbGxfcHJl
c2VydmUoY3IpOwogICAgIH0KIAotICAgIGZsb2F0IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhOwot
ICAgIGZpbGxDb2xvci5nZXRSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKLSAgICBjYWly
b19zZXRfc291cmNlX3JnYmEoY3IsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKLQotICAgIGNh
aXJvX3Nob3dfZ2x5cGhzKGNyLCBnbHlwaHMsIG51bUdseXBocyk7CisgICAgaWYgKGNvbnRleHQt
PnRleHREcmF3aW5nTW9kZSgpICYgY1RleHRTdHJva2UpIHsKKyAgICAgICAgLy8gUGFpbnQgc2hh
ZG93cyBtYW51YWxseSAobm90IHlldCBpbXBsZW1lbnRlZCkKKyAgICAgICAgaWYgKGhhc1NoYWRv
dykgeworICAgICAgICAgICAgQ29sb3Igc2hhZG93U3Ryb2tlQ29sb3Ioc2hhZG93Q29sb3IucmVk
KCksIHNoYWRvd0NvbG9yLmdyZWVuKCksIHNoYWRvd0NvbG9yLmJsdWUoKSwgc2hhZG93Q29sb3Iu
YWxwaGEoKSAqIHN0cm9rZUNvbG9yLmFscGhhKCkgLyAyNTUpOworICAgICAgICAgICAgY2Fpcm9f
c2F2ZShjcik7CisgICAgICAgICAgICBjYWlyb190cmFuc2xhdGUoY3IsIHNoYWRvd1NpemUud2lk
dGgoKSwgc2hhZG93U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgICAgICBjYWlyb19nbHlwaF9wYXRo
KGNyLCBnbHlwaHMsIG51bUdseXBocyk7CisgICAgICAgICAgICBjYWlyb19zZXRfc291cmNlX3Jn
YmEoY3IsIHNoYWRvd1N0cm9rZUNvbG9yLnJlZCgpIC8gMjU1LjAsIHNoYWRvd1N0cm9rZUNvbG9y
LmdyZWVuKCkgLyAyNTUuMCwgc2hhZG93U3Ryb2tlQ29sb3IuYmx1ZSgpIC8gMjU1LjAsIHNoYWRv
d1N0cm9rZUNvbG9yLmFscGhhKCkgLyAyNTUuMCk7CisKKyAgICAgICAgICAgIGNhaXJvX3NldF9s
aW5lX3dpZHRoKGNyLCBjb250ZXh0LT5zdHJva2VUaGlja25lc3MoKSk7CisgICAgICAgICAgICBj
YWlyb19zdHJva2UoY3IpOworCisgICAgICAgICAgICBjYWlyb19yZXN0b3JlKGNyKTsKKyAgICAg
ICAgfQorICAgICAgICBjYWlyb19nbHlwaF9wYXRoKGNyLCBnbHlwaHMsIG51bUdseXBocyk7Cisg
ICAgICAgIGlmICghKGNhaXJvX2dldF9maWxsX3J1bGUoY3IpID09IENBSVJPX0ZJTExfUlVMRV9F
VkVOX09ERCkpCisgICAgICAgICAgICBjYWlyb19zZXRfc291cmNlX3JnYmEoY3IsIHN0cm9rZUNv
bG9yLnJlZCgpIC8gMjU1LjAsIHN0cm9rZUNvbG9yLmdyZWVuKCkgLyAyNTUuMCwgc3Ryb2tlQ29s
b3IuYmx1ZSgpIC8gMjU1LjAsIHN0cm9rZUNvbG9yLmFscGhhKCkgLyAyNTUuMCk7CisgICAgICAg
IGNhaXJvX3NldF9saW5lX3dpZHRoKGNyLCBjb250ZXh0LT5zdHJva2VUaGlja25lc3MoKSk7Cisg
ICAgICAgIGNhaXJvX3N0cm9rZShjcik7CisgICAgfQogCiAgICAgLy8gUmUtZW5hYmxlIHRoZSBw
bGF0Zm9ybSBzaGFkb3cgd2UgZGlzYWJsZWQgZWFybGllcgogICAgIGlmIChoYXNTaGFkb3cpCklu
ZGV4OiBXZWJDb3JlL3N2Zy9ncmFwaGljcy9jYWlyby9TVkdQYWludFNlcnZlckdyYWRpZW50Q2Fp
cm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50
U2VydmVyR3JhZGllbnRDYWlyby5jcHAJKHJldmlzaW9uIDMyNDgzKQorKysgV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJHcmFkaWVudENhaXJvLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTI2LDYgKzEyNiw0MiBAQCBib29sIFNWR1BhaW50U2VydmVyR3JhZGllbnQ6OnNl
dHVwKEdyYXBoCiAgICAgICAgIGNhaXJvX3BhdHRlcm5fYWRkX2NvbG9yX3N0b3BfcmdiYShwYXR0
ZXJuLCBvZmZzZXQsIGNvbG9yLnJlZCgpIC8gMjU1LjAsIGNvbG9yLmdyZWVuKCkgLyAyNTUuMCwg
Y29sb3IuYmx1ZSgpIC8gMjU1LjAsIGNvbG9yLmFscGhhKCkgLyAyNTUuMCk7CiAgICAgfQogCisg
ICAgLy8gVE9ETzogc2hhcmUgdGhpcyBjb2RlIHdpdGggb3RoZXIgUGFpbnRTZXJ2ZXJzCisKKyAg
ICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0eWxl
KCk7CisKKyAgICBpZiAoKHR5cGUgJiBBcHBseVRvRmlsbFRhcmdldFR5cGUpICYmIHN0eWxlLT5o
YXNGaWxsKCkpIHsKKworICAgICAgICAvLyBXb3JrYXJvdW5kIHRvIGdldCB0ZXh0cyBkaXNwbGF5
ZWQKKyAgICAgICAgLy9jYWlyb19zZXRfZmlsbF9ydWxlKGNyLCBzdHlsZS0+ZmlsbFJ1bGUoKSA9
PSBSVUxFX0VWRU5PREQgPyBDQUlST19GSUxMX1JVTEVfRVZFTl9PREQgOiBDQUlST19GSUxMX1JV
TEVfV0lORElORyk7CisgICAgICAgIGNhaXJvX3NldF9maWxsX3J1bGUoY3IsIENBSVJPX0ZJTExf
UlVMRV9FVkVOX09ERCk7CisKKyAgICAgICAgaWYgKGlzUGFpbnRpbmdUZXh0KQorICAgICAgICAg
ICAgY29udGV4dC0+c2V0VGV4dERyYXdpbmdNb2RlKGNUZXh0RmlsbCk7CisgICAgfQorCisgICAg
aWYgKCh0eXBlICYgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUpICYmIHN0eWxlLT5oYXNTdHJva2Uo
KSkgeworICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VUaGlja25lc3MoU1ZHUmVuZGVyU3R5bGU6
OmNzc1ByaW1pdGl2ZVRvTGVuZ3RoKG9iamVjdCwgc3R5bGUtPnN0cm9rZVdpZHRoKCksIDEuMCkp
OworICAgICAgICBjb250ZXh0LT5zZXRMaW5lQ2FwKHN0eWxlLT5jYXBTdHlsZSgpKTsKKyAgICAg
ICAgY29udGV4dC0+c2V0TGluZUpvaW4oc3R5bGUtPmpvaW5TdHlsZSgpKTsKKyAgICAgICAgaWYg
KHN0eWxlLT5qb2luU3R5bGUoKSA9PSBNaXRlckpvaW4pCisgICAgICAgICAgICBjb250ZXh0LT5z
ZXRNaXRlckxpbWl0KHN0eWxlLT5zdHJva2VNaXRlckxpbWl0KCkpOworCisgICAgICAgIGNvbnN0
IERhc2hBcnJheSYgZGFzaGVzID0gZGFzaEFycmF5RnJvbVJlbmRlcmluZ1N0eWxlKG9iamVjdC0+
c3R5bGUoKSk7CisgICAgICAgIGRvdWJsZSogZHNoID0gbmV3IGRvdWJsZVtkYXNoZXMuc2l6ZSgp
XTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCA7IGkgPCBkYXNoZXMuc2l6ZSgpIDsgaSsr
KQorICAgICAgICAgICAgZHNoW2ldID0gZGFzaGVzW2ldOworICAgICAgICBkb3VibGUgZGFzaE9m
ZnNldCA9IFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVUb0xlbmd0aChvYmplY3QsIHN0eWxl
LT5zdHJva2VEYXNoT2Zmc2V0KCksIDAuMCk7CisgICAgICAgIGNhaXJvX3NldF9kYXNoKGNyLCBk
c2gsIGRhc2hlcy5zaXplKCksIGRhc2hPZmZzZXQpOworICAgICAgICBkZWxldGVbXSBkc2g7CisK
KyAgICAgICAgLy8gV29ya2Fyb3VuZCB0byBnZXQgdGV4dHMgZGlzcGxheWVkCisgICAgICAgIGNh
aXJvX3NldF9maWxsX3J1bGUoY3IsIENBSVJPX0ZJTExfUlVMRV9FVkVOX09ERCk7CisKKyAgICAg
ICAgaWYgKGlzUGFpbnRpbmdUZXh0KQorICAgICAgICAgICAgY29udGV4dC0+c2V0VGV4dERyYXdp
bmdNb2RlKGNUZXh0U3Ryb2tlKTsKKyAgICB9CisKICAgICBjYWlyb19zZXRfc291cmNlKGNyLCBw
YXR0ZXJuKTsKICAgICBjYWlyb19wYXR0ZXJuX2Rlc3Ryb3kocGF0dGVybik7CiAKSW5kZXg6IFdl
YkNvcmUvc3ZnL2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVyU29saWRDYWlyby5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvZ3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJTb2xp
ZENhaXJvLmNwcAkocmV2aXNpb24gMzI0ODMpCisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9jYWly
by9TVkdQYWludFNlcnZlclNvbGlkQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMyAr
NDEsMTkgQEAgYm9vbCBTVkdQYWludFNlcnZlclNvbGlkOjpzZXR1cChHcmFwaGljcwogICAgIGlm
ICgodHlwZSAmIEFwcGx5VG9GaWxsVGFyZ2V0VHlwZSkgJiYgc3R5bGUtPmhhc0ZpbGwoKSkgewog
ICAgICAgICBhbHBoYSA9IHN0eWxlLT5maWxsT3BhY2l0eSgpOwogCi0gICAgICAgIGNhaXJvX3Nl
dF9maWxsX3J1bGUoY3IsIHN0eWxlLT5maWxsUnVsZSgpID09IFJVTEVfRVZFTk9ERCA/IENBSVJP
X0ZJTExfUlVMRV9FVkVOX09ERCA6IENBSVJPX0ZJTExfUlVMRV9XSU5ESU5HKTsKKyAgICAgICAg
Ly8gV29ya2Fyb3VuZCB0byBnZXQgdGV4dHMgZGlzcGxheWVkCisgICAgICAgIC8vY2Fpcm9fc2V0
X2ZpbGxfcnVsZShjciwgc3R5bGUtPmZpbGxSdWxlKCkgPT0gUlVMRV9FVkVOT0REID8gQ0FJUk9f
RklMTF9SVUxFX0VWRU5fT0REIDogQ0FJUk9fRklMTF9SVUxFX1dJTkRJTkcpOworICAgICAgICBj
YWlyb19zZXRfZmlsbF9ydWxlKGNyLCBDQUlST19GSUxMX1JVTEVfRVZFTl9PREQpOworCisKKyAg
ICAgICAgaWYgKGlzUGFpbnRpbmdUZXh0KQorICAgICAgICAgICAgY29udGV4dC0+c2V0VGV4dERy
YXdpbmdNb2RlKGNUZXh0RmlsbCk7CiAgICAgfQogCiAgICAgaWYgKCh0eXBlICYgQXBwbHlUb1N0
cm9rZVRhcmdldFR5cGUpICYmIHN0eWxlLT5oYXNTdHJva2UoKSkgewogICAgICAgICBhbHBoYSA9
IHN0eWxlLT5zdHJva2VPcGFjaXR5KCk7CiAKLSAgICAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgo
Y3IsIFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVUb0xlbmd0aChvYmplY3QsIHN0eWxlLT5z
dHJva2VXaWR0aCgpLCAxLjApKTsKKyAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNz
KFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVUb0xlbmd0aChvYmplY3QsIHN0eWxlLT5zdHJv
a2VXaWR0aCgpLCAxLjApKTsKICAgICAgICAgY29udGV4dC0+c2V0TGluZUNhcChzdHlsZS0+Y2Fw
U3R5bGUoKSk7CiAgICAgICAgIGNvbnRleHQtPnNldExpbmVKb2luKHN0eWxlLT5qb2luU3R5bGUo
KSk7CiAgICAgICAgIGlmIChzdHlsZS0+am9pblN0eWxlKCkgPT0gTWl0ZXJKb2luKQpAQCAtNjAs
NiArNjYsMTIgQEAgYm9vbCBTVkdQYWludFNlcnZlclNvbGlkOjpzZXR1cChHcmFwaGljcwogICAg
ICAgICBkb3VibGUgZGFzaE9mZnNldCA9IFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVUb0xl
bmd0aChvYmplY3QsIHN0eWxlLT5zdHJva2VEYXNoT2Zmc2V0KCksIDAuMCk7CiAgICAgICAgIGNh
aXJvX3NldF9kYXNoKGNyLCBkc2gsIGRhc2hlcy5zaXplKCksIGRhc2hPZmZzZXQpOwogICAgICAg
ICBkZWxldGVbXSBkc2g7CisKKyAgICAgICAgLy8gV29ya2Fyb3VuZCB0byBnZXQgdGV4dHMgZGlz
cGxheWVkCisgICAgICAgIGNhaXJvX3NldF9maWxsX3J1bGUoY3IsIENBSVJPX0ZJTExfUlVMRV9F
VkVOX09ERCk7CisKKyAgICAgICAgaWYgKGlzUGFpbnRpbmdUZXh0KQorICAgICAgICAgICAgY29u
dGV4dC0+c2V0VGV4dERyYXdpbmdNb2RlKGNUZXh0U3Ryb2tlKTsKICAgICB9CiAKICAgICBjYWly
b19zZXRfc291cmNlX3JnYmEoY3IsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20845</attachid>
            <date>2008-04-26 22:58:19 -0700</date>
            <delta_ts>2008-11-18 08:41:09 -0800</delta_ts>
            <desc>Painting of texts in SVG and HTML</desc>
            <filename>CairoSVGText.patch</filename>
            <type>text/plain</type>
            <size>8730</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjU5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMDQtMjYgIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXQVJOSU5H
OiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICBTVkctIGFuZCBIVE1M
LXRleHQgYXJlIGRpc3BsYXllZCB3ZWxsIG5vdywgd2l0aCBhIHdvcmthcm91bmQuIEFkZGVkCisg
ICAgICAgIHN1cHBvcnQgZm9yIHRleHQtc3Ryb2tlIChTVkcgbmVlZHMgaXQpIGFuZCBtb2RpZmll
ZCB0ZXh0LXNoYWRvdyB0byB3b3JrCisgICAgICAgIG9uIHN0cm9rZWQgdGV4dHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2NhaXJvL1NW
R1BhaW50U2VydmVyR3JhZGllbnRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYWlu
dFNlcnZlckdyYWRpZW50OjpzZXR1cCk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2NhaXJvL1NW
R1BhaW50U2VydmVyU29saWRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYWludFNl
cnZlclNvbGlkOjpzZXR1cCk6CisKIDIwMDgtMDQtMjUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0uCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCShyZXZpc2lvbiAzMjU5
MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhp
Y3NDb250ZXh0KiBjCiAgICAgfQogCiAgICAgQ29sb3IgZmlsbENvbG9yID0gY29udGV4dC0+Zmls
bENvbG9yKCk7CisgICAgQ29sb3Igc3Ryb2tlQ29sb3IgPSBjb250ZXh0LT5zdHJva2VDb2xvcigp
OwogCiAgICAgLy8gVGV4dCBzaGFkb3csIGluc3BpcmVkIGJ5IEZvbnRNYWMKICAgICBJbnRTaXpl
IHNoYWRvd1NpemU7CkBAIC02MCwyOCArNjEsNTAgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdy
YXBoaWNzQ29udGV4dCogYwogICAgIGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFk
b3dCbHVyLCBzaGFkb3dDb2xvcik7CiAKICAgICAvLyBUT0RPOiBCbHVyIHN1cHBvcnQKLSAgICBi
b29sIGhhc1NoYWRvdyA9IGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbCAm
JiBzaGFkb3dDb2xvci5pc1ZhbGlkKCkgJiYgIXNoYWRvd1NpemUuaXNFbXB0eSgpOwotICAgIGlm
IChoYXNTaGFkb3cpIHsKLSAgICAgICAgLy8gRGlzYWJsZSBncmFwaGljcyBjb250ZXh0IHNoYWRv
d3MgKG5vdCB5ZXQgaW1wbGVtZW50ZWQpIGFuZCBwYWludCB0aGVtIG1hbnVhbGx5Ci0gICAgICAg
IGNvbnRleHQtPmNsZWFyU2hhZG93KCk7Ci0gICAgICAgIENvbG9yIHNoYWRvd0ZpbGxDb2xvcihz
aGFkb3dDb2xvci5yZWQoKSwgc2hhZG93Q29sb3IuZ3JlZW4oKSwgc2hhZG93Q29sb3IuYmx1ZSgp
LCBzaGFkb3dDb2xvci5hbHBoYSgpICogZmlsbENvbG9yLmFscGhhKCkgLyAyNTUpOwotICAgICAg
ICBjYWlyb19zYXZlKGNyKTsKKyAgICBib29sIGhhc1NoYWRvdyA9IHNoYWRvd0NvbG9yLmlzVmFs
aWQoKSAmJiAhc2hhZG93U2l6ZS5pc0VtcHR5KCk7CiAKLSAgICAgICAgZmxvYXQgcmVkLCBncmVl
biwgYmx1ZSwgYWxwaGE7Ci0gICAgICAgIHNoYWRvd0ZpbGxDb2xvci5nZXRSR0JBKHJlZCwgZ3Jl
ZW4sIGJsdWUsIGFscGhhKTsKLSAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZV9yZ2JhKGNyLCByZWQs
IGdyZWVuLCBibHVlLCBhbHBoYSk7CisgICAgLy8gRGlzYWJsZSBncmFwaGljcyBjb250ZXh0IHNo
YWRvd3MgKG5vdCB5ZXQgaW1wbGVtZW50ZWQpIGFuZCBwYWludCB0aGVtIG1hbnVhbGx5CisgICAg
aWYgKGhhc1NoYWRvdykKKyAgICAgICAgY29udGV4dC0+Y2xlYXJTaGFkb3coKTsKIAotICAgICAg
ICBjYWlyb190cmFuc2xhdGUoY3IsIHNoYWRvd1NpemUud2lkdGgoKSwgc2hhZG93U2l6ZS5oZWln
aHQoKSk7CisgICAgaWYgKGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpICYgY1RleHRGaWxsKSB7
CisgICAgICAgIC8vIFBhaW50IHNoYWRvd3MgbWFudWFsbHkgKG5vdCB5ZXQgaW1wbGVtZW50ZWQp
CisgICAgICAgIGlmIChoYXNTaGFkb3cpIHsKKyAgICAgICAgICAgIENvbG9yIHNoYWRvd0ZpbGxD
b2xvcihzaGFkb3dDb2xvci5yZWQoKSwgc2hhZG93Q29sb3IuZ3JlZW4oKSwgc2hhZG93Q29sb3Iu
Ymx1ZSgpLCBzaGFkb3dDb2xvci5hbHBoYSgpICogZmlsbENvbG9yLmFscGhhKCkgLyAyNTUpOwor
ICAgICAgICAgICAgY2Fpcm9fc2F2ZShjcik7CisgICAgICAgICAgICBjYWlyb19zZXRfc291cmNl
X3JnYmEoY3IsIHNoYWRvd0ZpbGxDb2xvci5yZWQoKSAvIDI1NS4wLCBzaGFkb3dGaWxsQ29sb3Iu
Z3JlZW4oKSAvIDI1NS4wLCBzaGFkb3dGaWxsQ29sb3IuYmx1ZSgpIC8gMjU1LjAsIHNoYWRvd0Zp
bGxDb2xvci5hbHBoYSgpKTsKKworICAgICAgICAgICAgY2Fpcm9fdHJhbnNsYXRlKGNyLCBzaGFk
b3dTaXplLndpZHRoKCksIHNoYWRvd1NpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgY2Fpcm9f
c2hvd19nbHlwaHMoY3IsIGdseXBocywgbnVtR2x5cGhzKTsKKworICAgICAgICAgICAgY2Fpcm9f
cmVzdG9yZShjcik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCEoY2Fpcm9fZ2V0X2ZpbGxfcnVs
ZShjcikgPT0gQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0REKSkKKyAgICAgICAgICAgIGNhaXJvX3Nl
dF9zb3VyY2VfcmdiYShjciwgZmlsbENvbG9yLnJlZCgpIC8gMjU1LjAsIGZpbGxDb2xvci5ncmVl
bigpIC8gMjU1LjAsIGZpbGxDb2xvci5ibHVlKCkgLyAyNTUuMCwgZmlsbENvbG9yLmFscGhhKCkg
LyAyNTUuMCk7CiAgICAgICAgIGNhaXJvX3Nob3dfZ2x5cGhzKGNyLCBnbHlwaHMsIG51bUdseXBo
cyk7Ci0KLSAgICAgICAgY2Fpcm9fcmVzdG9yZShjcik7CisgICAgICAgIGNhaXJvX2ZpbGxfcHJl
c2VydmUoY3IpOwogICAgIH0KIAotICAgIGZsb2F0IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhOwot
ICAgIGZpbGxDb2xvci5nZXRSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKLSAgICBjYWly
b19zZXRfc291cmNlX3JnYmEoY3IsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKLQotICAgIGNh
aXJvX3Nob3dfZ2x5cGhzKGNyLCBnbHlwaHMsIG51bUdseXBocyk7CisgICAgaWYgKGNvbnRleHQt
PnRleHREcmF3aW5nTW9kZSgpICYgY1RleHRTdHJva2UpIHsKKyAgICAgICAgLy8gUGFpbnQgc2hh
ZG93cyBtYW51YWxseSAobm90IHlldCBpbXBsZW1lbnRlZCkKKyAgICAgICAgaWYgKGhhc1NoYWRv
dykgeworICAgICAgICAgICAgQ29sb3Igc2hhZG93U3Ryb2tlQ29sb3Ioc2hhZG93Q29sb3IucmVk
KCksIHNoYWRvd0NvbG9yLmdyZWVuKCksIHNoYWRvd0NvbG9yLmJsdWUoKSwgc2hhZG93Q29sb3Iu
YWxwaGEoKSAqIHN0cm9rZUNvbG9yLmFscGhhKCkgLyAyNTUpOworICAgICAgICAgICAgY2Fpcm9f
c2F2ZShjcik7CisgICAgICAgICAgICBjYWlyb190cmFuc2xhdGUoY3IsIHNoYWRvd1NpemUud2lk
dGgoKSwgc2hhZG93U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgICAgICBjYWlyb19nbHlwaF9wYXRo
KGNyLCBnbHlwaHMsIG51bUdseXBocyk7CisgICAgICAgICAgICBjYWlyb19zZXRfc291cmNlX3Jn
YmEoY3IsIHNoYWRvd1N0cm9rZUNvbG9yLnJlZCgpIC8gMjU1LjAsIHNoYWRvd1N0cm9rZUNvbG9y
LmdyZWVuKCkgLyAyNTUuMCwgc2hhZG93U3Ryb2tlQ29sb3IuYmx1ZSgpIC8gMjU1LjAsIHNoYWRv
d1N0cm9rZUNvbG9yLmFscGhhKCkgLyAyNTUuMCk7CisKKyAgICAgICAgICAgIGNhaXJvX3NldF9s
aW5lX3dpZHRoKGNyLCBjb250ZXh0LT5zdHJva2VUaGlja25lc3MoKSk7CisgICAgICAgICAgICBj
YWlyb19zdHJva2UoY3IpOworCisgICAgICAgICAgICBjYWlyb19yZXN0b3JlKGNyKTsKKyAgICAg
ICAgfQorICAgICAgICBjYWlyb19nbHlwaF9wYXRoKGNyLCBnbHlwaHMsIG51bUdseXBocyk7Cisg
ICAgICAgIGlmICghKGNhaXJvX2dldF9maWxsX3J1bGUoY3IpID09IENBSVJPX0ZJTExfUlVMRV9F
VkVOX09ERCkpCisgICAgICAgICAgICBjYWlyb19zZXRfc291cmNlX3JnYmEoY3IsIHN0cm9rZUNv
bG9yLnJlZCgpIC8gMjU1LjAsIHN0cm9rZUNvbG9yLmdyZWVuKCkgLyAyNTUuMCwgc3Ryb2tlQ29s
b3IuYmx1ZSgpIC8gMjU1LjAsIHN0cm9rZUNvbG9yLmFscGhhKCkgLyAyNTUuMCk7CisgICAgICAg
IGNhaXJvX3NldF9saW5lX3dpZHRoKGNyLCBjb250ZXh0LT5zdHJva2VUaGlja25lc3MoKSk7Cisg
ICAgICAgIGNhaXJvX3N0cm9rZShjcik7CisgICAgfQogCiAgICAgLy8gUmUtZW5hYmxlIHRoZSBw
bGF0Zm9ybSBzaGFkb3cgd2UgZGlzYWJsZWQgZWFybGllcgogICAgIGlmIChoYXNTaGFkb3cpCklu
ZGV4OiBXZWJDb3JlL3N2Zy9ncmFwaGljcy9jYWlyby9TVkdQYWludFNlcnZlckdyYWRpZW50Q2Fp
cm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50
U2VydmVyR3JhZGllbnRDYWlyby5jcHAJKHJldmlzaW9uIDMyNTkwKQorKysgV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJHcmFkaWVudENhaXJvLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTI2LDYgKzEyNiw0NSBAQCBib29sIFNWR1BhaW50U2VydmVyR3JhZGllbnQ6OnNl
dHVwKEdyYXBoCiAgICAgICAgIGNhaXJvX3BhdHRlcm5fYWRkX2NvbG9yX3N0b3BfcmdiYShwYXR0
ZXJuLCBvZmZzZXQsIGNvbG9yLnJlZCgpIC8gMjU1LjAsIGNvbG9yLmdyZWVuKCkgLyAyNTUuMCwg
Y29sb3IuYmx1ZSgpIC8gMjU1LjAsIGNvbG9yLmFscGhhKCkgLyAyNTUuMCk7CiAgICAgfQogCisg
ICAgLy8gVE9ETzogc2hhcmUgdGhpcyBjb2RlIHdpdGggb3RoZXIgUGFpbnRTZXJ2ZXJzCisKKyAg
ICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0eWxl
KCk7CisKKyAgICBpZiAoKHR5cGUgJiBBcHBseVRvRmlsbFRhcmdldFR5cGUpICYmIHN0eWxlLT5o
YXNGaWxsKCkpIHsKKworICAgICAgICBjYWlyb19zZXRfZmlsbF9ydWxlKGNyLCBzdHlsZS0+Zmls
bFJ1bGUoKSA9PSBSVUxFX0VWRU5PREQgPyBDQUlST19GSUxMX1JVTEVfRVZFTl9PREQgOiBDQUlS
T19GSUxMX1JVTEVfV0lORElORyk7CisKKyAgICAgICAgaWYgKGlzUGFpbnRpbmdUZXh0KSB7Cisg
ICAgICAgICAgICAvLyBXb3JrYXJvdW5kIHRvIGdldCB0ZXh0cyBkaXNwbGF5ZWQKKyAgICAgICAg
ICAgIGNhaXJvX3NldF9maWxsX3J1bGUoY3IsIENBSVJPX0ZJTExfUlVMRV9FVkVOX09ERCk7CisK
KyAgICAgICAgICAgIGNvbnRleHQtPnNldFRleHREcmF3aW5nTW9kZShjVGV4dEZpbGwpOworICAg
ICAgICB9CisgICAgfQorCisgICAgaWYgKCh0eXBlICYgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUp
ICYmIHN0eWxlLT5oYXNTdHJva2UoKSkgeworICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VUaGlj
a25lc3MoU1ZHUmVuZGVyU3R5bGU6OmNzc1ByaW1pdGl2ZVRvTGVuZ3RoKG9iamVjdCwgc3R5bGUt
PnN0cm9rZVdpZHRoKCksIDEuMCkpOworICAgICAgICBjb250ZXh0LT5zZXRMaW5lQ2FwKHN0eWxl
LT5jYXBTdHlsZSgpKTsKKyAgICAgICAgY29udGV4dC0+c2V0TGluZUpvaW4oc3R5bGUtPmpvaW5T
dHlsZSgpKTsKKyAgICAgICAgaWYgKHN0eWxlLT5qb2luU3R5bGUoKSA9PSBNaXRlckpvaW4pCisg
ICAgICAgICAgICBjb250ZXh0LT5zZXRNaXRlckxpbWl0KHN0eWxlLT5zdHJva2VNaXRlckxpbWl0
KCkpOworCisgICAgICAgIGNvbnN0IERhc2hBcnJheSYgZGFzaGVzID0gZGFzaEFycmF5RnJvbVJl
bmRlcmluZ1N0eWxlKG9iamVjdC0+c3R5bGUoKSk7CisgICAgICAgIGRvdWJsZSogZHNoID0gbmV3
IGRvdWJsZVtkYXNoZXMuc2l6ZSgpXTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCA7IGkg
PCBkYXNoZXMuc2l6ZSgpIDsgaSsrKQorICAgICAgICAgICAgZHNoW2ldID0gZGFzaGVzW2ldOwor
ICAgICAgICBkb3VibGUgZGFzaE9mZnNldCA9IFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVU
b0xlbmd0aChvYmplY3QsIHN0eWxlLT5zdHJva2VEYXNoT2Zmc2V0KCksIDAuMCk7CisgICAgICAg
IGNhaXJvX3NldF9kYXNoKGNyLCBkc2gsIGRhc2hlcy5zaXplKCksIGRhc2hPZmZzZXQpOworICAg
ICAgICBkZWxldGVbXSBkc2g7CisKKyAgICAgICAgaWYgKGlzUGFpbnRpbmdUZXh0KXsKKyAgICAg
ICAgICAgIC8vIFdvcmthcm91bmQgdG8gZ2V0IHRleHRzIGRpc3BsYXllZAorICAgICAgICAgICAg
Y2Fpcm9fc2V0X2ZpbGxfcnVsZShjciwgQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0REKTsKKworICAg
ICAgICAgICAgY29udGV4dC0+c2V0VGV4dERyYXdpbmdNb2RlKGNUZXh0U3Ryb2tlKTsKKyAgICAg
ICAgfQorICAgIH0KKwogICAgIGNhaXJvX3NldF9zb3VyY2UoY3IsIHBhdHRlcm4pOwogICAgIGNh
aXJvX3BhdHRlcm5fZGVzdHJveShwYXR0ZXJuKTsKIApJbmRleDogV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJTb2xpZENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9ncmFwaGljcy9jYWlyby9TVkdQYWludFNlcnZlclNvbGlkQ2Fpcm8uY3BwCShyZXZp
c2lvbiAzMjU5MCkKKysrIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVy
U29saWRDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCwyMCBAQCBib29sIFNW
R1BhaW50U2VydmVyU29saWQ6OnNldHVwKEdyYXBoaWNzCiAKICAgICBpZiAoKHR5cGUgJiBBcHBs
eVRvRmlsbFRhcmdldFR5cGUpICYmIHN0eWxlLT5oYXNGaWxsKCkpIHsKICAgICAgICAgYWxwaGEg
PSBzdHlsZS0+ZmlsbE9wYWNpdHkoKTsKLQogICAgICAgICBjYWlyb19zZXRfZmlsbF9ydWxlKGNy
LCBzdHlsZS0+ZmlsbFJ1bGUoKSA9PSBSVUxFX0VWRU5PREQgPyBDQUlST19GSUxMX1JVTEVfRVZF
Tl9PREQgOiBDQUlST19GSUxMX1JVTEVfV0lORElORyk7CisKKyAgICAgICAgaWYgKGlzUGFpbnRp
bmdUZXh0KSB7CisgICAgICAgICAgICAvLyBXb3JrYXJvdW5kIHRvIGdldCB0ZXh0cyBkaXNwbGF5
ZWQKKyAgICAgICAgICAgIGNhaXJvX3NldF9maWxsX3J1bGUoY3IsIENBSVJPX0ZJTExfUlVMRV9F
VkVOX09ERCk7CisKKyAgICAgICAgICAgIGNvbnRleHQtPnNldFRleHREcmF3aW5nTW9kZShjVGV4
dEZpbGwpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCh0eXBlICYgQXBwbHlUb1N0cm9r
ZVRhcmdldFR5cGUpICYmIHN0eWxlLT5oYXNTdHJva2UoKSkgewogICAgICAgICBhbHBoYSA9IHN0
eWxlLT5zdHJva2VPcGFjaXR5KCk7CiAKLSAgICAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgoY3Is
IFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVUb0xlbmd0aChvYmplY3QsIHN0eWxlLT5zdHJv
a2VXaWR0aCgpLCAxLjApKTsKKyAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKFNW
R1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVUb0xlbmd0aChvYmplY3QsIHN0eWxlLT5zdHJva2VX
aWR0aCgpLCAxLjApKTsKICAgICAgICAgY29udGV4dC0+c2V0TGluZUNhcChzdHlsZS0+Y2FwU3R5
bGUoKSk7CiAgICAgICAgIGNvbnRleHQtPnNldExpbmVKb2luKHN0eWxlLT5qb2luU3R5bGUoKSk7
CiAgICAgICAgIGlmIChzdHlsZS0+am9pblN0eWxlKCkgPT0gTWl0ZXJKb2luKQpAQCAtNjAsNiAr
NjYsMTMgQEAgYm9vbCBTVkdQYWludFNlcnZlclNvbGlkOjpzZXR1cChHcmFwaGljcwogICAgICAg
ICBkb3VibGUgZGFzaE9mZnNldCA9IFNWR1JlbmRlclN0eWxlOjpjc3NQcmltaXRpdmVUb0xlbmd0
aChvYmplY3QsIHN0eWxlLT5zdHJva2VEYXNoT2Zmc2V0KCksIDAuMCk7CiAgICAgICAgIGNhaXJv
X3NldF9kYXNoKGNyLCBkc2gsIGRhc2hlcy5zaXplKCksIGRhc2hPZmZzZXQpOwogICAgICAgICBk
ZWxldGVbXSBkc2g7CisKKyAgICAgICAgaWYgKGlzUGFpbnRpbmdUZXh0KXsKKyAgICAgICAgICAg
IC8vIFdvcmthcm91bmQgdG8gZ2V0IHRleHRzIGRpc3BsYXllZAorICAgICAgICAgICAgY2Fpcm9f
c2V0X2ZpbGxfcnVsZShjciwgQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0REKTsKKworICAgICAgICAg
ICAgY29udGV4dC0+c2V0VGV4dERyYXdpbmdNb2RlKGNUZXh0U3Ryb2tlKTsKKyAgICAgICAgfQog
ICAgIH0KIAogICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiYShjciwgcmVkLCBncmVlbiwgYmx1ZSwg
YWxwaGEpOwoK
</data>
<flag name="review"
          id="9117"
          type_id="1"
          status="-"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25237</attachid>
            <date>2008-11-18 08:41:09 -0800</date>
            <delta_ts>2009-02-26 23:58:54 -0800</delta_ts>
            <desc>Fonts with Pattern/Gradient</desc>
            <filename>Cairo-fonts2.patch</filename>
            <type>text/plain</type>
            <size>8079</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODU2MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDgtMTEtMTggIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBzdXBwb3J0IGZvciBncmFkaWVudHMsIHBhdHRlcm5zLCBnbG9iYWxBbHBoYQorICAgICAgICB0
byBDYWlybyBmb250cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnNldEZpbGwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJv
a2UpOgorCiAyMDA4LTExLTE4ICBUb3IgQXJuZSBWZXN0YsO4ICA8dGF2ZXN0Ym9AdHJvbGx0ZWNo
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAkocmV2aXNpb24gMzg0NDIp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTAsNiArMjUwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIHNldEFscGhhKGZsb2F0KTsKICNpZiBQTEFURk9STShDQUlSTykKICAgICAgICAgZmxvYXQg
Z2V0QWxwaGEoKTsKKyAgICAgICAgdm9pZCBzZXRGaWxsKCk7CisgICAgICAgIHZvaWQgc2V0U3Ry
b2tlKCk7CiAjZW5kaWYKIAogICAgICAgICB2b2lkIHNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21w
b3NpdGVPcGVyYXRvcik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Zv
bnRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9Gb250Q2Fpcm8uY3BwCShyZXZpc2lvbiAzODQ0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsMTggKzc4LDEz
IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGMKICAgICB9CiAKICAg
ICBpZiAoY29udGV4dC0+dGV4dERyYXdpbmdNb2RlKCkgJiBjVGV4dEZpbGwpIHsKLSAgICAgICAg
ZmxvYXQgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE7Ci0gICAgICAgIGZpbGxDb2xvci5nZXRSR0JB
KHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKLSAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZV9yZ2Jh
KGNyLCByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSk7Ci0KKyAgICAgICAgY29udGV4dC0+c2V0Rmls
bCgpOwogICAgICAgICBjYWlyb19zaG93X2dseXBocyhjciwgZ2x5cGhzLCBudW1HbHlwaHMpOwog
ICAgIH0KIAogICAgIGlmIChjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSAmIGNUZXh0U3Ryb2tl
KSB7Ci0gICAgICAgIENvbG9yIHN0cm9rZUNvbG9yID0gY29udGV4dC0+c3Ryb2tlQ29sb3IoKTsK
LSAgICAgICAgZmxvYXQgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE7Ci0gICAgICAgIHN0cm9rZUNv
bG9yLmdldFJHQkEocmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpOwotICAgICAgICBjYWlyb19zZXRf
c291cmNlX3JnYmEoY3IsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsgICAgICAgCisgICAgICAg
IGNvbnRleHQtPnNldFN0cm9rZSgpOyAgIAorICAgICAgICBjciA9IGNvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpOwogICAgICAgICBjYWlyb19nbHlwaF9wYXRoKGNyLCBnbHlwaHMsIG51bUdseXBo
cyk7CiAgICAgICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNyLCBjb250ZXh0LT5zdHJva2VUaGlj
a25lc3MoKSk7CiAgICAgICAgIGNhaXJvX3N0cm9rZShjcik7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNw
cAkocmV2aXNpb24gMzg0NDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDM5LDI5ICs0MzksMTAg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKCkKICAgICBjYWlyb19zYXZlKGNyKTsK
IAogICAgIGNhaXJvX3NldF9maWxsX3J1bGUoY3IsIGZpbGxSdWxlKCkgPT0gUlVMRV9FVkVOT0RE
ID8gQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0REIDogQ0FJUk9fRklMTF9SVUxFX1dJTkRJTkcpOwot
ICAgIHN3aXRjaCAobV9jb21tb24tPnN0YXRlLmZpbGxDb2xvclNwYWNlKSB7Ci0gICAgY2FzZSBT
b2xpZENvbG9yU3BhY2U6Ci0gICAgICAgIGlmIChmaWxsQ29sb3IoKS5hbHBoYSgpKSB7Ci0gICAg
ICAgICAgICBzZXRDb2xvcihjciwgZmlsbENvbG9yKCkpOwotICAgICAgICAgICAgY2Fpcm9fY2xp
cChjcik7Ci0gICAgICAgICAgICBjYWlyb19wYWludF93aXRoX2FscGhhKGNyLCBtX2NvbW1vbi0+
c3RhdGUuZ2xvYmFsQWxwaGEpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
UGF0dGVybkNvbG9yU3BhY2U6IHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGFmZmluZTsKLSAg
ICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgbV9jb21tb24tPnN0YXRlLmZpbGxQYXR0ZXJuLT5j
cmVhdGVQbGF0Zm9ybVBhdHRlcm4oYWZmaW5lKSk7Ci0gICAgICAgIGNhaXJvX2NsaXAoY3IpOwot
ICAgICAgICBjYWlyb19wYWludF93aXRoX2FscGhhKGNyLCBtX2NvbW1vbi0+c3RhdGUuZ2xvYmFs
QWxwaGEpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBHcmFkaWVudENvbG9yU3Bh
Y2U6Ci0gICAgICAgIGNhaXJvX3BhdHRlcm5fdCogcGF0dGVybiA9IG1fY29tbW9uLT5zdGF0ZS5m
aWxsR3JhZGllbnQtPnBsYXRmb3JtR3JhZGllbnQoKTsKLSAgICAgICAgcGF0dGVybiA9IGFwcGx5
U3ByZWFkTWV0aG9kKHBhdHRlcm4sIHNwcmVhZE1ldGhvZCgpKTsKLSAgICAgICAgY2Fpcm9fc2V0
X3NvdXJjZShjciwgcGF0dGVybik7Ci0gICAgICAgIGNhaXJvX2NsaXAoY3IpOwotICAgICAgICBj
YWlyb19wYWludF93aXRoX2FscGhhKGNyLCBtX2NvbW1vbi0+c3RhdGUuZ2xvYmFsQWxwaGEpOwot
ICAgICAgICBicmVhazsKLSAgICB9CisgICAgc2V0RmlsbCgpOworICAgIGNhaXJvX2NsaXAoY3Ip
OworICAgIGNhaXJvX3BhaW50KGNyKTsKKwogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQogCkBA
IC00NzIsNDEgKzQ1MywxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiAK
ICAgICBjYWlyb190KiBjciA9IG1fZGF0YS0+Y3I7CiAgICAgY2Fpcm9fc2F2ZShjcik7Ci0gICAg
c3dpdGNoIChtX2NvbW1vbi0+c3RhdGUuc3Ryb2tlQ29sb3JTcGFjZSkgewotICAgIGNhc2UgU29s
aWRDb2xvclNwYWNlOgotICAgICAgICBpZiAoc3Ryb2tlQ29sb3IoKS5hbHBoYSgpKSB7Ci0gICAg
ICAgICAgICBzZXRDb2xvcihjciwgc3Ryb2tlQ29sb3IoKSk7Ci0gICAgICAgICAgICBpZiAobV9j
b21tb24tPnN0YXRlLmdsb2JhbEFscGhhIDwgMS4wZikgewotICAgICAgICAgICAgICAgIGNhaXJv
X3B1c2hfZ3JvdXAoY3IpOwotICAgICAgICAgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEo
Y3IsIG1fY29tbW9uLT5zdGF0ZS5nbG9iYWxBbHBoYSk7Ci0gICAgICAgICAgICAgICAgY2Fpcm9f
cG9wX2dyb3VwX3RvX3NvdXJjZShjcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYWly
b19zdHJva2UoY3IpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUGF0dGVy
bkNvbG9yU3BhY2U6IHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGFmZmluZTsKLSAgICAgICAg
Y2Fpcm9fc2V0X3NvdXJjZShjciwgbV9jb21tb24tPnN0YXRlLnN0cm9rZVBhdHRlcm4tPmNyZWF0
ZVBsYXRmb3JtUGF0dGVybihhZmZpbmUpKTsKLSAgICAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5n
bG9iYWxBbHBoYSA8IDEuMGYpIHsKLSAgICAgICAgICAgIGNhaXJvX3B1c2hfZ3JvdXAoY3IpOwot
ICAgICAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9jb21tb24tPnN0YXRlLmds
b2JhbEFscGhhKTsKLSAgICAgICAgICAgIGNhaXJvX3BvcF9ncm91cF90b19zb3VyY2UoY3IpOwot
ICAgICAgICB9Ci0gICAgICAgIGNhaXJvX3N0cm9rZShjcik7Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KLSAgICBjYXNlIEdyYWRpZW50Q29sb3JTcGFjZToKLSAgICAgICAgY2Fpcm9fcGF0dGVybl90
KiBwYXR0ZXJuID0gbV9jb21tb24tPnN0YXRlLnN0cm9rZUdyYWRpZW50LT5wbGF0Zm9ybUdyYWRp
ZW50KCk7Ci0gICAgICAgIHBhdHRlcm4gPSBhcHBseVNwcmVhZE1ldGhvZChwYXR0ZXJuLCBzcHJl
YWRNZXRob2QoKSk7Ci0gICAgICAgIGNhaXJvX3NldF9zb3VyY2UoY3IsIHBhdHRlcm4pOwotICAg
ICAgICBpZiAobV9jb21tb24tPnN0YXRlLmdsb2JhbEFscGhhIDwgMS4wZikgewotICAgICAgICAg
ICAgY2Fpcm9fcHVzaF9ncm91cChjcik7Ci0gICAgICAgICAgICBjYWlyb19wYWludF93aXRoX2Fs
cGhhKGNyLCBtX2NvbW1vbi0+c3RhdGUuZ2xvYmFsQWxwaGEpOwotICAgICAgICAgICAgY2Fpcm9f
cG9wX2dyb3VwX3RvX3NvdXJjZShjcik7Ci0gICAgICAgIH0KLSAgICAgICAgY2Fpcm9fc3Ryb2tl
KGNyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorCisgICAgc2V0U3Ryb2tlKCk7CisgICAgY2Fp
cm9fc3Ryb2tlKGNyKTsKKwogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQogCkBAIC05MDYsNiAr
ODU2LDc2IEBAIGZsb2F0IEdyYXBoaWNzQ29udGV4dDo6Z2V0QWxwaGEoKQogICAgIHJldHVybiBt
X2NvbW1vbi0+c3RhdGUuZ2xvYmFsQWxwaGE7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0Ojpz
ZXRGaWxsKCkKK3sKKyAgICBjYWlyb190KiBjciA9IG1fZGF0YS0+Y3I7CisKKyAgICBzd2l0Y2gg
KG1fY29tbW9uLT5zdGF0ZS5maWxsQ29sb3JTcGFjZSkgeworICAgIGNhc2UgU29saWRDb2xvclNw
YWNlOgorICAgICAgICBpZiAoZmlsbENvbG9yKCkuYWxwaGEoKSkgeworICAgICAgICAgICAgZmxv
YXQgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE7CisgICAgICAgICAgICBmaWxsQ29sb3IoKS5nZXRS
R0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAgICAgICAgICAgIGNhaXJvX3NldF9zb3Vy
Y2VfcmdiYShjciwgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgKiBnZXRBbHBoYSgpKTsgCisgICAg
ICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXR0ZXJuQ29sb3JTcGFjZTogeworICAg
ICAgICBBZmZpbmVUcmFuc2Zvcm0gYWZmaW5lOworICAgICAgICBjYWlyb19zZXRfc291cmNlKGNy
LCBtX2NvbW1vbi0+c3RhdGUuZmlsbFBhdHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihhZmZp
bmUpKTsKKyAgICAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5nbG9iYWxBbHBoYSA8IDEuMGYpIHsK
KyAgICAgICAgICAgIGNhaXJvX3B1c2hfZ3JvdXAoY3IpOworICAgICAgICAgICAgY2Fpcm9fcGFp
bnRfd2l0aF9hbHBoYShjciwgbV9jb21tb24tPnN0YXRlLmdsb2JhbEFscGhhKTsKKyAgICAgICAg
ICAgIGNhaXJvX3BvcF9ncm91cF90b19zb3VyY2UoY3IpOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBjYXNlIEdyYWRpZW50Q29sb3JTcGFjZToKKyAgICAgICAgY2Fpcm9f
cGF0dGVybl90KiBwYXR0ZXJuID0gbV9jb21tb24tPnN0YXRlLmZpbGxHcmFkaWVudC0+cGxhdGZv
cm1HcmFkaWVudCgpOworICAgICAgICBwYXR0ZXJuID0gYXBwbHlTcHJlYWRNZXRob2QocGF0dGVy
biwgc3ByZWFkTWV0aG9kKCkpOworICAgICAgICBjYWlyb19zZXRfc291cmNlKGNyLCBwYXR0ZXJu
KTsKKyAgICAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5nbG9iYWxBbHBoYSA8IDEuMGYpIHsKKyAg
ICAgICAgICAgIGNhaXJvX3B1c2hfZ3JvdXAoY3IpOworICAgICAgICAgICAgY2Fpcm9fcGFpbnRf
d2l0aF9hbHBoYShjciwgbV9jb21tb24tPnN0YXRlLmdsb2JhbEFscGhhKTsKKyAgICAgICAgICAg
IGNhaXJvX3BvcF9ncm91cF90b19zb3VyY2UoY3IpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIH0KK30KKwordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZSgpCit7CisgICAg
Y2Fpcm9fdCogY3IgPSBtX2RhdGEtPmNyOworCisgICAgc3dpdGNoIChtX2NvbW1vbi0+c3RhdGUu
c3Ryb2tlQ29sb3JTcGFjZSkgeworICAgIGNhc2UgU29saWRDb2xvclNwYWNlOgorICAgICAgICBp
ZiAoc3Ryb2tlQ29sb3IoKS5hbHBoYSgpKSB7CisgICAgICAgICAgICBmbG9hdCByZWQsIGdyZWVu
LCBibHVlLCBhbHBoYTsKKyAgICAgICAgICAgIHN0cm9rZUNvbG9yKCkuZ2V0UkdCQShyZWQsIGdy
ZWVuLCBibHVlLCBhbHBoYSk7CisgICAgICAgICAgICBjYWlyb19zZXRfc291cmNlX3JnYmEoY3Is
IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhICogZ2V0QWxwaGEoKSk7IAorICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUGF0dGVybkNvbG9yU3BhY2U6IHsKKyAgICAgICAgQWZmaW5l
VHJhbnNmb3JtIGFmZmluZTsKKyAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgbV9jb21tb24t
PnN0YXRlLnN0cm9rZVBhdHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihhZmZpbmUpKTsKKyAg
ICAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5nbG9iYWxBbHBoYSA8IDEuMGYpIHsKKyAgICAgICAg
ICAgIGNhaXJvX3B1c2hfZ3JvdXAoY3IpOworICAgICAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9h
bHBoYShjciwgbV9jb21tb24tPnN0YXRlLmdsb2JhbEFscGhhKTsKKyAgICAgICAgICAgIGNhaXJv
X3BvcF9ncm91cF90b19zb3VyY2UoY3IpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBjYXNlIEdyYWRpZW50Q29sb3JTcGFjZToKKyAgICAgICAgY2Fpcm9fcGF0dGVybl90
KiBwYXR0ZXJuID0gbV9jb21tb24tPnN0YXRlLnN0cm9rZUdyYWRpZW50LT5wbGF0Zm9ybUdyYWRp
ZW50KCk7CisgICAgICAgIHBhdHRlcm4gPSBhcHBseVNwcmVhZE1ldGhvZChwYXR0ZXJuLCBzcHJl
YWRNZXRob2QoKSk7CisgICAgICAgIGNhaXJvX3NldF9zb3VyY2UoY3IsIHBhdHRlcm4pOworICAg
ICAgICBpZiAobV9jb21tb24tPnN0YXRlLmdsb2JhbEFscGhhIDwgMS4wZikgeworICAgICAgICAg
ICAgY2Fpcm9fcHVzaF9ncm91cChjcik7CisgICAgICAgICAgICBjYWlyb19wYWludF93aXRoX2Fs
cGhhKGNyLCBtX2NvbW1vbi0+c3RhdGUuZ2xvYmFsQWxwaGEpOworICAgICAgICAgICAgY2Fpcm9f
cG9wX2dyb3VwX3RvX3NvdXJjZShjcik7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAg
fQorfQorCiBzdGF0aWMgaW5saW5lIGNhaXJvX29wZXJhdG9yX3QgdG9DYWlyb09wZXJhdG9yKENv
bXBvc2l0ZU9wZXJhdG9yIG9wKQogewogICAgIHN3aXRjaCAob3ApIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25238</attachid>
            <date>2008-11-18 08:47:09 -0800</date>
            <delta_ts>2009-02-26 23:58:54 -0800</delta_ts>
            <desc>Fonts with Pattern/Gradient</desc>
            <filename>Cairo-fonts.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28065</attachid>
            <date>2009-02-26 23:58:54 -0800</date>
            <delta_ts>2009-02-27 00:15:51 -0800</delta_ts>
            <desc>Fonts with Pattern/Gradient</desc>
            <filename>FontCairo.patch</filename>
            <type>text/plain</type>
            <size>5252</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTI3OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDktMDItMjYgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBzdXBwb3J0IGZvciBHcmFkaWVudHMgYW5kIFBhdHRlcm5zIG9uIGZpbGxlZCBvciBzdHJva2Vk
IEZvbnRzCisgICAgICAgIGluIENhaXJvLiBJIGFsc28gYWRkZWQgc3VwcG9ydCBmb3IgZ2xvYmFs
QWxwaGEgb24gRm9udENhaXJvLgorCisgICAgICAgIFtDQUlST10gU1ZHL0NhbnZhcyBmb250cyBt
aXNzIGdyYWRpZW50cy9wYXR0ZXJuIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjE3CisKKyAgICAgICAgKiBodG1sL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ZvbnRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhzKToK
KwogMjAwOS0wMi0yNiAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCShyZXZpc2lvbiA0MTI3OCkKKysrIFdlYkNvcmUv
aHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDE4
LDYgKzE0MTgsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJCiAg
ICAgfQogICAgIAogICAgIENhbnZhc1N0eWxlKiBkcmF3U3R5bGUgPSBmaWxsID8gc3RhdGUoKS5t
X2ZpbGxTdHlsZS5nZXQoKSA6IHN0YXRlKCkubV9zdHJva2VTdHlsZS5nZXQoKTsKKyNpZiBQTEFU
Rk9STShDRykKICAgICBpZiAoZHJhd1N0eWxlLT5jYW52YXNHcmFkaWVudCgpIHx8IGRyYXdTdHls
ZS0+Y2FudmFzUGF0dGVybigpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGUgcmVjdCBpcyBub3Qg
YmlnIGVub3VnaCBmb3IgbWl0ZXJzIG9uIHN0cm9rZWQgdGV4dC4KICAgICAgICAgSW50UmVjdCBt
YXNrUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QodGV4dFJlY3QpOwpAQCAtMTQ0Niw2ICsxNDQ3LDcg
QEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SQogCiAgICAgICAgIHJl
dHVybjsKICAgICB9CisjZW5kaWYKIAogICAgIGMtPnNldFRleHREcmF3aW5nTW9kZShmaWxsID8g
Y1RleHRGaWxsIDogY1RleHRTdHJva2UpOwogICAgIGMtPmRyYXdCaWRpVGV4dChmb250LCB0ZXh0
UnVuLCBsb2NhdGlvbik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Zv
bnRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9Gb250Q2Fpcm8uY3BwCShyZXZpc2lvbiA0MTI3OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxA
Z21haWwuY29tCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQWxwIFRva2VyIDxhbHBAYXRv
a2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0
Lm9yZz4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksOCArMzAsMTEgQEAK
ICNpbmNsdWRlICJGb250LmgiCiAKICNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorI2luY2x1ZGUg
IkdyYWRpZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiUGF0
dGVybi5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCisjaW5jbHVkZSAiVHJhbnNmb3Jt
YXRpb25NYXRyaXguaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03OCwxOCArODIsNTEg
QEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogYwogICAgIH0KIAogICAg
IGlmIChjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSAmIGNUZXh0RmlsbCkgewotICAgICAgICBm
bG9hdCByZWQsIGdyZWVuLCBibHVlLCBhbHBoYTsKLSAgICAgICAgZmlsbENvbG9yLmdldFJHQkEo
cmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpOwotICAgICAgICBjYWlyb19zZXRfc291cmNlX3JnYmEo
Y3IsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKLQorICAgICAgICBpZiAoY29udGV4dC0+Zmls
bEdyYWRpZW50KCkpIHsKKyAgICAgICAgICAgIGNhaXJvX3NldF9zb3VyY2UoY3IsIGNvbnRleHQt
PmZpbGxHcmFkaWVudCgpLT5wbGF0Zm9ybUdyYWRpZW50KCkpOworICAgICAgICAgICAgaWYgKGNv
bnRleHQtPmdldEFscGhhKCkgPCAxLjBmKSB7CisgICAgICAgICAgICAgICAgY2Fpcm9fcHVzaF9n
cm91cChjcik7CisgICAgICAgICAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgY29u
dGV4dC0+Z2V0QWxwaGEoKSk7CisgICAgICAgICAgICAgICAgY2Fpcm9fcG9wX2dyb3VwX3RvX3Nv
dXJjZShjcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC0+Zmls
bFBhdHRlcm4oKSkgeworICAgICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWZmaW5lOwor
ICAgICAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgY29udGV4dC0+ZmlsbFBhdHRlcm4oKS0+
Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKGFmZmluZSkpOworICAgICAgICAgICAgaWYgKGNvbnRleHQt
PmdldEFscGhhKCkgPCAxLjBmKSB7CisgICAgICAgICAgICAgICAgY2Fpcm9fcHVzaF9ncm91cChj
cik7CisgICAgICAgICAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgY29udGV4dC0+
Z2V0QWxwaGEoKSk7CisgICAgICAgICAgICAgICAgY2Fpcm9fcG9wX2dyb3VwX3RvX3NvdXJjZShj
cik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmbG9hdCBy
ZWQsIGdyZWVuLCBibHVlLCBhbHBoYTsKKyAgICAgICAgICAgIGZpbGxDb2xvci5nZXRSR0JBKHJl
ZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAgICAgICAgICAgIGNhaXJvX3NldF9zb3VyY2Vfcmdi
YShjciwgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgKiBjb250ZXh0LT5nZXRBbHBoYSgpKTsKKyAg
ICAgICAgfQogICAgICAgICBjYWlyb19zaG93X2dseXBocyhjciwgZ2x5cGhzLCBudW1HbHlwaHMp
OwogICAgIH0KIAogICAgIGlmIChjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSAmIGNUZXh0U3Ry
b2tlKSB7Ci0gICAgICAgIENvbG9yIHN0cm9rZUNvbG9yID0gY29udGV4dC0+c3Ryb2tlQ29sb3Io
KTsKLSAgICAgICAgZmxvYXQgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE7Ci0gICAgICAgIHN0cm9r
ZUNvbG9yLmdldFJHQkEocmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpOwotICAgICAgICBjYWlyb19z
ZXRfc291cmNlX3JnYmEoY3IsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsgICAgICAgCisgICAg
ICAgIGlmIChjb250ZXh0LT5zdHJva2VHcmFkaWVudCgpKSB7CisgICAgICAgICAgICBjYWlyb19z
ZXRfc291cmNlKGNyLCBjb250ZXh0LT5zdHJva2VHcmFkaWVudCgpLT5wbGF0Zm9ybUdyYWRpZW50
KCkpOworICAgICAgICAgICAgaWYgKGNvbnRleHQtPmdldEFscGhhKCkgPCAxLjBmKSB7CisgICAg
ICAgICAgICAgICAgY2Fpcm9fcHVzaF9ncm91cChjcik7CisgICAgICAgICAgICAgICAgY2Fpcm9f
cGFpbnRfd2l0aF9hbHBoYShjciwgY29udGV4dC0+Z2V0QWxwaGEoKSk7CisgICAgICAgICAgICAg
ICAgY2Fpcm9fcG9wX2dyb3VwX3RvX3NvdXJjZShjcik7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZSBpZiAoY29udGV4dC0+c3Ryb2tlUGF0dGVybigpKSB7CisgICAgICAgICAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBhZmZpbmU7CisgICAgICAgICAgICBjYWlyb19zZXRfc291cmNlKGNy
LCBjb250ZXh0LT5zdHJva2VQYXR0ZXJuKCktPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihhZmZpbmUp
KTsKKyAgICAgICAgICAgIGlmIChjb250ZXh0LT5nZXRBbHBoYSgpIDwgMS4wZikgeworICAgICAg
ICAgICAgICAgIGNhaXJvX3B1c2hfZ3JvdXAoY3IpOworICAgICAgICAgICAgICAgIGNhaXJvX3Bh
aW50X3dpdGhfYWxwaGEoY3IsIGNvbnRleHQtPmdldEFscGhhKCkpOworICAgICAgICAgICAgICAg
IGNhaXJvX3BvcF9ncm91cF90b19zb3VyY2UoY3IpOworICAgICAgICAgICAgfQorICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgQ29sb3Igc3Ryb2tlQ29sb3IgPSBjb250ZXh0LT5zdHJva2VD
b2xvcigpOworICAgICAgICAgICAgZmxvYXQgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE7CisgICAg
ICAgICAgICBzdHJva2VDb2xvci5nZXRSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAg
ICAgICAgICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiYShjciwgcmVkLCBncmVlbiwgYmx1ZSwgYWxw
aGEgKiBjb250ZXh0LT5nZXRBbHBoYSgpKTsKKyAgICAgICAgfSAKICAgICAgICAgY2Fpcm9fZ2x5
cGhfcGF0aChjciwgZ2x5cGhzLCBudW1HbHlwaHMpOwogICAgICAgICBjYWlyb19zZXRfbGluZV93
aWR0aChjciwgY29udGV4dC0+c3Ryb2tlVGhpY2tuZXNzKCkpOwogICAgICAgICBjYWlyb19zdHJv
a2UoY3IpOwo=
</data>
<flag name="review"
          id="13691"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>