<?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>92689</bug_id>
          
          <creation_ts>2012-07-30 15:48:10 -0700</creation_ts>
          <short_desc>Remove overflow: scroll handling in block flow layout methods</short_desc>
          <delta_ts>2012-07-30 20:39:14 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>682479</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-07-30 15:48:10 -0700</bug_when>
    <thetext>The logic to set-up overflow: scroll scrollbars is implemented in layout for all RenderBlocks and its children. This was probably done to compensate for RenderLayer&apos;s lack of logic to handle that. It is now repeated in 4 classes (RenderBlock, RenderGrid, RenderFlexibleBox and RenderDeprecatedFlexibleBox).

Setting the scrollbars during layout is completely wrong as overflow: scroll only changes at style change and layout doesn&apos;t impact the presence of scrollbars in this case. On top of that, we now have the right hook in RenderLayer::updateScrollbarsAfterStyleChange to handle it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682495</commentid>
    <comment_count>1</comment_count>
      <attachid>155391</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-07-30 16:13:37 -0700</bug_when>
    <thetext>Created attachment 155391
Proposed refactoring: move the code to updateScrollbarsAfterStyleChange, add list box part handling and remove duplicated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682509</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-30 16:30:08 -0700</bug_when>
    <thetext>I like the idea of this change.

I don&apos;t know much about RenderLayer.  Is there one per RenderBlock?  If not, don&apos;t we need to update child RenderBlocks?

Also, does updateScrollbarsAfterStyleChange run before layout?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682511</commentid>
    <comment_count>3</comment_count>
      <attachid>155391</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-30 16:33:14 -0700</bug_when>
    <thetext>Comment on attachment 155391
Proposed refactoring: move the code to updateScrollbarsAfterStyleChange, add list box part handling and remove duplicated code.

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:2530
&gt; +    if (UNLIKELY(box-&gt;style()-&gt;appearance() == ListboxPart))

I don&apos;t think UNLIKELY is useful here.

&gt; Source/WebCore/rendering/RenderLayer.cpp:4847
&gt; +    if (UNLIKELY(box-&gt;style()-&gt;appearance() == ListboxPart))

Ditto.

&gt; Source/WebCore/rendering/RenderLayer.cpp:4856
&gt; +    if (!overflowCanHaveAScrollbar(overflowX))
&gt;          setHasHorizontalScrollbar(false);
&gt; -    if (hasVerticalScrollbar() &amp;&amp; !overflowCanHaveAScrollbar(overflowY))
&gt; +    else if (overflowRequiresAScrollbar(overflowX))
&gt; +        setHasHorizontalScrollbar(true);

Having this if/else is confusing, since overflowCanHaveAScrollbar and overflowRequiresAScrollbar both consult the same EOverflow value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682523</commentid>
    <comment_count>4</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-07-30 16:40:51 -0700</bug_when>
    <thetext>&gt; I don&apos;t know much about RenderLayer.  Is there one per RenderBlock?

Not necessarily. First it&apos;s at most one per RenderBoxModelObject and it is allocated on style change if needed. If you have some overflow clip, you will have a RenderLayer (see RenderBox::requiresLayer()).

&gt;  If not, don&apos;t we need to update child RenderBlocks?

No need for that.

&gt; Also, does updateScrollbarsAfterStyleChange run before layout?

updateScrollbarsAfterStyleChange is called during style change after the layer was created. If the style change required a layout, it will occur later (which should be the case for some &apos;overflow&apos; transition as we need to relayout).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682542</commentid>
    <comment_count>5</comment_count>
      <attachid>155391</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-07-30 17:08:50 -0700</bug_when>
    <thetext>Comment on attachment 155391
Proposed refactoring: move the code to updateScrollbarsAfterStyleChange, add list box part handling and remove duplicated code.

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

&gt;&gt; Source/WebCore/rendering/RenderLayer.cpp:4856
&gt;&gt; +        setHasHorizontalScrollbar(true);
&gt; 
&gt; Having this if/else is confusing, since overflowCanHaveAScrollbar and overflowRequiresAScrollbar both consult the same EOverflow value.

Thinking further, we can probably get away with:

setHasHorizontalScrollbar(overflowRequiresAScrollbar(overflowX));
setHasVerticalScrollbar(overflowRequiresAScrollbar(overflowY));

This has the big downside of destroying the automatic scrollbar(s) during any style change - regardless of whether we actually changed &apos;overflow&apos; and thus would likely force a relayout later. A better fix would be to be more conservative by keeping automatic scrollbars and forcing overflow: scroll ones. Let me think more about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682572</commentid>
    <comment_count>6</comment_count>
      <attachid>155409</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-07-30 17:47:39 -0700</bug_when>
    <thetext>Created attachment 155409
Updated updateScrollbarsAfterStyleChange to be less confusing while keeping existing automatic scrollbars.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682577</commentid>
    <comment_count>7</comment_count>
      <attachid>155409</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-30 17:55:24 -0700</bug_when>
    <thetext>Comment on attachment 155409
Updated updateScrollbarsAfterStyleChange to be less confusing while keeping existing automatic scrollbars.

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:4829
&gt; +static bool overflowRequiresAScrollbar(EOverflow overflow)

Please call this overflowRequiresScrollbar().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682629</commentid>
    <comment_count>8</comment_count>
      <attachid>155421</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-07-30 19:15:13 -0700</bug_when>
    <thetext>Created attachment 155421
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682692</commentid>
    <comment_count>9</comment_count>
      <attachid>155421</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 20:39:09 -0700</bug_when>
    <thetext>Comment on attachment 155421
Patch for landing

Clearing flags on attachment: 155421

Committed r124168: &lt;http://trac.webkit.org/changeset/124168&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682693</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 20:39:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155391</attachid>
            <date>2012-07-30 16:13:37 -0700</date>
            <delta_ts>2012-07-30 17:47:36 -0700</delta_ts>
            <desc>Proposed refactoring: move the code to updateScrollbarsAfterStyleChange, add list box part handling and remove duplicated code.</desc>
            <filename>bug-92689-20120730161321.patch</filename>
            <type>text/plain</type>
            <size>11194</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5MTc5Njc5NjNiMzAz
ZDNhOWMxYWM4ZTNmNWVjODljMDJkZWUxZi4uYjhhNGI4MWY4YWNjNzA4YzFlZTljYTU3ODNkYTUw
MDA1YTVmM2RjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA3LTMwICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBv
dmVyZmxvdzogc2Nyb2xsIGhhbmRsaW5nIGluIGJsb2NrIGZsb3cgbGF5b3V0IG1ldGhvZHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNjg5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIG92ZXJmbG93
OiBzY3JvbGwgc2Nyb2xsYmFycyBjcmVhdGlvbiB3YXMgZG9uZSBhdCBsYXlvdXQgdGltZSBmb3Ig
YWxsIFJlbmRlckJsb2NrcyBhbmQKKyAgICAgICAgZGVzY2VuZGFudHMuIFRoaXMgd2FzIG5vdCBv
bmx5IHdyb25nICgnb3ZlcmZsb3cnIG9ubHkgY2hhbmdlcyBhdCBzdHlsZSBjaGFuZ2UgdGltZSkg
YnV0IGl0CisgICAgICAgIHdhcyBhbHNvIGludHJvZHVjaW5nIHNvbWUgY29kZSBkdXBsaWNhdGlv
bi4KKworICAgICAgICBUaGUgZ2lzdCBvZiB0aGlzIGNoYW5nZSBpcyB0byBzaGFyZSB0aGUgY29k
ZSBieSBtb3ZpbmcgaXQgdG8gUmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlclN0eWxl
Q2hhbmdlLAorICAgICAgICB0aGlzIGluY2x1ZGVzIHRoZSBjb2RlIGZyb20gYnVnIDY5OTkzIHRv
IHNwZWNpYWwgY2FzZSBsaXN0IGJveCBwYXJ0LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3Rp
bmcgdGVzdHM6CisgICAgICAgIC0gQWxsIGZhc3Qvb3ZlcmZsb3cgb25lcy4KKyAgICAgICAgLSBG
b3IgdGhlIGxpc3QgYm94IGNoYW5nZToKKyAgICAgICAgICAgIGZhc3QvZm9ybXMvc2VsZWN0LW92
ZXJmbG93LXNjcm9sbC1pbmhlcml0ZWQuaHRtbAorICAgICAgICAgICAgZmFzdC9mb3Jtcy9zZWxl
Y3Qtb3ZlcmZsb3ctc2Nyb2xsLmh0bWwKKyAgICAgICAgLSBGb3IgdGhlIGZsZXhib3g6CisgICAg
ICAgICAgICBjc3MzL2ZsZXhib3gvcHJlZmVycmVkLXdpZHRocy1vcnRob2dvbmFsLmh0bWwKKyAg
ICAgICAgICAgIGNzczMvZmxleGJveC9wcmVmZXJyZWQtd2lkdGhzLmh0bWwKKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94OjpsYXlvdXRCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
bGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOgorICAgICAgICBSZW1vdmVkIHRoZSBjb21tb24gY29k
ZSBoZXJlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocyk6CisgICAgICAgIENoYW5nZWQgdG8gYW4gQVNTRVJUIG5vdyB0aGF0IHRoZSByaWdo
dCBzY3JvbGxiYXJzIGFyZSBjcmVhdGVkLiBUaGlzIGlzCisgICAgICAgIGZpbmUgYXMgb3ZlcmZs
b3cteC95IGFyZSBwaHlzaWNhbCBjb29yZGluYXRlcyBhbmQgb3VyIGFjY2VzcyB3ZXJlIGZvbGxv
d2luZyB0aGF0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdCk6CisgICAg
ICAgIEFkZGVkIGFuIGVhcmx5IHJldHVybiBoZXJlIGlmIHdlIGFyZSBub3QgYXR0YWNoZWQgeWV0
IGFzIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQKKyAgICAgICAgaXMgY2FsbGVkIGF0IGF0dGFj
aG1lbnQgdGltZSBiZWZvcmUgd2UgYXJlIGluc2VydGVkIGluIHRoZSB0cmVlLiBUaGlzIGlzIGZp
bmUgYXMgdGhlCisgICAgICAgIHNjcm9sbGJhcnMgYXJlIHBhcnQgb2YgdGhlIG9iamVjdCB3aGlj
aCB3aWxsIGJlIHBhaW50ZWQgYWZ0ZXIgdGhlIGZpcnN0IGxheW91dC4KKworICAgICAgICAoV2Vi
Q29yZTo6b3ZlcmZsb3dSZXF1aXJlc0FTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6b3Zl
cmZsb3dDYW5IYXZlQVNjcm9sbGJhcik6CisgICAgICAgIFNwbGl0IHRoZSBsb2dpYyBpbiB0aG9z
ZSAyIGZ1bmN0aW9ucy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVNj
cm9sbGJhcnNBZnRlckxheW91dCk6CisgICAgICAgIFVwZGF0ZWQgdG8gdXNlIHRoZSByZXF1aXJl
IC8gY2FuLWhhdmUgZnVuY3Rpb25zLiBBbHNvIGFkZGVkCisgICAgICAgIGFuIGVhcmx5IHJldHVy
biBmb3IgbGlzdCBib3ggcGFydHMgYXMgcmVxdWlyZWQgYnkgYnVnIDY5OTkzLgorCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsYmFyc0FmdGVyU3R5bGVDaGFuZ2Up
OgorICAgICAgICBBZGRlZCBhbiBlYXJseSByZXR1cm4gZm9yIGxpc3QgYm94IHBhcnRzIGFzIHJl
cXVpcmVkIGJ5IGJ1ZyA2OTk5MywKKyAgICAgICAgYWxzbyByZW1vdmVkIHNvbWUgdW5uZWVkZWQg
TlVMTC1jaGVja3MgdGhhdCB3ZXJlIGFkZGVkIGZvciBsaXN0IGJveCBwYXJ0cy4KKwogMjAxMi0w
Ny0zMCAgVmluZWV0IENoYXVkaGFyeSAgPHJnZjc0OEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNjQyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAwZTRhNzdhNzhjY2ZkYjExMjYxYjc1
OWQzZTE5ZWEwYTRkOGI2NTExLi43ZTY0MDE0ZTAzZGYxODkwMzE0MzQyOTI5ZDQ4NjAwZTdiOWJh
N2FlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE0NzIs
MTQgKzE0NzIsNiBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0
Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaAogICAgICAgICBzZXRQYWdpbmF0
aW9uU3RydXQoMCk7CiAgICAgfQogCi0gICAgLy8gRm9yIG92ZXJmbG93OnNjcm9sbCBibG9ja3Ms
IGVuc3VyZSB3ZSBoYXZlIGJvdGggc2Nyb2xsYmFycyBpbiBwbGFjZSBhbHdheXMuCi0gICAgaWYg
KHNjcm9sbHNPdmVyZmxvdygpICYmIHN0eWxlKCktPmFwcGVhcmFuY2UoKSAhPSBMaXN0Ym94UGFy
dCkgewotICAgICAgICBpZiAoc3R5bGVUb1VzZS0+b3ZlcmZsb3dYKCkgPT0gT1NDUk9MTCkKLSAg
ICAgICAgICAgIGxheWVyKCktPnNldEhhc0hvcml6b250YWxTY3JvbGxiYXIodHJ1ZSk7Ci0gICAg
ICAgIGlmIChzdHlsZVRvVXNlLT5vdmVyZmxvd1koKSA9PSBPU0NST0xMKQotICAgICAgICAgICAg
bGF5ZXIoKS0+c2V0SGFzVmVydGljYWxTY3JvbGxiYXIodHJ1ZSk7Ci0gICAgfQotCiAgICAgTGF5
b3V0VW5pdCByZXBhaW50TG9naWNhbFRvcCA9IFpFUk9fTEFZT1VUX1VOSVQ7CiAgICAgTGF5b3V0
VW5pdCByZXBhaW50TG9naWNhbEJvdHRvbSA9IFpFUk9fTEFZT1VUX1VOSVQ7CiAgICAgTGF5b3V0
VW5pdCBtYXhGbG9hdExvZ2ljYWxCb3R0b20gPSBaRVJPX0xBWU9VVF9VTklUOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
LmNwcAppbmRleCA0YWU0MmJjN2RhYWU5Yjg0YzQ1OGJjZTQwNjUzOWYyZTQ3MzY3MDExLi5mMTI5
OTkxMTE1Y2U4OWNjMWE1ZTllY2RlZThiNmE0MWE0MDRjYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApA
QCAtMjYyLDE0ICsyNjIsNiBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5
b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAgaW5pdE1h
eE1hcmdpblZhbHVlcygpOwogCi0gICAgLy8gRm9yIG92ZXJmbG93OnNjcm9sbCBibG9ja3MsIGVu
c3VyZSB3ZSBoYXZlIGJvdGggc2Nyb2xsYmFycyBpbiBwbGFjZSBhbHdheXMuCi0gICAgaWYgKHNj
cm9sbHNPdmVyZmxvdygpKSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBP
U0NST0xMKQotICAgICAgICAgICAgbGF5ZXIoKS0+c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcih0
cnVlKTsKLSAgICAgICAgaWYgKHN0eWxlKCktPm92ZXJmbG93WSgpID09IE9TQ1JPTEwpCi0gICAg
ICAgICAgICBsYXllcigpLT5zZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcih0cnVlKTsKLSAgICB9Ci0K
ICAgICBpZiAoaXNIb3Jpem9udGFsKCkpCiAgICAgICAgIGxheW91dEhvcml6b250YWxCb3gocmVs
YXlvdXRDaGlsZHJlbik7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggM2IxZDQ3MzdjNjY1MTJhOTc4NDM2OGMxZjliYjBl
NjVmNTE0NDY3Ny4uOTYxYTlmMzFlMTUwYjc4MTlhMGI2YmM2MWI4OTI0NWI4MmUzYzQ1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC0x
OTQsMTAgKzE5NCwxMCBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpCiAgICAgTGF5b3V0VW5pdCBzY3JvbGxiYXJXaWR0aCA9IDA7CiAgICAg
aWYgKGhhc092ZXJmbG93Q2xpcCgpKSB7CiAgICAgICAgIGlmIChpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpICYmIHN0eWxlVG9Vc2UtPm92ZXJmbG93WSgpID09IE9TQ1JPTEwpIHsKLSAgICAgICAg
ICAgIGxheWVyKCktPnNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKHRydWUpOworICAgICAgICAgICAg
QVNTRVJUKGxheWVyKCktPmhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCkpOwogICAgICAgICAgICAgc2Ny
b2xsYmFyV2lkdGggPSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgICAgIH0gZWxzZSBp
ZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgJiYgc3R5bGVUb1VzZS0+b3ZlcmZsb3dYKCkg
PT0gT1NDUk9MTCkgewotICAgICAgICAgICAgbGF5ZXIoKS0+c2V0SGFzSG9yaXpvbnRhbFNjcm9s
bGJhcih0cnVlKTsKKyAgICAgICAgICAgIEFTU0VSVChsYXllcigpLT5oYXNIb3Jpem9udGFsU2Ny
b2xsYmFyKCkpOwogICAgICAgICAgICAgc2Nyb2xsYmFyV2lkdGggPSBob3Jpem9udGFsU2Nyb2xs
YmFySGVpZ2h0KCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNDgsMTQgKzI0OCw2IEBAIHZvaWQg
UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5
b3V0VW5pdCkKIAogICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsKIAotICAgIC8vIEZvciBvdmVyZmxv
dzpzY3JvbGwgYmxvY2tzLCBlbnN1cmUgd2UgaGF2ZSBib3RoIHNjcm9sbGJhcnMgaW4gcGxhY2Ug
YWx3YXlzLgotICAgIGlmIChzY3JvbGxzT3ZlcmZsb3coKSkgewotICAgICAgICBpZiAoc3R5bGUo
KS0+b3ZlcmZsb3dYKCkgPT0gT1NDUk9MTCkKLSAgICAgICAgICAgIGxheWVyKCktPnNldEhhc0hv
cml6b250YWxTY3JvbGxiYXIodHJ1ZSk7Ci0gICAgICAgIGlmIChzdHlsZSgpLT5vdmVyZmxvd1ko
KSA9PSBPU0NST0xMKQotICAgICAgICAgICAgbGF5ZXIoKS0+c2V0SGFzVmVydGljYWxTY3JvbGxi
YXIodHJ1ZSk7Ci0gICAgfQotCiAgICAgV1RGOjpWZWN0b3I8TGluZUNvbnRleHQ+IGxpbmVDb250
ZXh0czsKICAgICBPcmRlckhhc2hTZXQgb3JkZXJWYWx1ZXM7CiAgICAgY29tcHV0ZU1haW5BeGlz
UHJlZmVycmVkU2l6ZXMocmVsYXlvdXRDaGlsZHJlbiwgb3JkZXJWYWx1ZXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IGI0ZDJhMGMwOGI0ZjYwNzJlYzYwNWRh
NmM0NzI0MmJlOGJkZmEyZTAuLmRjYjE4NjFhOWUyMTU2NTAxMGI4MDg5YzQ2YjY5YjBjMWM5NTQ3
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTgwLDEzICs4
MCw2IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVu
LCBMYXlvdXRVbml0KQogCiAgICAgbV9vdmVyZmxvdy5jbGVhcigpOwogCi0gICAgaWYgKHNjcm9s
bHNPdmVyZmxvdygpKSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBPU0NS
T0xMKQotICAgICAgICAgICAgbGF5ZXIoKS0+c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcih0cnVl
KTsKLSAgICAgICAgaWYgKHN0eWxlKCktPm92ZXJmbG93WSgpID09IE9TQ1JPTEwpCi0gICAgICAg
ICAgICBsYXllcigpLT5zZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcih0cnVlKTsKLSAgICB9Ci0KICAg
ICBsYXlvdXRHcmlkSXRlbXMoKTsKIAogICAgIExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdl
ID0gY2xpZW50TG9naWNhbEJvdHRvbSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKaW5kZXggNzRiMGY1YTY3MDE2ZWZhZWYwOTUwZDMzYjM5ZmMzYjE1MzhmYTM4OS4u
MDMzYjhjNDkzOTYxMmMxMzc0OTZmZjQ1Yzc5MjEwNjM4OWI2N2Y5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yMjI5LDYgKzIyMjksMTAgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiBzY3JvbGxiYXIs
IGNvbnN0IEludFJlY3QmIHIKICAgICBJbnRSZWN0IHNjcm9sbFJlY3QgPSByZWN0OwogICAgIFJl
bmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAgQVNTRVJUKGJveCk7CisgICAgLy8gSWYg
d2UgYXJlIG5vdCB5ZXQgaW5zZXJ0ZWQgaW50byB0aGUgdHJlZSwgdGhlcmUgaXMgbm8gbmVlZCB0
byByZXBhaW50LgorICAgIGlmICghYm94LT5wYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgaWYgKHNjcm9sbGJhciA9PSBtX3ZCYXIuZ2V0KCkpCiAgICAgICAgIHNjcm9sbFJlY3QubW92
ZSh2ZXJ0aWNhbFNjcm9sbGJhclN0YXJ0KDAsIGJveC0+d2lkdGgoKSksIGJveC0+Ym9yZGVyVG9w
KCkpOwogICAgIGVsc2UKQEAgLTI1MjIsMTMgKzI1MjYsMTcgQEAgdm9pZCBSZW5kZXJMYXllcjo6
dXBkYXRlU2Nyb2xsYmFyc0FmdGVyTGF5b3V0KCkKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRl
ckJveCgpOwogICAgIEFTU0VSVChib3gpOwogCisgICAgLy8gTGlzdCBib3ggcGFydHMgaGFuZGxl
IHRoZSBzY3JvbGxiYXJzIGJ5IHRoZW1zZWx2ZXMgc28gd2UgaGF2ZSBub3RoaW5nIHRvIGRvLgor
ICAgIGlmIChVTkxJS0VMWShib3gtPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBMaXN0Ym94UGFy
dCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGJvb2wgaGFzSG9yaXpvbnRhbE92ZXJmbG93ID0g
dGhpcy0+aGFzSG9yaXpvbnRhbE92ZXJmbG93KCk7CiAgICAgYm9vbCBoYXNWZXJ0aWNhbE92ZXJm
bG93ID0gdGhpcy0+aGFzVmVydGljYWxPdmVyZmxvdygpOwogCiAgICAgLy8gb3ZlcmZsb3c6c2Ny
b2xsIHNob3VsZCBqdXN0IGVuYWJsZS9kaXNhYmxlLgotICAgIGlmIChtX2hCYXIgJiYgcmVuZGVy
ZXIoKS0+c3R5bGUoKS0+b3ZlcmZsb3dYKCkgPT0gT1NDUk9MTCkKKyAgICBpZiAocmVuZGVyZXIo
KS0+c3R5bGUoKS0+b3ZlcmZsb3dYKCkgPT0gT1NDUk9MTCkKICAgICAgICAgbV9oQmFyLT5zZXRF
bmFibGVkKGhhc0hvcml6b250YWxPdmVyZmxvdyk7Ci0gICAgaWYgKG1fdkJhciAmJiByZW5kZXJl
cigpLT5zdHlsZSgpLT5vdmVyZmxvd1koKSA9PSBPU0NST0xMKQorICAgIGlmIChyZW5kZXJlcigp
LT5zdHlsZSgpLT5vdmVyZmxvd1koKSA9PSBPU0NST0xMKQogICAgICAgICBtX3ZCYXItPnNldEVu
YWJsZWQoaGFzVmVydGljYWxPdmVyZmxvdyk7CiAKICAgICAvLyBvdmVyZmxvdzphdXRvIG1heSBu
ZWVkIHRvIGxheSBvdXQgYWdhaW4gaWYgc2Nyb2xsYmFycyBnb3QgYWRkZWQvcmVtb3ZlZC4KQEAg
LTQ4MTgsMzIgKzQ4MjYsNDggQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlU3RhY2tpbmdDb250
ZXh0c0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFMKICAgICB9CiB9CiAK
K3N0YXRpYyBib29sIG92ZXJmbG93UmVxdWlyZXNBU2Nyb2xsYmFyKEVPdmVyZmxvdyBvdmVyZmxv
dykKK3sKKyAgICByZXR1cm4gb3ZlcmZsb3cgPT0gT1NDUk9MTDsKK30KKwogc3RhdGljIGJvb2wg
b3ZlcmZsb3dDYW5IYXZlQVNjcm9sbGJhcihFT3ZlcmZsb3cgb3ZlcmZsb3cpCiB7Ci0gICAgcmV0
dXJuIG92ZXJmbG93ID09IE9BVVRPIHx8IG92ZXJmbG93ID09IE9TQ1JPTEwgfHwgb3ZlcmZsb3cg
PT0gT09WRVJMQVk7CisgICAgcmV0dXJuIG92ZXJmbG93ID09IE9BVVRPIHx8IG92ZXJmbG93ID09
IE9PVkVSTEFZIHx8IG92ZXJmbG93UmVxdWlyZXNBU2Nyb2xsYmFyKG92ZXJmbG93KTsKIH0KIAog
dm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsYmFyc0FmdGVyU3R5bGVDaGFuZ2UoY29uc3Qg
UmVuZGVyU3R5bGUqIG9sZFN0eWxlKQogewogICAgIC8vIE92ZXJmbG93IGFyZSBhIGJveCBjb25j
ZXB0LgotICAgIGlmICghcmVuZGVyQm94KCkpCisgICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJC
b3goKTsKKyAgICBpZiAoIWJveCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gTGlzdCBib3gg
cGFydHMgaGFuZGxlIHRoZSBzY3JvbGxiYXJzIGJ5IHRoZW1zZWx2ZXMgc28gd2UgaGF2ZSBub3Ro
aW5nIHRvIGRvLgorICAgIGlmIChVTkxJS0VMWShib3gtPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9
PSBMaXN0Ym94UGFydCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEVPdmVyZmxvdyBvdmVyZmxv
d1ggPSByZW5kZXJCb3goKS0+c3R5bGUoKS0+b3ZlcmZsb3dYKCk7Ci0gICAgRU92ZXJmbG93IG92
ZXJmbG93WSA9IHJlbmRlckJveCgpLT5zdHlsZSgpLT5vdmVyZmxvd1koKTsKLSAgICBpZiAoaGFz
SG9yaXpvbnRhbFNjcm9sbGJhcigpICYmICFvdmVyZmxvd0NhbkhhdmVBU2Nyb2xsYmFyKG92ZXJm
bG93WCkpCisgICAgRU92ZXJmbG93IG92ZXJmbG93WCA9IGJveC0+c3R5bGUoKS0+b3ZlcmZsb3dY
KCk7CisgICAgRU92ZXJmbG93IG92ZXJmbG93WSA9IGJveC0+c3R5bGUoKS0+b3ZlcmZsb3dZKCk7
CisKKyAgICBpZiAoIW92ZXJmbG93Q2FuSGF2ZUFTY3JvbGxiYXIob3ZlcmZsb3dYKSkKICAgICAg
ICAgc2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcihmYWxzZSk7Ci0gICAgaWYgKGhhc1ZlcnRpY2Fs
U2Nyb2xsYmFyKCkgJiYgIW92ZXJmbG93Q2FuSGF2ZUFTY3JvbGxiYXIob3ZlcmZsb3dZKSkKKyAg
ICBlbHNlIGlmIChvdmVyZmxvd1JlcXVpcmVzQVNjcm9sbGJhcihvdmVyZmxvd1gpKQorICAgICAg
ICBzZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKHRydWUpOworCisgICAgaWYgKCFvdmVyZmxvd0Nh
bkhhdmVBU2Nyb2xsYmFyKG92ZXJmbG93WSkpCiAgICAgICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xs
YmFyKGZhbHNlKTsKKyAgICBlbHNlIGlmIChvdmVyZmxvd1JlcXVpcmVzQVNjcm9sbGJhcihvdmVy
Zmxvd1kpKQorICAgICAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcih0cnVlKTsKIAogICAgIC8v
IFdpdGggb3ZlcmZsb3c6IHNjcm9sbCwgc2Nyb2xsYmFycyBhcmUgYWx3YXlzIHZpc2libGUgYnV0
IG1heSBiZSBkaXNhYmxlZC4KICAgICAvLyBXaGVuIHN3aXRjaGluZyB0byBhbm90aGVyIHZhbHVl
LCB3ZSBuZWVkIHRvIHJlLWVuYWJsZSB0aGVtIChzZWUgYnVnIDExOTg1KS4KLSAgICBpZiAoaGFz
SG9yaXpvbnRhbFNjcm9sbGJhcigpICYmIG9sZFN0eWxlLT5vdmVyZmxvd1goKSA9PSBPU0NST0xM
ICYmIG92ZXJmbG93WCAhPSBPU0NST0xMKSB7CisgICAgaWYgKGhhc0hvcml6b250YWxTY3JvbGxi
YXIoKSAmJiBvbGRTdHlsZSAmJiBvbGRTdHlsZS0+b3ZlcmZsb3dYKCkgPT0gT1NDUk9MTCAmJiBv
dmVyZmxvd1ggIT0gT1NDUk9MTCkgewogICAgICAgICBBU1NFUlQob3ZlcmZsb3dDYW5IYXZlQVNj
cm9sbGJhcihvdmVyZmxvd1gpKTsKICAgICAgICAgbV9oQmFyLT5zZXRFbmFibGVkKHRydWUpOwog
ICAgIH0KIAotICAgIGlmIChoYXNWZXJ0aWNhbFNjcm9sbGJhcigpICYmIG9sZFN0eWxlLT5vdmVy
Zmxvd1koKSA9PSBPU0NST0xMICYmIG92ZXJmbG93WSAhPSBPU0NST0xMKSB7CisgICAgaWYgKGhh
c1ZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgb2xkU3R5bGUgJiYgb2xkU3R5bGUtPm92ZXJmbG93WSgp
ID09IE9TQ1JPTEwgJiYgb3ZlcmZsb3dZICE9IE9TQ1JPTEwpIHsKICAgICAgICAgQVNTRVJUKG92
ZXJmbG93Q2FuSGF2ZUFTY3JvbGxiYXIob3ZlcmZsb3dZKSk7CiAgICAgICAgIG1fdkJhci0+c2V0
RW5hYmxlZCh0cnVlKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155409</attachid>
            <date>2012-07-30 17:47:39 -0700</date>
            <delta_ts>2012-07-30 19:15:10 -0700</delta_ts>
            <desc>Updated updateScrollbarsAfterStyleChange to be less confusing while keeping existing automatic scrollbars.</desc>
            <filename>bug-92689-20120730174723.patch</filename>
            <type>text/plain</type>
            <size>11586</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI1ZWE0M2I2YmQxNTE1
ZTYyNjgyNDgwZTI1ZTdiNGFmODNkZjhjMi4uYzg5MTcyZTczNjFlYTc2NGNjZjU0YTFlNzFlYjk0
Y2JkNGQzMGU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA3LTMwICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBv
dmVyZmxvdzogc2Nyb2xsIGhhbmRsaW5nIGluIGJsb2NrIGZsb3cgbGF5b3V0IG1ldGhvZHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNjg5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIG92ZXJmbG93
OiBzY3JvbGwgc2Nyb2xsYmFycyBjcmVhdGlvbiB3YXMgZG9uZSBhdCBsYXlvdXQgdGltZSBmb3Ig
YWxsIFJlbmRlckJsb2NrcyBhbmQKKyAgICAgICAgZGVzY2VuZGFudHMuIFRoaXMgd2FzIG5vdCBv
bmx5IHdyb25nICgnb3ZlcmZsb3cnIG9ubHkgY2hhbmdlcyBhdCBzdHlsZSBjaGFuZ2UgdGltZSkg
YnV0IGl0CisgICAgICAgIHdhcyBhbHNvIGludHJvZHVjaW5nIHNvbWUgY29kZSBkdXBsaWNhdGlv
bi4KKworICAgICAgICBUaGUgZ2lzdCBvZiB0aGlzIGNoYW5nZSBpcyB0byBzaGFyZSB0aGUgY29k
ZSBieSBtb3ZpbmcgaXQgdG8gUmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlclN0eWxl
Q2hhbmdlLAorICAgICAgICB0aGlzIGluY2x1ZGVzIHRoZSBjb2RlIGZyb20gYnVnIDY5OTkzIHRv
IHNwZWNpYWwgY2FzZSBsaXN0IGJveCBwYXJ0LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3Rp
bmcgdGVzdHM6CisgICAgICAgIC0gQWxsIGZhc3Qvb3ZlcmZsb3cgb25lcy4KKyAgICAgICAgLSBG
b3IgdGhlIGxpc3QgYm94IGNoYW5nZToKKyAgICAgICAgICAgIGZhc3QvZm9ybXMvc2VsZWN0LW92
ZXJmbG93LXNjcm9sbC1pbmhlcml0ZWQuaHRtbAorICAgICAgICAgICAgZmFzdC9mb3Jtcy9zZWxl
Y3Qtb3ZlcmZsb3ctc2Nyb2xsLmh0bWwKKyAgICAgICAgLSBGb3IgdGhlIGZsZXhib3g6CisgICAg
ICAgICAgICBjc3MzL2ZsZXhib3gvcHJlZmVycmVkLXdpZHRocy1vcnRob2dvbmFsLmh0bWwKKyAg
ICAgICAgICAgIGNzczMvZmxleGJveC9wcmVmZXJyZWQtd2lkdGhzLmh0bWwKKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94OjpsYXlvdXRCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
bGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOgorICAgICAgICBSZW1vdmVkIHRoZSBjb21tb24gY29k
ZSBoZXJlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocyk6CisgICAgICAgIENoYW5nZWQgdG8gYW4gQVNTRVJUIG5vdyB0aGF0IHRoZSByaWdo
dCBzY3JvbGxiYXJzIGFyZSBjcmVhdGVkLiBUaGlzIGlzCisgICAgICAgIGZpbmUgYXMgb3ZlcmZs
b3cteC95IGFyZSBwaHlzaWNhbCBjb29yZGluYXRlcyBhbmQgb3VyIGFjY2VzcyB3YXMgZm9sbG93
aW5nIHRoYXQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KToKKyAgICAg
ICAgQWRkZWQgYW4gZWFybHkgcmV0dXJuIGhlcmUgaWYgd2UgYXJlIG5vdCBhdHRhY2hlZCB5ZXQg
YXMgUmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZAorICAgICAgICBpcyBjYWxsZWQgYXQgYXR0YWNo
bWVudCB0aW1lIGJlZm9yZSB3ZSBhcmUgaW5zZXJ0ZWQgaW4gdGhlIHRyZWUuIFRoaXMgaXMgZmlu
ZSBhcyB0aGUKKyAgICAgICAgc2Nyb2xsYmFycyBhcmUgcGFydCBvZiB0aGUgb2JqZWN0IHdoaWNo
IHdpbGwgYmUgcGFpbnRlZCBhZnRlciB0aGUgZmlyc3QgbGF5b3V0LgorCisgICAgICAgIChXZWJD
b3JlOjpvdmVyZmxvd1JlcXVpcmVzQVNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpvdmVy
Zmxvd0RlZmluZXNBdXRvbWF0aWNTY3JvbGxiYXIpOgorICAgICAgICBTcGxpdCB0aGUgbG9naWMg
aW4gdGhvc2UgMiBmdW5jdGlvbnMuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1
cGRhdGVTY3JvbGxiYXJzQWZ0ZXJMYXlvdXQpOgorICAgICAgICBVcGRhdGVkIHRvIHVzZSB0aGUg
cmVxdWlyZSAvIGNhbi1oYXZlIGZ1bmN0aW9ucy4gQWxzbyBhZGRlZAorICAgICAgICBhbiBlYXJs
eSByZXR1cm4gZm9yIGxpc3QgYm94IHBhcnRzIGFzIHJlcXVpcmVkIGJ5IGJ1ZyA2OTk5My4KKwor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlclN0eWxl
Q2hhbmdlKToKKyAgICAgICAgQWRkZWQgYW4gZWFybHkgcmV0dXJuIGZvciBsaXN0IGJveCBwYXJ0
cyBhcyByZXF1aXJlZCBieSBidWcgNjk5OTMsCisgICAgICAgIGFsc28gcmVtb3ZlZCBzb21lIHVu
bmVlZGVkIE5VTEwtY2hlY2tzIHRoYXQgd2VyZSBhZGRlZCBmb3IgbGlzdCBib3ggcGFydHMuCisK
IDIwMTItMDctMzAgIERvbWluaWsgUsO2dHRzY2hlcyAgPGRvbWluaWsucm90dHNjaGVzQGludGVs
LmNvbT4KIAogICAgICAgICBBdm9pZCBBc3NlcnRpb24gRmFpbHVyZSBpbiBIYXJmQnV6elJ1bjo6
Y2hhcmFjdGVySW5kZXhGb3JYUG9zaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCmluZGV4IDBlNGE3N2E3OGNjZmRiMTEyNjFiNzU5ZDNlMTllYTBhNGQ4YjY1MTEu
LjdlNjQwMTRlMDNkZjE4OTAzMTQzNDI5MjlkNDg2MDBlN2I5YmE3YWUgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTQ3MiwxNCArMTQ3Miw2IEBAIHZvaWQg
UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5p
dCBwYWdlTG9naWNhbEhlaWdoCiAgICAgICAgIHNldFBhZ2luYXRpb25TdHJ1dCgwKTsKICAgICB9
CiAKLSAgICAvLyBGb3Igb3ZlcmZsb3c6c2Nyb2xsIGJsb2NrcywgZW5zdXJlIHdlIGhhdmUgYm90
aCBzY3JvbGxiYXJzIGluIHBsYWNlIGFsd2F5cy4KLSAgICBpZiAoc2Nyb2xsc092ZXJmbG93KCkg
JiYgc3R5bGUoKS0+YXBwZWFyYW5jZSgpICE9IExpc3Rib3hQYXJ0KSB7Ci0gICAgICAgIGlmIChz
dHlsZVRvVXNlLT5vdmVyZmxvd1goKSA9PSBPU0NST0xMKQotICAgICAgICAgICAgbGF5ZXIoKS0+
c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcih0cnVlKTsKLSAgICAgICAgaWYgKHN0eWxlVG9Vc2Ut
Pm92ZXJmbG93WSgpID09IE9TQ1JPTEwpCi0gICAgICAgICAgICBsYXllcigpLT5zZXRIYXNWZXJ0
aWNhbFNjcm9sbGJhcih0cnVlKTsKLSAgICB9Ci0KICAgICBMYXlvdXRVbml0IHJlcGFpbnRMb2dp
Y2FsVG9wID0gWkVST19MQVlPVVRfVU5JVDsKICAgICBMYXlvdXRVbml0IHJlcGFpbnRMb2dpY2Fs
Qm90dG9tID0gWkVST19MQVlPVVRfVU5JVDsKICAgICBMYXlvdXRVbml0IG1heEZsb2F0TG9naWNh
bEJvdHRvbSA9IFpFUk9fTEFZT1VUX1VOSVQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IDRhZTQyYmM3
ZGFhZTliODRjNDU4YmNlNDA2NTM5ZjJlNDczNjcwMTEuLmYxMjk5OTExMTVjZTg5Y2MxYTVlOWVj
ZGVlOGI2YTQxYTQwNGNiNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC0yNjIsMTQgKzI2Miw2IEBA
IHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5
b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAKICAgICBpbml0TWF4TWFyZ2luVmFsdWVzKCk7CiAK
LSAgICAvLyBGb3Igb3ZlcmZsb3c6c2Nyb2xsIGJsb2NrcywgZW5zdXJlIHdlIGhhdmUgYm90aCBz
Y3JvbGxiYXJzIGluIHBsYWNlIGFsd2F5cy4KLSAgICBpZiAoc2Nyb2xsc092ZXJmbG93KCkpIHsK
LSAgICAgICAgaWYgKHN0eWxlKCktPm92ZXJmbG93WCgpID09IE9TQ1JPTEwpCi0gICAgICAgICAg
ICBsYXllcigpLT5zZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKHRydWUpOwotICAgICAgICBpZiAo
c3R5bGUoKS0+b3ZlcmZsb3dZKCkgPT0gT1NDUk9MTCkKLSAgICAgICAgICAgIGxheWVyKCktPnNl
dEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKHRydWUpOwotICAgIH0KLQogICAgIGlmIChpc0hvcml6b250
YWwoKSkKICAgICAgICAgbGF5b3V0SG9yaXpvbnRhbEJveChyZWxheW91dENoaWxkcmVuKTsKICAg
ICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cAppbmRleCAzYjFkNDczN2M2NjUxMmE5Nzg0MzY4YzFmOWJiMGU2NWY1MTQ0Njc3Li45NjFhOWYz
MWUxNTBiNzgxOWEwYjZiYzYxYjg5MjQ1YjgyZTNjNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTE5NCwxMCArMTk0LDEwIEBAIHZv
aWQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAg
ICBMYXlvdXRVbml0IHNjcm9sbGJhcldpZHRoID0gMDsKICAgICBpZiAoaGFzT3ZlcmZsb3dDbGlw
KCkpIHsKICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgJiYgc3R5bGVUb1Vz
ZS0+b3ZlcmZsb3dZKCkgPT0gT1NDUk9MTCkgewotICAgICAgICAgICAgbGF5ZXIoKS0+c2V0SGFz
VmVydGljYWxTY3JvbGxiYXIodHJ1ZSk7CisgICAgICAgICAgICBBU1NFUlQobGF5ZXIoKS0+aGFz
VmVydGljYWxTY3JvbGxiYXIoKSk7CiAgICAgICAgICAgICBzY3JvbGxiYXJXaWR0aCA9IHZlcnRp
Y2FsU2Nyb2xsYmFyV2lkdGgoKTsKICAgICAgICAgfSBlbHNlIGlmICghaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSAmJiBzdHlsZVRvVXNlLT5vdmVyZmxvd1goKSA9PSBPU0NST0xMKSB7Ci0gICAg
ICAgICAgICBsYXllcigpLT5zZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKHRydWUpOworICAgICAg
ICAgICAgQVNTRVJUKGxheWVyKCktPmhhc0hvcml6b250YWxTY3JvbGxiYXIoKSk7CiAgICAgICAg
ICAgICBzY3JvbGxiYXJXaWR0aCA9IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTI0OCwxNCArMjQ4LDYgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6
bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAgbV9v
dmVyZmxvdy5jbGVhcigpOwogCi0gICAgLy8gRm9yIG92ZXJmbG93OnNjcm9sbCBibG9ja3MsIGVu
c3VyZSB3ZSBoYXZlIGJvdGggc2Nyb2xsYmFycyBpbiBwbGFjZSBhbHdheXMuCi0gICAgaWYgKHNj
cm9sbHNPdmVyZmxvdygpKSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBP
U0NST0xMKQotICAgICAgICAgICAgbGF5ZXIoKS0+c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcih0
cnVlKTsKLSAgICAgICAgaWYgKHN0eWxlKCktPm92ZXJmbG93WSgpID09IE9TQ1JPTEwpCi0gICAg
ICAgICAgICBsYXllcigpLT5zZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcih0cnVlKTsKLSAgICB9Ci0K
ICAgICBXVEY6OlZlY3RvcjxMaW5lQ29udGV4dD4gbGluZUNvbnRleHRzOwogICAgIE9yZGVySGFz
aFNldCBvcmRlclZhbHVlczsKICAgICBjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyhyZWxh
eW91dENoaWxkcmVuLCBvcmRlclZhbHVlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAKaW5kZXggYjRkMmEwYzA4YjRmNjA3MmVjNjA1ZGE2YzQ3MjQyYmU4YmRmYTJlMC4u
ZGNiMTg2MWE5ZTIxNTY1MDEwYjgwODljNDZiNjliMGMxYzk1NDdiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtODAsMTMgKzgwLDYgQEAgdm9pZCBSZW5kZXJH
cmlkOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAKICAg
ICBtX292ZXJmbG93LmNsZWFyKCk7CiAKLSAgICBpZiAoc2Nyb2xsc092ZXJmbG93KCkpIHsKLSAg
ICAgICAgaWYgKHN0eWxlKCktPm92ZXJmbG93WCgpID09IE9TQ1JPTEwpCi0gICAgICAgICAgICBs
YXllcigpLT5zZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKHRydWUpOwotICAgICAgICBpZiAoc3R5
bGUoKS0+b3ZlcmZsb3dZKCkgPT0gT1NDUk9MTCkKLSAgICAgICAgICAgIGxheWVyKCktPnNldEhh
c1ZlcnRpY2FsU2Nyb2xsYmFyKHRydWUpOwotICAgIH0KLQogICAgIGxheW91dEdyaWRJdGVtcygp
OwogCiAgICAgTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UgPSBjbGllbnRMb2dpY2FsQm90
dG9tKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA3NGIw
ZjVhNjcwMTZlZmFlZjA5NTBkMzNiMzlmYzNiMTUzOGZhMzg5Li5iYzYzYTQ0NDhlNGNmNjYwZmMy
YjQ4MTgzY2E1NDRlNDg3ZWU4ODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKQEAgLTIyMjksNiArMjIyOSwxMCBAQCB2b2lkIFJlbmRlckxheWVyOjppbnZhbGlk
YXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcgog
ICAgIEludFJlY3Qgc2Nyb2xsUmVjdCA9IHJlY3Q7CiAgICAgUmVuZGVyQm94KiBib3ggPSByZW5k
ZXJCb3goKTsKICAgICBBU1NFUlQoYm94KTsKKyAgICAvLyBJZiB3ZSBhcmUgbm90IHlldCBpbnNl
cnRlZCBpbnRvIHRoZSB0cmVlLCB0aGVyZSBpcyBubyBuZWVkIHRvIHJlcGFpbnQuCisgICAgaWYg
KCFib3gtPnBhcmVudCgpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoc2Nyb2xsYmFyID09
IG1fdkJhci5nZXQoKSkKICAgICAgICAgc2Nyb2xsUmVjdC5tb3ZlKHZlcnRpY2FsU2Nyb2xsYmFy
U3RhcnQoMCwgYm94LT53aWR0aCgpKSwgYm94LT5ib3JkZXJUb3AoKSk7CiAgICAgZWxzZQpAQCAt
MjUyMiwxMyArMjUyNiwxNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxiYXJzQWZ0
ZXJMYXlvdXQoKQogICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAgQVNTRVJU
KGJveCk7CiAKKyAgICAvLyBMaXN0IGJveCBwYXJ0cyBoYW5kbGUgdGhlIHNjcm9sbGJhcnMgYnkg
dGhlbXNlbHZlcyBzbyB3ZSBoYXZlIG5vdGhpbmcgdG8gZG8uCisgICAgaWYgKGJveC0+c3R5bGUo
KS0+YXBwZWFyYW5jZSgpID09IExpc3Rib3hQYXJ0KQorICAgICAgICByZXR1cm47CisKICAgICBi
b29sIGhhc0hvcml6b250YWxPdmVyZmxvdyA9IHRoaXMtPmhhc0hvcml6b250YWxPdmVyZmxvdygp
OwogICAgIGJvb2wgaGFzVmVydGljYWxPdmVyZmxvdyA9IHRoaXMtPmhhc1ZlcnRpY2FsT3ZlcmZs
b3coKTsKIAogICAgIC8vIG92ZXJmbG93OnNjcm9sbCBzaG91bGQganVzdCBlbmFibGUvZGlzYWJs
ZS4KLSAgICBpZiAobV9oQmFyICYmIHJlbmRlcmVyKCktPnN0eWxlKCktPm92ZXJmbG93WCgpID09
IE9TQ1JPTEwpCisgICAgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPm92ZXJmbG93WCgpID09IE9T
Q1JPTEwpCiAgICAgICAgIG1faEJhci0+c2V0RW5hYmxlZChoYXNIb3Jpem9udGFsT3ZlcmZsb3cp
OwotICAgIGlmIChtX3ZCYXIgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+b3ZlcmZsb3dZKCkgPT0g
T1NDUk9MTCkKKyAgICBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+b3ZlcmZsb3dZKCkgPT0gT1ND
Uk9MTCkKICAgICAgICAgbV92QmFyLT5zZXRFbmFibGVkKGhhc1ZlcnRpY2FsT3ZlcmZsb3cpOwog
CiAgICAgLy8gb3ZlcmZsb3c6YXV0byBtYXkgbmVlZCB0byBsYXkgb3V0IGFnYWluIGlmIHNjcm9s
bGJhcnMgZ290IGFkZGVkL3JlbW92ZWQuCkBAIC00ODE4LDMzICs0ODI2LDQ1IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZVN0YWNraW5nQ29udGV4dHNBZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCBvdmVyZmxvd0NhbkhhdmVB
U2Nyb2xsYmFyKEVPdmVyZmxvdyBvdmVyZmxvdykKK3N0YXRpYyBib29sIG92ZXJmbG93UmVxdWly
ZXNBU2Nyb2xsYmFyKEVPdmVyZmxvdyBvdmVyZmxvdykKK3sKKyAgICByZXR1cm4gb3ZlcmZsb3cg
PT0gT1NDUk9MTDsKK30KKworc3RhdGljIGJvb2wgb3ZlcmZsb3dEZWZpbmVzQXV0b21hdGljU2Ny
b2xsYmFyKEVPdmVyZmxvdyBvdmVyZmxvdykKIHsKLSAgICByZXR1cm4gb3ZlcmZsb3cgPT0gT0FV
VE8gfHwgb3ZlcmZsb3cgPT0gT1NDUk9MTCB8fCBvdmVyZmxvdyA9PSBPT1ZFUkxBWTsKKyAgICBy
ZXR1cm4gb3ZlcmZsb3cgPT0gT0FVVE8gfHwgb3ZlcmZsb3cgPT0gT09WRVJMQVk7CiB9CiAKIHZv
aWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSkKIHsKICAgICAvLyBPdmVyZmxvdyBhcmUgYSBib3ggY29uY2Vw
dC4KLSAgICBpZiAoIXJlbmRlckJveCgpKQorICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94
KCk7CisgICAgaWYgKCFib3gpCiAgICAgICAgIHJldHVybjsKIAotICAgIEVPdmVyZmxvdyBvdmVy
Zmxvd1ggPSByZW5kZXJCb3goKS0+c3R5bGUoKS0+b3ZlcmZsb3dYKCk7Ci0gICAgRU92ZXJmbG93
IG92ZXJmbG93WSA9IHJlbmRlckJveCgpLT5zdHlsZSgpLT5vdmVyZmxvd1koKTsKLSAgICBpZiAo
aGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpICYmICFvdmVyZmxvd0NhbkhhdmVBU2Nyb2xsYmFyKG92
ZXJmbG93WCkpCi0gICAgICAgIHNldEhhc0hvcml6b250YWxTY3JvbGxiYXIoZmFsc2UpOwotICAg
IGlmIChoYXNWZXJ0aWNhbFNjcm9sbGJhcigpICYmICFvdmVyZmxvd0NhbkhhdmVBU2Nyb2xsYmFy
KG92ZXJmbG93WSkpCi0gICAgICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKTsKKyAg
ICAvLyBMaXN0IGJveCBwYXJ0cyBoYW5kbGUgdGhlIHNjcm9sbGJhcnMgYnkgdGhlbXNlbHZlcyBz
byB3ZSBoYXZlIG5vdGhpbmcgdG8gZG8uCisgICAgaWYgKGJveC0+c3R5bGUoKS0+YXBwZWFyYW5j
ZSgpID09IExpc3Rib3hQYXJ0KQorICAgICAgICByZXR1cm47CisKKyAgICBFT3ZlcmZsb3cgb3Zl
cmZsb3dYID0gYm94LT5zdHlsZSgpLT5vdmVyZmxvd1goKTsKKyAgICBFT3ZlcmZsb3cgb3ZlcmZs
b3dZID0gYm94LT5zdHlsZSgpLT5vdmVyZmxvd1koKTsKKworICAgIC8vIFRvIGF2b2lkIGRvaW5n
IGEgcmVsYXlvdXQgaW4gdXBkYXRlU2Nyb2xsYmFyc0FmdGVyTGF5b3V0LCB3ZSB0cnkgdG8ga2Vl
cCBhbnkgYXV0b21hdGljIHNjcm9sbGJhciB0aGF0IHdhcyBhbHJlYWR5IHByZXNlbnQuCisgICAg
Ym9vbCBuZWVkc0hvcml6b250YWxTY3JvbGxiYXIgPSAoaGFzSG9yaXpvbnRhbFNjcm9sbGJhcigp
ICYmIG92ZXJmbG93RGVmaW5lc0F1dG9tYXRpY1Njcm9sbGJhcihvdmVyZmxvd1gpKSB8fCBvdmVy
Zmxvd1JlcXVpcmVzQVNjcm9sbGJhcihvdmVyZmxvd1gpOworICAgIGJvb2wgbmVlZHNWZXJ0aWNh
bFNjcm9sbGJhciA9IChoYXNWZXJ0aWNhbFNjcm9sbGJhcigpICYmIG92ZXJmbG93RGVmaW5lc0F1
dG9tYXRpY1Njcm9sbGJhcihvdmVyZmxvd1kpKSB8fCBvdmVyZmxvd1JlcXVpcmVzQVNjcm9sbGJh
cihvdmVyZmxvd1kpOworICAgIHNldEhhc0hvcml6b250YWxTY3JvbGxiYXIobmVlZHNIb3Jpem9u
dGFsU2Nyb2xsYmFyKTsKKyAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihuZWVkc1ZlcnRpY2Fs
U2Nyb2xsYmFyKTsKIAogICAgIC8vIFdpdGggb3ZlcmZsb3c6IHNjcm9sbCwgc2Nyb2xsYmFycyBh
cmUgYWx3YXlzIHZpc2libGUgYnV0IG1heSBiZSBkaXNhYmxlZC4KICAgICAvLyBXaGVuIHN3aXRj
aGluZyB0byBhbm90aGVyIHZhbHVlLCB3ZSBuZWVkIHRvIHJlLWVuYWJsZSB0aGVtIChzZWUgYnVn
IDExOTg1KS4KLSAgICBpZiAoaGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpICYmIG9sZFN0eWxlLT5v
dmVyZmxvd1goKSA9PSBPU0NST0xMICYmIG92ZXJmbG93WCAhPSBPU0NST0xMKSB7Ci0gICAgICAg
IEFTU0VSVChvdmVyZmxvd0NhbkhhdmVBU2Nyb2xsYmFyKG92ZXJmbG93WCkpOworICAgIGlmIChu
ZWVkc0hvcml6b250YWxTY3JvbGxiYXIgJiYgb2xkU3R5bGUgJiYgb2xkU3R5bGUtPm92ZXJmbG93
WCgpID09IE9TQ1JPTEwgJiYgb3ZlcmZsb3dYICE9IE9TQ1JPTEwpIHsKKyAgICAgICAgQVNTRVJU
KGhhc0hvcml6b250YWxTY3JvbGxiYXIoKSk7CiAgICAgICAgIG1faEJhci0+c2V0RW5hYmxlZCh0
cnVlKTsKICAgICB9CiAKLSAgICBpZiAoaGFzVmVydGljYWxTY3JvbGxiYXIoKSAmJiBvbGRTdHls
ZS0+b3ZlcmZsb3dZKCkgPT0gT1NDUk9MTCAmJiBvdmVyZmxvd1kgIT0gT1NDUk9MTCkgewotICAg
ICAgICBBU1NFUlQob3ZlcmZsb3dDYW5IYXZlQVNjcm9sbGJhcihvdmVyZmxvd1kpKTsKKyAgICBp
ZiAobmVlZHNWZXJ0aWNhbFNjcm9sbGJhciAmJiBvbGRTdHlsZSAmJiBvbGRTdHlsZS0+b3ZlcmZs
b3dZKCkgPT0gT1NDUk9MTCAmJiBvdmVyZmxvd1kgIT0gT1NDUk9MTCkgeworICAgICAgICBBU1NF
UlQoaGFzVmVydGljYWxTY3JvbGxiYXIoKSk7CiAgICAgICAgIG1fdkJhci0+c2V0RW5hYmxlZCh0
cnVlKTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155421</attachid>
            <date>2012-07-30 19:15:13 -0700</date>
            <delta_ts>2012-07-30 20:39:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-92689-20120730191457.patch</filename>
            <type>text/plain</type>
            <size>11581</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI1ZWE0M2I2YmQxNTE1
ZTYyNjgyNDgwZTI1ZTdiNGFmODNkZjhjMi4uYzkzMGMzYzY1NDJiYzg4M2UwNWVmMWE0MGVlNmI5
NWYyNDNiMjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA3LTMwICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBv
dmVyZmxvdzogc2Nyb2xsIGhhbmRsaW5nIGluIGJsb2NrIGZsb3cgbGF5b3V0IG1ldGhvZHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNjg5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFRoZSBvdmVyZmxvdzog
c2Nyb2xsIHNjcm9sbGJhcnMgY3JlYXRpb24gd2FzIGRvbmUgYXQgbGF5b3V0IHRpbWUgZm9yIGFs
bCBSZW5kZXJCbG9ja3MgYW5kCisgICAgICAgIGRlc2NlbmRhbnRzLiBUaGlzIHdhcyBub3Qgb25s
eSB3cm9uZyAoJ292ZXJmbG93JyBvbmx5IGNoYW5nZXMgYXQgc3R5bGUgY2hhbmdlIHRpbWUpIGJ1
dCBpdAorICAgICAgICB3YXMgYWxzbyBpbnRyb2R1Y2luZyBzb21lIGNvZGUgZHVwbGljYXRpb24u
CisKKyAgICAgICAgVGhlIGdpc3Qgb2YgdGhpcyBjaGFuZ2UgaXMgdG8gc2hhcmUgdGhlIGNvZGUg
YnkgbW92aW5nIGl0IHRvIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJTdHlsZUNo
YW5nZSwKKyAgICAgICAgdGhpcyBpbmNsdWRlcyB0aGUgY29kZSBmcm9tIGJ1ZyA2OTk5MyB0byBz
cGVjaWFsIGNhc2UgbGlzdCBib3ggcGFydC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5n
IHRlc3RzOgorICAgICAgICAtIEFsbCBmYXN0L292ZXJmbG93IG9uZXMuCisgICAgICAgIC0gRm9y
IHRoZSBsaXN0IGJveCBjaGFuZ2U6CisgICAgICAgICAgICBmYXN0L2Zvcm1zL3NlbGVjdC1vdmVy
Zmxvdy1zY3JvbGwtaW5oZXJpdGVkLmh0bWwKKyAgICAgICAgICAgIGZhc3QvZm9ybXMvc2VsZWN0
LW92ZXJmbG93LXNjcm9sbC5odG1sCisgICAgICAgIC0gRm9yIHRoZSBmbGV4Ym94OgorICAgICAg
ICAgICAgY3NzMy9mbGV4Ym94L3ByZWZlcnJlZC13aWR0aHMtb3J0aG9nb25hbC5odG1sCisgICAg
ICAgICAgICBjc3MzL2ZsZXhib3gvcHJlZmVycmVkLXdpZHRocy5odG1sCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmxheW91dEJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDo6bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxl
eGlibGVCb3g6OmxheW91dEJsb2NrKToKKyAgICAgICAgUmVtb3ZlZCB0aGUgY29tbW9uIGNvZGUg
aGVyZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMpOgorICAgICAgICBDaGFuZ2VkIHRvIGFuIEFTU0VSVCBub3cgdGhhdCB0aGUgcmlnaHQg
c2Nyb2xsYmFycyBhcmUgY3JlYXRlZC4gVGhpcyBpcworICAgICAgICBmaW5lIGFzIG92ZXJmbG93
LXgveSBhcmUgcGh5c2ljYWwgY29vcmRpbmF0ZXMgYW5kIG91ciBhY2Nlc3Mgd2FzIGZvbGxvd2lu
ZyB0aGF0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdCk6CisgICAgICAg
IEFkZGVkIGFuIGVhcmx5IHJldHVybiBoZXJlIGlmIHdlIGFyZSBub3QgYXR0YWNoZWQgeWV0IGFz
IFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQKKyAgICAgICAgaXMgY2FsbGVkIGF0IGF0dGFjaG1l
bnQgdGltZSBiZWZvcmUgd2UgYXJlIGluc2VydGVkIGluIHRoZSB0cmVlLiBUaGlzIGlzIGZpbmUg
YXMgdGhlCisgICAgICAgIHNjcm9sbGJhcnMgYXJlIHBhcnQgb2YgdGhlIG9iamVjdCB3aGljaCB3
aWxsIGJlIHBhaW50ZWQgYWZ0ZXIgdGhlIGZpcnN0IGxheW91dC4KKworICAgICAgICAoV2ViQ29y
ZTo6b3ZlcmZsb3dSZXF1aXJlc0FTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6b3ZlcmZs
b3dEZWZpbmVzQXV0b21hdGljU2Nyb2xsYmFyKToKKyAgICAgICAgU3BsaXQgdGhlIGxvZ2ljIGlu
IHRob3NlIDIgZnVuY3Rpb25zLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBk
YXRlU2Nyb2xsYmFyc0FmdGVyTGF5b3V0KToKKyAgICAgICAgVXBkYXRlZCB0byB1c2UgdGhlIHJl
cXVpcmUgLyBjYW4taGF2ZSBmdW5jdGlvbnMuIEFsc28gYWRkZWQKKyAgICAgICAgYW4gZWFybHkg
cmV0dXJuIGZvciBsaXN0IGJveCBwYXJ0cyBhcyByZXF1aXJlZCBieSBidWcgNjk5OTMuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJTdHlsZUNo
YW5nZSk6CisgICAgICAgIEFkZGVkIGFuIGVhcmx5IHJldHVybiBmb3IgbGlzdCBib3ggcGFydHMg
YXMgcmVxdWlyZWQgYnkgYnVnIDY5OTkzLAorICAgICAgICBhbHNvIHJlbW92ZWQgc29tZSB1bm5l
ZWRlZCBOVUxMLWNoZWNrcyB0aGF0IHdlcmUgYWRkZWQgZm9yIGxpc3QgYm94IHBhcnRzLgorCiAy
MDEyLTA3LTMwICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5j
b20+CiAKICAgICAgICAgQXZvaWQgQXNzZXJ0aW9uIEZhaWx1cmUgaW4gSGFyZkJ1enpSdW46OmNo
YXJhY3RlckluZGV4Rm9yWFBvc2l0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAppbmRleCAwZTRhNzdhNzhjY2ZkYjExMjYxYjc1OWQzZTE5ZWEwYTRkOGI2NTExLi43
ZTY0MDE0ZTAzZGYxODkwMzE0MzQyOTI5ZDQ4NjAwZTdiOWJhN2FlIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE0NzIsMTQgKzE0NzIsNiBAQCB2b2lkIFJl
bmRlckJsb2NrOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQg
cGFnZUxvZ2ljYWxIZWlnaAogICAgICAgICBzZXRQYWdpbmF0aW9uU3RydXQoMCk7CiAgICAgfQog
Ci0gICAgLy8gRm9yIG92ZXJmbG93OnNjcm9sbCBibG9ja3MsIGVuc3VyZSB3ZSBoYXZlIGJvdGgg
c2Nyb2xsYmFycyBpbiBwbGFjZSBhbHdheXMuCi0gICAgaWYgKHNjcm9sbHNPdmVyZmxvdygpICYm
IHN0eWxlKCktPmFwcGVhcmFuY2UoKSAhPSBMaXN0Ym94UGFydCkgewotICAgICAgICBpZiAoc3R5
bGVUb1VzZS0+b3ZlcmZsb3dYKCkgPT0gT1NDUk9MTCkKLSAgICAgICAgICAgIGxheWVyKCktPnNl
dEhhc0hvcml6b250YWxTY3JvbGxiYXIodHJ1ZSk7Ci0gICAgICAgIGlmIChzdHlsZVRvVXNlLT5v
dmVyZmxvd1koKSA9PSBPU0NST0xMKQotICAgICAgICAgICAgbGF5ZXIoKS0+c2V0SGFzVmVydGlj
YWxTY3JvbGxiYXIodHJ1ZSk7Ci0gICAgfQotCiAgICAgTGF5b3V0VW5pdCByZXBhaW50TG9naWNh
bFRvcCA9IFpFUk9fTEFZT1VUX1VOSVQ7CiAgICAgTGF5b3V0VW5pdCByZXBhaW50TG9naWNhbEJv
dHRvbSA9IFpFUk9fTEFZT1VUX1VOSVQ7CiAgICAgTGF5b3V0VW5pdCBtYXhGbG9hdExvZ2ljYWxC
b3R0b20gPSBaRVJPX0xBWU9VVF9VTklUOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCA0YWU0MmJjN2Rh
YWU5Yjg0YzQ1OGJjZTQwNjUzOWYyZTQ3MzY3MDExLi5mMTI5OTkxMTE1Y2U4OWNjMWE1ZTllY2Rl
ZThiNmE0MWE0MDRjYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMjYyLDE0ICsyNjIsNiBAQCB2
b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91
dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAgaW5pdE1heE1hcmdpblZhbHVlcygpOwogCi0g
ICAgLy8gRm9yIG92ZXJmbG93OnNjcm9sbCBibG9ja3MsIGVuc3VyZSB3ZSBoYXZlIGJvdGggc2Ny
b2xsYmFycyBpbiBwbGFjZSBhbHdheXMuCi0gICAgaWYgKHNjcm9sbHNPdmVyZmxvdygpKSB7Ci0g
ICAgICAgIGlmIChzdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBPU0NST0xMKQotICAgICAgICAgICAg
bGF5ZXIoKS0+c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcih0cnVlKTsKLSAgICAgICAgaWYgKHN0
eWxlKCktPm92ZXJmbG93WSgpID09IE9TQ1JPTEwpCi0gICAgICAgICAgICBsYXllcigpLT5zZXRI
YXNWZXJ0aWNhbFNjcm9sbGJhcih0cnVlKTsKLSAgICB9Ci0KICAgICBpZiAoaXNIb3Jpem9udGFs
KCkpCiAgICAgICAgIGxheW91dEhvcml6b250YWxCb3gocmVsYXlvdXRDaGlsZHJlbik7CiAgICAg
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxl
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAK
aW5kZXggM2IxZDQ3MzdjNjY1MTJhOTc4NDM2OGMxZjliYjBlNjVmNTE0NDY3Ny4uOTYxYTlmMzFl
MTUwYjc4MTlhMGI2YmM2MWI4OTI0NWI4MmUzYzQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC0xOTQsMTAgKzE5NCwxMCBAQCB2b2lk
IFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAg
TGF5b3V0VW5pdCBzY3JvbGxiYXJXaWR0aCA9IDA7CiAgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgp
KSB7CiAgICAgICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpICYmIHN0eWxlVG9Vc2Ut
Pm92ZXJmbG93WSgpID09IE9TQ1JPTEwpIHsKLSAgICAgICAgICAgIGxheWVyKCktPnNldEhhc1Zl
cnRpY2FsU2Nyb2xsYmFyKHRydWUpOworICAgICAgICAgICAgQVNTRVJUKGxheWVyKCktPmhhc1Zl
cnRpY2FsU2Nyb2xsYmFyKCkpOwogICAgICAgICAgICAgc2Nyb2xsYmFyV2lkdGggPSB2ZXJ0aWNh
bFNjcm9sbGJhcldpZHRoKCk7CiAgICAgICAgIH0gZWxzZSBpZiAoIWlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkgJiYgc3R5bGVUb1VzZS0+b3ZlcmZsb3dYKCkgPT0gT1NDUk9MTCkgewotICAgICAg
ICAgICAgbGF5ZXIoKS0+c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcih0cnVlKTsKKyAgICAgICAg
ICAgIEFTU0VSVChsYXllcigpLT5oYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkpOwogICAgICAgICAg
ICAgc2Nyb2xsYmFyV2lkdGggPSBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCk7CiAgICAgICAg
IH0KICAgICB9CkBAIC0yNDgsMTQgKzI0OCw2IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6Omxh
eW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKIAogICAgIG1fb3Zl
cmZsb3cuY2xlYXIoKTsKIAotICAgIC8vIEZvciBvdmVyZmxvdzpzY3JvbGwgYmxvY2tzLCBlbnN1
cmUgd2UgaGF2ZSBib3RoIHNjcm9sbGJhcnMgaW4gcGxhY2UgYWx3YXlzLgotICAgIGlmIChzY3Jv
bGxzT3ZlcmZsb3coKSkgewotICAgICAgICBpZiAoc3R5bGUoKS0+b3ZlcmZsb3dYKCkgPT0gT1ND
Uk9MTCkKLSAgICAgICAgICAgIGxheWVyKCktPnNldEhhc0hvcml6b250YWxTY3JvbGxiYXIodHJ1
ZSk7Ci0gICAgICAgIGlmIChzdHlsZSgpLT5vdmVyZmxvd1koKSA9PSBPU0NST0xMKQotICAgICAg
ICAgICAgbGF5ZXIoKS0+c2V0SGFzVmVydGljYWxTY3JvbGxiYXIodHJ1ZSk7Ci0gICAgfQotCiAg
ICAgV1RGOjpWZWN0b3I8TGluZUNvbnRleHQ+IGxpbmVDb250ZXh0czsKICAgICBPcmRlckhhc2hT
ZXQgb3JkZXJWYWx1ZXM7CiAgICAgY29tcHV0ZU1haW5BeGlzUHJlZmVycmVkU2l6ZXMocmVsYXlv
dXRDaGlsZHJlbiwgb3JkZXJWYWx1ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuY3BwCmluZGV4IGI0ZDJhMGMwOGI0ZjYwNzJlYzYwNWRhNmM0NzI0MmJlOGJkZmEyZTAuLmRj
YjE4NjFhOWUyMTU2NTAxMGI4MDg5YzQ2YjY5YjBjMWM5NTQ3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTgwLDEzICs4MCw2IEBAIHZvaWQgUmVuZGVyR3Jp
ZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAg
bV9vdmVyZmxvdy5jbGVhcigpOwogCi0gICAgaWYgKHNjcm9sbHNPdmVyZmxvdygpKSB7Ci0gICAg
ICAgIGlmIChzdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBPU0NST0xMKQotICAgICAgICAgICAgbGF5
ZXIoKS0+c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcih0cnVlKTsKLSAgICAgICAgaWYgKHN0eWxl
KCktPm92ZXJmbG93WSgpID09IE9TQ1JPTEwpCi0gICAgICAgICAgICBsYXllcigpLT5zZXRIYXNW
ZXJ0aWNhbFNjcm9sbGJhcih0cnVlKTsKLSAgICB9Ci0KICAgICBsYXlvdXRHcmlkSXRlbXMoKTsK
IAogICAgIExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlID0gY2xpZW50TG9naWNhbEJvdHRv
bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNzRiMGY1
YTY3MDE2ZWZhZWYwOTUwZDMzYjM5ZmMzYjE1MzhmYTM4OS4uNzg3OTg2MTQ2NDQzZGUzZWM0NDJh
MWU4ODhkOGQ4NDAxNTliMzliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCkBAIC0yMjI5LDYgKzIyMjksMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6aW52YWxpZGF0
ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHIKICAg
ICBJbnRSZWN0IHNjcm9sbFJlY3QgPSByZWN0OwogICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVy
Qm94KCk7CiAgICAgQVNTRVJUKGJveCk7CisgICAgLy8gSWYgd2UgYXJlIG5vdCB5ZXQgaW5zZXJ0
ZWQgaW50byB0aGUgdHJlZSwgdGhlcmUgaXMgbm8gbmVlZCB0byByZXBhaW50LgorICAgIGlmICgh
Ym94LT5wYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKHNjcm9sbGJhciA9PSBt
X3ZCYXIuZ2V0KCkpCiAgICAgICAgIHNjcm9sbFJlY3QubW92ZSh2ZXJ0aWNhbFNjcm9sbGJhclN0
YXJ0KDAsIGJveC0+d2lkdGgoKSksIGJveC0+Ym9yZGVyVG9wKCkpOwogICAgIGVsc2UKQEAgLTI1
MjIsMTMgKzI1MjYsMTcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsYmFyc0FmdGVy
TGF5b3V0KCkKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIEFTU0VSVChi
b3gpOwogCisgICAgLy8gTGlzdCBib3ggcGFydHMgaGFuZGxlIHRoZSBzY3JvbGxiYXJzIGJ5IHRo
ZW1zZWx2ZXMgc28gd2UgaGF2ZSBub3RoaW5nIHRvIGRvLgorICAgIGlmIChib3gtPnN0eWxlKCkt
PmFwcGVhcmFuY2UoKSA9PSBMaXN0Ym94UGFydCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYm9v
bCBoYXNIb3Jpem9udGFsT3ZlcmZsb3cgPSB0aGlzLT5oYXNIb3Jpem9udGFsT3ZlcmZsb3coKTsK
ICAgICBib29sIGhhc1ZlcnRpY2FsT3ZlcmZsb3cgPSB0aGlzLT5oYXNWZXJ0aWNhbE92ZXJmbG93
KCk7CiAKICAgICAvLyBvdmVyZmxvdzpzY3JvbGwgc2hvdWxkIGp1c3QgZW5hYmxlL2Rpc2FibGUu
Ci0gICAgaWYgKG1faEJhciAmJiByZW5kZXJlcigpLT5zdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBP
U0NST0xMKQorICAgIGlmIChyZW5kZXJlcigpLT5zdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBPU0NS
T0xMKQogICAgICAgICBtX2hCYXItPnNldEVuYWJsZWQoaGFzSG9yaXpvbnRhbE92ZXJmbG93KTsK
LSAgICBpZiAobV92QmFyICYmIHJlbmRlcmVyKCktPnN0eWxlKCktPm92ZXJmbG93WSgpID09IE9T
Q1JPTEwpCisgICAgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPm92ZXJmbG93WSgpID09IE9TQ1JP
TEwpCiAgICAgICAgIG1fdkJhci0+c2V0RW5hYmxlZChoYXNWZXJ0aWNhbE92ZXJmbG93KTsKIAog
ICAgIC8vIG92ZXJmbG93OmF1dG8gbWF5IG5lZWQgdG8gbGF5IG91dCBhZ2FpbiBpZiBzY3JvbGxi
YXJzIGdvdCBhZGRlZC9yZW1vdmVkLgpAQCAtNDgxOCwzMyArNDgyNiw0NSBAQCB2b2lkIFJlbmRl
ckxheWVyOjp1cGRhdGVTdGFja2luZ0NvbnRleHRzQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5k
ZXJTdHlsZSogb2xkUwogICAgIH0KIH0KIAotc3RhdGljIGJvb2wgb3ZlcmZsb3dDYW5IYXZlQVNj
cm9sbGJhcihFT3ZlcmZsb3cgb3ZlcmZsb3cpCitzdGF0aWMgYm9vbCBvdmVyZmxvd1JlcXVpcmVz
U2Nyb2xsYmFyKEVPdmVyZmxvdyBvdmVyZmxvdykKK3sKKyAgICByZXR1cm4gb3ZlcmZsb3cgPT0g
T1NDUk9MTDsKK30KKworc3RhdGljIGJvb2wgb3ZlcmZsb3dEZWZpbmVzQXV0b21hdGljU2Nyb2xs
YmFyKEVPdmVyZmxvdyBvdmVyZmxvdykKIHsKLSAgICByZXR1cm4gb3ZlcmZsb3cgPT0gT0FVVE8g
fHwgb3ZlcmZsb3cgPT0gT1NDUk9MTCB8fCBvdmVyZmxvdyA9PSBPT1ZFUkxBWTsKKyAgICByZXR1
cm4gb3ZlcmZsb3cgPT0gT0FVVE8gfHwgb3ZlcmZsb3cgPT0gT09WRVJMQVk7CiB9CiAKIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkKIHsKICAgICAvLyBPdmVyZmxvdyBhcmUgYSBib3ggY29uY2VwdC4K
LSAgICBpZiAoIXJlbmRlckJveCgpKQorICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7
CisgICAgaWYgKCFib3gpCiAgICAgICAgIHJldHVybjsKIAotICAgIEVPdmVyZmxvdyBvdmVyZmxv
d1ggPSByZW5kZXJCb3goKS0+c3R5bGUoKS0+b3ZlcmZsb3dYKCk7Ci0gICAgRU92ZXJmbG93IG92
ZXJmbG93WSA9IHJlbmRlckJveCgpLT5zdHlsZSgpLT5vdmVyZmxvd1koKTsKLSAgICBpZiAoaGFz
SG9yaXpvbnRhbFNjcm9sbGJhcigpICYmICFvdmVyZmxvd0NhbkhhdmVBU2Nyb2xsYmFyKG92ZXJm
bG93WCkpCi0gICAgICAgIHNldEhhc0hvcml6b250YWxTY3JvbGxiYXIoZmFsc2UpOwotICAgIGlm
IChoYXNWZXJ0aWNhbFNjcm9sbGJhcigpICYmICFvdmVyZmxvd0NhbkhhdmVBU2Nyb2xsYmFyKG92
ZXJmbG93WSkpCi0gICAgICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKTsKKyAgICAv
LyBMaXN0IGJveCBwYXJ0cyBoYW5kbGUgdGhlIHNjcm9sbGJhcnMgYnkgdGhlbXNlbHZlcyBzbyB3
ZSBoYXZlIG5vdGhpbmcgdG8gZG8uCisgICAgaWYgKGJveC0+c3R5bGUoKS0+YXBwZWFyYW5jZSgp
ID09IExpc3Rib3hQYXJ0KQorICAgICAgICByZXR1cm47CisKKyAgICBFT3ZlcmZsb3cgb3ZlcmZs
b3dYID0gYm94LT5zdHlsZSgpLT5vdmVyZmxvd1goKTsKKyAgICBFT3ZlcmZsb3cgb3ZlcmZsb3dZ
ID0gYm94LT5zdHlsZSgpLT5vdmVyZmxvd1koKTsKKworICAgIC8vIFRvIGF2b2lkIGRvaW5nIGEg
cmVsYXlvdXQgaW4gdXBkYXRlU2Nyb2xsYmFyc0FmdGVyTGF5b3V0LCB3ZSB0cnkgdG8ga2VlcCBh
bnkgYXV0b21hdGljIHNjcm9sbGJhciB0aGF0IHdhcyBhbHJlYWR5IHByZXNlbnQuCisgICAgYm9v
bCBuZWVkc0hvcml6b250YWxTY3JvbGxiYXIgPSAoaGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpICYm
IG92ZXJmbG93RGVmaW5lc0F1dG9tYXRpY1Njcm9sbGJhcihvdmVyZmxvd1gpKSB8fCBvdmVyZmxv
d1JlcXVpcmVzU2Nyb2xsYmFyKG92ZXJmbG93WCk7CisgICAgYm9vbCBuZWVkc1ZlcnRpY2FsU2Ny
b2xsYmFyID0gKGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgb3ZlcmZsb3dEZWZpbmVzQXV0b21h
dGljU2Nyb2xsYmFyKG92ZXJmbG93WSkpIHx8IG92ZXJmbG93UmVxdWlyZXNTY3JvbGxiYXIob3Zl
cmZsb3dZKTsKKyAgICBzZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKG5lZWRzSG9yaXpvbnRhbFNj
cm9sbGJhcik7CisgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIobmVlZHNWZXJ0aWNhbFNjcm9s
bGJhcik7CiAKICAgICAvLyBXaXRoIG92ZXJmbG93OiBzY3JvbGwsIHNjcm9sbGJhcnMgYXJlIGFs
d2F5cyB2aXNpYmxlIGJ1dCBtYXkgYmUgZGlzYWJsZWQuCiAgICAgLy8gV2hlbiBzd2l0Y2hpbmcg
dG8gYW5vdGhlciB2YWx1ZSwgd2UgbmVlZCB0byByZS1lbmFibGUgdGhlbSAoc2VlIGJ1ZyAxMTk4
NSkuCi0gICAgaWYgKGhhc0hvcml6b250YWxTY3JvbGxiYXIoKSAmJiBvbGRTdHlsZS0+b3ZlcmZs
b3dYKCkgPT0gT1NDUk9MTCAmJiBvdmVyZmxvd1ggIT0gT1NDUk9MTCkgewotICAgICAgICBBU1NF
UlQob3ZlcmZsb3dDYW5IYXZlQVNjcm9sbGJhcihvdmVyZmxvd1gpKTsKKyAgICBpZiAobmVlZHNI
b3Jpem9udGFsU2Nyb2xsYmFyICYmIG9sZFN0eWxlICYmIG9sZFN0eWxlLT5vdmVyZmxvd1goKSA9
PSBPU0NST0xMICYmIG92ZXJmbG93WCAhPSBPU0NST0xMKSB7CisgICAgICAgIEFTU0VSVChoYXNI
b3Jpem9udGFsU2Nyb2xsYmFyKCkpOwogICAgICAgICBtX2hCYXItPnNldEVuYWJsZWQodHJ1ZSk7
CiAgICAgfQogCi0gICAgaWYgKGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgb2xkU3R5bGUtPm92
ZXJmbG93WSgpID09IE9TQ1JPTEwgJiYgb3ZlcmZsb3dZICE9IE9TQ1JPTEwpIHsKLSAgICAgICAg
QVNTRVJUKG92ZXJmbG93Q2FuSGF2ZUFTY3JvbGxiYXIob3ZlcmZsb3dZKSk7CisgICAgaWYgKG5l
ZWRzVmVydGljYWxTY3JvbGxiYXIgJiYgb2xkU3R5bGUgJiYgb2xkU3R5bGUtPm92ZXJmbG93WSgp
ID09IE9TQ1JPTEwgJiYgb3ZlcmZsb3dZICE9IE9TQ1JPTEwpIHsKKyAgICAgICAgQVNTRVJUKGhh
c1ZlcnRpY2FsU2Nyb2xsYmFyKCkpOwogICAgICAgICBtX3ZCYXItPnNldEVuYWJsZWQodHJ1ZSk7
CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>