<?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>14478</bug_id>
          
          <creation_ts>2007-06-30 09:16:57 -0700</creation_ts>
          <short_desc>[gdk] Improve FontHandling, make valgrind happy</short_desc>
          <delta_ts>2007-07-05 06:53:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Holger Freyther">zecke</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>5845</commentid>
    <comment_count>0</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-06-30 09:16:57 -0700</bug_when>
    <thetext>Valgrind helped to spot one issue with the Hash-Function and ownership of the FontPlatformData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5846</commentid>
    <comment_count>1</comment_count>
      <attachid>15328</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-06-30 09:23:31 -0700</bug_when>
    <thetext>Created attachment 15328
Improve Gdk Font Handling

-Fix various uninitialized variables
-Make the FontPlatformData::hash method at least a more reliable (I don&apos;t know if this will make a good source for the hash...)
-Move destroying of FontPlatformData resources to FontData::platformDestroy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5805</commentid>
    <comment_count>2</comment_count>
      <attachid>15328</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-06-30 18:36:48 -0700</bug_when>
    <thetext>Comment on attachment 15328
Improve Gdk Font Handling

Ask for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5728</commentid>
    <comment_count>3</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-07-02 10:11:42 -0700</bug_when>
    <thetext>This patch helps solve some real issues. Can I suggest C++ style casts? Also

 +     * this create a deep copy

should be

 +     * this creates a deep copy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5729</commentid>
    <comment_count>4</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-07-02 10:15:49 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; This patch helps solve some real issues. Can I suggest C++ style casts? Also
&gt; 
&gt;  +     * this create a deep copy
&gt; 
&gt; should be
&gt; 
&gt;  +     * this creates a deep copy
&gt; 

No this comment should be removed. This is from making FontPlatformData copyable by implementing copy c&apos;tor and assignment operator.

I will update the patch

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5712</commentid>
    <comment_count>5</comment_count>
      <attachid>15353</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-07-02 13:00:38 -0700</bug_when>
    <thetext>Created attachment 15353
Improve Gdk Font Handling

-Remove the bogus comment
-Use c++ casts instead of c-casts as wished by alp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5663</commentid>
    <comment_count>6</comment_count>
      <attachid>15353</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2007-07-03 06:16:13 -0700</bug_when>
    <thetext>Comment on attachment 15353
Improve Gdk Font Handling

&gt;+        to FontData::platformDestroy. The ownership of these objects is hold by

Is held by.

&gt;+        Replace c-casts with c++ casts, in this case reinterpret_cast.
&gt;+
&gt;+
&gt;+
&gt;+
&gt;+        * platform/gdk/FontDataGdk.cpp:

I wouldn&apos;t do so many empty lines, but that is a style thing.
Code looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5543</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-07-05 06:53:03 -0700</bug_when>
    <thetext>Landed in r24017.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15328</attachid>
            <date>2007-06-30 09:23:31 -0700</date>
            <delta_ts>2007-07-02 13:00:38 -0700</delta_ts>
            <desc>Improve Gdk Font Handling</desc>
            <filename>gdk-improve-font-handling-r0.patch</filename>
            <type>text/plain</type>
            <size>8296</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzg5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMDctMDYtMzAgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8
emVja2VAc2VsZmlzaC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmV3b3JrIEZvbnREYXRhIGFuZCBGb250UGxhdGZvcm1EYXRhIGZvciB0aGUg
R2RrIHdvcmsgdG8gbWFrZSB2YWxncmluZAorICAgICAgICBoYXBweS4KKworICAgICAgICBNb3Zl
IGRlc3Ryb3lpbmcgb2YgRm9udENvbmZpZyBhbmQgQ2Fpcm8tT2JqZWN0cyBob2xkIGluIEZvbnRQ
bGF0Zm9ybURhdGEKKyAgICAgICAgdG8gRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveS4gVGhlIG93
bmVyc2hpcCBvZiB0aGVzZSBvYmplY3RzIGlzIGhvbGQgYnkKKyAgICAgICAgRm9udERhdGEuIFRo
aXMgaXMgZm9sbG93aW5nIHRoZSBNYWMgYW5kIFF0IHBvcnQgYXQgbGVhc3QuCisKKyAgICAgICAg
Q3VycmVudGx5IGl0IGlzIHBvc3NpYmxlIHRoYXQgRm9udFBsYXRmb3JtRGF0YSB3aWxsIG5vdCBj
cmVhdGUgY2Fpcm8gcmVzb3VyY2VzCisgICAgICAgIGluIHRoaXMgY2FzZSBhdCBsZWFzdCBtYWtl
IHN1cmUgdGhlIHZhcmlhYmxlcyBhcmUgaW5pdGlhbGl6ZWQgdG8gMC4KKyAgICAgICAgSW5pdGlh
bGl6ZSB4LHkgb2YgdGhlIGNhaXJvX2dseXBoX3Qgd2l0aCB6ZXJvIHRvIGF2b2lkIGV4dGVudHMu
eF9hZHZhbmNlIGRlcGVuZGluZworICAgICAgICBvbiBzdWJ0cmFjaW5nIHdpdGggbm90IGRlZmlu
ZWQgdmFsdWVzLgorCisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGE6Omhhc2guIFVzaW5nIEZvbnRE
ZXNjcmlwdGlvbiBpcyBhIGJhZCBpZGVhIGFzIHdlIGRvbid0IGhhdmUgYSBjbHVlCisgICAgICAg
IGFib3V0IGhvdyBpdCBpcyBwYWNrZWQsIGlmIGhvbGVzIGFyZSBwcmVzZW50LCBldGMuIFRoZSBG
Y1BhdHRlcm4gYW5kIHRoZSBtX2ZvbnRNYXRyaXgKKyAgICAgICAgc2hvdWxkIGJlIGdvb2QgZW5v
dWdoIHRvIGRlc2NyaWJlIHRoZSBGb250LiBBbGwgb3RoZXIgb2JqZWN0cyBhcmUgY3JlYXRlZCB1
c2luZyB0aGVzZQorICAgICAgICB2YXJpYWJsZXMKKworCisKKworCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9nZGsvRm9udERhdGFHZGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGE6OnBs
YXRmb3JtSW5pdCk6IERvbid0IGFzc2VydAorICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGE6OnBs
YXRmb3JtRGVzdHJveSk6IFRha2Ugb3ZlciBvd25lcnNoaXAKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgpOiBpbml0aWFsaXplCisgICAgICAgIChXZWJD
b3JlOjpGb250RGF0YTo6c2V0Rm9udCk6IGJlIHBhcmFub2lkIGFuZCBhc3NlcnQKKyAgICAgICAg
KiBwbGF0Zm9ybS9nZGsvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6IEluaXRpYWxpemUgZXZlcnl0aGluZwor
ICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6aGFzaCk6IG1ha2UgdmFsZ3JpbmQg
aGFwcHkgYW5kIGRvbid0IHVzZSBtX2ZvbnREZXNjcmlwdGlvbgorICAgICAgICAqIHBsYXRmb3Jt
L2dkay9Gb250UGxhdGZvcm1EYXRhR2RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0
Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRm
b3JtRGF0YTo6fkZvbnRQbGF0Zm9ybURhdGEpOiBGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95IHdp
bGwgZG8gdGhpcworICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c2V0Rm9udCk6
IG1fZm9udEZhY2UsIG1fZm9udE1hdHJpeCwgbV9vcHRpb25zIG1pZ2h0IG5vdCBiZSBpbml0aWFs
aXplZAorCiAyMDA3LTA2LTI5ICBKdXN0aW4gR2FyY2lhICA8anVzdGluLmdhcmNpYUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSGFycmlzb24uCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dkay9Gb250RGF0YUdkay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
ZGsvRm9udERhdGFHZGsuY3BwCShyZXZpc2lvbiAyMzg5NikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z2RrL0ZvbnREYXRhR2RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENv
cHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwu
Y29tIAogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwLnRva2VyQGNvbGxhYm9y
YS5jby51az4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhl
cgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTU2LDEyICs1
NywyMiBAQCB2b2lkIEZvbnREYXRhOjpwbGF0Zm9ybUluaXQoKQogICAgIG1feEhlaWdodCA9IHRl
eHRfZXh0ZW50cy5oZWlnaHQ7CiAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfdGV4dF9leHRlbnRzKG1f
Zm9udC5tX3NjYWxlZEZvbnQsICIgIiwgJnRleHRfZXh0ZW50cyk7CiAgICAgbV9zcGFjZVdpZHRo
ID0gIHN0YXRpY19jYXN0PGludD4odGV4dF9leHRlbnRzLnhfYWR2YW5jZSk7Ci0gICAgYXNzZXJ0
KG1fc3BhY2VXaWR0aCAhPSAwKTsKICAgICBtX2xpbmVHYXAgPSBtX2xpbmVTcGFjaW5nIC0gbV9h
c2NlbnQgLSBtX2Rlc2NlbnQ7CiB9CiAKIHZvaWQgRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgp
CiB7CisgICAgaWYgKG1fZm9udC5tX3BhdHRlcm4gJiYgKChGY1BhdHRlcm4qKS0xICE9IG1fZm9u
dC5tX3BhdHRlcm4pKQorICAgICAgICBGY1BhdHRlcm5EZXN0cm95KG1fZm9udC5tX3BhdHRlcm4p
OworCisgICAgaWYgKG1fZm9udC5tX2ZvbnRNYXRyaXgpCisgICAgICAgIGZyZWUobV9mb250Lm1f
Zm9udE1hdHJpeCk7CisgICAgaWYgKG1fZm9udC5tX2ZvbnRGYWNlKQorICAgICAgICBjYWlyb19m
b250X2ZhY2VfZGVzdHJveShtX2ZvbnQubV9mb250RmFjZSk7CisgICAgaWYgKG1fZm9udC5tX3Nj
YWxlZEZvbnQpCisgICAgICAgIGNhaXJvX3NjYWxlZF9mb250X2Rlc3Ryb3kobV9mb250Lm1fc2Nh
bGVkRm9udCk7CisgICAgaWYgKG1fZm9udC5tX29wdGlvbnMpCisgICAgICAgIGNhaXJvX2ZvbnRf
b3B0aW9uc19kZXN0cm95KG1fZm9udC5tX29wdGlvbnMpOwogICAgIGRlbGV0ZSBtX3NtYWxsQ2Fw
c0ZvbnREYXRhOwogfQogCkBAIC0xMDIsMTggKzExMywyMSBAQCB2b2lkIEZvbnREYXRhOjpkZXRl
cm1pbmVQaXRjaCgpCiAKIGZsb2F0IEZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5
cGggZ2x5cGgpIGNvbnN0CiB7Ci0gICAgY2Fpcm9fZ2x5cGhfdCBjZ2x5cGg7Ci0gICAgY2dseXBo
LmluZGV4ID0gZ2x5cGg7CisgICAgQVNTRVJUKG1fZm9udC5tX3NjYWxlZEZvbnQpOworCisgICAg
Y2Fpcm9fZ2x5cGhfdCBjZ2x5cGggPSB7IGdseXBoLCAwLCAwIH07CiAgICAgY2Fpcm9fdGV4dF9l
eHRlbnRzX3QgZXh0ZW50czsKICAgICBjYWlyb19zY2FsZWRfZm9udF9nbHlwaF9leHRlbnRzKG1f
Zm9udC5tX3NjYWxlZEZvbnQsICZjZ2x5cGgsIDEsICZleHRlbnRzKTsKLSAgICBmbG9hdCB3ID0g
ZXh0ZW50cy54X2FkdmFuY2U7Ci0gICAgaWYgKHcgPT0gMCkKLSAgICAgICAgdyA9IG1fc3BhY2VX
aWR0aDsKKworICAgIGZsb2F0IHcgPSAoZmxvYXQpbV9zcGFjZVdpZHRoOworICAgIGlmIChjYWly
b19zY2FsZWRfZm9udF9zdGF0dXMobV9mb250Lm1fc2NhbGVkRm9udCkgPT0gQ0FJUk9fU1RBVFVT
X1NVQ0NFU1MgJiYgZXh0ZW50cy54X2FkdmFuY2UgIT0gMCkKKyAgICAgICAgdyA9IChmbG9hdCll
eHRlbnRzLnhfYWR2YW5jZTsKICAgICByZXR1cm4gdzsKIH0KIAogdm9pZCBGb250RGF0YTo6c2V0
Rm9udChjYWlyb190KiBjcikgY29uc3QKIHsKKyAgICBBU1NFUlQoY3IpOwogICAgIG1fZm9udC5z
ZXRGb250KGNyKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRm9udFBsYXRmb3Jt
RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZvbnRQbGF0Zm9ybURh
dGEuaAkocmV2aXNpb24gMjM4OTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9Gb250UGxhdGZv
cm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw3IEBACiAgKgogICogQ29weXJpZ2h0
IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTWlj
aGFlbCBFbW1lbCBtaWtlLmVtbWVsQGdtYWlsLmNvbSAKKyAqIENvcHlyaWdodCAoQykgMjAwNyBI
b2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCkBAIC0zNywxMCArMzgsMjUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRm9u
dFBsYXRmb3JtRGF0YSB7CiBwdWJsaWM6CiAgICAgY2xhc3MgRGVsZXRlZCB7fTsKLSAgICBGb250
UGxhdGZvcm1EYXRhKERlbGV0ZWQpIDogbV9wYXR0ZXJuKChGY1BhdHRlcm4qKS0xKSB7IH0KLQot
ICAgIEZvbnRQbGF0Zm9ybURhdGEoKSA6IG1fcGF0dGVybigwKSB7IH0KLQorICAgIEZvbnRQbGF0
Zm9ybURhdGEoRGVsZXRlZCkKKyAgICAgICAgOiBtX3BhdHRlcm4oKEZjUGF0dGVybiopLTEpCisg
ICAgICAgICwgbV9mb250TWF0cml4KDApCisgICAgICAgICwgbV9mb250RmFjZSgwKQorICAgICAg
ICAsIG1fb3B0aW9ucygwKQorICAgICAgICAsIG1fc2NhbGVkRm9udCgwKQorICAgICAgICB7IH0K
KworICAgIEZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAgICA6IG1fcGF0dGVybigwKQorICAgICAg
ICAsIG1fZm9udE1hdHJpeCgwKQorICAgICAgICAsIG1fZm9udEZhY2UoMCkKKyAgICAgICAgLCBt
X29wdGlvbnMoMCkKKyAgICAgICAgLCBtX3NjYWxlZEZvbnQoMCkKKyAgICAgICAgeyB9CisKKyAg
ICAvKgorICAgICAqIHRoaXMgY3JlYXRlIGEgZGVlcCBjb3B5CisgICAgICovCiAgICAgRm9udFBs
YXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9taWNTdHJpbmcmIGZh
bWlseSk7CiAgICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKIApAQCAtNTQsNyArNzAsOCBAQCBwdWJs
aWM6CiAKICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJpbmdJbXBsOjpjb21wdXRlSGFzaCgoVUNoYXIqKSZtX2ZvbnREZXNjcmlwdGlvbiwgc2l6ZW9m
KEZvbnREZXNjcmlwdGlvbikgLyBzaXplb2YoVUNoYXIpKTsKKyAgICAgICAgdWludHB0cl90IGhh
c2hDb2Rlc1syXSA9IHsgKHVpbnRwdHJfdCltX3BhdHRlcm4sICh1aW50cHRyX3QpbV9mb250TWF0
cml4IH07CisgICAgICAgIHJldHVybiBTdHJpbmdJbXBsOjpjb21wdXRlSGFzaCggcmVpbnRlcnBy
ZXRfY2FzdDxVQ2hhcio+KGhhc2hDb2RlcyksIHNpemVvZihoYXNoQ29kZXMpIC8gc2l6ZW9mKFVD
aGFyKSk7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmKSBjb25zdDsKQEAgLTY1LDcgKzgyLDYgQEAgcHVibGljOgogICAgIGNhaXJvX2ZvbnRfZmFj
ZV90KiBtX2ZvbnRGYWNlOwogICAgIGNhaXJvX2ZvbnRfb3B0aW9uc190KiBtX29wdGlvbnM7CiAg
ICAgY2Fpcm9fc2NhbGVkX2ZvbnRfdCogbV9zY2FsZWRGb250OwotCiB9OwogCiB9CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dkay9Gb250UGxhdGZvcm1EYXRhR2RrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dkay9Gb250UGxhdGZvcm1EYXRhR2RrLmNwcAkocmV2aXNpb24g
MjM4OTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9Gb250UGxhdGZvcm1EYXRhR2RrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNSw2ICs1LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBs
ZSBDb21wdXRlciwgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwgRW1tZWwgbWlr
ZS5lbW1lbEBnbWFpbC5jb20gCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBA
YXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5
dGhlcgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yNyw4ICsyOCw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgog
CisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5j
bHVkZSAiRGVwcmVjYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgog
I2luY2x1ZGUgImNhaXJvLWZ0LmgiCiAjaW5jbHVkZSAiY2Fpcm8uaCIKQEAgLTM4LDExICszOSwx
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGZhbWlseU5hbWUpCi0gICAgOiBtX2ZvbnREZXNjcmlwdGlvbihmb250RGVzY3Jp
cHRpb24pCisgICAgOiBtX3BhdHRlcm4oMCkKKyAgICAsIG1fZm9udERlc2NyaXB0aW9uKGZvbnRE
ZXNjcmlwdGlvbikKKyAgICAsIG1fZm9udE1hdHJpeCgwKQorICAgICwgbV9mb250RmFjZSgwKQor
ICAgICwgbV9vcHRpb25zKDApCisgICAgLCBtX3NjYWxlZEZvbnQoMCkKIHsKLSAgICBpbml0KCk7
CisgICAgRm9udFBsYXRmb3JtRGF0YTo6aW5pdCgpOwogCi0gICAgY29uc3QgY2hhciogZmNmYW1p
bHkgPSBmYW1pbHlOYW1lLmRlcHJlY2F0ZWRTdHJpbmcoKS5hc2NpaSgpOworICAgIENTdHJpbmcg
ZmFtaWx5TmFtZVN0cmluZyA9IGZhbWlseU5hbWUuZG9tU3RyaW5nKCkudXRmOCgpOworICAgIGNv
bnN0IGNoYXIqIGZjZmFtaWx5ID0gZmFtaWx5TmFtZVN0cmluZy5kYXRhKCk7CiAgICAgaW50IGZj
c2xhbnQgPSBGQ19TTEFOVF9ST01BTjsKICAgICBpbnQgZmN3ZWlnaHQgPSBGQ19XRUlHSFRfTk9S
TUFMOwogICAgIGZsb2F0IGZjc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKTsK
QEAgLTExOCwxMiArMTI1LDYgQEAgYm9vbCBGb250UGxhdGZvcm1EYXRhOjppbml0KCkKIAogRm9u
dFBsYXRmb3JtRGF0YTo6fkZvbnRQbGF0Zm9ybURhdGEoKQogewotICAgIGlmIChtX3BhdHRlcm4g
JiYgKChGY1BhdHRlcm4qKS0xICE9IG1fcGF0dGVybikpCi0gICAgICAgIEZjUGF0dGVybkRlc3Ry
b3kobV9wYXR0ZXJuKTsKLSAgICBmcmVlKG1fZm9udE1hdHJpeCk7Ci0gICAgY2Fpcm9fZm9udF9m
YWNlX2Rlc3Ryb3kobV9mb250RmFjZSk7Ci0gICAgY2Fpcm9fc2NhbGVkX2ZvbnRfZGVzdHJveSht
X3NjYWxlZEZvbnQpOwotICAgIGNhaXJvX2ZvbnRfb3B0aW9uc19kZXN0cm95KG1fb3B0aW9ucyk7
CiB9CiAKIGJvb2wgRm9udFBsYXRmb3JtRGF0YTo6aXNGaXhlZFBpdGNoKCkKQEAgLTE2NSw2ICsx
NjYsMTAgQEAgY2Fpcm9fZm9udF9mYWNlX3QqKiBGb250UGxhdGZvcm1EYXRhOjpsaQogCiB2b2lk
IEZvbnRQbGF0Zm9ybURhdGE6OnNldEZvbnQoY2Fpcm9fdCogY3IpIGNvbnN0CiB7CisgICAgQVNT
RVJUKG1fZm9udEZhY2UpOworICAgIEFTU0VSVChtX2ZvbnRNYXRyaXgpOworICAgIEFTU0VSVCht
X29wdGlvbnMpOworCiAgICAgY2Fpcm9fc2V0X2ZvbnRfZmFjZShjciwgbV9mb250RmFjZSk7CiAg
ICAgY2Fpcm9fc2V0X2ZvbnRfbWF0cml4KGNyLCBtX2ZvbnRNYXRyaXgpOwogICAgIGNhaXJvX3Nl
dF9mb250X29wdGlvbnMoY3IsIG1fb3B0aW9ucyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15353</attachid>
            <date>2007-07-02 13:00:38 -0700</date>
            <delta_ts>2007-07-03 06:16:13 -0700</delta_ts>
            <desc>Improve Gdk Font Handling</desc>
            <filename>gdk-improve-font-handling-r1.patch</filename>
            <type>text/plain</type>
            <size>10009</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzkzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDQgQEAKKzIwMDctMDYtMzAgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8
emVja2VAc2VsZmlzaC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmV3b3JrIEZvbnREYXRhIGFuZCBGb250UGxhdGZvcm1EYXRhIGZvciB0aGUg
R2RrIHdvcmsgdG8gbWFrZSB2YWxncmluZAorICAgICAgICBoYXBweS4KKworICAgICAgICBNb3Zl
IGRlc3Ryb3lpbmcgb2YgRm9udENvbmZpZyBhbmQgQ2Fpcm8tT2JqZWN0cyBob2xkIGluIEZvbnRQ
bGF0Zm9ybURhdGEKKyAgICAgICAgdG8gRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveS4gVGhlIG93
bmVyc2hpcCBvZiB0aGVzZSBvYmplY3RzIGlzIGhvbGQgYnkKKyAgICAgICAgRm9udERhdGEuIFRo
aXMgaXMgZm9sbG93aW5nIHRoZSBNYWMgYW5kIFF0IHBvcnQgYXQgbGVhc3QuCisKKyAgICAgICAg
Q3VycmVudGx5IGl0IGlzIHBvc3NpYmxlIHRoYXQgRm9udFBsYXRmb3JtRGF0YSB3aWxsIG5vdCBj
cmVhdGUgY2Fpcm8gcmVzb3VyY2VzCisgICAgICAgIGluIHRoaXMgY2FzZSBhdCBsZWFzdCBtYWtl
IHN1cmUgdGhlIHZhcmlhYmxlcyBhcmUgaW5pdGlhbGl6ZWQgdG8gMC4KKyAgICAgICAgSW5pdGlh
bGl6ZSB4LHkgb2YgdGhlIGNhaXJvX2dseXBoX3Qgd2l0aCB6ZXJvIHRvIGF2b2lkIGV4dGVudHMu
eF9hZHZhbmNlIGRlcGVuZGluZworICAgICAgICBvbiBzdWJ0cmFjaW5nIHdpdGggbm90IGRlZmlu
ZWQgdmFsdWVzLgorCisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGE6Omhhc2guIFVzaW5nIEZvbnRE
ZXNjcmlwdGlvbiBpcyBhIGJhZCBpZGVhIGFzIHdlIGRvbid0IGhhdmUgYSBjbHVlCisgICAgICAg
IGFib3V0IGhvdyBpdCBpcyBwYWNrZWQsIGlmIGhvbGVzIGFyZSBwcmVzZW50LCBldGMuIFRoZSBG
Y1BhdHRlcm4gYW5kIHRoZSBtX2ZvbnRNYXRyaXgKKyAgICAgICAgc2hvdWxkIGJlIGdvb2QgZW5v
dWdoIHRvIGRlc2NyaWJlIHRoZSBGb250LiBBbGwgb3RoZXIgb2JqZWN0cyBhcmUgY3JlYXRlZCB1
c2luZyB0aGVzZQorICAgICAgICB2YXJpYWJsZXMKKworICAgICAgICBSZXBsYWNlIGMtY2FzdHMg
d2l0aCBjKysgY2FzdHMsIGluIHRoaXMgY2FzZSByZWludGVycHJldF9jYXN0LgorCisKKworCisg
ICAgICAgICogcGxhdGZvcm0vZ2RrL0ZvbnREYXRhR2RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnREYXRhOjpwbGF0Zm9ybUluaXQpOiBEb24ndCBhc3NlcnQKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3kpOiBUYWtlIG92ZXIgb3duZXJzaGlwCisgICAgICAg
IChXZWJDb3JlOjpGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKTogaW5pdGlhbGl6ZQor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGE6OnNldEZvbnQpOiBiZSBwYXJhbm9pZCBhbmQgYXNz
ZXJ0CisgICAgICAgICogcGxhdGZvcm0vZ2RrL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBJbml0aWFsaXpl
IGV2ZXJ5dGhpbmcKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6Omhhc2gpOiBt
YWtlIHZhbGdyaW5kIGhhcHB5IGFuZCBkb24ndCB1c2UgbV9mb250RGVzY3JpcHRpb24KKyAgICAg
ICAgKiBwbGF0Zm9ybS9nZGsvRm9udFBsYXRmb3JtRGF0YUdkay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRQbGF0Zm9ybURhdGE6On5Gb250UGxhdGZvcm1EYXRhKTogRm9udERhdGE6OnBsYXRm
b3JtRGVzdHJveSB3aWxsIGRvIHRoaXMKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURh
dGE6Omxpc3QpOiBEb24ndCB1c2UgYy1jYXN0CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZv
cm1EYXRhOjpzZXRGb250KTogbV9mb250RmFjZSwgbV9mb250TWF0cml4LCBtX29wdGlvbnMgbWln
aHQgbm90IGJlIGluaXRpYWxpemVkCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpvcGVyYXRvcj09KTogRG9uJ3QgdXNlIGMtY2FzdAorCiAyMDA3LTA3LTAyICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2V2aW4gTWNDdWxsb3Vn
aC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZvbnREYXRhR2RrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9Gb250RGF0YUdkay5jcHAJKHJldmlzaW9uIDIzOTMw
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRm9udERhdGFHZGsuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwg
RW1tZWwgbWlrZS5lbW1lbEBnbWFpbC5jb20gCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRv
a2VyIDxhbHAudG9rZXJAY29sbGFib3JhLmNvLnVrPgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhv
bGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dApAQCAtNTYsMTIgKzU3LDIyIEBAIHZvaWQgRm9udERhdGE6OnBsYXRmb3JtSW5p
dCgpCiAgICAgbV94SGVpZ2h0ID0gdGV4dF9leHRlbnRzLmhlaWdodDsKICAgICBjYWlyb19zY2Fs
ZWRfZm9udF90ZXh0X2V4dGVudHMobV9mb250Lm1fc2NhbGVkRm9udCwgIiAiLCAmdGV4dF9leHRl
bnRzKTsKICAgICBtX3NwYWNlV2lkdGggPSAgc3RhdGljX2Nhc3Q8aW50Pih0ZXh0X2V4dGVudHMu
eF9hZHZhbmNlKTsKLSAgICBhc3NlcnQobV9zcGFjZVdpZHRoICE9IDApOwogICAgIG1fbGluZUdh
cCA9IG1fbGluZVNwYWNpbmcgLSBtX2FzY2VudCAtIG1fZGVzY2VudDsKIH0KIAogdm9pZCBGb250
RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKIHsKKyAgICBpZiAobV9mb250Lm1fcGF0dGVybiAmJiAo
KEZjUGF0dGVybiopLTEgIT0gbV9mb250Lm1fcGF0dGVybikpCisgICAgICAgIEZjUGF0dGVybkRl
c3Ryb3kobV9mb250Lm1fcGF0dGVybik7CisKKyAgICBpZiAobV9mb250Lm1fZm9udE1hdHJpeCkK
KyAgICAgICAgZnJlZShtX2ZvbnQubV9mb250TWF0cml4KTsKKyAgICBpZiAobV9mb250Lm1fZm9u
dEZhY2UpCisgICAgICAgIGNhaXJvX2ZvbnRfZmFjZV9kZXN0cm95KG1fZm9udC5tX2ZvbnRGYWNl
KTsKKyAgICBpZiAobV9mb250Lm1fc2NhbGVkRm9udCkKKyAgICAgICAgY2Fpcm9fc2NhbGVkX2Zv
bnRfZGVzdHJveShtX2ZvbnQubV9zY2FsZWRGb250KTsKKyAgICBpZiAobV9mb250Lm1fb3B0aW9u
cykKKyAgICAgICAgY2Fpcm9fZm9udF9vcHRpb25zX2Rlc3Ryb3kobV9mb250Lm1fb3B0aW9ucyk7
CiAgICAgZGVsZXRlIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKQEAgLTEwMiwxOCArMTEzLDIx
IEBAIHZvaWQgRm9udERhdGE6OmRldGVybWluZVBpdGNoKCkKIAogZmxvYXQgRm9udERhdGE6OnBs
YXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKLSAgICBjYWlyb19nbHlw
aF90IGNnbHlwaDsKLSAgICBjZ2x5cGguaW5kZXggPSBnbHlwaDsKKyAgICBBU1NFUlQobV9mb250
Lm1fc2NhbGVkRm9udCk7CisKKyAgICBjYWlyb19nbHlwaF90IGNnbHlwaCA9IHsgZ2x5cGgsIDAs
IDAgfTsKICAgICBjYWlyb190ZXh0X2V4dGVudHNfdCBleHRlbnRzOwogICAgIGNhaXJvX3NjYWxl
ZF9mb250X2dseXBoX2V4dGVudHMobV9mb250Lm1fc2NhbGVkRm9udCwgJmNnbHlwaCwgMSwgJmV4
dGVudHMpOwotICAgIGZsb2F0IHcgPSBleHRlbnRzLnhfYWR2YW5jZTsKLSAgICBpZiAodyA9PSAw
KQotICAgICAgICB3ID0gbV9zcGFjZVdpZHRoOworCisgICAgZmxvYXQgdyA9IChmbG9hdCltX3Nw
YWNlV2lkdGg7CisgICAgaWYgKGNhaXJvX3NjYWxlZF9mb250X3N0YXR1cyhtX2ZvbnQubV9zY2Fs
ZWRGb250KSA9PSBDQUlST19TVEFUVVNfU1VDQ0VTUyAmJiBleHRlbnRzLnhfYWR2YW5jZSAhPSAw
KQorICAgICAgICB3ID0gKGZsb2F0KWV4dGVudHMueF9hZHZhbmNlOwogICAgIHJldHVybiB3Owog
fQogCiB2b2lkIEZvbnREYXRhOjpzZXRGb250KGNhaXJvX3QqIGNyKSBjb25zdAogeworICAgIEFT
U0VSVChjcik7CiAgICAgbV9mb250LnNldEZvbnQoY3IpOwogfQogCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dkay9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9nZGsvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiAyMzkzMCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ2RrL0ZvbnRQbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNCw2ICs0
LDcgQEAKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KICAq
IENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tIAor
ICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCiAgKiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTM3LDkgKzM4LDIxIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewogcHVibGljOgogICAgIGNsYXNz
IERlbGV0ZWQge307Ci0gICAgRm9udFBsYXRmb3JtRGF0YShEZWxldGVkKSA6IG1fcGF0dGVybigo
RmNQYXR0ZXJuKiktMSkgeyB9Ci0KLSAgICBGb250UGxhdGZvcm1EYXRhKCkgOiBtX3BhdHRlcm4o
MCkgeyB9CisgICAgRm9udFBsYXRmb3JtRGF0YShEZWxldGVkKQorICAgICAgICA6IG1fcGF0dGVy
bihyZWludGVycHJldF9jYXN0PEZjUGF0dGVybio+KC0xKSkKKyAgICAgICAgLCBtX2ZvbnRNYXRy
aXgoMCkKKyAgICAgICAgLCBtX2ZvbnRGYWNlKDApCisgICAgICAgICwgbV9vcHRpb25zKDApCisg
ICAgICAgICwgbV9zY2FsZWRGb250KDApCisgICAgICAgIHsgfQorCisgICAgRm9udFBsYXRmb3Jt
RGF0YSgpCisgICAgICAgIDogbV9wYXR0ZXJuKDApCisgICAgICAgICwgbV9mb250TWF0cml4KDAp
CisgICAgICAgICwgbV9mb250RmFjZSgwKQorICAgICAgICAsIG1fb3B0aW9ucygwKQorICAgICAg
ICAsIG1fc2NhbGVkRm9udCgwKQorICAgICAgICB7IH0KIAogICAgIEZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHkpOwogICAg
IH5Gb250UGxhdGZvcm1EYXRhKCk7CkBAIC01NCw3ICs2Nyw4IEBAIHB1YmxpYzoKIAogICAgIHVu
c2lnbmVkIGhhc2goKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNv
bXB1dGVIYXNoKChVQ2hhciopJm1fZm9udERlc2NyaXB0aW9uLCBzaXplb2YoRm9udERlc2NyaXB0
aW9uKSAvIHNpemVvZihVQ2hhcikpOworICAgICAgICB1aW50cHRyX3QgaGFzaENvZGVzWzJdID0g
eyByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9wYXR0ZXJuKSwgcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KG1fZm9udE1hdHJpeCkgfTsKKyAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6
OmNvbXB1dGVIYXNoKCByZWludGVycHJldF9jYXN0PFVDaGFyKj4oaGFzaENvZGVzKSwgc2l6ZW9m
KGhhc2hDb2RlcykgLyBzaXplb2YoVUNoYXIpKTsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpIGNvbnN0OwpAQCAtNjUsNyArNzksNiBAQCBwdWJs
aWM6CiAgICAgY2Fpcm9fZm9udF9mYWNlX3QqIG1fZm9udEZhY2U7CiAgICAgY2Fpcm9fZm9udF9v
cHRpb25zX3QqIG1fb3B0aW9uczsKICAgICBjYWlyb19zY2FsZWRfZm9udF90KiBtX3NjYWxlZEZv
bnQ7Ci0KIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZvbnRQbGF0Zm9ybURh
dGFHZGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZvbnRQbGF0Zm9y
bURhdGFHZGsuY3BwCShyZXZpc2lvbiAyMzkzMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0Zv
bnRQbGF0Zm9ybURhdGFHZGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01LDYgKzUsNyBAQAogICog
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDYgTWljaGFlbCBFbW1lbCBtaWtlLmVtbWVsQGdtYWlsLmNvbSAKICAqIENvcHlyaWdodCAo
QykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA3
IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKQEAgLTI3LDggKzI4LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJGb250UGxhdGZvcm1EYXRhLmgiCiAKKyNpbmNsdWRlICJDU3RyaW5nLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlICJEZXByZWNhdGVkU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2Fpcm8tZnQuaCIKICNpbmNsdWRlICJj
YWlyby5oIgpAQCAtMzgsMTEgKzM5LDE3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSkKLSAgICA6IG1fZm9u
dERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbikKKyAgICA6IG1fcGF0dGVybigwKQorICAgICwg
bV9mb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKQorICAgICwgbV9mb250TWF0cml4KDAp
CisgICAgLCBtX2ZvbnRGYWNlKDApCisgICAgLCBtX29wdGlvbnMoMCkKKyAgICAsIG1fc2NhbGVk
Rm9udCgwKQogewotICAgIGluaXQoKTsKKyAgICBGb250UGxhdGZvcm1EYXRhOjppbml0KCk7CiAK
LSAgICBjb25zdCBjaGFyKiBmY2ZhbWlseSA9IGZhbWlseU5hbWUuZGVwcmVjYXRlZFN0cmluZygp
LmFzY2lpKCk7CisgICAgQ1N0cmluZyBmYW1pbHlOYW1lU3RyaW5nID0gZmFtaWx5TmFtZS5kb21T
dHJpbmcoKS51dGY4KCk7CisgICAgY29uc3QgY2hhciogZmNmYW1pbHkgPSBmYW1pbHlOYW1lU3Ry
aW5nLmRhdGEoKTsKICAgICBpbnQgZmNzbGFudCA9IEZDX1NMQU5UX1JPTUFOOwogICAgIGludCBm
Y3dlaWdodCA9IEZDX1dFSUdIVF9OT1JNQUw7CiAgICAgZmxvYXQgZmNzaXplID0gZm9udERlc2Ny
aXB0aW9uLmNvbXB1dGVkU2l6ZSgpOwpAQCAtOTIsNyArOTksNyBAQCBGb250UGxhdGZvcm1EYXRh
OjpGb250UGxhdGZvcm1EYXRhKGNvbnN0CiAgICAgaWYgKCFtX3BhdHRlcm4pCiAgICAgICAgIGdv
dG8gZnJlZVBhdHRlcm47CiAgICAgbV9mb250RmFjZSA9IGNhaXJvX2Z0X2ZvbnRfZmFjZV9jcmVh
dGVfZm9yX3BhdHRlcm4obV9wYXR0ZXJuKTsKLSAgICBtX2ZvbnRNYXRyaXggPSAoY2Fpcm9fbWF0
cml4X3QqKW1hbGxvYyhzaXplb2YoY2Fpcm9fbWF0cml4X3QpKTsKKyAgICBtX2ZvbnRNYXRyaXgg
PSByZWludGVycHJldF9jYXN0PGNhaXJvX21hdHJpeF90Kj4obWFsbG9jKHNpemVvZihjYWlyb19t
YXRyaXhfdCkpKTsKICAgICBjYWlyb19tYXRyaXhfdCBjdG07CiAgICAgY2Fpcm9fbWF0cml4X2lu
aXRfc2NhbGUobV9mb250TWF0cml4LCBtX2ZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSwg
bV9mb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwogICAgIGNhaXJvX21hdHJpeF9pbml0
X2lkZW50aXR5KCZjdG0pOwpAQCAtMTE4LDEyICsxMjUsNiBAQCBib29sIEZvbnRQbGF0Zm9ybURh
dGE6OmluaXQoKQogCiBGb250UGxhdGZvcm1EYXRhOjp+Rm9udFBsYXRmb3JtRGF0YSgpCiB7Ci0g
ICAgaWYgKG1fcGF0dGVybiAmJiAoKEZjUGF0dGVybiopLTEgIT0gbV9wYXR0ZXJuKSkKLSAgICAg
ICAgRmNQYXR0ZXJuRGVzdHJveShtX3BhdHRlcm4pOwotICAgIGZyZWUobV9mb250TWF0cml4KTsK
LSAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShtX2ZvbnRGYWNlKTsKLSAgICBjYWlyb19zY2Fs
ZWRfZm9udF9kZXN0cm95KG1fc2NhbGVkRm9udCk7Ci0gICAgY2Fpcm9fZm9udF9vcHRpb25zX2Rl
c3Ryb3kobV9vcHRpb25zKTsKIH0KIAogYm9vbCBGb250UGxhdGZvcm1EYXRhOjppc0ZpeGVkUGl0
Y2goKQpAQCAtMTUzLDcgKzE1NCw3IEBAIGNhaXJvX2ZvbnRfZmFjZV90KiogRm9udFBsYXRmb3Jt
RGF0YTo6bGkKICAgICAgICAgRmNQYXR0ZXJuRGVzdHJveSAocGF0dGVybik7CiAgICAgaWYgKG9z
KQogICAgICAgICBGY09iamVjdFNldERlc3Ryb3kgKG9zKTsKLSAgICBjYWlyb19mb250X2ZhY2Vf
dCoqIHJlc3VsdCA9IChjYWlyb19mb250X2ZhY2VfdCoqKW1hbGxvYygoZnMtPm5mb250ICsgMSkg
KiBzaXplb2YoY2Fpcm9fZm9udF9mYWNlX3QqKSk7CisgICAgY2Fpcm9fZm9udF9mYWNlX3QqKiBy
ZXN1bHQgPSByZWludGVycHJldF9jYXN0PGNhaXJvX2ZvbnRfZmFjZV90Kio+KG1hbGxvYygoZnMt
Pm5mb250ICsgMSkgKiBzaXplb2YoY2Fpcm9fZm9udF9mYWNlX3QqKSkpOwogICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgZnMtPm5mb250OyBpKyspIHsKICAgICAgICAgRmNDaGFyOCogZm9udCA9IEZj
TmFtZVVucGFyc2UoZnMtPmZvbnRzW2ldKTsKICAgICAgICAgcHJpbnRmKCIlc1xuIiwgZm9udCk7
CkBAIC0xNjUsNiArMTY2LDEwIEBAIGNhaXJvX2ZvbnRfZmFjZV90KiogRm9udFBsYXRmb3JtRGF0
YTo6bGkKIAogdm9pZCBGb250UGxhdGZvcm1EYXRhOjpzZXRGb250KGNhaXJvX3QqIGNyKSBjb25z
dAogeworICAgIEFTU0VSVChtX2ZvbnRGYWNlKTsKKyAgICBBU1NFUlQobV9mb250TWF0cml4KTsK
KyAgICBBU1NFUlQobV9vcHRpb25zKTsKKwogICAgIGNhaXJvX3NldF9mb250X2ZhY2UoY3IsIG1f
Zm9udEZhY2UpOwogICAgIGNhaXJvX3NldF9mb250X21hdHJpeChjciwgbV9mb250TWF0cml4KTsK
ICAgICBjYWlyb19zZXRfZm9udF9vcHRpb25zKGNyLCBtX29wdGlvbnMpOwpAQCAtMTc0LDggKzE3
OSw4IEBAIGJvb2wgRm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9PShjb25zdCAKIHsKICAgICBp
ZiAobV9wYXR0ZXJuID09IG90aGVyLm1fcGF0dGVybikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgaWYgKG1fcGF0dGVybiA9PSAwIHx8IG1fcGF0dGVybiA9PSAoRmNQYXR0ZXJuKiktMQotICAg
ICAgICAgICAgfHwgb3RoZXIubV9wYXR0ZXJuID09IDAgfHwgb3RoZXIubV9wYXR0ZXJuID09IChG
Y1BhdHRlcm4qKS0xKQorICAgIGlmIChtX3BhdHRlcm4gPT0gMCB8fCBtX3BhdHRlcm4gPT0gcmVp
bnRlcnByZXRfY2FzdDxGY1BhdHRlcm4qPigtMSkKKyAgICAgICAgICAgIHx8IG90aGVyLm1fcGF0
dGVybiA9PSAwIHx8IG90aGVyLm1fcGF0dGVybiA9PSByZWludGVycHJldF9jYXN0PEZjUGF0dGVy
bio+KC0xKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBGY1BhdHRlcm5FcXVh
bChtX3BhdHRlcm4sIG90aGVyLm1fcGF0dGVybik7CiB9Cg==
</data>
<flag name="review"
          id="6364"
          type_id="1"
          status="+"
          setter="rwlbuis"
    />
          </attachment>
      

    </bug>

</bugzilla>