<?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>39329</bug_id>
          
          <creation_ts>2010-05-18 16:04:55 -0700</creation_ts>
          <short_desc>[WinCairo] Correct scaling for print preview</short_desc>
          <delta_ts>2010-05-20 12:15:15 -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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Windows XP</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>227536</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2010-05-18 16:04:55 -0700</bug_when>
    <thetext>[WinCairo] Correct scaling for print preview</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227559</commentid>
    <comment_count>1</comment_count>
      <attachid>56425</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2010-05-18 17:06:45 -0700</bug_when>
    <thetext>Created attachment 56425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227560</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2010-05-18 17:08:15 -0700</bug_when>
    <thetext>Cairo does not properly deal with Windows HDC&apos;s that have been scaled using MM_ANISOTROPIC mapping mode, and a WindowExt and ViewportExt setting. (see http://bugs.freedesktop.org/show_bug.cgi?id=28161)

Instead, reset the HDC&apos;s WorldTransform to unity, scale the cairo context to the desired scaling, and perform the drawing operation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227605</commentid>
    <comment_count>3</comment_count>
      <attachid>56425</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-18 18:33:45 -0700</bug_when>
    <thetext>Comment on attachment 56425
Patch

Brent asked me to do an informal review of this patch. I just have a couple
nits. Someone who knows a little bit more about Windows print preview and
printing should probably review this officially.

&gt; +        * WebFrame.cpp:
&gt; +        (WebFrame::drawHeader): Use pre-positioned context to simplify 
&gt; +         tthis method.

&apos;tthis&apos; -&gt; &apos;this&apos; :)

&gt; +static void setCairoToHDC(cairo_t* cr, HDC targetDC)

I think maybe this should have a more descriptive name as it touches
not only the Cairo context but the current world transform. Since this
patch is a work-around for a Cairo bug, maybe there should be a longish
comment at the call-site with a high-level overview of the problem (and
perhaps a link to the Cairo bug report, if it exists?).

This all looks pretty reasonable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228354</commentid>
    <comment_count>4</comment_count>
      <attachid>56425</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-05-20 06:47:49 -0700</bug_when>
    <thetext>Comment on attachment 56425
Patch

WebKit/win/ChangeLog:8
 +          Cairo does not properly deal with Windows HDC&apos;s that have been
There&apos;s no apostrophe in &quot;HDCs&quot;.

WebKit/win/ChangeLog:13
 +          Instead, reset the HDC&apos;s WorldTransform to unity, scale the
Here, too.

I think maybe you mean &quot;identity&quot; instead of &quot;unity&quot;.

WebKit/win/WebFrame.cpp:2166
 +      int y = max(static_cast&lt;int&gt;(headerHeight) + pageRect.height(), m_pageHeight  -static_cast&lt;int&gt;(footerHeight));
Weird spacing around the - operator here.

WebKit/win/WebFrame.cpp:2172
 +  static XFORM buildXformFromCairo(HDC targetDC, cairo_t* cr)
I think WebKit naming conventions say this should be buildXFORMFromCairo.

Is there a better name we can use than &quot;cr&quot;?

WebKit/win/WebFrame.cpp:2247
 +  static void setCairoToHDC(cairo_t* cr, HDC targetDC)
Again, a better name than &quot;cr&quot; would be nice.

I agree that this function could use a better name.

WebKit/win/WebFrame.cpp:2252
 +      XFORM revertedCTM(passedCTM);
Using constructor syntax here is a little surprising.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228498</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2010-05-20 12:15:15 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/59855.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56425</attachid>
            <date>2010-05-18 17:06:45 -0700</date>
            <delta_ts>2010-05-20 06:47:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39329-20100518170644.patch</filename>
            <type>text/plain</type>
            <size>9057</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hh
bmdlTG9nCShyZXZpc2lvbiA1OTcxOCkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMDUtMTggIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtXaW5DYWlyb10gQ29ycmVjdCBzY2FsaW5nIGZvciBwcmludCBwcmV2aWV3Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTMyOQorCisg
ICAgICAgIENhaXJvIGRvZXMgbm90IHByb3Blcmx5IGRlYWwgd2l0aCBXaW5kb3dzIEhEQydzIHRo
YXQgaGF2ZSBiZWVuCisgICAgICAgIHNjYWxlZCB1c2luZyBNTV9BTklTT1RST1BJQyBtYXBwaW5n
IG1vZGUsIGFuZCBhIFdpbmRvd0V4dCBhbmQKKyAgICAgICAgVmlld3BvcnRFeHQgc2V0dGluZy4K
KyAgICAgICAgKHNlZSBodHRwOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lk
PTI4MTYxKQorCisgICAgICAgIEluc3RlYWQsIHJlc2V0IHRoZSBIREMncyBXb3JsZFRyYW5zZm9y
bSB0byB1bml0eSwgc2NhbGUgdGhlCisgICAgICAgIGNhaXJvIGNvbnRleHQgdG8gdGhlIGRlc2ly
ZWQgc2NhbGluZywgYW5kIHBlcmZvcm0gdGhlIGRyYXdpbmcKKyAgICAgICAgb3BlcmF0aW9uLgor
CisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OmRyYXdIZWFkZXIp
OiBVc2UgcHJlLXBvc2l0aW9uZWQgY29udGV4dCB0byBzaW1wbGlmeSAKKyAgICAgICAgIHR0aGlz
IG1ldGhvZC4KKyAgICAgICAgKFdlYkZyYW1lOjpkcmF3Rm9vdGVyKTogVXNlIHByZS1wb3NpdGlv
bmVkIGNvbnRleHQgdG8gc2ltcGxpZnkKKyAgICAgICAgICB0aGlzIG1ldGhvZC4KKyAgICAgICAg
KFdlYkZyYW1lOjpzcG9vbFBhZ2UpOiBSZXZpc2Ugc2NhbGluZyBsb2dpYyB0byB0dXJuIG9mZiBI
REMKKyAgICAgICAgICBzY2FsaW5nLCBhbmQgc2NhbGUgdXNpbmcgb25seSBDYWlyby4gIFJldmVy
dCBzY2FsaW5nIGF0IGVuZAorICAgICAgICAgIHNvIHRoYXQgdXNlci1kZWZpbmVkIEdESS1iYXNl
ZCByb3V0aW5lcyAoZS5nLiwgaGVhZGVyL2Zvb3RlcikKKyAgICAgICAgICB3aWxsIGRyYXcgaW4g
dGhlIHJpZ2h0IHBvc2l0aW9uLgorICAgICAgICAoV2ViRnJhbWU6OnNwb29sUGFnZXMpOiBJZGVu
dGlmeSBwcmludCBwcmV2aWV3IGNhc2UsIGFuZAorICAgICAgICAgIHJldHJpZXZlIHNjYWxpbmcg
ZmFjdG9ycyBmcm9tIHByZXZpZXcgY29udGV4dC4gIFNldCB0aGUKKyAgICAgICAgICBDYWlybyBj
b250ZXh0IHRvIHVzZSB0aGVzZSBmYWN0b3JzIGR1cmluZyB0aGUgc3Bvb2xQYWdlCisgICAgICAg
ICAgb3BlcmF0aW9uLgorCiAyMDEwLTA1LTEzICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW0gSGF0Y2hlci4KSW5kZXg6IFdl
YktpdC93aW4vV2ViRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViRnJhbWUu
Y3BwCShyZXZpc2lvbiA1OTcxOCkKKysrIFdlYktpdC93aW4vV2ViRnJhbWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTUwLDEyICsyMTUwLDEwIEBAIHN0YXRpYyBIREMgaGRjRnJvbUNvbnRleHQo
UGxhdGZvcm1HcmFwaGkKIHZvaWQgV2ViRnJhbWU6OmRyYXdIZWFkZXIoUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQqIHBjdHgsIElXZWJVSURlbGVnYXRlKiB1aSwgY29uc3QgSW50UmVjdCYgcGFnZVJl
Y3QsIGZsb2F0IGhlYWRlckhlaWdodCkKIHsKICAgICBIREMgaGRjID0gaGRjRnJvbUNvbnRleHQo
cGN0eCk7Ci0gICAgY29uc3QgSW50UmVjdCYgbWFyZ2luUmVjdCA9IHByaW50ZXJNYXJnaW5SZWN0
KGhkYyk7CiAKLSAgICBjb25zdCBmbG9hdCBzY2FsZSA9IHNjYWxlRmFjdG9yKGhkYywgbWFyZ2lu
UmVjdCwgcGFnZVJlY3QpOwotICAgIGludCB4ID0gc3RhdGljX2Nhc3Q8aW50PihzY2FsZSAqIHBh
Z2VSZWN0LngoKSk7CisgICAgaW50IHggPSBwYWdlUmVjdC54KCk7CiAgICAgaW50IHkgPSAwOwot
ICAgIFJFQ1QgaGVhZGVyUmVjdCA9IHt4LCB5LCB4ICsgc3RhdGljX2Nhc3Q8aW50PihzY2FsZSAq
IHBhZ2VSZWN0LndpZHRoKCkpLCB5ICsgc3RhdGljX2Nhc3Q8aW50PihzY2FsZSAqIGhlYWRlckhl
aWdodCl9OworICAgIFJFQ1QgaGVhZGVyUmVjdCA9IHt4LCB5LCB4ICsgcGFnZVJlY3Qud2lkdGgo
KSwgeSArIHN0YXRpY19jYXN0PGludD4oaGVhZGVySGVpZ2h0KX07CiAKICAgICB1aS0+ZHJhd0hl
YWRlckluUmVjdChkLT53ZWJWaWV3LCAmaGVhZGVyUmVjdCwgc3RhdGljX2Nhc3Q8T0xFX0hBTkRM
RT4ocmVpbnRlcnByZXRfY2FzdDxMT05HNjQ+KGhkYykpKTsKIH0KQEAgLTIxNjMsMTYgKzIxNjEs
MjkgQEAgdm9pZCBXZWJGcmFtZTo6ZHJhd0hlYWRlcihQbGF0Zm9ybUdyYXBoaQogdm9pZCBXZWJG
cmFtZTo6ZHJhd0Zvb3RlcihQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogcGN0eCwgSVdlYlVJRGVs
ZWdhdGUqIHVpLCBjb25zdCBJbnRSZWN0JiBwYWdlUmVjdCwgVUlOVCBwYWdlLCBVSU5UIHBhZ2VD
b3VudCwgZmxvYXQgaGVhZGVySGVpZ2h0LCBmbG9hdCBmb290ZXJIZWlnaHQpCiB7CiAgICAgSERD
IGhkYyA9IGhkY0Zyb21Db250ZXh0KHBjdHgpOwotICAgIGNvbnN0IEludFJlY3QmIG1hcmdpblJl
Y3QgPSBwcmludGVyTWFyZ2luUmVjdChoZGMpOwotCi0gICAgY29uc3QgZmxvYXQgc2NhbGUgPSBz
Y2FsZUZhY3RvcihoZGMsIG1hcmdpblJlY3QsIHBhZ2VSZWN0KTsKLSAgICBpbnQgeCA9IHN0YXRp
Y19jYXN0PGludD4oc2NhbGUgKiBwYWdlUmVjdC54KCkpOwotICAgIGludCB5ID0gc3RhdGljX2Nh
c3Q8aW50PihzY2FsZSAqIG1heChzdGF0aWNfY2FzdDxpbnQ+KGhlYWRlckhlaWdodCkgKyBwYWdl
UmVjdC5oZWlnaHQoKSwgbV9wYWdlSGVpZ2h0LXN0YXRpY19jYXN0PGludD4oZm9vdGVySGVpZ2h0
KSkpOwotICAgIFJFQ1QgZm9vdGVyUmVjdCA9IHt4LCB5LCB4ICsgc3RhdGljX2Nhc3Q8aW50Pihz
Y2FsZSAqIHBhZ2VSZWN0LndpZHRoKCkpLCB5ICsgc3RhdGljX2Nhc3Q8aW50PihzY2FsZSAqIGZv
b3RlckhlaWdodCl9OworICAgIAorICAgIGludCB4ID0gcGFnZVJlY3QueCgpOworICAgIGludCB5
ID0gbWF4KHN0YXRpY19jYXN0PGludD4oaGVhZGVySGVpZ2h0KSArIHBhZ2VSZWN0LmhlaWdodCgp
LCBtX3BhZ2VIZWlnaHQgIC1zdGF0aWNfY2FzdDxpbnQ+KGZvb3RlckhlaWdodCkpOworICAgIFJF
Q1QgZm9vdGVyUmVjdCA9IHt4LCB5LCB4ICsgcGFnZVJlY3Qud2lkdGgoKSwgeSArIHN0YXRpY19j
YXN0PGludD4oZm9vdGVySGVpZ2h0KX07CiAKICAgICB1aS0+ZHJhd0Zvb3RlckluUmVjdChkLT53
ZWJWaWV3LCAmZm9vdGVyUmVjdCwgc3RhdGljX2Nhc3Q8T0xFX0hBTkRMRT4ocmVpbnRlcnByZXRf
Y2FzdDxMT05HNjQ+KGhkYykpLCBwYWdlKzEsIHBhZ2VDb3VudCk7CiB9CiAKK3N0YXRpYyBYRk9S
TSBidWlsZFhmb3JtRnJvbUNhaXJvKEhEQyB0YXJnZXREQywgY2Fpcm9fdCogY3IpCit7CisgICAg
WEZPUk0gc2NhbGVkOworICAgIEdldFdvcmxkVHJhbnNmb3JtKHRhcmdldERDLCAmc2NhbGVkKTsK
KworICAgIGNhaXJvX21hdHJpeF90IGN0bTsKKyAgICBjYWlyb19nZXRfbWF0cml4KGNyLCAmY3Rt
KTsgICAgCisgICAgICAgIAorICAgIC8vIFNjYWxlIHRvIHRoZSBwcmV2aWV3IHNjcmVlbiBib3Vu
ZHMKKyAgICBzY2FsZWQuZU0xMSA9IGN0bS54eDsKKyAgICBzY2FsZWQuZU0yMiA9IGN0bS55eTsK
KworICAgIHJldHVybiBzY2FsZWQ7Cit9CisKIHZvaWQgV2ViRnJhbWU6OnNwb29sUGFnZShQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dCogcGN0eCwgR3JhcGhpY3NDb250ZXh0KiBzcG9vbEN0eCwgSERD
IHByaW50REMsIElXZWJVSURlbGVnYXRlKiB1aSwgZmxvYXQgaGVhZGVySGVpZ2h0LCBmbG9hdCBm
b290ZXJIZWlnaHQsIFVJTlQgcGFnZSwgVUlOVCBwYWdlQ291bnQpCiB7CiAgICAgRnJhbWUqIGNv
cmVGcmFtZSA9IGNvcmUodGhpcyk7CkBAIC0yMTgwLDQ4ICsyMTkxLDc2IEBAIHZvaWQgV2ViRnJh
bWU6OnNwb29sUGFnZShQbGF0Zm9ybUdyYXBoaWMKICAgICBjb25zdCBJbnRSZWN0JiBwYWdlUmVj
dCA9IG1fcGFnZVJlY3RzW3BhZ2VdOwogICAgIGNvbnN0IEludFJlY3QmIG1hcmdpblJlY3QgPSBw
cmludGVyTWFyZ2luUmVjdChwcmludERDKTsKIAotICAgIGNhaXJvX3NhdmUocGN0eCk7CisgICAg
Ly8gSW4gcHJldmlldywgdGhlIHByaW50REMgaXMgYSBwbGFjZWhvbGRlciwgc28ganVzdCBhbHdh
eXMgdXNlIHRoZSBIREMgYmFja2luZyB0aGUgZ3JhcGhpY3MgY29udGV4dC4KKyAgICBIREMgaGRj
ID0gaGRjRnJvbUNvbnRleHQocGN0eCk7CisKICAgICBzcG9vbEN0eC0+c2F2ZSgpOwotICAgIGZs
b2F0IHNjYWxlID0gc2NhbGVGYWN0b3IocHJpbnREQywgbWFyZ2luUmVjdCwgcGFnZVJlY3QpOwot
ICAgIGNhaXJvX3NjYWxlKHBjdHgsIHNjYWxlLCBzY2FsZSk7CisgICAgCisgICAgWEZPUk0gb3Jp
Z2luYWwsIHNjYWxlZDsKKyAgICBHZXRXb3JsZFRyYW5zZm9ybShoZGMsICZvcmlnaW5hbCk7Cisg
ICAgCisgICAgYm9vbCBwcmV2aWV3ID0gKGhkYyAhPSBwcmludERDKTsKKyAgICBpZiAocHJldmll
dykgeworICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcHJldmlldywgdGhlIFdpbmRvd3MgSERDIHdh
cyBzZXQgdG8gbm9uLXNjYWxlZCBzbyB0aGF0CisgICAgICAgIC8vIENhaXJvIGRyYXdpbmcgd291
bGQgYmUgY29ycmVjdC4gIFdlIG5lZWQgdG8gcmVzY2FsZSB0aGUgSERDIHNvIG91cgorICAgICAg
ICAvLyBHREktYmFzZWQgaGVhZGVyL2Zvb3RlciBjYWxscyB3aWxsIGJlIHNjYWxlZCBwcm9wZXJs
eS4KKyAgICAgICAgc2NhbGVkID0gYnVpbGRYZm9ybUZyb21DYWlybyhoZGMsIHBjdHgpOworICAg
IH0KIAotICAgIEludFJlY3QgY2Fpcm9NYXJnaW5SZWN0IChtYXJnaW5SZWN0KTsKLSAgICBjYWly
b01hcmdpblJlY3Quc2NhbGUgKDEgLyBzY2FsZSk7CisgICAgZmxvYXQgc2NhbGUgPSBzY2FsZUZh
Y3RvcihwcmludERDLCBtYXJnaW5SZWN0LCBwYWdlUmVjdCk7CisgICAgCisgICAgSW50UmVjdCBj
YWlyb01hcmdpblJlY3QobWFyZ2luUmVjdCk7CisgICAgY2Fpcm9NYXJnaW5SZWN0LnNjYWxlKDEg
LyBzY2FsZSk7CiAKLSAgICAvLyBNb2RpZnkgQ2Fpcm8gYW5kIEdESSBXb3JsZCBUcmFuc2Zvcm0g
dG8gYWNjb3VudCBmb3IgbWFyZ2luIGluIHRoZQotICAgIC8vIHN1YnNlcXVlbnQgV2ViS2l0LWNv
bnRyb2xsZWQgJ3BhaW50Q29udGVudHMnIGRyYXdpbmcgb3BlcmF0aW9uczoKLSAgICBzcG9vbEN0
eC0+dHJhbnNsYXRlKGNhaXJvTWFyZ2luUmVjdC54KCksIGNhaXJvTWFyZ2luUmVjdC55KCkgKyBo
ZWFkZXJIZWlnaHQpOworICAgIC8vIFdlIGNhbm5vdCBzY2FsZSB0aGUgZGlzcGxheSBIREMgYmVj
YXVzZSB0aGUgcHJpbnQgc3VyZmFjZSBhbHNvIHNjYWxlcyBmb250cywKKyAgICAvLyByZXN1bHRp
bmcgaW4gaW52YWxpZCBwcmludGluZyAoYW5kIHByaW50IHByZXZpZXcpCisgICAgY2Fpcm9fc2Nh
bGUocGN0eCwgc2NhbGUsIHNjYWxlKTsKKyAgICBjYWlyb190cmFuc2xhdGUocGN0eCwgY2Fpcm9N
YXJnaW5SZWN0LngoKSwgY2Fpcm9NYXJnaW5SZWN0LnkoKSArIGhlYWRlckhlaWdodCk7CiAKICAg
ICAvLyBNb2RpZnkgQ2Fpcm8gKG9ubHkpIHRvIGFjY291bnQgZm9yIHBhZ2UgcG9zaXRpb24uCiAg
ICAgY2Fpcm9fdHJhbnNsYXRlKHBjdHgsIC1wYWdlUmVjdC54KCksIC1wYWdlUmVjdC55KCkpOwog
ICAgIGNvcmVGcmFtZS0+dmlldygpLT5wYWludENvbnRlbnRzKHNwb29sQ3R4LCBwYWdlUmVjdCk7
Ci0KICAgICBjYWlyb190cmFuc2xhdGUocGN0eCwgcGFnZVJlY3QueCgpLCBwYWdlUmVjdC55KCkp
OwotCi0gICAgWEZPUk0gb3JpZ2luYWxXb3JsZDsKLSAgICA6OkdldFdvcmxkVHJhbnNmb3JtKHBy
aW50REMsICZvcmlnaW5hbFdvcmxkKTsKLQotICAgIC8vIFBvc2l0aW9uIEdESSB3b3JsZCB0cmFu
c2Zvcm0gdG8gYWNjb3VudCBmb3IgbWFyZ2luIGluIEdESS1vbmx5Ci0gICAgLy8gaGVhZGVyL2Zv
b3RlciBjYWxscwotICAgIFhGT1JNIG5ld1dvcmxkID0gb3JpZ2luYWxXb3JsZDsKLSAgICBuZXdX
b3JsZC5lRHggPSBtYXJnaW5SZWN0LngoKTsKLSAgICBuZXdXb3JsZC5lRHkgPSBtYXJnaW5SZWN0
LnkoKTsKLQotICAgIDo6U2V0V29ybGRUcmFuc2Zvcm0ocHJpbnREQywgJm5ld1dvcmxkKTsKLQor
ICAgIAorICAgIGlmIChwcmV2aWV3KSB7CisgICAgICAgIC8vIFNjYWxlIEhEQyB0byBwcm9wZXIg
cGFnZSBleHRlbnRzIHNvIHRoZSBmb2xsb3dpbmcgR0RJIGNhbGxzIGFyZQorICAgICAgICAvLyBk
b25lIGF0IHRoZSByaWdodCBzY2FsZS4KKyAgICAgICAgU2V0V29ybGRUcmFuc2Zvcm0oaGRjLCAm
c2NhbGVkKTsKKyAgICB9CisgICAgCisgICAgWEZPUk0geGZvcm0gPSBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCgpLnRyYW5zbGF0ZShtYXJnaW5SZWN0LngoKSwgbWFyZ2luUmVjdC55KCkpLnNjYWxlKHNj
YWxlKTsKKyAgICBNb2RpZnlXb3JsZFRyYW5zZm9ybShoZGMsICZ4Zm9ybSwgTVdUX0xFRlRNVUxU
SVBMWSk7CisgICAKICAgICBpZiAoaGVhZGVySGVpZ2h0KQogICAgICAgICBkcmF3SGVhZGVyKHBj
dHgsIHVpLCBwYWdlUmVjdCwgaGVhZGVySGVpZ2h0KTsKICAgICAKICAgICBpZiAoZm9vdGVySGVp
Z2h0KQogICAgICAgICBkcmF3Rm9vdGVyKHBjdHgsIHVpLCBwYWdlUmVjdCwgcGFnZSwgcGFnZUNv
dW50LCBoZWFkZXJIZWlnaHQsIGZvb3RlckhlaWdodCk7CiAKLSAgICA6OlNldFdvcmxkVHJhbnNm
b3JtKHByaW50REMsICZvcmlnaW5hbFdvcmxkKTsKKyAgICBTZXRXb3JsZFRyYW5zZm9ybShoZGMs
ICZvcmlnaW5hbCk7CiAKICAgICBjYWlyb19zaG93X3BhZ2UocGN0eCk7CiAgICAgQVNTRVJUKCFj
YWlyb19zdGF0dXMocGN0eCkpOwogICAgIHNwb29sQ3R4LT5yZXN0b3JlKCk7Ci0gICAgY2Fpcm9f
cmVzdG9yZShwY3R4KTsKIH0KKworc3RhdGljIHZvaWQgc2V0Q2Fpcm9Ub0hEQyhjYWlyb190KiBj
ciwgSERDIHRhcmdldERDKQoreworICAgIFhGT1JNIHBhc3NlZENUTTsKKyAgICBHZXRXb3JsZFRy
YW5zZm9ybSh0YXJnZXREQywgJnBhc3NlZENUTSk7CisgICAgICAgIAorICAgIFhGT1JNIHJldmVy
dGVkQ1RNKHBhc3NlZENUTSk7CisgICAgcmV2ZXJ0ZWRDVE0uZU0xMSA9IDEuMDsKKyAgICByZXZl
cnRlZENUTS5lTTIyID0gMS4wOworICAgICAgICAKKyAgICBTZXRXb3JsZFRyYW5zZm9ybSh0YXJn
ZXREQywgJnJldmVydGVkQ1RNKTsKKyAgICAgICAgCisgICAgY2Fpcm9fbWF0cml4X3QgY3RtID0g
eyBwYXNzZWRDVE0uZU0xMSwgcGFzc2VkQ1RNLmVNMTIsIHBhc3NlZENUTS5lTTIxLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzc2VkQ1RNLmVNMjIsIHBhc3NlZENUTS5lRHgsIHBhc3Nl
ZENUTS5lRHkgfTsKKworICAgIGNhaXJvX3NldF9tYXRyaXgoY3IsICZjdG0pOyAgICAKK30KKwog
I2VuZGlmCiAKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRnJhbWU6OnNwb29sUGFnZXMo
IApAQCAtMjI0MCwxMyArMjI3OSwyNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkZy
YW1lOjpzcG9vCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4g
RV9QT0lOVEVSOwogICAgIH0KKyAgICAKKyAgICBIREMgdGFyZ2V0REMgPSAoY3R4KSA/IChIREMp
Y3R4IDogcHJpbnREQzsKIAotICAgIGNhaXJvX3N1cmZhY2VfdCogcHJpbnRTdXJmYWNlID0gY2Fp
cm9fd2luMzJfcHJpbnRpbmdfc3VyZmFjZV9jcmVhdGUocHJpbnREQyk7Ci0gICAgY3R4ID0gY2Fp
cm9fY3JlYXRlKHByaW50U3VyZmFjZSk7Ci0gICAgaWYgKCFjdHgpIHsKKyAgICBjYWlyb19zdXJm
YWNlX3QqIHByaW50U3VyZmFjZSA9IDA7CisgICAgaWYgKGN0eCkKKyAgICAgICAgcHJpbnRTdXJm
YWNlID0gY2Fpcm9fd2luMzJfc3VyZmFjZV9jcmVhdGUodGFyZ2V0REMpOyAvLyBpbi1tZW1vcnkK
KyAgICBlbHNlCisgICAgICAgIHByaW50U3VyZmFjZSA9IGNhaXJvX3dpbjMyX3ByaW50aW5nX3N1
cmZhY2VfY3JlYXRlKHRhcmdldERDKTsgLy8gbWV0YWZpbGUKKyAgICAKKyAgICBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dCogcGN0eCA9IChQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCopY2Fpcm9fY3Jl
YXRlKHByaW50U3VyZmFjZSk7CisgICAgaWYgKCFwY3R4KSB7CiAgICAgICAgIGNhaXJvX3N1cmZh
Y2VfZGVzdHJveShwcmludFN1cmZhY2UpOyAgICAKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKICAg
ICB9CisgICAgCisgICAgaWYgKGN0eCkgeworICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcHJldmll
dywgdGhlIFdpbmRvd3MgSERDIHdhcyBzZW50IHdpdGggc2NhbGluZyBpbmZvcm1hdGlvbi4KKyAg
ICAgICAgLy8gUmV0cmlldmUgaXQgYW5kIHJlc2V0IGl0IHNvIHRoYXQgaXQgZHJhd3MgcHJvcGVy
bHkuCisgICAgICAgIHNldENhaXJvVG9IREMocGN0eCwgdGFyZ2V0REMpOworICAgIH0KKyAgICAK
ICAgICBjYWlyb19zdXJmYWNlX3NldF9mYWxsYmFja19yZXNvbHV0aW9uKHByaW50U3VyZmFjZSwg
NzIuMCwgNzIuMCk7CiAjZW5kaWYKIApAQCAtMjI2MCw3ICsyMzEzLDkgQEAgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBXZWJGcmFtZTo6c3BvbwogICAgICAgICByZXR1cm4gRV9GQUlMOwogCiAg
ICAgVUlOVCBwYWdlQ291bnQgPSAoVUlOVCkgbV9wYWdlUmVjdHMuc2l6ZSgpOworI2lmIFBMQVRG
T1JNKENHKQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBwY3R4ID0gKFBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0KiljdHg7CisjZW5kaWYKIAogICAgIGlmICghcGFnZUNvdW50IHx8IHN0YXJ0
UGFnZSA+IHBhZ2VDb3VudCkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
</data>
<flag name="review"
          id="40843"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>