<?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>64584</bug_id>
          
          <creation_ts>2011-07-14 23:21:19 -0700</creation_ts>
          <short_desc>Avoid rounded rect corner-drawing overhead if no corners are visible</short_desc>
          <delta_ts>2011-07-15 12:27:48 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</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>0</everconfirmed>
          <reporter name="Ian Henderson">ian</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>437583</commentid>
    <comment_count>0</comment_count>
    <who name="Ian Henderson">ian</who>
    <bug_when>2011-07-14 23:21:19 -0700</bug_when>
    <thetext>We fall into a slow path when drawing a border for an element with nonzero border-radius.  If the rounded corners are outside the clip rect, however, we can set their radius to zero without visual effect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437591</commentid>
    <comment_count>1</comment_count>
      <attachid>100939</attachid>
    <who name="Ian Henderson">ian</who>
    <bug_when>2011-07-14 23:31:56 -0700</bug_when>
    <thetext>Created attachment 100939
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437600</commentid>
    <comment_count>2</comment_count>
    <who name="Ian Henderson">ian</who>
    <bug_when>2011-07-15 00:02:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/9326550&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437760</commentid>
    <comment_count>3</comment_count>
      <attachid>100939</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-15 08:31:03 -0700</bug_when>
    <thetext>Comment on attachment 100939
proposed patch

View in context: https://bugs.webkit.org/attachment.cgi?id=100939&amp;action=review

Let&apos;s see one more version. I&apos;d also like to see an interactive testcase attached to the bug (maybe a roundrect inside a scrollable overflow region) so that behavior can be checked manually.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests, behavior is unaffected.

Well, behavior is affected, but not in a way that should affect visible rendering.

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:1425
&gt; +    // If one of the corners falls outside the clip region, pretend it has no radius.

The comment should mention that this is done for performance reasons.

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:1450
&gt; +        outerBorder.setRadii(adjustedOuterRadii);

You could avoid setting this if you didn&apos;t change any corners. I think you should also skip this entire block if rect is entirely inside the clip.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437840</commentid>
    <comment_count>4</comment_count>
      <attachid>101007</attachid>
    <who name="Ian Henderson">ian</who>
    <bug_when>2011-07-15 11:14:01 -0700</bug_when>
    <thetext>Created attachment 101007
test case

Here&apos;s a test case—normal, dotted, and dashed borders with positive border-radius in overflow: scroll divs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437849</commentid>
    <comment_count>5</comment_count>
      <attachid>101011</attachid>
    <who name="Ian Henderson">ian</who>
    <bug_when>2011-07-15 11:25:27 -0700</bug_when>
    <thetext>Created attachment 101011
updated patch

Addressed Simon&apos;s comments and moved the corner-adjusting code into a separate static function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437853</commentid>
    <comment_count>6</comment_count>
      <attachid>101011</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-15 11:31:08 -0700</bug_when>
    <thetext>Comment on attachment 101011
updated patch

Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437903</commentid>
    <comment_count>7</comment_count>
      <attachid>101011</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-15 12:27:43 -0700</bug_when>
    <thetext>Comment on attachment 101011
updated patch

Clearing flags on attachment: 101011

Committed r91090: &lt;http://trac.webkit.org/changeset/91090&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437904</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-15 12:27:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100939</attachid>
            <date>2011-07-14 23:31:56 -0700</date>
            <delta_ts>2011-07-15 11:25:27 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>64584-1.patch</filename>
            <type>text/plain</type>
            <size>10203</size>
            <attacher name="Ian Henderson">ian</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxMDUxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMDctMTQgIElhbiBIZW5k
ZXJzb24gIDxpYW5oQGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCByb3VuZGVkIHJlY3QgY29y
bmVyLWRyYXdpbmcgb3ZlcmhlYWQgaWYgbm8gY29ybmVycyBhcmUgdmlzaWJsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1ODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlaGF2
aW9yIGlzIHVuYWZmZWN0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpwYWludEJveERlY29yYXRpb25z
KTogUGFzcyBQYWludEluZm8gaW50bworICAgICAgICBwYWludEJvcmRlci4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGFp
bnRCb3hEZWNvcmF0aW9ucyk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFpbnRCb3JkZXIpOgorICAgICAgICBBbnkgaW52aXNpYmxlIGNvcm5lciBtYXkgYmUgcmVwbGFj
ZWQgd2l0aCBhIGNvcm5lciBvZiByYWRpdXMgemVybywgYXMKKyAgICAgICAgbG9uZyBhcyB0aGUg
c3Ryb2tlIHN0eWxlIGlzIHNvbGlkLiAgQ2hhbmdlIHRoZSBHcmFwaGljc0NvbnRleHQKKyAgICAg
ICAgcGFyYW1ldGVyIGludG8gYSBQYWludEluZm8gcGFyYW1ldGVyIHNvIHdlIGNhbiBnZXQgdGhl
IHJlY3QgdG8gYmUKKyAgICAgICAgZHJhd24uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpZWxkc2V0OjpwYWludEJveERlY29yYXRpb25zKTog
UGFzcyBQYWludEluZm8gaW50bworICAgICAgICBwYWludEJvcmRlci4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnBh
aW50Qm94RGVjb3JhdGlvbnMpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFi
bGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6cGFpbnRCb3hE
ZWNvcmF0aW9ucyk6IERpdHRvLgorCiAyMDExLTA3LTE0ICBTcmF2YW5LdW1hciBTICA8c3JhdmFu
LmtlbkBnbWFpbC5jb20+CiAKICAgICAgICAgUmVwbGFjZWQgaXNDaGVja2VkKCkgd2l0aCBzaG91
bGRBcHBlYXJDaGVja2VkKCkgaW4gSFRNTElucHV0RWxlbWVudC5jcHAgYWxvbmcgd2l0aCBhbGwg
dGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb24gY2FsbHMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNpb24gOTEwNDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTE2LDcgKzExNiw3IEBACiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRCZWNh
bWVOb25JbmxpbmUoUmVuZGVyT2JqZWN0KiAvKmNoaWxkKi8pIHsgfQogCi0gICAgdm9pZCBwYWlu
dEJvcmRlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgUmVuZGVyU3R5
bGUqLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgPSBCYWNrZ3JvdW5kQmxlZWROb25lLCBib29s
IGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRF
ZGdlID0gdHJ1ZSk7CisgICAgdm9pZCBwYWludEJvcmRlcihjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUqLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2Ug
PSBCYWNrZ3JvdW5kQmxlZWROb25lLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVl
LCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlID0gdHJ1ZSk7CiAgICAgYm9vbCBwYWludE5p
bmVQaWVjZUltYWdlKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmLCBjb25zdCBSZW5k
ZXJTdHlsZSosIGNvbnN0IE5pbmVQaWVjZUltYWdlJiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21w
b3NpdGVTb3VyY2VPdmVyKTsKICAgICB2b2lkIHBhaW50Qm94U2hhZG93KEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJTdHlsZSosIFNoYWRvd1N0eWxlLCBi
b29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVlLCBib29sIGluY2x1ZGVMb2dpY2FsUmln
aHRFZGdlID0gdHJ1ZSk7CiAgICAgdm9pZCBwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29uc3QgRmlsbExheWVyKiwgY29uc3QgTGF5b3V0UmVj
dCYsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0JveCogPSAwLCBjb25zdCBM
YXlvdXRTaXplJiA9IExheW91dFNpemUoKSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVT
b3VyY2VPdmVyLCBSZW5kZXJPYmplY3QqIGJhY2tncm91bmRPYmplY3QgPSAwKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCShyZXZpc2lvbiA5
MTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDE3LDcgKzEwMTcsNyBAQAogICAgIGlmICghc3R5bGUoKS0+aGFz
Qm9yZGVyKCkgfHwgdGFibGVFbHQtPmNvbGxhcHNlQm9yZGVycygpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBwYWludEJvcmRlcihwYWludEluZm8uY29udGV4dCwgcGFpbnRSZWN0LCBzdHlsZSgp
KTsKKyAgICBwYWludEJvcmRlcihwYWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUoKSk7CiB9CiAK
IHZvaWQgUmVuZGVyVGFibGVDZWxsOjpwYWludE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lRmxvd0JveC5jcHAJKHJldmlzaW9uIDkxMDQ4KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTM0LDcg
KzExMzQsNyBAQAogICAgICAgICAgICAgLy8gVGhlIHNpbXBsZSBjYXNlIGlzIHdoZXJlIHdlIGVp
dGhlciBoYXZlIG5vIGJvcmRlciBpbWFnZSBvciB3ZSBhcmUgdGhlIG9ubHkgYm94IGZvciB0aGlz
IG9iamVjdC4gIEluIHRob3NlCiAgICAgICAgICAgICAvLyBjYXNlcyBvbmx5IGEgc2luZ2xlIGNh
bGwgdG8gZHJhdyBpcyByZXF1aXJlZC4KICAgICAgICAgICAgIGlmICghaGFzQm9yZGVySW1hZ2Ug
fHwgKCFwcmV2TGluZUJveCgpICYmICFuZXh0TGluZUJveCgpKSkKLSAgICAgICAgICAgICAgICBi
b3hNb2RlbE9iamVjdCgpLT5wYWludEJvcmRlcihjb250ZXh0LCBwYWludFJlY3QsIHJlbmRlcmVy
KCktPnN0eWxlKCksIEJhY2tncm91bmRCbGVlZE5vbmUsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2Uo
KSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UoKSk7CisgICAgICAgICAgICAgICAgYm94TW9kZWxP
YmplY3QoKS0+cGFpbnRCb3JkZXIocGFpbnRJbmZvLCBwYWludFJlY3QsIHJlbmRlcmVyKCktPnN0
eWxlKCksIEJhY2tncm91bmRCbGVlZE5vbmUsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UoKSwgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UoKSk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
ICAgICAvLyBXZSBoYXZlIGEgYm9yZGVyIGltYWdlIHRoYXQgc3BhbnMgbXVsdGlwbGUgbGluZXMu
CiAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdHggYW5kIHR5IGJ5IHRoZSB3
aWR0aCBvZiBhbGwgcHJldmlvdXMgbGluZXMuCkBAIC0xMTU3LDcgKzExNTcsNyBAQAogCiAgICAg
ICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0
KTsKICAgICAgICAgICAgICAgICBjb250ZXh0LT5jbGlwKHBhaW50UmVjdCk7Ci0gICAgICAgICAg
ICAgICAgYm94TW9kZWxPYmplY3QoKS0+cGFpbnRCb3JkZXIoY29udGV4dCwgTGF5b3V0UmVjdChz
dHJpcFgsIHN0cmlwWSwgc3RyaXBXaWR0aCwgc3RyaXBIZWlnaHQpLCByZW5kZXJlcigpLT5zdHls
ZSgpKTsKKyAgICAgICAgICAgICAgICBib3hNb2RlbE9iamVjdCgpLT5wYWludEJvcmRlcihwYWlu
dEluZm8sIExheW91dFJlY3Qoc3RyaXBYLCBzdHJpcFksIHN0cmlwV2lkdGgsIHN0cmlwSGVpZ2h0
KSwgcmVuZGVyZXIoKS0+c3R5bGUoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAJKHJldmlzaW9uIDkxMDQ4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3MSw5ICsxMzcxLDEw
IEBACiAgICAgfQogfQogCi12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihH
cmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCwgY29u
c3QgUmVuZGVyU3R5bGUqIHN0eWxlLAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRC
b3JkZXIoY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBS
ZW5kZXJTdHlsZSogc3R5bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxv
Z2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkKIHsKKyAgICBHcmFw
aGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCA9IGluZm8uY29udGV4dDsKICAgICAvLyBib3Jk
ZXItaW1hZ2UgaXMgbm90IGFmZmVjdGVkIGJ5IGJvcmRlci1yYWRpdXMuCiAgICAgaWYgKHBhaW50
TmluZVBpZWNlSW1hZ2UoZ3JhcGhpY3NDb250ZXh0LCByZWN0LCBzdHlsZSwgc3R5bGUtPmJvcmRl
ckltYWdlKCkpKQogICAgICAgICByZXR1cm47CkBAIC0xNDIwLDcgKzE0MjEsMzUgQEAKICAgICAg
ICAgaWYgKGN1cnJFZGdlLnN0eWxlICE9IFNPTElEKQogICAgICAgICAgICAgaGF2ZUFsbFNvbGlk
RWRnZXMgPSBmYWxzZTsKICAgICB9Ci0gICAgCisKKyAgICAvLyBJZiBvbmUgb2YgdGhlIGNvcm5l
cnMgZmFsbHMgb3V0c2lkZSB0aGUgY2xpcCByZWdpb24sIHByZXRlbmQgaXQgaGFzIG5vIHJhZGl1
cy4KKyAgICBpZiAob3V0ZXJCb3JkZXIuaXNSb3VuZGVkKCkgJiYgaGF2ZUFsbFNvbGlkRWRnZXMp
IHsKKyAgICAgICAgUm91bmRlZFJlY3Q6OlJhZGlpIGFkanVzdGVkT3V0ZXJSYWRpaSA9IG91dGVy
Qm9yZGVyLnJhZGlpKCk7CisgICAgICAgIExheW91dFJlY3QgY2xpcFJlY3QgPSBpbmZvLnJlY3Q7
CisKKyAgICAgICAgTGF5b3V0UmVjdCB0b3BMZWZ0UmVjdChyZWN0LmxvY2F0aW9uKCksIGFkanVz
dGVkT3V0ZXJSYWRpaS50b3BMZWZ0KCkpOworICAgICAgICBpZiAoIWNsaXBSZWN0LmludGVyc2Vj
dHModG9wTGVmdFJlY3QpKQorICAgICAgICAgICAgYWRqdXN0ZWRPdXRlclJhZGlpLnNldFRvcExl
ZnQoSW50U2l6ZSgpKTsKKworICAgICAgICBMYXlvdXRSZWN0IHRvcFJpZ2h0UmVjdChyZWN0Lmxv
Y2F0aW9uKCksIGFkanVzdGVkT3V0ZXJSYWRpaS50b3BSaWdodCgpKTsKKyAgICAgICAgdG9wUmln
aHRSZWN0LnNldFgocmVjdC5tYXhYKCkgLSB0b3BSaWdodFJlY3Qud2lkdGgoKSk7CisgICAgICAg
IGlmICghY2xpcFJlY3QuaW50ZXJzZWN0cyh0b3BSaWdodFJlY3QpKQorICAgICAgICAgICAgYWRq
dXN0ZWRPdXRlclJhZGlpLnNldFRvcFJpZ2h0KEludFNpemUoKSk7CisKKyAgICAgICAgTGF5b3V0
UmVjdCBib3R0b21MZWZ0UmVjdChyZWN0LmxvY2F0aW9uKCksIGFkanVzdGVkT3V0ZXJSYWRpaS5i
b3R0b21MZWZ0KCkpOworICAgICAgICBib3R0b21MZWZ0UmVjdC5zZXRZKHJlY3QubWF4WSgpIC0g
Ym90dG9tTGVmdFJlY3QuaGVpZ2h0KCkpOworICAgICAgICBpZiAoIWNsaXBSZWN0LmludGVyc2Vj
dHMoYm90dG9tTGVmdFJlY3QpKQorICAgICAgICAgICAgYWRqdXN0ZWRPdXRlclJhZGlpLnNldEJv
dHRvbUxlZnQoSW50U2l6ZSgpKTsKKworICAgICAgICBMYXlvdXRSZWN0IGJvdHRvbVJpZ2h0UmVj
dChyZWN0LmxvY2F0aW9uKCksIGFkanVzdGVkT3V0ZXJSYWRpaS5ib3R0b21SaWdodCgpKTsKKyAg
ICAgICAgYm90dG9tUmlnaHRSZWN0LnNldFgocmVjdC5tYXhYKCkgLSBib3R0b21SaWdodFJlY3Qu
d2lkdGgoKSk7CisgICAgICAgIGJvdHRvbVJpZ2h0UmVjdC5zZXRZKHJlY3QubWF4WSgpIC0gYm90
dG9tUmlnaHRSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgaWYgKCFjbGlwUmVjdC5pbnRlcnNlY3Rz
KGJvdHRvbVJpZ2h0UmVjdCkpCisgICAgICAgICAgICBhZGp1c3RlZE91dGVyUmFkaWkuc2V0Qm90
dG9tUmlnaHQoSW50U2l6ZSgpKTsKKworICAgICAgICBvdXRlckJvcmRlci5zZXRSYWRpaShhZGp1
c3RlZE91dGVyUmFkaWkpOworICAgIH0KKwogICAgIC8vIGlzUmVuZGVyYWJsZSgpIGNoZWNrIGF2
b2lkcyBpc3N1ZSBkZXNjcmliZWQgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM4Nzg3CiAgICAgaWYgKGhhdmVBbGxTb2xpZEVkZ2VzICYmIGFsbEVkZ2VzVmlzaWJs
ZSAmJiBhbGxFZGdlc1NoYXJlQ29sb3IgJiYgaW5uZXJCb3JkZXIuaXNSZW5kZXJhYmxlKCkpIHsK
ICAgICAgICAgLy8gRmFzdCBwYXRoIGZvciBkcmF3aW5nIGFsbCBzb2xpZCBlZGdlcy4KQEAgLTE2
MTMsOSArMTY0MiwxMCBAQAogICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1JlY3QoYm9yZGVyUmVj
dCk7CiB9CiAjZWxzZQotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoR3Jh
cGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0
IFJlbmRlclN0eWxlKiBzdHlsZSwKK3ZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9y
ZGVyKGNvbnN0IFBhaW50SW5mbyYgaW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgUmVu
ZGVyU3R5bGUqIHN0eWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJv
b2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpCiB7CisgICAgR3JhcGhpY3NDb250ZXh0KiBncmFw
aGljc0NvbnRleHQgPSBpbmZvLmNvbnRleHQ7CiAgICAgLy8gRklYTUU6IFRoaXMgb2xkIHZlcnNp
b24gb2YgcGFpbnRCb3JkZXIgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBhbGwgcG9ydHMgaW1wbGVt
ZW50IAogICAgIC8vIEdyYXBoaWNzQ29udGV4dDo6Y2xpcENvbnZleFBvbHlnb24oKSEhIFRoaXMg
c2hvdWxkIGhhcHBlbiBzb29uLgogICAgIGlmIChwYWludE5pbmVQaWVjZUltYWdlKGdyYXBoaWNz
Q29udGV4dCwgcmVjdCwgc3R5bGUsIHN0eWxlLT5ib3JkZXJJbWFnZSgpKSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiA5MTA0OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NzQs
NyArODc0LDcgQEAKIAogICAgIC8vIFRoZSB0aGVtZSB3aWxsIHRlbGwgdXMgd2hldGhlciBvciBu
b3Qgd2Ugc2hvdWxkIGFsc28gcGFpbnQgdGhlIENTUyBib3JkZXIuCiAgICAgaWYgKCghc3R5bGUo
KS0+aGFzQXBwZWFyYW5jZSgpIHx8ICghdGhlbWVQYWludGVkICYmIHRoZW1lKCktPnBhaW50Qm9y
ZGVyT25seSh0aGlzLCBwYWludEluZm8sIHBhaW50UmVjdCkpKSAmJiBzdHlsZSgpLT5oYXNCb3Jk
ZXIoKSkKLSAgICAgICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLmNvbnRleHQsIHBhaW50UmVjdCwg
c3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOworICAgICAgICBwYWludEJvcmRlcihwYWludEluZm8s
IHBhaW50UmVjdCwgc3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOwogCiAgICAgaWYgKGJsZWVkQXZv
aWRhbmNlID09IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyKQogICAgICAgICBw
YWludEluZm8uY29udGV4dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcAkocmV2aXNpb24gOTEwNDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjUsNyArMTY1LDcgQEAKICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5jbGlwT3V0
KExheW91dFJlY3QoY2xpcExlZnQsIHBhaW50UmVjdC55KCkgKyBsZWdlbmQtPnkoKSwgY2xpcFdp
ZHRoLCBsZWdlbmQtPmhlaWdodCgpKSk7CiAgICAgfQogCi0gICAgcGFpbnRCb3JkZXIocGFpbnRJ
bmZvLmNvbnRleHQsIHBhaW50UmVjdCwgc3R5bGUoKSk7CisgICAgcGFpbnRCb3JkZXIocGFpbnRJ
bmZvLCBwYWludFJlY3QsIHN0eWxlKCkpOwogfQogCiB2b2lkIFJlbmRlckZpZWxkc2V0OjpwYWlu
dE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNl
dCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAkocmV2aXNp
b24gOTEwNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NjksNyArNTY5LDcgQEAKICAgICBwYWludEJveFNoYWRvdyhwYWlu
dEluZm8uY29udGV4dCwgcmVjdCwgc3R5bGUoKSwgSW5zZXQpOwogCiAgICAgaWYgKHN0eWxlKCkt
Pmhhc0JvcmRlcigpICYmICFjb2xsYXBzZUJvcmRlcnMoKSkKLSAgICAgICAgcGFpbnRCb3JkZXIo
cGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIHN0eWxlKCkpOworICAgICAgICBwYWludEJvcmRlcihw
YWludEluZm8sIHJlY3QsIHN0eWxlKCkpOwogfQogCiB2b2lkIFJlbmRlclRhYmxlOjpwYWludE1h
c2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkK
</data>
<flag name="review"
          id="95716"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="95717"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>101007</attachid>
            <date>2011-07-15 11:14:01 -0700</date>
            <delta_ts>2011-07-15 11:14:01 -0700</delta_ts>
            <desc>test case</desc>
            <filename>64584.html</filename>
            <type>text/html</type>
            <size>465</size>
            <attacher name="Ian Henderson">ian</attacher>
            
              <data encoding="base64">PGh0bWw+PGhlYWQ+PHN0eWxlIHR5cGU9dGV4dC9jc3M+Ci5yb3VuZGVkIHsgYm9yZGVyLXJhZGl1
czogNTBweDsgYm9yZGVyOiAyMHB4IHNvbGlkIGJsYWNrOyB3aWR0aDogNTAwcHg7IGhlaWdodDog
NTAwcHg7IH0KLm92ZXJmbG93IHsgb3ZlcmZsb3c6IHNjcm9sbDsgd2lkdGg6IDMwMHB4OyBoZWln
aHQ6IDMwMHB4OyBmbG9hdDogbGVmdDsgfQo8L3N0eWxlPjwvaGVhZD48Ym9keT4KPGRpdiBjbGFz
cz0ib3ZlcmZsb3ciPgo8ZGl2IGNsYXNzPSJyb3VuZGVkIj48L2Rpdj4KPC9kaXY+CjxkaXYgY2xh
c3M9Im92ZXJmbG93Ij4KPGRpdiBjbGFzcz0icm91bmRlZCIgc3R5bGU9ImJvcmRlci1zdHlsZTog
ZG90dGVkIj48L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im92ZXJmbG93Ij4KPGRpdiBjbGFzcz0i
cm91bmRlZCIgc3R5bGU9ImJvcmRlci1zdHlsZTogZGFzaGVkIj48L2Rpdj4KPC9kaXY+CjwvYm9k
eT48L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101011</attachid>
            <date>2011-07-15 11:25:27 -0700</date>
            <delta_ts>2011-07-15 12:27:43 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>64584-2.patch</filename>
            <type>text/plain</type>
            <size>10565</size>
            <attacher name="Ian Henderson">ian</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxMDc4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDctMTQgIElhbiBIZW5k
ZXJzb24gIDxpYW5oQGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCByb3VuZGVkIHJlY3QgY29y
bmVyLWRyYXdpbmcgb3ZlcmhlYWQgaWYgbm8gY29ybmVycyBhcmUgdmlzaWJsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1ODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlbmRl
cmluZyBpcyB2aXN1YWxseSBpZGVudGljYWwuCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpwYWludEJveERl
Y29yYXRpb25zKTogUGFzcyBQYWludEluZm8gaW50bworICAgICAgICBwYWludEJvcmRlci4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1bnJvdW5kQ2xpcHBl
ZENvcm5lcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
Qm9yZGVyKToKKyAgICAgICAgQW55IGludmlzaWJsZSBjb3JuZXIgbWF5IGJlIHJlcGxhY2VkIHdp
dGggYSBjb3JuZXIgb2YgcmFkaXVzIHplcm8sIGFzCisgICAgICAgIGxvbmcgYXMgdGhlIHN0cm9r
ZSBzdHlsZSBpcyBzb2xpZC4gIENoYW5nZSB0aGUgR3JhcGhpY3NDb250ZXh0CisgICAgICAgIHBh
cmFtZXRlciBpbnRvIGEgUGFpbnRJbmZvIHBhcmFtZXRlciBzbyB3ZSBjYW4gZ2V0IHRoZSByZWN0
IHRvIGJlCisgICAgICAgIGRyYXduLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGaWVsZHNldDo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6IFBhc3Mg
UGFpbnRJbmZvIGludG8KKyAgICAgICAgcGFpbnRCb3JkZXIuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpwYWludEJv
eERlY29yYXRpb25zKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhaW50Qm94RGVjb3Jh
dGlvbnMpOiBEaXR0by4KKwogMjAxMS0wNy0xNSAgWGlhb21laSBKaSAgPHhqaUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgLS13ZWJraXQtdmlzdWFsLXdvcmQgY3Jhc2ggb24gbWl4ZWQgZWRpdGFi
aWxpdHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5oCShyZXZpc2lvbiA5MTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAK
IAogICAgIHZpcnR1YWwgdm9pZCBjaGlsZEJlY2FtZU5vbklubGluZShSZW5kZXJPYmplY3QqIC8q
Y2hpbGQqLykgeyB9CiAKLSAgICB2b2lkIHBhaW50Qm9yZGVyKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEludFJlY3QmLCBjb25zdCBSZW5kZXJTdHlsZSosIEJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZSA9IEJhY2tncm91bmRCbGVlZE5vbmUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSA9IHRy
dWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKTsKKyAgICB2b2lkIHBhaW50
Qm9yZGVyKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBSZW5kZXJTdHls
ZSosIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSA9IEJhY2tncm91bmRCbGVlZE5vbmUsIGJvb2wg
aW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVk
Z2UgPSB0cnVlKTsKICAgICBib29sIHBhaW50TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IFJlbmRlclN0eWxlKiwgY29uc3QgTmluZVBpZWNlSW1h
Z2UmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIpOwogICAgIHZvaWQg
cGFpbnRCb3hTaGFkb3coR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0
IFJlbmRlclN0eWxlKiwgU2hhZG93U3R5bGUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSA9
IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKTsKICAgICB2b2lkIHBh
aW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29sb3ImLCBjb25z
dCBGaWxsTGF5ZXIqLCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNl
LCBJbmxpbmVGbG93Qm94KiA9IDAsIGNvbnN0IExheW91dFNpemUmID0gTGF5b3V0U2l6ZSgpLCBD
b21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlbmRlck9iamVjdCogYmFj
a2dyb3VuZE9iamVjdCA9IDApOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2VsbC5jcHAJKHJldmlzaW9uIDkxMDQ4KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMTcsNyArMTAx
Nyw3IEBACiAgICAgaWYgKCFzdHlsZSgpLT5oYXNCb3JkZXIoKSB8fCB0YWJsZUVsdC0+Y29sbGFw
c2VCb3JkZXJzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhaW50Qm9yZGVyKHBhaW50SW5m
by5jb250ZXh0LCBwYWludFJlY3QsIHN0eWxlKCkpOworICAgIHBhaW50Qm9yZGVyKHBhaW50SW5m
bywgcGFpbnRSZWN0LCBzdHlsZSgpKTsKIH0KIAogdm9pZCBSZW5kZXJUYWJsZUNlbGw6OnBhaW50
TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2
aXNpb24gOTEwNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExMzQsNyArMTEzNCw3IEBACiAgICAgICAgICAgICAvLyBU
aGUgc2ltcGxlIGNhc2UgaXMgd2hlcmUgd2UgZWl0aGVyIGhhdmUgbm8gYm9yZGVyIGltYWdlIG9y
IHdlIGFyZSB0aGUgb25seSBib3ggZm9yIHRoaXMgb2JqZWN0LiAgSW4gdGhvc2UKICAgICAgICAg
ICAgIC8vIGNhc2VzIG9ubHkgYSBzaW5nbGUgY2FsbCB0byBkcmF3IGlzIHJlcXVpcmVkLgogICAg
ICAgICAgICAgaWYgKCFoYXNCb3JkZXJJbWFnZSB8fCAoIXByZXZMaW5lQm94KCkgJiYgIW5leHRM
aW5lQm94KCkpKQotICAgICAgICAgICAgICAgIGJveE1vZGVsT2JqZWN0KCktPnBhaW50Qm9yZGVy
KGNvbnRleHQsIHBhaW50UmVjdCwgcmVuZGVyZXIoKS0+c3R5bGUoKSwgQmFja2dyb3VuZEJsZWVk
Tm9uZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSgpLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSgp
KTsKKyAgICAgICAgICAgICAgICBib3hNb2RlbE9iamVjdCgpLT5wYWludEJvcmRlcihwYWludElu
Zm8sIHBhaW50UmVjdCwgcmVuZGVyZXIoKS0+c3R5bGUoKSwgQmFja2dyb3VuZEJsZWVkTm9uZSwg
aW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSgpLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSgpKTsKICAg
ICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgYSBib3JkZXIgaW1h
Z2UgdGhhdCBzcGFucyBtdWx0aXBsZSBsaW5lcy4KICAgICAgICAgICAgICAgICAvLyBXZSBuZWVk
IHRvIGFkanVzdCB0eCBhbmQgdHkgYnkgdGhlIHdpZHRoIG9mIGFsbCBwcmV2aW91cyBsaW5lcy4K
QEAgLTExNTcsNyArMTE1Nyw3IEBACiAKICAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOwogICAgICAgICAgICAgICAgIGNvbnRleHQt
PmNsaXAocGFpbnRSZWN0KTsKLSAgICAgICAgICAgICAgICBib3hNb2RlbE9iamVjdCgpLT5wYWlu
dEJvcmRlcihjb250ZXh0LCBMYXlvdXRSZWN0KHN0cmlwWCwgc3RyaXBZLCBzdHJpcFdpZHRoLCBz
dHJpcEhlaWdodCksIHJlbmRlcmVyKCktPnN0eWxlKCkpOworICAgICAgICAgICAgICAgIGJveE1v
ZGVsT2JqZWN0KCktPnBhaW50Qm9yZGVyKHBhaW50SW5mbywgTGF5b3V0UmVjdChzdHJpcFgsIHN0
cmlwWSwgc3RyaXBXaWR0aCwgc3RyaXBIZWlnaHQpLCByZW5kZXJlcigpLT5zdHlsZSgpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAkocmV2aXNpb24gOTEwNDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzcxLDkgKzEzNzEsNTEgQEAKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250
ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsCitzdGF0
aWMgdm9pZCB1bnJvdW5kQ2xpcHBlZENvcm5lcnMoUm91bmRlZFJlY3QmIGJvcmRlciwgY29uc3Qg
TGF5b3V0UmVjdCYgY2xpcFJlY3QpCit7CisgICAgTGF5b3V0UmVjdCBib3VuZGluZ1JlY3QgPSBi
b3JkZXIucmVjdCgpOworICAgIGlmICghYm9yZGVyLmlzUm91bmRlZCgpIHx8IGNsaXBSZWN0LmNv
bnRhaW5zKGJvdW5kaW5nUmVjdCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJvdW5kZWRSZWN0
OjpSYWRpaSBhZGp1c3RlZFJhZGlpID0gYm9yZGVyLnJhZGlpKCk7CisgICAgYm9vbCBkaWRBZGp1
c3RSYWRpaSA9IGZhbHNlOworCisgICAgTGF5b3V0UmVjdCB0b3BMZWZ0UmVjdChib3VuZGluZ1Jl
Y3QubG9jYXRpb24oKSwgYWRqdXN0ZWRSYWRpaS50b3BMZWZ0KCkpOworICAgIGlmICghY2xpcFJl
Y3QuaW50ZXJzZWN0cyh0b3BMZWZ0UmVjdCkpIHsKKyAgICAgICAgYWRqdXN0ZWRSYWRpaS5zZXRU
b3BMZWZ0KEludFNpemUoKSk7CisgICAgICAgIGRpZEFkanVzdFJhZGlpID0gdHJ1ZTsKKyAgICB9
CisKKyAgICBMYXlvdXRSZWN0IHRvcFJpZ2h0UmVjdChib3VuZGluZ1JlY3QubG9jYXRpb24oKSwg
YWRqdXN0ZWRSYWRpaS50b3BSaWdodCgpKTsKKyAgICB0b3BSaWdodFJlY3Quc2V0WChib3VuZGlu
Z1JlY3QubWF4WCgpIC0gdG9wUmlnaHRSZWN0LndpZHRoKCkpOworICAgIGlmICghY2xpcFJlY3Qu
aW50ZXJzZWN0cyh0b3BSaWdodFJlY3QpKSB7CisgICAgICAgIGFkanVzdGVkUmFkaWkuc2V0VG9w
UmlnaHQoSW50U2l6ZSgpKTsKKyAgICAgICAgZGlkQWRqdXN0UmFkaWkgPSB0cnVlOworICAgIH0K
KworICAgIExheW91dFJlY3QgYm90dG9tTGVmdFJlY3QoYm91bmRpbmdSZWN0LmxvY2F0aW9uKCks
IGFkanVzdGVkUmFkaWkuYm90dG9tTGVmdCgpKTsKKyAgICBib3R0b21MZWZ0UmVjdC5zZXRZKGJv
dW5kaW5nUmVjdC5tYXhZKCkgLSBib3R0b21MZWZ0UmVjdC5oZWlnaHQoKSk7CisgICAgaWYgKCFj
bGlwUmVjdC5pbnRlcnNlY3RzKGJvdHRvbUxlZnRSZWN0KSkgeworICAgICAgICBhZGp1c3RlZFJh
ZGlpLnNldEJvdHRvbUxlZnQoSW50U2l6ZSgpKTsKKyAgICAgICAgZGlkQWRqdXN0UmFkaWkgPSB0
cnVlOworICAgIH0KKworICAgIExheW91dFJlY3QgYm90dG9tUmlnaHRSZWN0KGJvdW5kaW5nUmVj
dC5sb2NhdGlvbigpLCBhZGp1c3RlZFJhZGlpLmJvdHRvbVJpZ2h0KCkpOworICAgIGJvdHRvbVJp
Z2h0UmVjdC5zZXRYKGJvdW5kaW5nUmVjdC5tYXhYKCkgLSBib3R0b21SaWdodFJlY3Qud2lkdGgo
KSk7CisgICAgYm90dG9tUmlnaHRSZWN0LnNldFkoYm91bmRpbmdSZWN0Lm1heFkoKSAtIGJvdHRv
bVJpZ2h0UmVjdC5oZWlnaHQoKSk7CisgICAgaWYgKCFjbGlwUmVjdC5pbnRlcnNlY3RzKGJvdHRv
bVJpZ2h0UmVjdCkpIHsKKyAgICAgICAgYWRqdXN0ZWRSYWRpaS5zZXRCb3R0b21SaWdodChJbnRT
aXplKCkpOworICAgICAgICBkaWRBZGp1c3RSYWRpaSA9IHRydWU7CisgICAgfQorCisgICAgaWYg
KGRpZEFkanVzdFJhZGlpKQorICAgICAgICBib3JkZXIuc2V0UmFkaWkoYWRqdXN0ZWRSYWRpaSk7
Cit9CisKK3ZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKGNvbnN0IFBhaW50
SW5mbyYgaW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJv
b2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpCiB7CisgICAgR3JhcGhpY3NDb250ZXh0KiBncmFw
aGljc0NvbnRleHQgPSBpbmZvLmNvbnRleHQ7CiAgICAgLy8gYm9yZGVyLWltYWdlIGlzIG5vdCBh
ZmZlY3RlZCBieSBib3JkZXItcmFkaXVzLgogICAgIGlmIChwYWludE5pbmVQaWVjZUltYWdlKGdy
YXBoaWNzQ29udGV4dCwgcmVjdCwgc3R5bGUsIHN0eWxlLT5ib3JkZXJJbWFnZSgpKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTQyMCw3ICsxNDYyLDEyIEBACiAgICAgICAgIGlmIChjdXJyRWRnZS5z
dHlsZSAhPSBTT0xJRCkKICAgICAgICAgICAgIGhhdmVBbGxTb2xpZEVkZ2VzID0gZmFsc2U7CiAg
ICAgfQotICAgIAorCisgICAgLy8gSWYgb25lIG9mIHRoZSBjb3JuZXJzIGZhbGxzIG91dHNpZGUg
dGhlIGNsaXAgcmVnaW9uLCBwcmV0ZW5kIGl0IGhhcyBubworICAgIC8vIHJhZGl1cyB0byBpbXBy
b3ZlIHBlcmZvcm1hbmNlLgorICAgIGlmIChoYXZlQWxsU29saWRFZGdlcykKKyAgICAgICAgdW5y
b3VuZENsaXBwZWRDb3JuZXJzKG91dGVyQm9yZGVyLCBpbmZvLnJlY3QpOworCiAgICAgLy8gaXNS
ZW5kZXJhYmxlKCkgY2hlY2sgYXZvaWRzIGlzc3VlIGRlc2NyaWJlZCBpbiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3ODcKICAgICBpZiAoaGF2ZUFsbFNvbGlkRWRn
ZXMgJiYgYWxsRWRnZXNWaXNpYmxlICYmIGFsbEVkZ2VzU2hhcmVDb2xvciAmJiBpbm5lckJvcmRl
ci5pc1JlbmRlcmFibGUoKSkgewogICAgICAgICAvLyBGYXN0IHBhdGggZm9yIGRyYXdpbmcgYWxs
IHNvbGlkIGVkZ2VzLgpAQCAtMTYxMyw5ICsxNjYwLDEwIEBACiAgICAgZ3JhcGhpY3NDb250ZXh0
LT5kcmF3UmVjdChib3JkZXJSZWN0KTsKIH0KICNlbHNlCi12b2lkIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludEJvcmRlcihHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29uc3Qg
SW50UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLAordm9pZCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRS
ZWN0JiByZWN0LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVk
ZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkKIHsKKyAgICBH
cmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCA9IGluZm8uY29udGV4dDsKICAgICAvLyBG
SVhNRTogVGhpcyBvbGQgdmVyc2lvbiBvZiBwYWludEJvcmRlciBzaG91bGQgYmUgcmVtb3ZlZCB3
aGVuIGFsbCBwb3J0cyBpbXBsZW1lbnQgCiAgICAgLy8gR3JhcGhpY3NDb250ZXh0OjpjbGlwQ29u
dmV4UG9seWdvbigpISEgVGhpcyBzaG91bGQgaGFwcGVuIHNvb24uCiAgICAgaWYgKHBhaW50Tmlu
ZVBpZWNlSW1hZ2UoZ3JhcGhpY3NDb250ZXh0LCByZWN0LCBzdHlsZSwgc3R5bGUtPmJvcmRlcklt
YWdlKCkpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlz
aW9uIDkxMDQ4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg3NCw3ICs4NzQsNyBAQAogCiAgICAgLy8gVGhlIHRoZW1lIHdpbGwg
dGVsbCB1cyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQgYWxzbyBwYWludCB0aGUgQ1NTIGJvcmRl
ci4KICAgICBpZiAoKCFzdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkgfHwgKCF0aGVtZVBhaW50ZWQg
JiYgdGhlbWUoKS0+cGFpbnRCb3JkZXJPbmx5KHRoaXMsIHBhaW50SW5mbywgcGFpbnRSZWN0KSkp
ICYmIHN0eWxlKCktPmhhc0JvcmRlcigpKQotICAgICAgICBwYWludEJvcmRlcihwYWludEluZm8u
Y29udGV4dCwgcGFpbnRSZWN0LCBzdHlsZSgpLCBibGVlZEF2b2lkYW5jZSk7CisgICAgICAgIHBh
aW50Qm9yZGVyKHBhaW50SW5mbywgcGFpbnRSZWN0LCBzdHlsZSgpLCBibGVlZEF2b2lkYW5jZSk7
CiAKICAgICBpZiAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJl
bmN5TGF5ZXIpCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXll
cigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3Bw
CShyZXZpc2lvbiA5MTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVs
ZHNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw3ICsxNjUsNyBAQAogICAgICAgICBncmFw
aGljc0NvbnRleHQtPmNsaXBPdXQoTGF5b3V0UmVjdChjbGlwTGVmdCwgcGFpbnRSZWN0LnkoKSAr
IGxlZ2VuZC0+eSgpLCBjbGlwV2lkdGgsIGxlZ2VuZC0+aGVpZ2h0KCkpKTsKICAgICB9CiAKLSAg
ICBwYWludEJvcmRlcihwYWludEluZm8uY29udGV4dCwgcGFpbnRSZWN0LCBzdHlsZSgpKTsKKyAg
ICBwYWludEJvcmRlcihwYWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUoKSk7CiB9CiAKIHZvaWQg
UmVuZGVyRmllbGRzZXQ6OnBhaW50TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwCShyZXZpc2lvbiA5MTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2OSw3ICs1NjksNyBAQAogICAg
IHBhaW50Qm94U2hhZG93KHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBzdHlsZSgpLCBJbnNldCk7
CiAKICAgICBpZiAoc3R5bGUoKS0+aGFzQm9yZGVyKCkgJiYgIWNvbGxhcHNlQm9yZGVycygpKQot
ICAgICAgICBwYWludEJvcmRlcihwYWludEluZm8uY29udGV4dCwgcmVjdCwgc3R5bGUoKSk7Cisg
ICAgICAgIHBhaW50Qm9yZGVyKHBhaW50SW5mbywgcmVjdCwgc3R5bGUoKSk7CiB9CiAKIHZvaWQg
UmVuZGVyVGFibGU6OnBhaW50TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0
UG9pbnQmIHBhaW50T2Zmc2V0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>