<?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>55730</bug_id>
          
          <creation_ts>2011-03-03 17:15:36 -0800</creation_ts>
          <short_desc>UI process needs a way to tell the web process its backing store needs a full update on the next paint</short_desc>
          <delta_ts>2011-03-03 17:37:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>51262</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Adam Roben (:aroben)">aroben</assigned_to>
          <cc>andersca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>362105</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-03 17:15:36 -0800</bug_when>
    <thetext>UI process needs a way to tell the web process its backing store needs a full update on the next paint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362106</commentid>
    <comment_count>1</comment_count>
      <attachid>84659</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-03 17:16:05 -0800</bug_when>
    <thetext>Created attachment 84659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362117</commentid>
    <comment_count>2</comment_count>
      <attachid>84659</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-03 17:25:13 -0800</bug_when>
    <thetext>Comment on attachment 84659
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:195
&gt; +    }

Should we do this even if there&apos;s a layer tree host?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362120</commentid>
    <comment_count>3</comment_count>
      <attachid>84659</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-03 17:30:49 -0800</bug_when>
    <thetext>Comment on attachment 84659
Patch

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

&gt;&gt; Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:195
&gt;&gt; +    }
&gt; 
&gt; Should we do this even if there&apos;s a layer tree host?

Yes. The DidUpdateBackingStoreState message will tell the UI process about the layer tree host, and won&apos;t include a bitmap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362124</commentid>
    <comment_count>4</comment_count>
      <attachid>84659</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-03 17:34:19 -0800</bug_when>
    <thetext>Comment on attachment 84659
Patch

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

&gt;&gt;&gt; Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:195
&gt;&gt;&gt; +    }
&gt;&gt; 
&gt;&gt; Should we do this even if there&apos;s a layer tree host?
&gt; 
&gt; Yes. The DidUpdateBackingStoreState message will tell the UI process about the layer tree host, and won&apos;t include a bitmap.

It will also let the UI process know we&apos;ve updated to match the current state (e.g., size etc.).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362126</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-03 17:37:41 -0800</bug_when>
    <thetext>Committed r80306: &lt;http://trac.webkit.org/changeset/80306&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84659</attachid>
            <date>2011-03-03 17:16:05 -0800</date>
            <delta_ts>2011-03-03 17:34:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55730-20110303201617.patch</filename>
            <type>text/plain</type>
            <size>21735</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAyOTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwYTEwNDVmNWI3YjcyYzFl
YmM3MDE4ZGUwZjU0NDk3MTMzNDZkOTc1Li4zOWVlMTMzMDc5Mjc1MjNjNTZjYjk3ZTM1NmQxNWQ2
Mzc2NTg4Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzcgQEAKIDIwMTEtMDMtMDMgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBhIHdheSB0byB0ZWxsIHRo
ZSB3ZWIgcHJvY2VzcyB0byBwZXJmb3JtIGEgZnVsbCBiYWNraW5nIHN0b3JlIHVwZGF0ZSBvbiBp
dHMgbmV4dCBwYWludAorCisgICAgICAgIE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6VXBkYXRlQmFj
a2luZ1N0b3JlU3RhdGUgbm93IHRha2VzIGEgYm9vbGVhbiBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhl
CisgICAgICAgIGZ1bGwgYmFja2luZyBzdG9yZSB1cGRhdGUgc2hvdWxkIGhhcHBlbiBpbW1lZGlh
dGVseSBvciBzaG91bGQgYmUgZGVmZXJyZWQgdW50aWwgdGhlIG5leHQKKyAgICAgICAgcGFpbnQg
b3IgY29tcG9zaXRpbmcgbW9kZSBjaGFuZ2Ugb2NjdXJzLiBUaGUgZGVmZXJyZWQgdXBkYXRlIGlz
bid0IHVzZWQgeWV0LCBidXQgd2lsbCBiZQorICAgICAgICB1c2VkIHdoZW4gd2Ugc3RhcnQgdGhy
b3dpbmcgYXdheSBiYWNraW5nIHN0b3JlcyB0byBzYXZlIG1lbW9yeS4KKworICAgICAgICBGaXhl
cyA8aHR0cDovL3dlYmtpdC5vcmcvYi81NTczMD4gVUkgcHJvY2VzcyBuZWVkcyBhIHdheSB0byB0
ZWxsIHRoZSB3ZWIgcHJvY2VzcyBpdHMgYmFja2luZworICAgICAgICBzdG9yZSBuZWVkcyBhIGZ1
bGwgdXBkYXRlIG9uIHRoZSBuZXh0IHBhaW50CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6cGFpbnQpOiBJZiB3ZSBo
YXZlIGFuIG91dHN0YW5kaW5nIGJhY2tpbmcgc3RvcmUgc3RhdGUgY2hhbmdlCisgICAgICAgIHJl
cXVlc3QsIHRlbGwgdGhlIHdlYiBwcm9jZXNzIHRvIHBlcmZvcm0gdGhlIGJhY2tpbmcgc3RvcmUg
dXBkYXRlIHJpZ2h0IGF3YXksIGluIGNhc2Ugd2UKKyAgICAgICAgcHJldmlvdXNseSB0b2xkIGl0
IGl0IGNvdWxkIGRlZmVyIHRoZSB1cGRhdGUuCisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVh
UHJveHlJbXBsOjpzaXplRGlkQ2hhbmdlKTogU3BlY2lmeSB0aGF0IHdlIG5lZWQgYW4gaW1tZWRp
YXRlIGJhY2tpbmcKKyAgICAgICAgc3RvcmUgdXBkYXRlLgorICAgICAgICAoV2ViS2l0OjpEcmF3
aW5nQXJlYVByb3h5SW1wbDo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOiBXZSBjYW4gbm8g
bG9uZ2VyIGFzc2VydCB0aGF0IHdlCisgICAgICAgIHdlcmUgd2FpdGluZyBmb3IgYSBEaWRVcGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdlIHdoZW4gd2UgcmVjZWl2ZSBvbmUsIGFzIGl0J3Mg
cG9zc2libGUKKyAgICAgICAgZm9yIHRoZSB3ZWIgcHJvY2VzcyB0byBkZWNpZGUgdG8gc2VuZCB1
cyB0aGlzIG1lc3NhZ2Ugb24gaXRzIG93biAoaWYgd2UgYXNrZWQgaXQgdG8gZG8gYQorICAgICAg
ICBkZWZlcnJlZCBiYWNraW5nIHN0b3JlIHVwZGF0ZSBhbmQgdGhlbiBpdCBuZWVkZWQgdG8gcGFp
bnQgc29tZSBwYXJ0IG9mIHRoZSBwYWdlKS4gU3BlY2lmeQorICAgICAgICB0aGF0IHdlIG5lZWQg
YW4gaW1tZWRpYXRlIGJhY2tpbmcgc3RvcmUgdXBkYXRlIGlmIHRoZSB3ZWIgcHJvY2VzcyBoYXNu
J3QgdXBkYXRlZCB0byBvdXIKKyAgICAgICAgbGF0ZXN0IHN0YXRlLCBhcyB3ZSdyZSBhYm91dCB0
byBkcmF3IHBvdGVudGlhbGx5IG91dC1vZi1kYXRlIGJpdHMgdG8gdGhlIHNjcmVlbiBhbmQgd2Fu
dCB0bworICAgICAgICBnZXQgdGhlIHJpZ2h0IGJpdHMgYXMgc29vbiBhcyBwb3NzaWJsZS4gQWxz
byBhZGRlZCBhIEZJWE1FIGFib3V0IGEgcG90ZW50aWFsIG9wdGltaXphdGlvbi4KKyAgICAgICAg
KFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6OmJhY2tpbmdTdG9yZVN0YXRlRGlkQ2hhbmdl
KTogQWRkZWQgYSBSZXNwb25kSW1tZWRpYXRlbHlPck5vdAorICAgICAgICBwYXJhbWV0ZXIsIHdo
aWNoIGlzIGp1c3QgcGFzc2VkIHRocm91Z2ggdG8gc2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
LgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6c2VuZFVwZGF0ZUJhY2tp
bmdTdG9yZVN0YXRlKTogQWRkZWQgYSBSZXNwb25kSW1tZWRpYXRlbHlPck5vdAorICAgICAgICBw
YXJhbWV0ZXIgdGhhdCBpcyB1c2VkIHRvIHNwZWNpZnkgdG8gdGhlIHdlYiBwcm9jZXNzIHdoZXRo
ZXIgdG8gcGVyZm9ybSB0aGUgZnVsbCBiYWNraW5nCisgICAgICAgIHN0b3JlIHVwZGF0ZSBpbW1l
ZGlhdGVseS4gV2Ugbm93IG9ubHkgd2FpdCBmb3IgYSBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSBtZXNzYWdlIChhbmQKKyAgICAgICAgdGh1cyBzdXBwcmVzcyBhbnkgbW9yZSBVcGRhdGVCYWNr
aW5nU3RvcmVTdGF0ZSBtZXNzYWdlcyB1bnRpbCBvbmUgaXMgcmVjZWl2ZWQpIHdoZW4gd2UgYXNr
CisgICAgICAgIHRoZSB3ZWIgcHJvY2VzcyBmb3IgYW4gaW1tZWRpYXRlIHJlc3BvbnNlOyBvdGhl
cndpc2Ugd2UgY291bGQgZW5kIHVwIGFjY2lkZW50YWxseSBjYWxsaW5nCisgICAgICAgIHdhaXRG
b3JBbmREaXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIHdoZW4gdGhlIHdlYiBwcm9j
ZXNzIGhhc24ndCBiZWVuIHRvbGQgdG8gc2VuZAorICAgICAgICB1cyBzdWNoIGEgbWVzc2FnZS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oOiBBZGRlZCBSZXNw
b25kSW1tZWRpYXRlbHlPck5vdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6dXBkYXRlQmFja2luZ1N0
b3JlU3RhdGUpOiBBZGRlZCByZXNwb25kSW1tZWRpYXRlbHkgYXJndW1lbnQuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW46IEFkZGVkIHJlc3Bv
bmRJbW1lZGlhdGVseSBhcmd1bWVudCB0bworICAgICAgICBVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSBtZXNzYWdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6RHJhd2luZ0FyZWFJbXBs
KTogSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHRoYXQncyB1c2VkIHRvIHRyYWNrCisgICAgICAgIHdo
ZXRoZXIgd2Ugc2hvdWxkIHNlbmQgYSBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdl
IGluc3RlYWQgb2YgYW4gVXBkYXRlIG9yCisgICAgICAgIGNvbXBvc2l0aW5nIG1vZGUgY2hhbmdl
IG1lc3NhZ2UuIFRoaXMgd2lsbCBiZSBzZXQgdG8gdHJ1ZSB3aGVuIGEgZGVmZXJyZWQgYmFja2lu
ZyBzdG9yZQorICAgICAgICB1cGRhdGUgaXMgcGVuZGluZy4KKyAgICAgICAgKFdlYktpdDo6RHJh
d2luZ0FyZWFJbXBsOjpsYXllckhvc3REaWRGbHVzaExheWVycyk6IElmIGEgZGVmZXJyZWQgdXBk
YXRlIGlzIHBlbmRpbmcsIHNlbmQgYQorICAgICAgICBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSBtZXNzYWdlIGluc3RlYWQgb2YgYSBjb21wb3NpdGluZyBtb2RlIGNoYW5nZSBtZXNzYWdlLgor
ICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYUltcGw6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
KTogQWRkZWQgcmVzcG9uZEltbWVkaWF0ZWx5IGFyZ3VtZW50LiBJZgorICAgICAgICB3ZSd2ZSBh
bHJlYWR5IGJlZW4gdG9sZCBhYm91dCB0aGlzIHN0YXRlIElEIChhcyBjYW4gaGFwcGVuIHdoZW4g
dGhlIFVJIHByb2Nlc3MgZGVjaWRlcyBpdAorICAgICAgICBuZWVkcyBhbiBpbW1lZGlhdGUgdXBk
YXRlIHRvIGEgc3RhdGUgdGhhdCBpdCBwcmV2aW91c2x5IHJlcXVlc3RlZCBhIGRlZmVycmVkIHVw
ZGF0ZSB0byksCisgICAgICAgIGRvbid0IGJvdGhlciB1cGRhdGluZyB0aGUgcGFnZSdzIHNpemUs
IGV0Yy4gSW4gYWRkaXRpb24sIGlmIHdlJ3ZlIGFscmVhZHkgc2VudCBhCisgICAgICAgIERpZFVw
ZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UgZm9yIHRoaXMgc3RhdGUsIHdlIGRvbid0IGhh
dmUgdG8gZG8gYW55dGhpbmcgYXQgYWxsLgorICAgICAgICBNb3ZlZCBjb2RlIHRvIHNlbmQgdGhl
IERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UgZnJvbSBoZXJlLi4uCisgICAgICAg
IChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6c2VuZERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
KTogLi4udG8gaGVyZS4KKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFJbXBsOjpleGl0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOiBBbHdheXMgdXBkYXRlIG91ciBkaXJ0eSByZWdpb24s
CisgICAgICAgIGV2ZW4gaWYgcGFpbnRpbmcgaXMgc3VzcGVuZGVkIG9yIHdlJ3JlIGluIHRoZSBw
cm9jZXNzIG9mIHVwZGF0aW5nIHRoZSBiYWNraW5nIHN0b3JlIHN0YXRlLgorICAgICAgICBJdCBj
YXVzZXMgbm8gaGFybSBhbmQgc2ltcGxpZmllcyB0aGUgY29kZS4gSWYgYSBkZWZlcnJlZCB1cGRh
dGUgaXMgcGVuZGluZywgc2VuZCBhCisgICAgICAgIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
IG1lc3NhZ2UgaW5zdGVhZCBvZiBhIGNvbXBvc2l0aW5nIG1vZGUgY2hhbmdlIG1lc3NhZ2UuIEFs
c28KKyAgICAgICAgcmVtb3ZlZCBhIHJlZHVuZGFudCBpZi4KKyAgICAgICAgKFdlYktpdDo6RHJh
d2luZ0FyZWFJbXBsOjpkaXNwbGF5KTogQWRkZWQgYW4gYXNzZXJ0aW9uIHRoYXQgdGhpcyBpc24n
dCBjYWxsZWQgd2hpbGUgdXBkYXRpbmcKKyAgICAgICAgYmFja2luZyBzdG9yZSBzdGF0ZSwgYXMg
b3RoZXJ3aXNlIHdlIG1pZ2h0IGVuZCB1cCBzZW5kaW5nIHR3byBEaWRVcGRhdGVCYWNraW5nU3Rv
cmVTdGF0ZQorICAgICAgICBtZXNzYWdlcy4gSWYgYSBkZWZlcnJlZCB1cGRhdGUgaXMgcGVuZGlu
Zywgc2VuZCBhIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UgaW5zdGVhZAorICAg
ICAgICBvZiBhbiBVcGRhdGUgbWVzc2FnZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYUltcGwuaDogVXBkYXRlZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSB0byBt
YXRjaCB0aGUgYmFzZQorICAgICAgICBjbGFzcy4gQWRkZWQgc2VuZERpZFVwZGF0ZUJhY2tpbmdT
dG9yZVN0YXRlIGFuZCBtX3Nob3VsZFNlbmREaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZS4KKwor
MjAxMS0wMy0wMyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKICAgICAgICAgRG9u
J3QgdHJ5IHRvIHBhaW50IG91dHNpZGUgdGhlIHBhZ2UncyBib3VuZHMKIAogICAgICAgICBXaGVu
IHRoZSBwYWdlIGlzIHJlc2l6ZWQgc21hbGxlciwgd2Ugd291bGQgYWxsb2NhdGUgYSBTaGFyZWFi
bGVCaXRtYXAgYXQgdGhlIG9sZCwgbGFyZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAppbmRleCA4N2NjMjA1YmQ0MTlhODliZDg3NDFk
OTZjZmM2Y2E2NGUxYjhjYmU4Li44MWRjYTI4MGIwZTdhMjQ0YzVkNmY4YTA3Mzg2MTk2OWY0NzYz
MTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
SW1wbC5jcHAKQEAgLTcxLDE1ICs3MSwyNSBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpw
YWludChCYWNraW5nU3RvcmU6OlBsYXRmb3JtR3JhcGhpY3NDb250ZXh0IGNvbnRleHQsCiAKICAg
ICBBU1NFUlQoIWlzSW5BY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpKTsKIAotICAgIGlmICht
X2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKSB7Ci0gICAgICAgIC8vIFdh
aXQgZm9yIGEgRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZSB0aGF0IGNvbnRhaW5z
IHRoZSBuZXcgYml0cyBiZWZvcmUgd2UgcGFpbnQKLSAgICAgICAgLy8gd2hhdCdzIGN1cnJlbnRs
eSBpbiB0aGUgYmFja2luZyBzdG9yZS4KLSAgICAgICAgd2FpdEZvckFuZERpc3BhdGNoRGlkVXBk
YXRlQmFja2luZ1N0b3JlU3RhdGUoKTsKKyAgICBBU1NFUlQobV9jdXJyZW50QmFja2luZ1N0b3Jl
U3RhdGVJRCA8PSBtX25leHRCYWNraW5nU3RvcmVTdGF0ZUlEKTsKKyAgICBpZiAobV9jdXJyZW50
QmFja2luZ1N0b3JlU3RhdGVJRCA8IG1fbmV4dEJhY2tpbmdTdG9yZVN0YXRlSUQpIHsKKyAgICAg
ICAgLy8gVGVsbCB0aGUgd2ViIHByb2Nlc3MgdG8gZG8gYSBmdWxsIGJhY2tpbmcgc3RvcmUgdXBk
YXRlIG5vdywgaW4gY2FzZSB3ZSBwcmV2aW91c2x5IHRvbGQKKyAgICAgICAgLy8gaXQgYWJvdXQg
b3VyIG5leHQgc3RhdGUgYnV0IGRpZG4ndCByZXF1ZXN0IGFuIGltbWVkaWF0ZSB1cGRhdGUuCisg
ICAgICAgIHNlbmRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZShSZXNwb25kSW1tZWRpYXRlbHkpOwor
CisgICAgICAgIGlmIChtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKSB7
CisgICAgICAgICAgICAvLyBXYWl0IGZvciBhIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1l
c3NhZ2UgdGhhdCBjb250YWlucyB0aGUgbmV3IGJpdHMgYmVmb3JlIHdlIHBhaW50CisgICAgICAg
ICAgICAvLyB3aGF0J3MgY3VycmVudGx5IGluIHRoZSBiYWNraW5nIHN0b3JlLgorICAgICAgICAg
ICAgd2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoKTsKKyAgICAg
ICAgfQogCi0gICAgICAgIC8vIERpc3BhdGNoaW5nIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
IGNvdWxkIGRlc3Ryb3kgb3VyIGJhY2tpbmcgc3RvcmUgb3IgY2hhbmdlIHRoZSBjb21wb3NpdGlu
ZyBtb2RlLgorICAgICAgICAvLyBEaXNwYXRjaGluZyBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSAoZWl0aGVyIGJlbmVhdGggc2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG9yCisgICAgICAg
IC8vIGJlbmVhdGggd2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUp
IGNvdWxkIGRlc3Ryb3kgb3VyIGJhY2tpbmcgc3RvcmUgb3IKKyAgICAgICAgLy8gY2hhbmdlIHRo
ZSBjb21wb3NpdGluZyBtb2RlLgogICAgICAgICBpZiAoIW1fYmFja2luZ1N0b3JlIHx8IGlzSW5B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgIH0K
KyAgICB9IGVsc2UKKyAgICAgICAgQVNTRVJUKCFtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUJhY2tp
bmdTdG9yZVN0YXRlKTsKIAogICAgIG1fYmFja2luZ1N0b3JlLT5wYWludChjb250ZXh0LCByZWN0
KTsKICAgICB1bnBhaW50ZWRSZWdpb24uc3VidHJhY3QoSW50UmVjdChJbnRQb2ludCgpLCBtX2Jh
Y2tpbmdTdG9yZS0+c2l6ZSgpKSk7CkBAIC0xMDMsNyArMTEzLDcgQEAgYm9vbCBEcmF3aW5nQXJl
YVByb3h5SW1wbDo6cGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBsYXRmb3JtRHJhd2lu
Z0NvbnRleHQKIAogdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6c2l6ZURpZENoYW5nZSgpCiB7
Ci0gICAgYmFja2luZ1N0b3JlU3RhdGVEaWRDaGFuZ2UoKTsKKyAgICBiYWNraW5nU3RvcmVTdGF0
ZURpZENoYW5nZShSZXNwb25kSW1tZWRpYXRlbHkpOwogfQogCiB2b2lkIERyYXdpbmdBcmVhUHJv
eHlJbXBsOjp2aXNpYmlsaXR5RGlkQ2hhbmdlKCkKQEAgLTE0MCwxMSArMTUwLDEwIEBAIHZvaWQg
RHJhd2luZ0FyZWFQcm94eUltcGw6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVN0YXRlCiAgICAgQVNTRVJUX0FSRyhiYWNraW5nU3RvcmVTdGF0ZUlELCBi
YWNraW5nU3RvcmVTdGF0ZUlEID4gbV9jdXJyZW50QmFja2luZ1N0b3JlU3RhdGVJRCk7CiAgICAg
bV9jdXJyZW50QmFja2luZ1N0b3JlU3RhdGVJRCA9IGJhY2tpbmdTdG9yZVN0YXRlSUQ7CiAKLSAg
ICBBU1NFUlQobV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSk7CiAgICAg
bV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSA9IGZhbHNlOwogCiAgICAg
aWYgKG1fbmV4dEJhY2tpbmdTdG9yZVN0YXRlSUQgIT0gbV9jdXJyZW50QmFja2luZ1N0b3JlU3Rh
dGVJRCkKLSAgICAgICAgc2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCk7CisgICAgICAgIHNl
bmRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZShSZXNwb25kSW1tZWRpYXRlbHkpOwogCiAgICAgaWYg
KGxheWVyVHJlZUNvbnRleHQgIT0gbV9sYXllclRyZWVDb250ZXh0KSB7CiAgICAgICAgIGlmICgh
bV9sYXllclRyZWVDb250ZXh0LmlzRW1wdHkoKSkgewpAQCAtMTYzLDYgKzE3Miw4IEBAIHZvaWQg
RHJhd2luZ0FyZWFQcm94eUltcGw6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVN0YXRlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICAvLyBGSVhN
RTogV2UgY291bGQganVzdCByZXVzZSBvdXIgZXhpc3RpbmcgYmFja2luZyBzdG9yZSBpZiBpdCdz
IHRoZSBzYW1lIHNpemUgYXMKKyAgICAvLyB1cGRhdGVJbmZvLnZpZXdTaXplLgogICAgIG1fYmFj
a2luZ1N0b3JlID0gbnVsbHB0cjsKICAgICBpbmNvcnBvcmF0ZVVwZGF0ZSh1cGRhdGVJbmZvKTsK
IH0KQEAgLTIxNCwxMyArMjI1LDEzIEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OmluY29y
cG9yYXRlVXBkYXRlKGNvbnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiAgICAgICAgIG1fd2Vi
UGFnZVByb3h5LT5kaXNwbGF5VmlldygpOwogfQogCi12b2lkIERyYXdpbmdBcmVhUHJveHlJbXBs
OjpiYWNraW5nU3RvcmVTdGF0ZURpZENoYW5nZSgpCit2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBs
OjpiYWNraW5nU3RvcmVTdGF0ZURpZENoYW5nZShSZXNwb25kSW1tZWRpYXRlbHlPck5vdCByZXNw
b25kSW1tZWRpYXRlbHlPck5vdCkKIHsKICAgICArK21fbmV4dEJhY2tpbmdTdG9yZVN0YXRlSUQ7
Ci0gICAgc2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCk7CisgICAgc2VuZFVwZGF0ZUJhY2tp
bmdTdG9yZVN0YXRlKHJlc3BvbmRJbW1lZGlhdGVseU9yTm90KTsKIH0KIAotdm9pZCBEcmF3aW5n
QXJlYVByb3h5SW1wbDo6c2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCkKK3ZvaWQgRHJhd2lu
Z0FyZWFQcm94eUltcGw6OnNlbmRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZShSZXNwb25kSW1tZWRp
YXRlbHlPck5vdCByZXNwb25kSW1tZWRpYXRlbHlPck5vdCkKIHsKICAgICBBU1NFUlQobV9jdXJy
ZW50QmFja2luZ1N0b3JlU3RhdGVJRCA8IG1fbmV4dEJhY2tpbmdTdG9yZVN0YXRlSUQpOwogCkBA
IC0yMzAsMTEgKzI0MSwxMSBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpzZW5kVXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUoKQogICAgIGlmIChtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUJhY2tp
bmdTdG9yZVN0YXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2lzV2FpdGluZ0ZvckRpZFVw
ZGF0ZUJhY2tpbmdTdG9yZVN0YXRlID0gdHJ1ZTsKLSAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6VXBkYXRlQmFja2luZ1N0b3JlU3RhdGUo
bV9uZXh0QmFja2luZ1N0b3JlU3RhdGVJRCwgbV9zaXplLCBtX3Njcm9sbE9mZnNldCksIG1fd2Vi
UGFnZVByb3h5LT5wYWdlSUQoKSk7CisgICAgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVCYWNraW5n
U3RvcmVTdGF0ZSA9IHJlc3BvbmRJbW1lZGlhdGVseU9yTm90ID09IFJlc3BvbmRJbW1lZGlhdGVs
eTsKKyAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5n
QXJlYTo6VXBkYXRlQmFja2luZ1N0b3JlU3RhdGUobV9uZXh0QmFja2luZ1N0b3JlU3RhdGVJRCwg
cmVzcG9uZEltbWVkaWF0ZWx5T3JOb3QgPT0gUmVzcG9uZEltbWVkaWF0ZWx5LCBtX3NpemUsIG1f
c2Nyb2xsT2Zmc2V0KSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpKTsKICAgICBtX3Njcm9sbE9m
ZnNldCA9IEludFNpemUoKTsKIAotICAgIGlmICghbV9sYXllclRyZWVDb250ZXh0LmlzRW1wdHko
KSkgeworICAgIGlmIChtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlICYm
ICFtX2xheWVyVHJlZUNvbnRleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFdhaXQgZm9yIHRo
ZSBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdlLiBOb3JtYWxseSB3ZSBkb24gdGhp
cyBpbiBEcmF3aW5nQXJlYVByb3h5SW1wbDo6cGFpbnQsIGJ1dCB0aGF0CiAgICAgICAgIC8vIGZ1
bmN0aW9uIGlzIG5ldmVyIGNhbGxlZCB3aGVuIGluIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1v
ZGUuCiAgICAgICAgIHdhaXRGb3JBbmREaXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5o
CmluZGV4IDNjNDdkZDNmMjRjYzk3MzdhOTk2NDdhOWE1ZGQzMWE3NDc2MmRhZWIuLjMwNTRkMzE5
YjkyNGRkMjc0MWM1ZTBjMzJmY2FmOWUwMDliMmQyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCkBAIC02Miw4ICs2Miw5IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGluY29ycG9yYXRlVXBkYXRlKGNvbnN0IFVwZGF0ZUluZm8mKTsKIAot
ICAgIHZvaWQgYmFja2luZ1N0b3JlU3RhdGVEaWRDaGFuZ2UoKTsKLSAgICB2b2lkIHNlbmRVcGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSgpOworICAgIGVudW0gUmVzcG9uZEltbWVkaWF0ZWx5T3JOb3Qg
eyBEb05vdFJlc3BvbmRJbW1lZGlhdGVseSwgUmVzcG9uZEltbWVkaWF0ZWx5IH07CisgICAgdm9p
ZCBiYWNraW5nU3RvcmVTdGF0ZURpZENoYW5nZShSZXNwb25kSW1tZWRpYXRlbHlPck5vdCk7Cisg
ICAgdm9pZCBzZW5kVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoUmVzcG9uZEltbWVkaWF0ZWx5T3JO
b3QpOwogICAgIHZvaWQgd2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3Rh
dGUoKTsKIAogICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBM
YXllclRyZWVDb250ZXh0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oCmluZGV4IGQ3MWExOGZiNWUxMmExMGQzM2Y1MGE4ZjlkMTZhY2ExMDgw
MjcwZWUuLmE5NGQ2NmNkMzlmMzk5MWQ3NjY0NDg4ZGM1ZTY0ZDE1M2Y0NDA5YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC04Niw3
ICs4Niw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgLy8gQ29yZUlQQyBtZXNzYWdlIGhh
bmRsZXJzLgogICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgcHVyZSB2aXJ0dWFsLgotICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3Rv
cmVTdGF0ZUlELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBzY3JvbGxPZmZzZXQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5n
U3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBib29sIHJlc3BvbmRJbW1l
ZGlhdGVseSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2Nyb2xsT2Zmc2V0KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRQYWludGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCByZXN1bWVQYWludGluZygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCmluZGV4IGUwNTA3YjNmYmFl
NDcwMWFmODk3NGVlNjI0M2MwNjZiMzEyMmU1ZmIuLjMwMTg2ZjI0ZWU0MDMzODI3ZmY2YmQ2MGRk
MGI5YmEwN2M2YzEyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gRHJhd2luZ0FyZWEgewotICAgIFVwZGF0ZUJhY2tp
bmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIFdlYkNvcmU6OkludFNp
emUgc2l6ZSwgV2ViQ29yZTo6SW50U2l6ZSBzY3JvbGxPZmZzZXQpCisgICAgVXBkYXRlQmFja2lu
Z1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgYm9vbCByZXNwb25kSW1t
ZWRpYXRlbHksIFdlYkNvcmU6OkludFNpemUgc2l6ZSwgV2ViQ29yZTo6SW50U2l6ZSBzY3JvbGxP
ZmZzZXQpCiAgICAgRGlkVXBkYXRlKCkKICAgICBTdXNwZW5kUGFpbnRpbmcoKQogICAgIFJlc3Vt
ZVBhaW50aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYUltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhSW1wbC5jcHAKaW5kZXggNTgwMDFiMzM1NWVhNmYxZDJlMzA2ZjgyZDNiYjZi
NGYwZTdkMDA5ZC4uMGExODI1Njc2ODcyYzI1ZjZjZDkzOWVhYmQ5MTk4MTlmNGQyNWNmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
SW1wbC5jcHAKQEAgLTYwLDYgKzYwLDcgQEAgRHJhd2luZ0FyZWFJbXBsOjpEcmF3aW5nQXJlYUlt
cGwoV2ViUGFnZSogd2ViUGFnZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGUKICAgICA6
IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZUltcGwsIHdlYlBhZ2UpCiAgICAgLCBtX2JhY2tp
bmdTdG9yZVN0YXRlSUQoMCkKICAgICAsIG1faW5VcGRhdGVCYWNraW5nU3RvcmVTdGF0ZShmYWxz
ZSkKKyAgICAsIG1fc2hvdWxkU2VuZERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKGZhbHNlKQog
ICAgICwgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGUoZmFsc2UpCiAgICAgLCBtX2lzUGFpbnRpbmdT
dXNwZW5kZWQoIXBhcmFtZXRlcnMuaXNWaXNpYmxlKQogICAgICwgbV9hbHdheXNVc2VDb21wb3Np
dGluZyhmYWxzZSkKQEAgLTE4OCw2ICsxODksMTEgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6Omxh
eWVySG9zdERpZEZsdXNoTGF5ZXJzKCkKIAogICAgIG1fbGF5ZXJUcmVlSG9zdC0+Zm9yY2VSZXBh
aW50KCk7CiAKKyAgICBpZiAobV9zaG91bGRTZW5kRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUp
IHsKKyAgICAgICAgc2VuZERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBpZiAoIW1fbGF5ZXJUcmVlSG9zdCkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0yMzcsNDcgKzI0Myw3NCBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRAogewogfQog
Ci12b2lkIERyYXdpbmdBcmVhSW1wbDo6dXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3Qg
c3RhdGVJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2Nyb2xsT2Zmc2V0KQordm9pZCBEcmF3aW5nQXJlYUltcGw6OnVwZGF0ZUJhY2tpbmdT
dG9yZVN0YXRlKHVpbnQ2NF90IHN0YXRlSUQsIGJvb2wgcmVzcG9uZEltbWVkaWF0ZWx5LCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxP
ZmZzZXQpCiB7CiAgICAgQVNTRVJUKCFtX2luVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOwogICAg
IG1faW5VcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSA9IHRydWU7CiAKLSAgICBBU1NFUlRfQVJHKHN0
YXRlSUQsIHN0YXRlSUQgPiBtX2JhY2tpbmdTdG9yZVN0YXRlSUQpOwotICAgIG1fYmFja2luZ1N0
b3JlU3RhdGVJRCA9IHN0YXRlSUQ7CisgICAgQVNTRVJUX0FSRyhzdGF0ZUlELCBzdGF0ZUlEID49
IG1fYmFja2luZ1N0b3JlU3RhdGVJRCk7CisgICAgaWYgKHN0YXRlSUQgIT0gbV9iYWNraW5nU3Rv
cmVTdGF0ZUlEKSB7CisgICAgICAgIG1fYmFja2luZ1N0b3JlU3RhdGVJRCA9IHN0YXRlSUQ7Cisg
ICAgICAgIG1fc2hvdWxkU2VuZERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlID0gdHJ1ZTsKKwor
ICAgICAgICBtX3dlYlBhZ2UtPnNldFNpemUoc2l6ZSk7CisgICAgICAgIG1fd2ViUGFnZS0+bGF5
b3V0SWZOZWVkZWQoKTsKKyAgICAgICAgbV93ZWJQYWdlLT5zY3JvbGxNYWluRnJhbWVJZk5vdEF0
TWF4U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0KTsKKworICAgICAgICBpZiAobV9sYXllclRy
ZWVIb3N0KQorICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdlKHNpemUp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2RpcnR5UmVnaW9uID0gbV93ZWJQYWdlLT5i
b3VuZHMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3dlYlBhZ2Ut
PnNpemUoKSk7CisgICAgICAgIGlmICghbV9zaG91bGRTZW5kRGlkVXBkYXRlQmFja2luZ1N0b3Jl
U3RhdGUpIHsKKyAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc2VudCBhIERpZFVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UgZm9yIHRoaXMgc3RhdGUuIFdlIGhhdmUgbm90aGluZyBt
b3JlIHRvIGRvLgorICAgICAgICAgICAgbV9pblVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlID0gZmFs
c2U7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CiAKLSAgICAvLyBTZXQg
dGhpcyB0byBmYWxzZSBzaW5jZSB3ZSdyZSBhYm91dCB0byBjYWxsIGRpc3BsYXkoKS4KKyAgICAv
LyBUaGUgVUkgcHJvY2VzcyBoYXMgdXBkYXRlZCB0byBhIG5ldyBiYWNraW5nIHN0b3JlIHN0YXRl
LiBBbnkgVXBkYXRlIG1lc3NhZ2VzIHdlIHNlbnQgYmVmb3JlCisgICAgLy8gdGhpcyBwb2ludCB3
aWxsIGJlIGlnbm9yZWQuIFdlIHdhaXQgdG8gc2V0IHRoaXMgdG8gZmFsc2UgdW50aWwgYWZ0ZXIg
dXBkYXRpbmcgdGhlIHBhZ2UncworICAgIC8vIHNpemUgc28gdGhhdCBhbnkgZGlzcGxheXMgdHJp
Z2dlcmVkIGJ5IHRoZSByZWxheW91dCB3aWxsIGJlIGlnbm9yZWQuIElmIHdlJ3JlIHN1cHBvc2Vk
IHRvCisgICAgLy8gcmVzcG9uZCB0byB0aGUgVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2Fn
ZSBpbW1lZGlhdGVseSwgd2UnbGwgZG8gYSBkaXNwbGF5IGFueXdheSBpbgorICAgIC8vIHNlbmRE
aWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZTsgb3RoZXJ3aXNlIHdlIHNob3VsZG4ndCBkbyBvbmUg
cmlnaHQgbm93LgogICAgIG1faXNXYWl0aW5nRm9yRGlkVXBkYXRlID0gZmFsc2U7CiAKLSAgICBt
X3dlYlBhZ2UtPnNldFNpemUoc2l6ZSk7Ci0gICAgbV93ZWJQYWdlLT5sYXlvdXRJZk5lZWRlZCgp
OwotICAgIG1fd2ViUGFnZS0+c2Nyb2xsTWFpbkZyYW1lSWZOb3RBdE1heFNjcm9sbFBvc2l0aW9u
KHNjcm9sbE9mZnNldCk7CisgICAgaWYgKHJlc3BvbmRJbW1lZGlhdGVseSkKKyAgICAgICAgc2Vu
ZERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCk7CisKKyAgICBtX2luVXBkYXRlQmFja2luZ1N0
b3JlU3RhdGUgPSBmYWxzZTsKK30KKwordm9pZCBEcmF3aW5nQXJlYUltcGw6OnNlbmREaWRVcGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSgpCit7CisgICAgQVNTRVJUKCFtX2lzV2FpdGluZ0ZvckRpZFVw
ZGF0ZSk7CisgICAgQVNTRVJUKG1fc2hvdWxkU2VuZERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
KTsKKworICAgIG1fc2hvdWxkU2VuZERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlID0gZmFsc2U7
CiAKICAgICBVcGRhdGVJbmZvIHVwZGF0ZUluZm87CiAgICAgTGF5ZXJUcmVlQ29udGV4dCBsYXll
clRyZWVDb250ZXh0OwogCi0gICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkgewotICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2Uoc2l6ZSk7Ci0gICAgICAgIGxheWVyVHJlZUNvbnRl
eHQgPSBtX2xheWVyVHJlZUhvc3QtPmxheWVyVHJlZUNvbnRleHQoKTsKLQotICAgICAgICAvLyBX
ZSBkb24ndCB3YW50IHRoZSBsYXllciB0cmVlIGhvc3QgdG8gbm90aWZ5IGFmdGVyIHRoZSBuZXh0
IHNjaGVkdWxlZAotICAgICAgICAvLyBsYXllciBmbHVzaCBiZWNhdXNlIHRoYXQgbWlnaHQgZW5k
IHVwIHNlbmRpbmcgYW4gRW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZQotICAgICAgICAv
LyBtZXNzYWdlIGJhY2sgdG8gdGhlIFVJIHByb2Nlc3MsIGJ1dCB0aGUgdXBkYXRlZCBsYXllciB0
cmVlIGNvbnRleHQKLSAgICAgICAgLy8gd2lsbCBiZSBzZW50IGJhY2sgaW4gdGhlIERpZFVwZGF0
ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UuCi0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0
U2hvdWxkTm90aWZ5QWZ0ZXJOZXh0U2NoZWR1bGVkTGF5ZXJGbHVzaChmYWxzZSk7Ci0gICAgfSBl
bHNlCi0gICAgICAgIG1fZGlydHlSZWdpb24gPSBtX3dlYlBhZ2UtPmJvdW5kcygpOwotCi0gICAg
aWYgKG1faXNQYWludGluZ1N1c3BlbmRlZCB8fCBtX2xheWVyVHJlZUhvc3QpCi0gICAgICAgIHVw
ZGF0ZUluZm8udmlld1NpemUgPSBtX3dlYlBhZ2UtPnNpemUoKTsKLSAgICBlbHNlIHsKLSAgICAg
ICAgLy8gVGhlIGRpc3BsYXkgaGVyZSBzaG91bGQgbm90IGNhdXNlIGxheW91dCB0byBoYXBwZW4s
IHNvIHdlIGNhbid0IGVudGVyIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1vZGUgaGVyZS4KKyAg
ICBpZiAoIW1faXNQYWludGluZ1N1c3BlbmRlZCAmJiAhbV9sYXllclRyZWVIb3N0KQogICAgICAg
ICBkaXNwbGF5KHVwZGF0ZUluZm8pOwotICAgICAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9zdCk7
CisKKyAgICBpZiAobV9pc1BhaW50aW5nU3VzcGVuZGVkIHx8IG1fbGF5ZXJUcmVlSG9zdCkgewor
ICAgICAgICB1cGRhdGVJbmZvLnZpZXdTaXplID0gbV93ZWJQYWdlLT5zaXplKCk7CisKKyAgICAg
ICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkgeworICAgICAgICAgICAgbGF5ZXJUcmVlQ29udGV4dCA9
IG1fbGF5ZXJUcmVlSG9zdC0+bGF5ZXJUcmVlQ29udGV4dCgpOworCisgICAgICAgICAgICAvLyBX
ZSBkb24ndCB3YW50IHRoZSBsYXllciB0cmVlIGhvc3QgdG8gbm90aWZ5IGFmdGVyIHRoZSBuZXh0
IHNjaGVkdWxlZAorICAgICAgICAgICAgLy8gbGF5ZXIgZmx1c2ggYmVjYXVzZSB0aGF0IG1pZ2h0
IGVuZCB1cCBzZW5kaW5nIGFuIEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUKKyAgICAg
ICAgICAgIC8vIG1lc3NhZ2UgYmFjayB0byB0aGUgVUkgcHJvY2VzcywgYnV0IHRoZSB1cGRhdGVk
IGxheWVyIHRyZWUgY29udGV4dAorICAgICAgICAgICAgLy8gd2lsbCBiZSBzZW50IGJhY2sgaW4g
dGhlIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UuCisgICAgICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNjaGVkdWxlZExheWVyRmx1c2go
ZmFsc2UpOworICAgICAgICB9CiAgICAgfQogCiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpEcmF3aW5nQXJlYVByb3h5OjpEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZShtX2JhY2tpbmdT
dG9yZVN0YXRlSUQsIHVwZGF0ZUluZm8sIGxheWVyVHJlZUNvbnRleHQpKTsKLQotICAgIG1faW5V
cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSA9IGZhbHNlOwogfQogCiB2b2lkIERyYXdpbmdBcmVhSW1w
bDo6ZGlkVXBkYXRlKCkKQEAgLTM0MiwyMiArMzc1LDI1IEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBs
OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogCiAgICAgbV9sYXllclRyZWVIb3N0
LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9sYXllclRyZWVIb3N0ID0gbnVsbHB0cjsKKyAgICBtX2Rp
cnR5UmVnaW9uID0gbV93ZWJQYWdlLT5ib3VuZHMoKTsKIAogICAgIGlmIChtX2luVXBkYXRlQmFj
a2luZ1N0b3JlU3RhdGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChtX3Nob3VsZFNlbmRE
aWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSkgeworICAgICAgICBzZW5kRGlkVXBkYXRlQmFja2lu
Z1N0b3JlU3RhdGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFVwZGF0ZUluZm8g
dXBkYXRlSW5mbzsKICAgICBpZiAobV9pc1BhaW50aW5nU3VzcGVuZGVkKQogICAgICAgICB1cGRh
dGVJbmZvLnZpZXdTaXplID0gbV93ZWJQYWdlLT5zaXplKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAg
IG1fZGlydHlSZWdpb24gPSBtX3dlYlBhZ2UtPmJvdW5kcygpOworICAgIGVsc2UKICAgICAgICAg
ZGlzcGxheSh1cGRhdGVJbmZvKTsKLSAgICB9CiAKICAgICAvLyBTZW5kIGFsb25nIGEgY29tcGxl
dGUgdXBkYXRlIG9mIHRoZSBwYWdlIHNvIHdlIGNhbiBwYWludCB0aGUgY29udGVudHMgcmlnaHQg
YWZ0ZXIgd2UgZXhpdCB0aGUKICAgICAvLyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBtb2RlLCBl
bGltaW5pYXRpbmcgZmxpY2tlci4KLSAgICBpZiAoIW1faW5VcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSkKLSAgICAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpF
eGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobV9iYWNraW5nU3RvcmVTdGF0ZUlELCB1cGRh
dGVJbmZvKSk7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5
OjpFeGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobV9iYWNraW5nU3RvcmVTdGF0ZUlELCB1
cGRhdGVJbmZvKSk7CiB9CiAKIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpleGl0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGVTb29uKCkKQEAgLTM4OSw2ICs0MjUsNyBAQCB2b2lkIERyYXdpbmdBcmVh
SW1wbDo6ZGlzcGxheSgpCiB7CiAgICAgQVNTRVJUKCFtX2xheWVyVHJlZUhvc3QpOwogICAgIEFT
U0VSVCghbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGUpOworICAgIEFTU0VSVCghbV9pblVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlKTsKIAogICAgIGlmIChtX2lzUGFpbnRpbmdTdXNwZW5kZWQpCiAgICAg
ICAgIHJldHVybjsKQEAgLTM5Niw2ICs0MzMsMTEgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OmRp
c3BsYXkoKQogICAgIGlmIChtX2RpcnR5UmVnaW9uLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgaWYgKG1fc2hvdWxkU2VuZERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKSB7Cisg
ICAgICAgIHNlbmREaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgVXBkYXRlSW5mbyB1cGRhdGVJbmZvOwogICAgIGRpc3BsYXkodXBkYXRl
SW5mbyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYUltcGwuaAppbmRleCA3ZTY0Zjk5NGEzNWY2NzMyNGUzZGIzMjVlMGZjY2E5N2ZjNzE1
Y2E4Li44ZDg1MjAwM2E3MjZhYzdjMTRlZTVkNDdjNTZiZmE5MjU4MGQwYWU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCkBA
IC02MCwxMSArNjAsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CiAKICAgICAvLyBDb3JlSVBDIG1lc3NhZ2UgaGFuZGxlcnMuCi0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdT
dG9yZVN0YXRlSUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBzY3JvbGxPZmZzZXQpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVT
dGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBib29sIHJlc3BvbmRJbW1lZGlhdGVs
eSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9s
bE9mZnNldCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZSgpOwogICAgIHZpcnR1YWwgdm9p
ZCBzdXNwZW5kUGFpbnRpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lUGFpbnRpbmcoKTsK
IAorICAgIHZvaWQgc2VuZERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCk7CisKICAgICB2b2lk
IGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
OwogICAgIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlU29vbigpOwogICAgIHZv
aWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CkBAIC04Miw2ICs4NCwxMCBAQCBw
cml2YXRlOgogICAgIC8vIFdoZXRoZXIgd2UncmUgY3VycmVudGx5IHByb2Nlc3NpbmcgYW4gVXBk
YXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZS4KICAgICBib29sIG1faW5VcGRhdGVCYWNraW5n
U3RvcmVTdGF0ZTsKIAorICAgIC8vIFdoZW4gdHJ1ZSwgd2Ugc2hvdWxkIHNlbmQgYW4gVXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZSBpbnN0ZWFkIG9mIGFueSBvdGhlciBtZXNzYWdlcwor
ICAgIC8vIHdlIG5vcm1hbGx5IHNlbmQgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgYm9vbCBtX3No
b3VsZFNlbmREaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZTsKKwogICAgIC8vIFdoZXRoZXIgd2Un
cmUgd2FpdGluZyBmb3IgYSBEaWRVcGRhdGUgbWVzc2FnZS4gVXNlZCBmb3IgdGhyb3R0bGluZyBw
YWludHMgc28gdGhhdCB0aGUgCiAgICAgLy8gd2ViIHByb2Nlc3Mgd29uJ3QgcGFpbnQgbW9yZSBm
cmVxdWVudCB0aGFuIHRoZSBVSSBwcm9jZXNzIGNhbiBoYW5kbGUuCiAgICAgYm9vbCBtX2lzV2Fp
dGluZ0ZvckRpZFVwZGF0ZTsK
</data>
<flag name="review"
          id="76691"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>