<?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>173860</bug_id>
          
          <creation_ts>2017-06-26 20:47:34 -0700</creation_ts>
          <short_desc>[iOS DnD] Text indicators for dragged links should always be legible if the link is legible</short_desc>
          <delta_ts>2017-07-03 19:13:50 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1323047</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-26 20:47:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/32974385&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323052</commentid>
    <comment_count>1</comment_count>
      <attachid>313893</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-26 20:58:06 -0700</bug_when>
    <thetext>Created attachment 313893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323054</commentid>
    <comment_count>2</comment_count>
      <attachid>313893</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-26 21:08:22 -0700</bug_when>
    <thetext>Comment on attachment 313893
Patch

Do we really want to paintAllContent always? We’re going to end up painting text outside the requested range now (even in the simple case), leading to more weird intrusions, and also background images and stuff. I dunno. Something conditional seems less crazy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323055</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-26 21:09:21 -0700</bug_when>
    <thetext>(Test on pages with tight leading, or links with no space between them and text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323059</commentid>
    <comment_count>4</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-26 21:19:24 -0700</bug_when>
    <thetext>This is true. There&apos;s certainly a chance now of grabbing bits of nearby content that would be unwanted, but I considered this better than certain cases (such as the one in this bug) where the link isn&apos;t legible at all.

Really, what would be nice to do is compare the text color of the link against the estimated background color before taking the snapshot, and only use TextIndicatorOptionPaintAllContent if the text color is too close to the estimated background color, otherwise use TextIndicatorOptionUseBoundingRectAndPaintAllContentForComplexRanges. I&apos;m not sure what constitutes &quot;too close&quot; though. Maybe something like differenceSquared(textColor, backgroundColor) &gt; minColorDifference? Seems hacky, but might work well in practice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323061</commentid>
    <comment_count>5</comment_count>
      <attachid>313893</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-26 21:47:58 -0700</bug_when>
    <thetext>Comment on attachment 313893
Patch

I&apos;ll be going with a more nuanced approach here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323079</commentid>
    <comment_count>6</comment_count>
      <attachid>313899</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-26 22:53:25 -0700</bug_when>
    <thetext>Created attachment 313899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323080</commentid>
    <comment_count>7</comment_count>
      <attachid>313899</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-26 23:08:51 -0700</bug_when>
    <thetext>Comment on attachment 313899
Patch

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

&gt; Source/WebCore/page/TextIndicator.cpp:238
&gt;      for (; !!renderer; renderer = renderer-&gt;parent()) {

This is climbing upwards; what if the text color comes from a child of the common ancestor instead of a parent? Should see if Antti has any ideas about how to do this well, it seems right up his alley</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324616</commentid>
    <comment_count>8</comment_count>
      <attachid>314315</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-30 16:25:19 -0700</bug_when>
    <thetext>Created attachment 314315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324626</commentid>
    <comment_count>9</comment_count>
      <attachid>314315</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-30 16:36:26 -0700</bug_when>
    <thetext>Comment on attachment 314315
Patch

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

&gt; Source/WebCore/page/TextIndicator.cpp:230
&gt; +        auto&amp; color = node-&gt;renderer()-&gt;style().color();

Any need for a renderer null check? Any chance to get here with an anonymous element?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324630</commentid>
    <comment_count>10</comment_count>
      <attachid>314315</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-30 16:37:17 -0700</bug_when>
    <thetext>Comment on attachment 314315
Patch

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

Thanks!

&gt;&gt; Source/WebCore/page/TextIndicator.cpp:230
&gt;&gt; +        auto&amp; color = node-&gt;renderer()-&gt;style().color();
&gt; 
&gt; Any need for a renderer null check? Any chance to get here with an anonymous element?

The is&lt;RenderText&gt;() check above should take care of this, since is&lt;&gt; bails on null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324633</commentid>
    <comment_count>11</comment_count>
      <attachid>314315</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-30 16:38:30 -0700</bug_when>
    <thetext>Comment on attachment 314315
Patch

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

&gt;&gt;&gt; Source/WebCore/page/TextIndicator.cpp:230
&gt;&gt;&gt; +        auto&amp; color = node-&gt;renderer()-&gt;style().color();
&gt;&gt; 
&gt;&gt; Any need for a renderer null check? Any chance to get here with an anonymous element?
&gt; 
&gt; The is&lt;RenderText&gt;() check above should take care of this, since is&lt;&gt; bails on null.

Ah, sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324693</commentid>
    <comment_count>12</comment_count>
      <attachid>314343</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-30 18:26:03 -0700</bug_when>
    <thetext>Created attachment 314343
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324705</commentid>
    <comment_count>13</comment_count>
      <attachid>314343</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-30 18:45:08 -0700</bug_when>
    <thetext>Comment on attachment 314343
Patch for landing

Committed r219033: &lt;http://trac.webkit.org/changeset/219033&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313893</attachid>
            <date>2017-06-26 20:58:06 -0700</date>
            <delta_ts>2017-06-26 22:53:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173860-20170626205805.patch</filename>
            <type>text/plain</type>
            <size>2687</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEyYmVlZDBjMmRmYjFh
ZmQzYzg1NGVkNDc5ODFlYzVhY2I3ODE2ZS4uZjA0YjM1MmQ5Y2Y5YTk3NDUxZmU1ZGY2YmM3Yzc2
YjJiNjM4YzhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA2LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBU
ZXh0IGluZGljYXRvcnMgZm9yIGRyYWdnZWQgbGlua3Mgc2hvdWxkIGFsd2F5cyBiZSBsZWdpYmxl
IGlmIHRoZSBsaW5rIGlzIGxlZ2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3Mzg2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI5NzQzODU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVu
dGx5LCB3ZSdyZSB1c2luZyBUZXh0SW5kaWNhdG9yT3B0aW9uVXNlQm91bmRpbmdSZWN0QW5kUGFp
bnRBbGxDb250ZW50Rm9yQ29tcGxleFJhbmdlcyB0byBlbnN1cmUgdGhhdCBsaW5rcworICAgICAg
ICBiYWNrZWQgYnkgYSBSZW5kZXJSZXBsYWNlZCBlbGVtZW50IGRvbid0IHJlbmRlciBibGFuayB0
ZXh0IGluZGljYXRvcnMsIGluIHdoaWNoIGNhc2Ugd2Ugd2lsbCByZW5kZXIgY29udGVudCBpbgor
ICAgICAgICB0aGUgYm91bmRpbmcgcmVjdCBvZiB0aGUgbGluay4gSG93ZXZlciwgaXQgbWFrZXMg
bW9yZSBzZW5zZSB0byBkbyB0aGlzIGluIHRoZSBnZW5lcmFsIGNhc2UsIHNvIHRoYXQgZXZlbiBp
ZiB0aGUKKyAgICAgICAgYmFja2dyb3VuZCBjb2xvciBoZXVyaXN0aWMgZmFpbHMgb3IgZmluZHMg
dGhlIHdyb25nIGJhY2tncm91bmQgY29sb3IsIHRoZSBsaW5rIGluZGljYXRvciB3aWxsIHN0aWxs
IGJlIGxlZ2libGUuCisgICAgICAgIFRvIGZpeCB0aGlzLCB3ZSBzaW1wbHkgcGFzcyBUZXh0SW5k
aWNhdG9yT3B0aW9uUGFpbnRBbGxDb250ZW50IGluc3RlYWQgb2YgdGhlIG1vcmUgc3BlY2lmaWMK
KyAgICAgICAgVGV4dEluZGljYXRvck9wdGlvblVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29u
dGVudEZvckNvbXBsZXhSYW5nZXMgd2hlbiBnZW5lcmF0aW5nIGEgdGV4dCBpbmRpY2F0b3IgZm9y
IGEKKyAgICAgICAgZHJhZ2dlZCBsaW5rLgorCisgICAgICAgIFRoaXMgYWxzbyBtYXRjaGVzIHdo
YXQgd2UgZG8gZm9yIHNlbGVjdGVkIGNvbnRlbnQgKGluIHdoaWNoIHdlIGFsd2F5cyBwYXNzIGlu
IFRleHRJbmRpY2F0b3JPcHRpb25QYWludEFsbENvbnRlbnQpLgorCisgICAgICAgICogcGxhdGZv
cm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKwogMjAxNy0wNi0yMiAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIxNDcxMik6IEluZmluaXRlIHJl
Y3Vyc2lvbiBpbiBSZW5kZXJUYWJsZTo6bGF5b3V0IGluIHBhZ2luYXRlZCBtb2RlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQppbmRleCAwMjA3MjQ3NzExNDFk
MmE5ZWIwNjZmNmVkYWYwZDg3MmY1NTJhMWQ4Li40Y2ZmYTA5YjQ0MTQ1NTI5NTRhZmYzZDA0NGVm
NTI4NTQwOWRiNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJh
Z0ltYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJ
T1MubW0KQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIGRlbGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYpCiB7CiB9CiAKLXN0YXRpYyBUZXh0SW5kaWNhdG9yT3B0aW9ucyBkZWZhdWx0TGlua0luZGlj
YXRvck9wdGlvbnMgPSBUZXh0SW5kaWNhdG9yT3B0aW9uVGlnaHRseUZpdENvbnRlbnQgfCBUZXh0
SW5kaWNhdG9yT3B0aW9uUmVzcGVjdFRleHRDb2xvciB8IFRleHRJbmRpY2F0b3JPcHRpb25Vc2VC
b3VuZGluZ1JlY3RBbmRQYWludEFsbENvbnRlbnRGb3JDb21wbGV4UmFuZ2VzIHwgVGV4dEluZGlj
YXRvck9wdGlvbkV4cGFuZENsaXBCZXlvbmRWaXNpYmxlUmVjdCB8IFRleHRJbmRpY2F0b3JPcHRp
b25Db21wdXRlRXN0aW1hdGVkQmFja2dyb3VuZENvbG9yOworc3RhdGljIFRleHRJbmRpY2F0b3JP
cHRpb25zIGRlZmF1bHRMaW5rSW5kaWNhdG9yT3B0aW9ucyA9IFRleHRJbmRpY2F0b3JPcHRpb25U
aWdodGx5Rml0Q29udGVudCB8IFRleHRJbmRpY2F0b3JPcHRpb25SZXNwZWN0VGV4dENvbG9yIHwg
VGV4dEluZGljYXRvck9wdGlvblBhaW50QWxsQ29udGVudCB8IFRleHRJbmRpY2F0b3JPcHRpb25F
eHBhbmRDbGlwQmV5b25kVmlzaWJsZVJlY3QgfCBUZXh0SW5kaWNhdG9yT3B0aW9uQ29tcHV0ZUVz
dGltYXRlZEJhY2tncm91bmRDb2xvcjsKIAogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZv
ckxpbmsoRWxlbWVudCYgbGlua0VsZW1lbnQsIFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSwgRm9udFJlbmRlcmluZ01vZGUsIGZs
b2F0KQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313899</attachid>
            <date>2017-06-26 22:53:25 -0700</date>
            <delta_ts>2017-06-30 16:25:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173860-20170626225325.patch</filename>
            <type>text/plain</type>
            <size>7142</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEyYmVlZDBjMmRmYjFh
ZmQzYzg1NGVkNDc5ODFlYzVhY2I3ODE2ZS4uMzE5ZmNkYzY0NjJlZjQyYThhOGZhY2IyYmYzYTlj
YjFkZmE2MjI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTA2LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBU
ZXh0IGluZGljYXRvcnMgZm9yIGRyYWdnZWQgbGlua3Mgc2hvdWxkIGFsd2F5cyBiZSBsZWdpYmxl
IGlmIHRoZSBsaW5rIGlzIGxlZ2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3Mzg2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI5NzQzODU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVu
dGx5LCBUZXh0SW5kaWNhdG9yT3B0aW9uVXNlQm91bmRpbmdSZWN0QW5kUGFpbnRBbGxDb250ZW50
Rm9yQ29tcGxleFJhbmdlcyBlbnN1cmVzIHRoYXQgbGlua3MgYmFja2VkIGJ5IGEKKyAgICAgICAg
UmVuZGVyUmVwbGFjZWQgZWxlbWVudCBkb24ndCByZW5kZXIgYmxhbmsgdGV4dCBpbmRpY2F0b3Jz
IGJ5IGFkZGl0aW9uYWxseSBmb3JjaW5nIHRoZQorICAgICAgICBUZXh0SW5kaWNhdG9yT3B0aW9u
UGFpbnRBbGxDb250ZW50IG9wdGlvbiBpbiBvcmRlciB0byBjYXB0dXJlIHRoZSBSZW5kZXJSZXBs
YWNlZCBjb250ZW50LiBJZiBlc3RpbWF0ZWQKKyAgICAgICAgYmFja2dyb3VuZCBjb2xvciBpcyBy
ZXF1ZXN0ZWQsIHRoaXMgcGF0Y2ggYWRkcyBhbiBhZGRpdGlvbmFsIHBhdGggZm9yICJ1cGdyYWRp
bmciIHRoZSB0ZXh0IGluZGljYXRvciB0byBwYWludAorICAgICAgICBhbGwgY29udGVudDogaWYg
dGhlIHRleHQgY29sb3IgaXMgbm90IGxlZ2libGUgYWdhaW5zdCB0aGUgZXN0aW1hdGVkIGJhY2tn
cm91bmQgY29sb3IsIHRoZW4gaXQgaXMgbGlrZWx5IHRoYXQgdGhlCisgICAgICAgIGJhY2tncm91
bmQgY29sb3IgZXN0aW1hdGUgZmFpbGVkIG9yIHRoZSBsaW5rIGl0c2VsZiB3YXMgbm90IGxlZ2li
bGUgaW4gdGhlIGZpcnN0IHBsYWNlOyBpbiB0aGUgZm9ybWVyIGNhc2UsIHRvCisgICAgICAgIGVu
c3VyZSB0aGF0IHRoZSBsaW5rIGlzIHN0aWxsIGxlZ2libGUsIHdlIHVwZ3JhZGUgdGhlIGdpdmVu
IFRleHRJbmRpY2F0b3JPcHRpb25zIHRvIHBhaW50IGFsbCBjb250ZW50cyBpbiB0aGUgcmFuZ2Uu
CisKKyAgICAgICAgVGhlcmUgaXMgY3VycmVudGx5IG5vIHdheSB0byB0ZXN0IHRoaXMsIGFuZCBh
bHNvIG5vIHNpbXBsZSB3YXkgdG8gaW50cm9kdWNlIGluZnJhc3RydWN0dXJlIHRvIHRlc3QgdGV4
dCBpbmRpY2F0b3JzLgorCisgICAgICAgICogcGFnZS9UZXh0SW5kaWNhdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmVzdGltYXRlZEJhY2tncm91bmRDb2xvckZvclJhbmdlKToKKworICAgICAg
ICBBZGRpdGlvbmFsbHkgY29tcHV0ZSB0aGUgZXN0aW1hdGVkIHRleHQgY29sb3IuCisKKyAgICAg
ICAgKFdlYkNvcmU6OmlzVGV4dENvbG9yTGVnaWJsZUFnYWluc3RCYWNrZ3JvdW5kQ29sb3IpOgor
CisgICAgICAgIENoZWNrIGlmIHRoZSBiYWNrZ3JvdW5kIGFuZCB0ZXh0IGNvbG9ycyBkaWZmZXIg
YXQgbGVhc3Qgc2xpZ2h0bHkuIElmIHRoaXMgY29uZGl0aW9uIGlzIG1ldCwgd2UgY29uc2lkZXIg
dGhlCisgICAgICAgIGdpdmVuIHRleHQgY29sb3IgdG8gYmUgbGVnaWJsZSBhZ2FpbnN0IHRoZSBi
YWNrZ3JvdW5kIGNvbG9yLgorCisgICAgICAgIChXZWJDb3JlOjphZGp1c3RUZXh0SW5kaWNhdG9y
RGF0YU9wdGlvbnNGb3JFc3RpbWF0ZWRDb2xvcnNJZk5lY2Vzc2FyeSk6CisKKyAgICAgICAgQWRk
cyBhIGhvb2sgdG8gbW9kaWZ5IHRoZSB0ZXh0IGluZGljYXRvciBkYXRhIG9wdGlvbnMuIEN1cnJl
bnRseSwgdGhpcyBvbmx5IHVwZ3JhZGVzIGZyb20KKyAgICAgICAgVGV4dEluZGljYXRvck9wdGlv
blVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhSYW5nZXMgdG8gVGV4
dEluZGljYXRvck9wdGlvblBhaW50QWxsQ29udGVudCBpZgorICAgICAgICBuZWVkZWQuCisKKyAg
ICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVJbmRpY2F0b3IpOgorCiAyMDE3LTA2LTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjE0NzEy
KTogSW5maW5pdGUgcmVjdXJzaW9uIGluIFJlbmRlclRhYmxlOjpsYXlvdXQgaW4gcGFnaW5hdGVk
IG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3IuY3BwCmluZGV4IDU3NzQwNDVkNGFm
MjU0NzE4OTAzOWUxZThmNGU5ZjBkNjU2NDAzOWEuLjY5NDliMzFkZGU5NTlhN2E2NzJhZTkwMmE0
Y2ZmNTk4MjIxNGI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGlj
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5kaWNhdG9yLmNwcApAQCAt
MjE1LDcgKzIxNSw3IEBAIHN0YXRpYyBib29sIHN0eWxlQ29udGFpbnNDb21wbGV4QmFja2dyb3Vu
ZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0
aWMgQ29sb3IgZXN0aW1hdGVkQmFja2dyb3VuZENvbG9yRm9yUmFuZ2UoY29uc3QgUmFuZ2UmIHJh
bmdlLCBjb25zdCBGcmFtZSYgZnJhbWUpCitzdGF0aWMgQ29sb3IgZXN0aW1hdGVkQmFja2dyb3Vu
ZENvbG9yRm9yUmFuZ2UoY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBGcmFtZSYgZnJhbWUsIENv
bG9yJiBlc3RpbWF0ZWRUZXh0Q29sb3IpCiB7CiAgICAgYXV0byBlc3RpbWF0ZWRCYWNrZ3JvdW5k
Q29sb3IgPSBmcmFtZS52aWV3KCkgPyBmcmFtZS52aWV3KCktPmRvY3VtZW50QmFja2dyb3VuZENv
bG9yKCkgOiBDb2xvcjo6dHJhbnNwYXJlbnQ7CiAKQEAgLTIyOSwyMSArMjI5LDM4IEBAIHN0YXRp
YyBDb2xvciBlc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3JGb3JSYW5nZShjb25zdCBSYW5nZSYgcmFu
Z2UsIGNvbnN0IEZyYW1lJiBmCiAgICAgICAgIGNvbW1vbkFuY2VzdG9yID0gY29tbW9uQW5jZXN0
b3ItPnBhcmVudE9yU2hhZG93SG9zdEVsZW1lbnQoKTsKICAgICB9CiAKKyAgICBib29sIGZvdW5k
VGV4dENvbG9yID0gZmFsc2U7CisgICAgYm9vbCBmb3VuZENvbXBsZXhCYWNrZ3JvdW5kID0gZmFs
c2U7CisgICAgZXN0aW1hdGVkVGV4dENvbG9yID0gY29tbW9uQW5jZXN0b3ItPmlzTGluaygpID8g
ZnJhbWUuZG9jdW1lbnQoKS0+bGlua0NvbG9yKCkgOiBmcmFtZS5kb2N1bWVudCgpLT50ZXh0Q29s
b3IoKTsKKwogICAgIGF1dG8gYm91bmRpbmdSZWN0Rm9yUmFuZ2UgPSBlbmNsb3NpbmdJbnRSZWN0
KHJhbmdlLmFic29sdXRlQm91bmRpbmdSZWN0KCkpOwogICAgIFZlY3RvcjxDb2xvcj4gcGFyZW50
UmVuZGVyZXJCYWNrZ3JvdW5kQ29sb3JzOwogICAgIGZvciAoOyAhIXJlbmRlcmVyOyByZW5kZXJl
ciA9IHJlbmRlcmVyLT5wYXJlbnQoKSkgewotICAgICAgICBhdXRvIGFic29sdXRlQm91bmRpbmdC
b3ggPSByZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKTsKICAgICAgICAgYXV0byYg
c3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKKyAgICAgICAgaWYgKCFmb3VuZFRleHRDb2xvcikg
eworICAgICAgICAgICAgZXN0aW1hdGVkVGV4dENvbG9yID0gc3R5bGUuY29sb3IoKTsKKyAgICAg
ICAgICAgIGZvdW5kVGV4dENvbG9yID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChm
b3VuZENvbXBsZXhCYWNrZ3JvdW5kKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
YXV0byBhYnNvbHV0ZUJvdW5kaW5nQm94ID0gcmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hS
ZWN0KCk7CiAgICAgICAgIGlmICghYWJzb2x1dGVCb3VuZGluZ0JveC5jb250YWlucyhib3VuZGlu
Z1JlY3RGb3JSYW5nZSkgfHwgIXN0eWxlLmhhc0JhY2tncm91bmQoKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCiAgICAgICAgIGlmIChzdHlsZUNvbnRhaW5zQ29tcGxleEJhY2tncm91bmQoc3R5
bGUpKQotICAgICAgICAgICAgcmV0dXJuIGVzdGltYXRlZEJhY2tncm91bmRDb2xvcjsKLQotICAg
ICAgICBhdXRvIHZpc2l0ZWREZXBlbmRlbnRCYWNrZ3JvdW5kQ29sb3IgPSBzdHlsZS52aXNpdGVk
RGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICBpZiAo
dmlzaXRlZERlcGVuZGVudEJhY2tncm91bmRDb2xvciAhPSBDb2xvcjo6dHJhbnNwYXJlbnQpCi0g
ICAgICAgICAgICBwYXJlbnRSZW5kZXJlckJhY2tncm91bmRDb2xvcnMuYXBwZW5kKHZpc2l0ZWRE
ZXBlbmRlbnRCYWNrZ3JvdW5kQ29sb3IpOworICAgICAgICAgICAgZm91bmRDb21wbGV4QmFja2dy
b3VuZCA9IHRydWU7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYXV0byB2aXNpdGVkRGVw
ZW5kZW50QmFja2dyb3VuZENvbG9yID0gc3R5bGUudmlzaXRlZERlcGVuZGVudENvbG9yKENTU1By
b3BlcnR5QmFja2dyb3VuZENvbG9yKTsKKyAgICAgICAgICAgIGlmICh2aXNpdGVkRGVwZW5kZW50
QmFja2dyb3VuZENvbG9yICE9IENvbG9yOjp0cmFuc3BhcmVudCkKKyAgICAgICAgICAgICAgICBw
YXJlbnRSZW5kZXJlckJhY2tncm91bmRDb2xvcnMuYXBwZW5kKHZpc2l0ZWREZXBlbmRlbnRCYWNr
Z3JvdW5kQ29sb3IpOworICAgICAgICB9CiAgICAgfQorCisgICAgaWYgKGZvdW5kQ29tcGxleEJh
Y2tncm91bmQpCisgICAgICAgIHJldHVybiBlc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3I7CisKICAg
ICBwYXJlbnRSZW5kZXJlckJhY2tncm91bmRDb2xvcnMucmV2ZXJzZSgpOwogICAgIGZvciAoYXV0
byBiYWNrZ3JvdW5kQ29sb3IgOiBwYXJlbnRSZW5kZXJlckJhY2tncm91bmRDb2xvcnMpCiAgICAg
ICAgIGVzdGltYXRlZEJhY2tncm91bmRDb2xvciA9IGVzdGltYXRlZEJhY2tncm91bmRDb2xvci5i
bGVuZChiYWNrZ3JvdW5kQ29sb3IpOwpAQCAtMjUxLDEwICsyNjgsMzggQEAgc3RhdGljIENvbG9y
IGVzdGltYXRlZEJhY2tncm91bmRDb2xvckZvclJhbmdlKGNvbnN0IFJhbmdlJiByYW5nZSwgY29u
c3QgRnJhbWUmIGYKICAgICByZXR1cm4gZXN0aW1hdGVkQmFja2dyb3VuZENvbG9yOwogfQogCitz
dGF0aWMgYm9vbCBpc1RleHRDb2xvckxlZ2libGVBZ2FpbnN0QmFja2dyb3VuZENvbG9yKGNvbnN0
IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IsIGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IpCit7CisgICAg
c3RhdGljIGludCBtaW5pbXVtTGVnaWJsZVRleHRDb2xvclNxdWFyZWREaWZmZXJlbmNlID0gMTAw
OworICAgIHJldHVybiBkaWZmZXJlbmNlU3F1YXJlZChiYWNrZ3JvdW5kQ29sb3IsIHRleHRDb2xv
cikgPiBtaW5pbXVtTGVnaWJsZVRleHRDb2xvclNxdWFyZWREaWZmZXJlbmNlOworfQorCitzdGF0
aWMgdm9pZCBhZGp1c3RUZXh0SW5kaWNhdG9yRGF0YU9wdGlvbnNGb3JFc3RpbWF0ZWRDb2xvcnNJ
Zk5lY2Vzc2FyeShUZXh0SW5kaWNhdG9yRGF0YSYgZGF0YSwgY29uc3QgQ29sb3ImIGJhY2tncm91
bmRDb2xvciwgY29uc3QgQ29sb3ImIHRleHRDb2xvcikKK3sKKyAgICBpZiAoZGF0YS5vcHRpb25z
ICYgVGV4dEluZGljYXRvck9wdGlvblBhaW50QWxsQ29udGVudCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKCEoZGF0YS5vcHRpb25zICYgVGV4dEluZGljYXRvck9wdGlvblVzZUJvdW5kaW5n
UmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhSYW5nZXMpKQorICAgICAgICByZXR1cm47
CisKKyAgICBDb2xvciBpbmRpY2F0b3JUZXh0Q29sb3IoQ29sb3I6OmJsYWNrKTsKKyAgICBpZiAo
ZGF0YS5vcHRpb25zICYgVGV4dEluZGljYXRvck9wdGlvblJlc3BlY3RUZXh0Q29sb3IpCisgICAg
ICAgIGluZGljYXRvclRleHRDb2xvciA9IHRleHRDb2xvcjsKKworICAgIGlmICghaXNUZXh0Q29s
b3JMZWdpYmxlQWdhaW5zdEJhY2tncm91bmRDb2xvcihiYWNrZ3JvdW5kQ29sb3IsIHRleHRDb2xv
cikpIHsKKyAgICAgICAgLy8gSWYgdGhlIHRleHQgY29sb3IgaXMgbm90IGxlZ2libGUgYWdhaW5z
dCB0aGUgZXN0aW1hdGVkIGNvbG9yLCBmb3JjZSBhbGwgY29udGVudCB0byBiZSBwYWludGVkLgor
ICAgICAgICBkYXRhLm9wdGlvbnMgJj0gflRleHRJbmRpY2F0b3JPcHRpb25Vc2VCb3VuZGluZ1Jl
Y3RBbmRQYWludEFsbENvbnRlbnRGb3JDb21wbGV4UmFuZ2VzOworICAgICAgICBkYXRhLm9wdGlv
bnMgfD0gVGV4dEluZGljYXRvck9wdGlvblBhaW50QWxsQ29udGVudDsKKyAgICB9Cit9CisKIHN0
YXRpYyBib29sIGluaXRpYWxpemVJbmRpY2F0b3IoVGV4dEluZGljYXRvckRhdGEmIGRhdGEsIEZy
YW1lJiBmcmFtZSwgY29uc3QgUmFuZ2UmIHJhbmdlLCBGbG9hdFNpemUgbWFyZ2luLCBib29sIGlu
ZGljYXRlc0N1cnJlbnRTZWxlY3Rpb24pCiB7Ci0gICAgaWYgKGRhdGEub3B0aW9ucyAmIFRleHRJ
bmRpY2F0b3JPcHRpb25Db21wdXRlRXN0aW1hdGVkQmFja2dyb3VuZENvbG9yKQotICAgICAgICBk
YXRhLmVzdGltYXRlZEJhY2tncm91bmRDb2xvciA9IGVzdGltYXRlZEJhY2tncm91bmRDb2xvckZv
clJhbmdlKHJhbmdlLCBmcmFtZSk7CisgICAgaWYgKGRhdGEub3B0aW9ucyAmIFRleHRJbmRpY2F0
b3JPcHRpb25Db21wdXRlRXN0aW1hdGVkQmFja2dyb3VuZENvbG9yKSB7CisgICAgICAgIENvbG9y
IGVzdGltYXRlZFRleHRDb2xvcjsKKyAgICAgICAgZGF0YS5lc3RpbWF0ZWRCYWNrZ3JvdW5kQ29s
b3IgPSBlc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3JGb3JSYW5nZShyYW5nZSwgZnJhbWUsIGVzdGlt
YXRlZFRleHRDb2xvcik7CisgICAgICAgIGFkanVzdFRleHRJbmRpY2F0b3JEYXRhT3B0aW9uc0Zv
ckVzdGltYXRlZENvbG9yc0lmTmVjZXNzYXJ5KGRhdGEsIGRhdGEuZXN0aW1hdGVkQmFja2dyb3Vu
ZENvbG9yLCBlc3RpbWF0ZWRUZXh0Q29sb3IpOworICAgIH0KIAogICAgIFZlY3RvcjxGbG9hdFJl
Y3Q+IHRleHRSZWN0czsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314315</attachid>
            <date>2017-06-30 16:25:19 -0700</date>
            <delta_ts>2017-06-30 16:36:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173860-20170630162518.patch</filename>
            <type>text/plain</type>
            <size>7852</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4OTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I2ZDVhMGNlNTEyMDQ5
MmU1YTA5Mjc4OGY0ZjhkNDg3ZDAzODU4OS4uMWM3MWIxOGJlZjFlY2E1NmQ3ZDcwZGU0NzM4ODVl
MzFlMjg4NzYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE3LTA2LTMwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBU
ZXh0IGluZGljYXRvcnMgZm9yIGRyYWdnZWQgbGlua3Mgc2hvdWxkIGFsd2F5cyBiZSBsZWdpYmxl
IGlmIHRoZSBsaW5rIGlzIGxlZ2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3Mzg2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI5NzQzODU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVu
dGx5LCBUZXh0SW5kaWNhdG9yT3B0aW9uVXNlQm91bmRpbmdSZWN0QW5kUGFpbnRBbGxDb250ZW50
Rm9yQ29tcGxleFJhbmdlcyBlbnN1cmVzIHRoYXQgbGlua3MgYmFja2VkIGJ5IGEKKyAgICAgICAg
UmVuZGVyUmVwbGFjZWQgZWxlbWVudCBkb24ndCByZW5kZXIgYmxhbmsgdGV4dCBpbmRpY2F0b3Jz
IGJ5IGFkZGl0aW9uYWxseSBmb3JjaW5nIHRoZQorICAgICAgICBUZXh0SW5kaWNhdG9yT3B0aW9u
UGFpbnRBbGxDb250ZW50IG9wdGlvbiBpbiBvcmRlciB0byBjYXB0dXJlIHRoZSBSZW5kZXJSZXBs
YWNlZCBjb250ZW50LiBJZiBlc3RpbWF0ZWQKKyAgICAgICAgYmFja2dyb3VuZCBjb2xvciBpcyBy
ZXF1ZXN0ZWQsIHRoaXMgcGF0Y2ggYWRkcyBhbiBhZGRpdGlvbmFsIHBhdGggZm9yICJ1cGdyYWRp
bmciIHRoZSB0ZXh0IGluZGljYXRvciB0byBwYWludAorICAgICAgICBhbGwgY29udGVudDogaWYg
dGhlIHRleHQgY29sb3IgaXMgbm90IGxlZ2libGUgYWdhaW5zdCB0aGUgZXN0aW1hdGVkIGJhY2tn
cm91bmQgY29sb3IsIHRoZW4gaXQgaXMgbGlrZWx5IHRoYXQgdGhlCisgICAgICAgIGJhY2tncm91
bmQgY29sb3IgZXN0aW1hdGUgZmFpbGVkIG9yIHRoZSBsaW5rIGl0c2VsZiB3YXMgbm90IGxlZ2li
bGUgaW4gdGhlIGZpcnN0IHBsYWNlOyBpbiB0aGUgZm9ybWVyIGNhc2UsIHRvCisgICAgICAgIGVu
c3VyZSB0aGF0IHRoZSBsaW5rIGlzIHN0aWxsIGxlZ2libGUsIHdlIHVwZ3JhZGUgdGhlIGdpdmVu
IFRleHRJbmRpY2F0b3JPcHRpb25zIHRvIHBhaW50IGFsbCBjb250ZW50cyBpbiB0aGUKKyAgICAg
ICAgcmFuZ2UuCisKKyAgICAgICAgVGhlcmUgaXMgY3VycmVudGx5IG5vIHdheSB0byB0ZXN0IHRo
aXMsIGFuZCBhbHNvIG5vIHNpbXBsZSB3YXkgdG8gaW50cm9kdWNlIGluZnJhc3RydWN0dXJlIHRv
IHRlc3QgdGV4dAorICAgICAgICBpbmRpY2F0b3JzLgorCisgICAgICAgICogcGFnZS9UZXh0SW5k
aWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVzdGltYXRlZFRleHRDb2xvcnNGb3JSYW5n
ZSk6CisKKyAgICAgICAgRXN0aW1hdGVzIGFsbCB0ZXh0IGNvbG9ycyB0aGF0IGFwcGVhciBpbiBh
IHJhbmdlIGJ5IGl0ZXJhdGluZyBvdmVyIHRoZSB0ZXh0IG5vZGUgcmVuZGVyZXJzIGFuZCBjb25z
dWx0aW5nIHRoZWlyCisgICAgICAgIHJlbmRlciBzdHlsZXMuCisKKyAgICAgICAgKFdlYkNvcmU6
OmFkanVzdFRleHRJbmRpY2F0b3JEYXRhT3B0aW9uc0ZvckVzdGltYXRlZENvbG9yc0lmTmVjZXNz
YXJ5KToKKworICAgICAgICBJZiBmb3JlZ3JvdW5kIHRleHQgY29sb3IgaXMgZGVlbWVkIG5vdCBs
ZWdpYmxlLCBmb3JjZSBUZXh0SW5kaWNhdG9yT3B0aW9uUGFpbnRBbGxDb250ZW50IGluc3RlYWQg
b2YKKyAgICAgICAgVGV4dEluZGljYXRvck9wdGlvblVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxs
Q29udGVudEZvckNvbXBsZXhSYW5nZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVJ
bmRpY2F0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0ZXh0Q29sb3JJc0xlZ2libGVBZ2FpbnN0QmFja2dyb3VuZENvbG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmFkanVzdENvbG9yRm9yVmlzaWJpbGl0eU9uQmFja2dyb3VuZCk6
CisKKyAgICAgICAgQWxsb3cgb3RoZXIgcGFydHMgb2YgV2ViQ29yZSB0byBjaGVjayB0aGUgbGVn
aWJpbGl0eSBvZiB0ZXh0IGFnYWluc3QgYSBiYWNrZ3JvdW5kIGNvbG9yLgorCisgICAgICAgICog
cmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmg6CisKIDIwMTctMDYtMzAgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBUb3AgY29udHJvbHMgYmFycyBzaG91bGQg
aW52ZXJ0IHdpdGggcmlnaHQtdG8tbGVmdCB1c2VyIGludGVyZmFjZSBsYXlvdXQgZGlyZWN0aW9u
IGxvY2FsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5kaWNhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAKaW5kZXggNTc3NDA0NWQ0
YWYyNTQ3MTg5MDM5ZTFlOGY0ZTlmMGQ2NTY0MDM5YS4uYWRmNzVmNDY5MWFkMjM1ZGM2MWNiMTZh
YjViZmNlMmE4OWViYTc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5k
aWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3IuY3BwCkBA
IC00MSw2ICs0MSw5IEBACiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyVGV4dC5o
IgorI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlRleHRQYWludFN0eWxlLmgi
CiAKICNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSAiU2VsZWN0aW9uUmVjdC5oIgpAQCAtMjE1
LDYgKzIxOCwyNSBAQCBzdGF0aWMgYm9vbCBzdHlsZUNvbnRhaW5zQ29tcGxleEJhY2tncm91bmQo
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGlj
IFZlY3RvcjxDb2xvcj4gZXN0aW1hdGVkVGV4dENvbG9yc0ZvclJhbmdlKGNvbnN0IFJhbmdlJiBy
YW5nZSkKK3sKKyAgICBWZWN0b3I8Q29sb3I+IGNvbG9yczsKKyAgICBIYXNoU2V0PFJHQkEzMj4g
dW5pcXVlUkdCVmFsdWVzOworICAgIGZvciAoVGV4dEl0ZXJhdG9yIGl0ZXJhdG9yKCZyYW5nZSk7
ICFpdGVyYXRvci5hdEVuZCgpOyBpdGVyYXRvci5hZHZhbmNlKCkpIHsKKyAgICAgICAgYXV0byog
bm9kZSA9IGl0ZXJhdG9yLm5vZGUoKTsKKyAgICAgICAgaWYgKCFpczxUZXh0Pihub2RlKSB8fCAh
aXM8UmVuZGVyVGV4dD4obm9kZS0+cmVuZGVyZXIoKSkpCisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICBhdXRvJiBjb2xvciA9IG5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCkuY29sb3Io
KTsKKyAgICAgICAgaWYgKHVuaXF1ZVJHQlZhbHVlcy5jb250YWlucyhjb2xvci5yZ2IoKSkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICB1bmlxdWVSR0JWYWx1ZXMuYWRkKGNvbG9y
LnJnYigpKTsKKyAgICAgICAgY29sb3JzLmFwcGVuZChjb2xvcik7CisgICAgfQorICAgIHJldHVy
biBjb2xvcnM7Cit9CisKIHN0YXRpYyBDb2xvciBlc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3JGb3JS
YW5nZShjb25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0IEZyYW1lJiBmcmFtZSkKIHsKICAgICBhdXRv
IGVzdGltYXRlZEJhY2tncm91bmRDb2xvciA9IGZyYW1lLnZpZXcoKSA/IGZyYW1lLnZpZXcoKS0+
ZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3IoKSA6IENvbG9yOjp0cmFuc3BhcmVudDsKQEAgLTI1MSwx
MCArMjczLDQwIEBAIHN0YXRpYyBDb2xvciBlc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3JGb3JSYW5n
ZShjb25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0IEZyYW1lJiBmCiAgICAgcmV0dXJuIGVzdGltYXRl
ZEJhY2tncm91bmRDb2xvcjsKIH0KIAorc3RhdGljIHZvaWQgYWRqdXN0VGV4dEluZGljYXRvckRh
dGFPcHRpb25zRm9yRXN0aW1hdGVkQ29sb3JzSWZOZWNlc3NhcnkoVGV4dEluZGljYXRvckRhdGEm
IGRhdGEsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IsIGNvbnN0IFZlY3RvcjxDb2xvcj4m
IHRleHRDb2xvcnMpCit7CisgICAgaWYgKGRhdGEub3B0aW9ucyAmIFRleHRJbmRpY2F0b3JPcHRp
b25QYWludEFsbENvbnRlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghKGRhdGEub3B0
aW9ucyAmIFRleHRJbmRpY2F0b3JPcHRpb25Vc2VCb3VuZGluZ1JlY3RBbmRQYWludEFsbENvbnRl
bnRGb3JDb21wbGV4UmFuZ2VzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBoYXNPbmx5
TGVnaWJsZVRleHRDb2xvcnMgPSB0cnVlOworICAgIGlmIChkYXRhLm9wdGlvbnMgJiBUZXh0SW5k
aWNhdG9yT3B0aW9uUmVzcGVjdFRleHRDb2xvcikgeworICAgICAgICBmb3IgKGF1dG8mIHRleHRD
b2xvciA6IHRleHRDb2xvcnMpIHsKKyAgICAgICAgICAgIGhhc09ubHlMZWdpYmxlVGV4dENvbG9y
cyA9IHRleHRDb2xvcklzTGVnaWJsZUFnYWluc3RCYWNrZ3JvdW5kQ29sb3IodGV4dENvbG9yLCBi
YWNrZ3JvdW5kQ29sb3IpOworICAgICAgICAgICAgaWYgKCFoYXNPbmx5TGVnaWJsZVRleHRDb2xv
cnMpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAg
ICAgaGFzT25seUxlZ2libGVUZXh0Q29sb3JzID0gdGV4dENvbG9ySXNMZWdpYmxlQWdhaW5zdEJh
Y2tncm91bmRDb2xvcihDb2xvcjo6YmxhY2ssIGJhY2tncm91bmRDb2xvcik7CisKKyAgICBpZiAo
IWhhc09ubHlMZWdpYmxlVGV4dENvbG9ycyB8fCAhdGV4dENvbG9ycy5zaXplKCkpIHsKKyAgICAg
ICAgLy8gSWYgdGhlIHRleHQgY29sb3IgaXMgbm90IGxlZ2libGUgYWdhaW5zdCB0aGUgZXN0aW1h
dGVkIGNvbG9yLCBmb3JjZSBhbGwgY29udGVudCB0byBiZSBwYWludGVkLgorICAgICAgICBkYXRh
Lm9wdGlvbnMgJj0gflRleHRJbmRpY2F0b3JPcHRpb25Vc2VCb3VuZGluZ1JlY3RBbmRQYWludEFs
bENvbnRlbnRGb3JDb21wbGV4UmFuZ2VzOworICAgICAgICBkYXRhLm9wdGlvbnMgfD0gVGV4dElu
ZGljYXRvck9wdGlvblBhaW50QWxsQ29udGVudDsKKyAgICB9Cit9CisKIHN0YXRpYyBib29sIGlu
aXRpYWxpemVJbmRpY2F0b3IoVGV4dEluZGljYXRvckRhdGEmIGRhdGEsIEZyYW1lJiBmcmFtZSwg
Y29uc3QgUmFuZ2UmIHJhbmdlLCBGbG9hdFNpemUgbWFyZ2luLCBib29sIGluZGljYXRlc0N1cnJl
bnRTZWxlY3Rpb24pCiB7Ci0gICAgaWYgKGRhdGEub3B0aW9ucyAmIFRleHRJbmRpY2F0b3JPcHRp
b25Db21wdXRlRXN0aW1hdGVkQmFja2dyb3VuZENvbG9yKQorICAgIGlmIChhdXRvKiBkb2N1bWVu
dCA9IGZyYW1lLmRvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKworICAgIGlmIChkYXRhLm9wdGlvbnMgJiBUZXh0SW5k
aWNhdG9yT3B0aW9uQ29tcHV0ZUVzdGltYXRlZEJhY2tncm91bmRDb2xvcikgewogICAgICAgICBk
YXRhLmVzdGltYXRlZEJhY2tncm91bmRDb2xvciA9IGVzdGltYXRlZEJhY2tncm91bmRDb2xvckZv
clJhbmdlKHJhbmdlLCBmcmFtZSk7CisgICAgICAgIGFkanVzdFRleHRJbmRpY2F0b3JEYXRhT3B0
aW9uc0ZvckVzdGltYXRlZENvbG9yc0lmTmVjZXNzYXJ5KGRhdGEsIGRhdGEuZXN0aW1hdGVkQmFj
a2dyb3VuZENvbG9yLCBlc3RpbWF0ZWRUZXh0Q29sb3JzRm9yUmFuZ2UocmFuZ2UpKTsKKyAgICB9
CiAKICAgICBWZWN0b3I8RmxvYXRSZWN0PiB0ZXh0UmVjdHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwCmluZGV4IGJlNGM4NGE1NzkzZmMwMjY0Zjc0MDE0
ZmE4N2VkOTMyMGUxNjY1NGUuLjRmODIyZWYyOWZhMDg2Y2M4ZjNkYWZkMDI3M2VlYmJmNDQxZTZk
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcApAQCAt
NDUsMTEgKzQ1LDE1IEBAIFRleHRQYWludFN0eWxlOjpUZXh0UGFpbnRTdHlsZShjb25zdCBDb2xv
ciYgY29sb3IpCiB7CiB9CiAKLXN0YXRpYyBDb2xvciBhZGp1c3RDb2xvckZvclZpc2liaWxpdHlP
bkJhY2tncm91bmQoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91
bmRDb2xvcikKK2Jvb2wgdGV4dENvbG9ySXNMZWdpYmxlQWdhaW5zdEJhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYgdGV4dENvbG9yLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKQogewot
ICAgIGludCBkID0gZGlmZmVyZW5jZVNxdWFyZWQodGV4dENvbG9yLCBiYWNrZ3JvdW5kQ29sb3Ip
OwogICAgIC8vIFNlbWktYXJiaXRyYXJpbHkgY2hvc2UgNjUwMjUgKDI1NV4yKSB2YWx1ZSBoZXJl
IGFmdGVyIGEgZmV3IHRlc3RzLgotICAgIGlmIChkID4gNjUwMjUpCisgICAgcmV0dXJuIGRpZmZl
cmVuY2VTcXVhcmVkKHRleHRDb2xvciwgYmFja2dyb3VuZENvbG9yKSA+IDY1MDI1OworfQorCitz
dGF0aWMgQ29sb3IgYWRqdXN0Q29sb3JGb3JWaXNpYmlsaXR5T25CYWNrZ3JvdW5kKGNvbnN0IENv
bG9yJiB0ZXh0Q29sb3IsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpCit7CisgICAgaWYg
KHRleHRDb2xvcklzTGVnaWJsZUFnYWluc3RCYWNrZ3JvdW5kQ29sb3IodGV4dENvbG9yLCBiYWNr
Z3JvdW5kQ29sb3IpKQogICAgICAgICByZXR1cm4gdGV4dENvbG9yOwogCiAgICAgaW50IGRpc3Rh
bmNlRnJvbVdoaXRlID0gZGlmZmVyZW5jZVNxdWFyZWQodGV4dENvbG9yLCBDb2xvcjo6d2hpdGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuaAppbmRleCA0ODcyM2Zl
ZGI4ZDExYTU4ODkwMWE3YmZkMTBjNDNmMTBiODcwOGYyLi5lNzAwZTkyMGQzMDFmZjZkNjQ1YzFi
YWVlZGFhYzA4ZTQ0Y2U5MTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dFBhaW50U3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50
U3R5bGUuaApAQCAtNTUsNiArNTUsNyBAQCBzdHJ1Y3QgVGV4dFBhaW50U3R5bGUgewogICAgIGZs
b2F0IG1pdGVyTGltaXQgeyBkZWZhdWx0TWl0ZXJMaW1pdCB9OwogfTsKIAorYm9vbCB0ZXh0Q29s
b3JJc0xlZ2libGVBZ2FpbnN0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiB0ZXh0Q29sb3Is
IGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpOwogVGV4dFBhaW50U3R5bGUgY29tcHV0ZVRl
eHRQYWludFN0eWxlKGNvbnN0IEZyYW1lJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBQYWlu
dEluZm8mKTsKIFRleHRQYWludFN0eWxlIGNvbXB1dGVUZXh0U2VsZWN0aW9uUGFpbnRTdHlsZShj
b25zdCBUZXh0UGFpbnRTdHlsZSYsIGNvbnN0IFJlbmRlclRleHQmLCBjb25zdCBSZW5kZXJTdHls
ZSYsIGNvbnN0IFBhaW50SW5mbyYsIGJvb2wmIHBhaW50U2VsZWN0ZWRUZXh0T25seSwgYm9vbCYg
cGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5LCBib29sJiBwYWludE5vblNlbGVjdGVkVGV4dE9u
bHksIGNvbnN0IFNoYWRvd0RhdGEqJiBzZWxlY3Rpb25TaGFkb3cpOwogCg==
</data>
<flag name="review"
          id="335216"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314343</attachid>
            <date>2017-06-30 18:26:03 -0700</date>
            <delta_ts>2017-06-30 18:45:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173860-20170630182603.patch</filename>
            <type>text/plain</type>
            <size>7843</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4OTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I2ZDVhMGNlNTEyMDQ5
MmU1YTA5Mjc4OGY0ZjhkNDg3ZDAzODU4OS4uYTlhMjQ0MDQ1NGQxNmM1MDdmNWE5YmEzOTE5NmY4
ZjM0ODk5Y2RkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE3LTA2LTMwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBU
ZXh0IGluZGljYXRvcnMgZm9yIGRyYWdnZWQgbGlua3Mgc2hvdWxkIGFsd2F5cyBiZSBsZWdpYmxl
IGlmIHRoZSBsaW5rIGlzIGxlZ2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3Mzg2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI5NzQzODU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBDdXJyZW50bHks
IFRleHRJbmRpY2F0b3JPcHRpb25Vc2VCb3VuZGluZ1JlY3RBbmRQYWludEFsbENvbnRlbnRGb3JD
b21wbGV4UmFuZ2VzIGVuc3VyZXMgdGhhdCBsaW5rcyBiYWNrZWQgYnkgYQorICAgICAgICBSZW5k
ZXJSZXBsYWNlZCBlbGVtZW50IGRvbid0IHJlbmRlciBibGFuayB0ZXh0IGluZGljYXRvcnMgYnkg
YWRkaXRpb25hbGx5IGZvcmNpbmcgdGhlCisgICAgICAgIFRleHRJbmRpY2F0b3JPcHRpb25QYWlu
dEFsbENvbnRlbnQgb3B0aW9uIGluIG9yZGVyIHRvIGNhcHR1cmUgdGhlIFJlbmRlclJlcGxhY2Vk
IGNvbnRlbnQuIElmIGVzdGltYXRlZAorICAgICAgICBiYWNrZ3JvdW5kIGNvbG9yIGlzIHJlcXVl
c3RlZCwgdGhpcyBwYXRjaCBhZGRzIGFuIGFkZGl0aW9uYWwgcGF0aCBmb3IgInVwZ3JhZGluZyIg
dGhlIHRleHQgaW5kaWNhdG9yIHRvIHBhaW50CisgICAgICAgIGFsbCBjb250ZW50OiBpZiB0aGUg
dGV4dCBjb2xvciBpcyBub3QgbGVnaWJsZSBhZ2FpbnN0IHRoZSBlc3RpbWF0ZWQgYmFja2dyb3Vu
ZCBjb2xvciwgdGhlbiBpdCBpcyBsaWtlbHkgdGhhdCB0aGUKKyAgICAgICAgYmFja2dyb3VuZCBj
b2xvciBlc3RpbWF0ZSBmYWlsZWQgb3IgdGhlIGxpbmsgaXRzZWxmIHdhcyBub3QgbGVnaWJsZSBp
biB0aGUgZmlyc3QgcGxhY2U7IGluIHRoZSBmb3JtZXIgY2FzZSwgdG8KKyAgICAgICAgZW5zdXJl
IHRoYXQgdGhlIGxpbmsgaXMgc3RpbGwgbGVnaWJsZSwgd2UgdXBncmFkZSB0aGUgZ2l2ZW4gVGV4
dEluZGljYXRvck9wdGlvbnMgdG8gcGFpbnQgYWxsIGNvbnRlbnRzIGluIHRoZQorICAgICAgICBy
YW5nZS4KKworICAgICAgICBUaGVyZSBpcyBjdXJyZW50bHkgbm8gd2F5IHRvIHRlc3QgdGhpcywg
YW5kIGFsc28gbm8gc2ltcGxlIHdheSB0byBpbnRyb2R1Y2UgaW5mcmFzdHJ1Y3R1cmUgdG8gdGVz
dCB0ZXh0CisgICAgICAgIGluZGljYXRvcnMuCisKKyAgICAgICAgKiBwYWdlL1RleHRJbmRpY2F0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXN0aW1hdGVkVGV4dENvbG9yc0ZvclJhbmdlKToK
KworICAgICAgICBFc3RpbWF0ZXMgYWxsIHRleHQgY29sb3JzIHRoYXQgYXBwZWFyIGluIGEgcmFu
Z2UgYnkgaXRlcmF0aW5nIG92ZXIgdGhlIHRleHQgbm9kZSByZW5kZXJlcnMgYW5kIGNvbnN1bHRp
bmcgdGhlaXIKKyAgICAgICAgcmVuZGVyIHN0eWxlcy4KKworICAgICAgICAoV2ViQ29yZTo6YWRq
dXN0VGV4dEluZGljYXRvckRhdGFPcHRpb25zRm9yRXN0aW1hdGVkQ29sb3JzSWZOZWNlc3Nhcnkp
OgorCisgICAgICAgIElmIGZvcmVncm91bmQgdGV4dCBjb2xvciBpcyBkZWVtZWQgbm90IGxlZ2li
bGUsIGZvcmNlIFRleHRJbmRpY2F0b3JPcHRpb25QYWludEFsbENvbnRlbnQgaW5zdGVhZCBvZgor
ICAgICAgICBUZXh0SW5kaWNhdG9yT3B0aW9uVXNlQm91bmRpbmdSZWN0QW5kUGFpbnRBbGxDb250
ZW50Rm9yQ29tcGxleFJhbmdlcy4KKworICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZUluZGlj
YXRvcik6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnRleHRDb2xvcklzTGVnaWJsZUFnYWluc3RCYWNrZ3JvdW5kQ29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6YWRqdXN0Q29sb3JGb3JWaXNpYmlsaXR5T25CYWNrZ3JvdW5kKToKKwor
ICAgICAgICBBbGxvdyBvdGhlciBwYXJ0cyBvZiBXZWJDb3JlIHRvIGNoZWNrIHRoZSBsZWdpYmls
aXR5IG9mIHRleHQgYWdhaW5zdCBhIGJhY2tncm91bmQgY29sb3IuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvVGV4dFBhaW50U3R5bGUuaDoKKwogMjAxNy0wNi0zMCAgQW50b2luZSBRdWludCAgPGdy
YW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFRvcCBjb250cm9scyBiYXJzIHNob3VsZCBpbnZl
cnQgd2l0aCByaWdodC10by1sZWZ0IHVzZXIgaW50ZXJmYWNlIGxheW91dCBkaXJlY3Rpb24gbG9j
YWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5kaWNhdG9yLmNwcAppbmRleCA1Nzc0MDQ1ZDRhZjI1
NDcxODkwMzllMWU4ZjRlOWYwZDY1NjQwMzlhLi4wNDk4ZmQyM2IwMDFkYmIxODMyNTdhNTZlNmU5
YzVjNDFjNTYxYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAKQEAgLTQx
LDYgKzQxLDkgQEAKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVGV4dFBhaW50U3R5bGUuaCIKIAog
I2lmIFBMQVRGT1JNKElPUykKICNpbmNsdWRlICJTZWxlY3Rpb25SZWN0LmgiCkBAIC0yMTUsNiAr
MjE4LDI1IEBAIHN0YXRpYyBib29sIHN0eWxlQ29udGFpbnNDb21wbGV4QmFja2dyb3VuZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgVmVj
dG9yPENvbG9yPiBlc3RpbWF0ZWRUZXh0Q29sb3JzRm9yUmFuZ2UoY29uc3QgUmFuZ2UmIHJhbmdl
KQoreworICAgIFZlY3RvcjxDb2xvcj4gY29sb3JzOworICAgIEhhc2hTZXQ8UkdCQTMyPiB1bmlx
dWVSR0JWYWx1ZXM7CisgICAgZm9yIChUZXh0SXRlcmF0b3IgaXRlcmF0b3IoJnJhbmdlKTsgIWl0
ZXJhdG9yLmF0RW5kKCk7IGl0ZXJhdG9yLmFkdmFuY2UoKSkgeworICAgICAgICBhdXRvKiBub2Rl
ID0gaXRlcmF0b3Iubm9kZSgpOworICAgICAgICBpZiAoIWlzPFRleHQ+KG5vZGUpIHx8ICFpczxS
ZW5kZXJUZXh0Pihub2RlLT5yZW5kZXJlcigpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIGF1dG8mIGNvbG9yID0gbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS5jb2xvcigpOwor
ICAgICAgICBpZiAodW5pcXVlUkdCVmFsdWVzLmNvbnRhaW5zKGNvbG9yLnJnYigpKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHVuaXF1ZVJHQlZhbHVlcy5hZGQoY29sb3Iucmdi
KCkpOworICAgICAgICBjb2xvcnMuYXBwZW5kKGNvbG9yKTsKKyAgICB9CisgICAgcmV0dXJuIGNv
bG9yczsKK30KKwogc3RhdGljIENvbG9yIGVzdGltYXRlZEJhY2tncm91bmRDb2xvckZvclJhbmdl
KGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgRnJhbWUmIGZyYW1lKQogewogICAgIGF1dG8gZXN0
aW1hdGVkQmFja2dyb3VuZENvbG9yID0gZnJhbWUudmlldygpID8gZnJhbWUudmlldygpLT5kb2N1
bWVudEJhY2tncm91bmRDb2xvcigpIDogQ29sb3I6OnRyYW5zcGFyZW50OwpAQCAtMjUxLDEwICsy
NzMsNDAgQEAgc3RhdGljIENvbG9yIGVzdGltYXRlZEJhY2tncm91bmRDb2xvckZvclJhbmdlKGNv
bnN0IFJhbmdlJiByYW5nZSwgY29uc3QgRnJhbWUmIGYKICAgICByZXR1cm4gZXN0aW1hdGVkQmFj
a2dyb3VuZENvbG9yOwogfQogCitzdGF0aWMgdm9pZCBhZGp1c3RUZXh0SW5kaWNhdG9yRGF0YU9w
dGlvbnNGb3JFc3RpbWF0ZWRDb2xvcnNJZk5lY2Vzc2FyeShUZXh0SW5kaWNhdG9yRGF0YSYgZGF0
YSwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvciwgVmVjdG9yPENvbG9yPiYmIHRleHRDb2xv
cnMpCit7CisgICAgaWYgKGRhdGEub3B0aW9ucyAmIFRleHRJbmRpY2F0b3JPcHRpb25QYWludEFs
bENvbnRlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghKGRhdGEub3B0aW9ucyAmIFRl
eHRJbmRpY2F0b3JPcHRpb25Vc2VCb3VuZGluZ1JlY3RBbmRQYWludEFsbENvbnRlbnRGb3JDb21w
bGV4UmFuZ2VzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBoYXNPbmx5TGVnaWJsZVRl
eHRDb2xvcnMgPSB0cnVlOworICAgIGlmIChkYXRhLm9wdGlvbnMgJiBUZXh0SW5kaWNhdG9yT3B0
aW9uUmVzcGVjdFRleHRDb2xvcikgeworICAgICAgICBmb3IgKGF1dG8mIHRleHRDb2xvciA6IHRl
eHRDb2xvcnMpIHsKKyAgICAgICAgICAgIGhhc09ubHlMZWdpYmxlVGV4dENvbG9ycyA9IHRleHRD
b2xvcklzTGVnaWJsZUFnYWluc3RCYWNrZ3JvdW5kQ29sb3IodGV4dENvbG9yLCBiYWNrZ3JvdW5k
Q29sb3IpOworICAgICAgICAgICAgaWYgKCFoYXNPbmx5TGVnaWJsZVRleHRDb2xvcnMpCisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgaGFzT25s
eUxlZ2libGVUZXh0Q29sb3JzID0gdGV4dENvbG9ySXNMZWdpYmxlQWdhaW5zdEJhY2tncm91bmRD
b2xvcihDb2xvcjo6YmxhY2ssIGJhY2tncm91bmRDb2xvcik7CisKKyAgICBpZiAoIWhhc09ubHlM
ZWdpYmxlVGV4dENvbG9ycyB8fCAhdGV4dENvbG9ycy5zaXplKCkpIHsKKyAgICAgICAgLy8gSWYg
dGhlIHRleHQgY29sb3IgaXMgbm90IGxlZ2libGUgYWdhaW5zdCB0aGUgZXN0aW1hdGVkIGNvbG9y
LCBmb3JjZSBhbGwgY29udGVudCB0byBiZSBwYWludGVkLgorICAgICAgICBkYXRhLm9wdGlvbnMg
Jj0gflRleHRJbmRpY2F0b3JPcHRpb25Vc2VCb3VuZGluZ1JlY3RBbmRQYWludEFsbENvbnRlbnRG
b3JDb21wbGV4UmFuZ2VzOworICAgICAgICBkYXRhLm9wdGlvbnMgfD0gVGV4dEluZGljYXRvck9w
dGlvblBhaW50QWxsQ29udGVudDsKKyAgICB9Cit9CisKIHN0YXRpYyBib29sIGluaXRpYWxpemVJ
bmRpY2F0b3IoVGV4dEluZGljYXRvckRhdGEmIGRhdGEsIEZyYW1lJiBmcmFtZSwgY29uc3QgUmFu
Z2UmIHJhbmdlLCBGbG9hdFNpemUgbWFyZ2luLCBib29sIGluZGljYXRlc0N1cnJlbnRTZWxlY3Rp
b24pCiB7Ci0gICAgaWYgKGRhdGEub3B0aW9ucyAmIFRleHRJbmRpY2F0b3JPcHRpb25Db21wdXRl
RXN0aW1hdGVkQmFja2dyb3VuZENvbG9yKQorICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1l
LmRvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKKworICAgIGlmIChkYXRhLm9wdGlvbnMgJiBUZXh0SW5kaWNhdG9yT3B0
aW9uQ29tcHV0ZUVzdGltYXRlZEJhY2tncm91bmRDb2xvcikgewogICAgICAgICBkYXRhLmVzdGlt
YXRlZEJhY2tncm91bmRDb2xvciA9IGVzdGltYXRlZEJhY2tncm91bmRDb2xvckZvclJhbmdlKHJh
bmdlLCBmcmFtZSk7CisgICAgICAgIGFkanVzdFRleHRJbmRpY2F0b3JEYXRhT3B0aW9uc0ZvckVz
dGltYXRlZENvbG9yc0lmTmVjZXNzYXJ5KGRhdGEsIGRhdGEuZXN0aW1hdGVkQmFja2dyb3VuZENv
bG9yLCBlc3RpbWF0ZWRUZXh0Q29sb3JzRm9yUmFuZ2UocmFuZ2UpKTsKKyAgICB9CiAKICAgICBW
ZWN0b3I8RmxvYXRSZWN0PiB0ZXh0UmVjdHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dFBhaW50U3R5bGUuY3BwCmluZGV4IGJlNGM4NGE1NzkzZmMwMjY0Zjc0MDE0ZmE4N2VkOTMy
MGUxNjY1NGUuLjRmODIyZWYyOWZhMDg2Y2M4ZjNkYWZkMDI3M2VlYmJmNDQxZTZkYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcApAQCAtNDUsMTEgKzQ1
LDE1IEBAIFRleHRQYWludFN0eWxlOjpUZXh0UGFpbnRTdHlsZShjb25zdCBDb2xvciYgY29sb3Ip
CiB7CiB9CiAKLXN0YXRpYyBDb2xvciBhZGp1c3RDb2xvckZvclZpc2liaWxpdHlPbkJhY2tncm91
bmQoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikK
K2Jvb2wgdGV4dENvbG9ySXNMZWdpYmxlQWdhaW5zdEJhY2tncm91bmRDb2xvcihjb25zdCBDb2xv
ciYgdGV4dENvbG9yLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKQogewotICAgIGludCBk
ID0gZGlmZmVyZW5jZVNxdWFyZWQodGV4dENvbG9yLCBiYWNrZ3JvdW5kQ29sb3IpOwogICAgIC8v
IFNlbWktYXJiaXRyYXJpbHkgY2hvc2UgNjUwMjUgKDI1NV4yKSB2YWx1ZSBoZXJlIGFmdGVyIGEg
ZmV3IHRlc3RzLgotICAgIGlmIChkID4gNjUwMjUpCisgICAgcmV0dXJuIGRpZmZlcmVuY2VTcXVh
cmVkKHRleHRDb2xvciwgYmFja2dyb3VuZENvbG9yKSA+IDY1MDI1OworfQorCitzdGF0aWMgQ29s
b3IgYWRqdXN0Q29sb3JGb3JWaXNpYmlsaXR5T25CYWNrZ3JvdW5kKGNvbnN0IENvbG9yJiB0ZXh0
Q29sb3IsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpCit7CisgICAgaWYgKHRleHRDb2xv
cklzTGVnaWJsZUFnYWluc3RCYWNrZ3JvdW5kQ29sb3IodGV4dENvbG9yLCBiYWNrZ3JvdW5kQ29s
b3IpKQogICAgICAgICByZXR1cm4gdGV4dENvbG9yOwogCiAgICAgaW50IGRpc3RhbmNlRnJvbVdo
aXRlID0gZGlmZmVyZW5jZVNxdWFyZWQodGV4dENvbG9yLCBDb2xvcjo6d2hpdGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuaAppbmRleCA0ODcyM2ZlZGI4ZDExYTU4
ODkwMWE3YmZkMTBjNDNmMTBiODcwOGYyLi5lNzAwZTkyMGQzMDFmZjZkNjQ1YzFiYWVlZGFhYzA4
ZTQ0Y2U5MTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50
U3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuaApA
QCAtNTUsNiArNTUsNyBAQCBzdHJ1Y3QgVGV4dFBhaW50U3R5bGUgewogICAgIGZsb2F0IG1pdGVy
TGltaXQgeyBkZWZhdWx0TWl0ZXJMaW1pdCB9OwogfTsKIAorYm9vbCB0ZXh0Q29sb3JJc0xlZ2li
bGVBZ2FpbnN0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IsIGNvbnN0IENv
bG9yJiBiYWNrZ3JvdW5kQ29sb3IpOwogVGV4dFBhaW50U3R5bGUgY29tcHV0ZVRleHRQYWludFN0
eWxlKGNvbnN0IEZyYW1lJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBQYWludEluZm8mKTsK
IFRleHRQYWludFN0eWxlIGNvbXB1dGVUZXh0U2VsZWN0aW9uUGFpbnRTdHlsZShjb25zdCBUZXh0
UGFpbnRTdHlsZSYsIGNvbnN0IFJlbmRlclRleHQmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0
IFBhaW50SW5mbyYsIGJvb2wmIHBhaW50U2VsZWN0ZWRUZXh0T25seSwgYm9vbCYgcGFpbnRTZWxl
Y3RlZFRleHRTZXBhcmF0ZWx5LCBib29sJiBwYWludE5vblNlbGVjdGVkVGV4dE9ubHksIGNvbnN0
IFNoYWRvd0RhdGEqJiBzZWxlY3Rpb25TaGFkb3cpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>