<?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>194787</bug_id>
          
          <creation_ts>2019-02-18 13:12:02 -0800</creation_ts>
          <short_desc>Spew: Unhandled web process message &apos;VisitedLinkTableController:VisitedLinkStateChanged&apos;</short_desc>
          <delta_ts>2019-03-20 09:00:04 -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>History</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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>thorton</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1507382</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-02-18 13:12:02 -0800</bug_when>
    <thetext>When navigating in a Debug build I see lot of spew in the Console:

    ERROR: Unhandled web process message &apos;VisitedLinkTableController:VisitedLinkStateChanged&apos;
    Source/WebKit/WebProcess/WebProcess.cpp(740) : virtual void WebKit::WebProcess::didReceiveMessage(IPC::Connection &amp;, IPC::Decoder &amp;)

Steps to Reproduce:
1. Open about:blank
2. Navigate to cnn.com
  =&gt; Spew in console about unhandled message</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507386</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-18 13:14:43 -0800</bug_when>
    <thetext>&lt;rdar://problem/48175520&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507404</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-18 13:39:01 -0800</bug_when>
    <thetext>Likely a PSON regression, I&apos;ll investigate as soon as I have spare cycles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507687</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-19 09:17:37 -0800</bug_when>
    <thetext>The WebProcess does not have a VisitedLinkTableController, likely because it does not have any pages any more. Before PSON, we use to terminate such processes. However, with PSON, we may keep processes without pages alive due to:
- Suspended pages
- WebProcess cache
- Process pre-warming

This basically mean we&apos;re sending VisitedLinkTableController:VisitedLinkStateChanged IPC to WebProcesses who do not care about such notifications. I do not believe this is actually harmful but the error logging is indeed unfortunate.

Currently, WebProcessProxy::shutDown() is in charge of unregistering the process from the visitedLinkStores. I guess we have to do so when the process no longer has any WebPage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517991</commentid>
    <comment_count>4</comment_count>
      <attachid>365086</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-18 16:23:23 -0700</bug_when>
    <thetext>Created attachment 365086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518306</commentid>
    <comment_count>5</comment_count>
      <attachid>365086</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-03-19 09:46:01 -0700</bug_when>
    <thetext>Comment on attachment 365086
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518310</commentid>
    <comment_count>6</comment_count>
      <attachid>365086</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-19 09:48:45 -0700</bug_when>
    <thetext>Comment on attachment 365086
Patch

Clearing flags on attachment: 365086

Committed r243142: &lt;https://trac.webkit.org/changeset/243142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518311</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-19 09:48:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518400</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-19 11:39:06 -0700</bug_when>
    <thetext>Reverted r243142 for reason:

Caused assertion hits in WK2 Debug

Committed r243154: &lt;https://trac.webkit.org/changeset/243154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518434</commentid>
    <comment_count>9</comment_count>
      <attachid>365086</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-19 12:04:56 -0700</bug_when>
    <thetext>Comment on attachment 365086
Patch

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

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:404
&gt; +    auto users = m_visitedLinkStoresWithUsers.ensure(&amp;visitedLinkStore, [] {

this should be auto&amp; XD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518435</commentid>
    <comment_count>10</comment_count>
      <attachid>365201</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-19 12:05:31 -0700</bug_when>
    <thetext>Created attachment 365201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518438</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-19 12:19:28 -0700</bug_when>
    <thetext>Committed r243159: &lt;https://trac.webkit.org/changeset/243159&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518640</commentid>
    <comment_count>12</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-03-19 16:55:14 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/243159/webkit

broke 16 API tests on Debug.

Build:
https://build.webkit.org/builders/Apple%20Mojave%20Debug%20WK2%20%28Tests%29/builds/2006

I was able to reproduce and regress this down to 243159 locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518646</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-19 16:57:56 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #12)
&gt; It looks like the changes in https://trac.webkit.org/changeset/243159/webkit
&gt; 
&gt; broke 16 API tests on Debug.
&gt; 
&gt; Build:
&gt; https://build.webkit.org/builders/Apple%20Mojave%20Debug%20WK2%20%28Tests%29/
&gt; builds/2006
&gt; 
&gt; I was able to reproduce and regress this down to 243159 locally.

I can work on fixing these first thing tomorrow morning. If this is not soon enough, feel free to revert my change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518890</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-20 08:43:50 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #13)
&gt; (In reply to Truitt Savell from comment #12)
&gt; &gt; It looks like the changes in https://trac.webkit.org/changeset/243159/webkit
&gt; &gt; 
&gt; &gt; broke 16 API tests on Debug.
&gt; &gt; 
&gt; &gt; Build:
&gt; &gt; https://build.webkit.org/builders/Apple%20Mojave%20Debug%20WK2%20%28Tests%29/
&gt; &gt; builds/2006
&gt; &gt; 
&gt; &gt; I was able to reproduce and regress this down to 243159 locally.
&gt; 
&gt; I can work on fixing these first thing tomorrow morning. If this is not soon
&gt; enough, feel free to revert my change.

Looking at these now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518895</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-20 09:00:04 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; (In reply to Chris Dumez from comment #13)
&gt; &gt; (In reply to Truitt Savell from comment #12)
&gt; &gt; &gt; It looks like the changes in https://trac.webkit.org/changeset/243159/webkit
&gt; &gt; &gt; 
&gt; &gt; &gt; broke 16 API tests on Debug.
&gt; &gt; &gt; 
&gt; &gt; &gt; Build:
&gt; &gt; &gt; https://build.webkit.org/builders/Apple%20Mojave%20Debug%20WK2%20%28Tests%29/
&gt; &gt; &gt; builds/2006
&gt; &gt; &gt; 
&gt; &gt; &gt; I was able to reproduce and regress this down to 243159 locally.
&gt; &gt; 
&gt; &gt; I can work on fixing these first thing tomorrow morning. If this is not soon
&gt; &gt; enough, feel free to revert my change.
&gt; 
&gt; Looking at these now.

Follow-up fix landed in &lt;https://trac.webkit.org/changeset/243202&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365086</attachid>
            <date>2019-03-18 16:23:23 -0700</date>
            <delta_ts>2019-03-19 12:05:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194787-20190318162322.patch</filename>
            <type>text/plain</type>
            <size>17407</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkYTdmNWM2ZWM1YmVkNjBh
NTY1ZTlmZDMzMDVlMTMzMjUzOWQ2MDMuLjQyZjhkY2YyMWI3MWI1NDE1YmIwOWQ1NTQyYWJiNmY0
MDU5NGNjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMTktMDMtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTcGV3OiBVbmhhbmRsZWQgd2ViIHBy
b2Nlc3MgbWVzc2FnZSAnVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6VmlzaXRlZExpbmtTdGF0
ZUNoYW5nZWQnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTQ3ODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4MTc1NTIwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB1bmhhbmRsZWQgJ1Zpc2l0
ZWRMaW5rVGFibGVDb250cm9sbGVyOlZpc2l0ZWRMaW5rU3RhdGVDaGFuZ2VkJyBtZXNzYWdlIGxv
Z2dpbmcgaGFwcGVucworICAgICAgICB3aGVuIElQQyBpcyBzZW50IHRvIGEgV2ViUHJvY2VzcyB3
aGljaCBkb2VzIG5vdCBoYXZlIGEgVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIgd2l0aCB0aGUK
KyAgICAgICAgZ2l2ZW4gaWRlbnRpZmllci4gVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIgYXJl
IGtlcHQgYWxpdmUgYnkgdGhlIFdlYlBhZ2UgaW4gdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgc2lk
ZSBzbyB0aGlzIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIG5vIFdlYlBhZ2UgdXNpbmcgdGhpcyBW
aXNpdGVkTGlua1RhYmxlQ29udHJvbGxlciBhbnltb3JlLgorCisgICAgICAgIEluIHRoZSBVSVBy
b2Nlc3Mgc2lkZSwgb3VyIHRyYWNraW5nIG9mIHdobyBpcyB1c2luZyB3aGljaCBWaXNpdGVkTGlu
a1N0b3JlIHdhcyB2ZXJ5IHBvb3IuCisgICAgICAgIFdlYlBhZ2VQcm94eSBvYmplY3RzIHdvdWxk
IGFzayB0aGVpciBwcm9jZXNzIHRvIHJlZ2lzdGVyIGl0c2VsZiB3aXRoIHRoZSBwYWdlJ3Mgdmlz
aXRlZExpbmtTdG9yZQorICAgICAgICBhcyBzb29uIGFzIHRoZSBXZWJQYWdlIG9iamVjdCBoYXMg
YmVlbiBjcmVhdGVkIG9uIHRoZSBXZWJQcm9jZXNzIHNpZGUuIFRoaXMgcGFydCB3YXMgZmluZS4K
KyAgICAgICAgSG93ZXZlciwgdW5yZWdpc3RyYXRpb24gZnJvbSB0aGUgdmlzaXRlZExpbmtTdG9y
ZXMgd291bGQgb25seSBoYXBwZW4gd2hlbiBlaXRoZXIgdGhlCisgICAgICAgIHZpc2l0ZWRMaW5r
U3RvcmUgd291bGQgZ2V0IGRlc3Ryb3llZCBvciB3aGVuIHRoZSBXZWJQcm9jZXNzIHdvdWxkIHNo
dXRkb3duLiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAgV2ViUHJvY2VzcyBjb3VsZCBzdGF5IHJl
Z2lzdGVyZWQgd2l0aCBhIHZpc2l0ZWRMaW5rU3RvcmUgZXZlbiBhZnRlciB0aGUgcGFnZSB0aGF0
IHdhcyB1c2luZyBpdAorICAgICAgICBoYXMgYmVlbiBjbG9zZWQsIHdoaWNoIHdvdWxkIGxlYWQg
dG8gc3VjaCBsb2dnaW5nLgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB0aGUgV2Vi
UHJvY2Vzc1Byb3h5IG5vdyBrZWVwcyB0cmFjayBmb3Igd2hpY2ggcGFnZXMgYXJlIHVzaW5nIHdo
aWNoCisgICAgICAgIHZpc2l0ZWRMaW5rU3RvcmUuIFdoZW4gYSB2aXNpdGVkTGlua1N0b3JlIGlz
IHVzZWQgYnkgYSBwYWdlIGZvciB0aGUgZmlyc3QgdGltZSwgdGhlCisgICAgICAgIFdlYlByb2Nl
c3NQcm94eSB3aWxsIHJlZ2lzdGVyIGl0c2VsZiB3aXRoIHRoZSB2aXNpdGVkTGlua1N0b3JlLiBT
aW1pbGFybHksIHdoZW4gdGhlIGxhc3QgcGFnZQorICAgICAgICB1c2luZyBhIGdpdmVuIHZpc2l0
ZWRMaW5rU3RvcmUgaXMgY2xvc2VkLCB0aGUgcHJvY2VzcyB1bnJlZ2lzdGVycyBpdHNlbGYgZnJv
bSB0aGUKKyAgICAgICAgdmlzaXRlZExpbmtTdG9yZSwgdGh1cyBhdm9pZGluZyB0aGUgYnVnLgor
CisgICAgICAgIEkgYWxzbyBzaW1wbGlmaWVkIGEgbG90IHRoZSBsb2dpYyBmb3IgaGF2aW5nIGEg
cGFnZSB0ZWxsaW5nIHRoZSBXZWJQcm9jZXNzUHJveHkgaXQgc3RhcnRlZAorICAgICAgICB1c2lu
ZyBhIHZpc2l0ZWRMaW5rU3RvcmUuIFByZXZpb3VzbHksIGl0IHdvdWxkIGhhdmUgdG8gd2FpdCB1
bnRpbCB0aGUgcHJvY2VzcyBpcyBkb25lIGxhdW5jaGluZworICAgICAgICBiZWZvcmUgbm90aWZ5
aW5nIHRoZSBXZWJQcm9jZXNzUHJveHkuIE5vdywgdGhlIFdlYlBhZ2VQcm94eSBtZXJlbHkgdGVs
bHMgdGhlIFdlYlByb2Nlc3NQcm94eQorICAgICAgICB0aGF0IGl0IGlzIHN0YXJ0aW5nIHRvIHVz
ZSBhIHZpc2l0ZWRMaW5rU3RvcmUgYXMgc29vbiBhcyBpdCBzZW50IHRoZSBDcmVhdGVXZWJQYWdl
IElQQyB0byB0aGUKKyAgICAgICAgV2ViUHJvY2VzcyAobm8gbWF0dGVyIGlmIHRoZSBwcm9jZXNz
IGlzIHN0aWxsIGxhdW5jaGluZyBvciBub3QpLiBBdCB0aGlzIHBvaW50LCB0aGUKKyAgICAgICAg
V2ViUHJvY2Vzc1Byb3h5IHJlZ2lzdGVycyB0aGUgcGFnZSBhcyBhIHVzZXIgb2YgdGhlIHZpc2l0
ZWRMaW5rU3RvcmUgYW5kIHRha2VzIGNhcmUgb2Ygd2FpdGluZworICAgICAgICB1bnRpbCBpdCBp
cyBkb25lIGxhdW5jaGluZyBiZWZvcmUgcmVnaXN0ZXJpbmcgaXRzZWxmIHdpdGggdGhlIHZpc2l0
ZWRMaW5rU3RvcmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6flByb3Zpc2lvbmFs
UGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmluaXRp
YWxpemVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OnBy
b2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZmluaXNoSW5pdGlhbGl6aW5nV2ViUGFnZUFmdGVyUHJvY2Vzc0xh
dW5jaCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpWaXNpdGVkTGlua1N0b3JlOjp+VmlzaXRlZExpbmtTdG9yZSk6CisgICAgICAgIChX
ZWJLaXQ6OlZpc2l0ZWRMaW5rU3RvcmU6OmFkZFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZpbmlz
aEF0dGFjaGluZ1RvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
aW5pdGlhbGl6ZVdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0
U3RhdGVBZnRlclByb2Nlc3NFeGl0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVuY2gpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcp
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
cmVtb3ZlV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YWRkVmlz
aXRlZExpbmtTdG9yZVVzZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnJl
bW92ZVZpc2l0ZWRMaW5rU3RvcmVVc2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjphZGRXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjphZGRWaXNpdGVkTGlua1N0b3JlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95VmlzaXRlZExpbmtTdG9yZSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorCiAyMDE5LTAz
LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRGVsYXkgV2Vi
UHJvY2VzcyBsYXVuY2ggdW50aWwgYSBsb2FkIGlzIHRyaWdnZXJlZCBpbiBhIFdlYiB2aWV3CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5k
ZXggMDlhMjhiMGE2N2MzNTBkMmJjY2YxZDFlNjhjZTBiMzJjNjUxMzliNi4uYmJmZjY4YjA4YTRi
NGQxOWU3ZjI1NzJiNDRkZDMwMTBlYmVhYjQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtOTksNiArOTksNyBAQCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6flByb3Zpc2lvbmFsUGFnZVByb3h5KCkKIAogICAgIG1fcHJvY2Vzcy0+
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkNsb3NlKCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5y
ZW1vdmVWaXNpdGVkTGlua1N0b3JlVXNlcihtX3BhZ2UudmlzaXRlZExpbmtTdG9yZSgpLCBtX3Bh
Z2UucGFnZUlEKCkpOwogCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm9jZXNzID0g
bV9wcm9jZXNzLmNvcHlSZWYoKV0gewogICAgICAgICBwcm9jZXNzLT5tYXliZVNodXREb3duKCk7
CkBAIC0xMzYsMjEgKzEzNyw2IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNhbmNlbCgp
CiAgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fbWFpbkZyYW1lLT5mcmFtZUlE
KCksIHsgfSwgbV9uYXZpZ2F0aW9uSUQsIG1fcHJvdmlzaW9uYWxMb2FkVVJMLCBlcnJvciwgVXNl
ckRhdGEgeyB9KTsgLy8gV2lsbCBkZWxldGUgfHRoaXN8LgogfQogCi12b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5Ojpwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKCkKLXsKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgInByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmc6
IHBhZ2VJRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpKTsKLSAgICBmaW5pc2hJbml0aWFs
aXppbmdXZWJQYWdlQWZ0ZXJQcm9jZXNzTGF1bmNoKCk7Ci19Ci0KLXZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVuY2goKQot
ewotICAgIEFTU0VSVChtX3Byb2Nlc3MtPnN0YXRlKCkgPT0gV2ViUHJvY2Vzc1Byb3h5OjpTdGF0
ZTo6UnVubmluZyk7Ci0KLSAgICAvLyBGSVhNRTogVGhlIFdlYlBhZ2VQcm94eSBkZWxheXMgYWRk
aW5nIHRoZSB2aXNpdGVkIGxpbmsgc3RvcmUgdW50aWwgYWZ0ZXIgdGhlIHByb2Nlc3MgaGFzIGxh
dW5jaGVkCi0gICAgLy8gc28gdGhlIFByb3Zpc2lvbmFsUGFnZVByb3h5IGRvZXMgdGhlIHNhbWUu
IEhvd2V2ZXIsIGRvIHdlIHJlYWxseSBuZWVkIHRvPwotICAgIG1fcHJvY2Vzcy0+YWRkVmlzaXRl
ZExpbmtTdG9yZShtX3BhZ2UudmlzaXRlZExpbmtTdG9yZSgpKTsKLX0KLQogdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBhZ2UoKQogewogICAgIG1fZHJhd2luZ0FyZWEg
PSBtX3BhZ2UucGFnZUNsaWVudCgpLmNyZWF0ZURyYXdpbmdBcmVhUHJveHkobV9wcm9jZXNzKTsK
QEAgLTE1OCw5ICsxNDQsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojppbml0aWFsaXpl
V2ViUGFnZSgpCiAgICAgYXV0byBwYXJhbWV0ZXJzID0gbV9wYWdlLmNyZWF0aW9uUGFyYW1ldGVy
cyhtX3Byb2Nlc3MsICptX2RyYXdpbmdBcmVhKTsKICAgICBwYXJhbWV0ZXJzLmlzUHJvY2Vzc1N3
YXAgPSB0cnVlOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6Q3Jl
YXRlV2ViUGFnZShtX3BhZ2UucGFnZUlEKCksIHBhcmFtZXRlcnMpLCAwKTsKLQotICAgIGlmICht
X3Byb2Nlc3MtPnN0YXRlKCkgPT0gV2ViUHJvY2Vzc1Byb3h5OjpTdGF0ZTo6UnVubmluZykKLSAg
ICAgICAgZmluaXNoSW5pdGlhbGl6aW5nV2ViUGFnZUFmdGVyUHJvY2Vzc0xhdW5jaCgpOworICAg
IG1fcHJvY2Vzcy0+YWRkVmlzaXRlZExpbmtTdG9yZVVzZXIobV9wYWdlLnZpc2l0ZWRMaW5rU3Rv
cmUoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
bG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2Rp
bmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBPcHRpb25h
bDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IDE2YmQ1Y2Q1ODUxM2Fm
YWU5YjAwMmQ2OTI4MjczMjBhNjY3NzQ5ODIuLjFjZTk3ODBiZmYwMzA2MjBlMDk0MGVjZmFlYmFh
MTQwZTMyZmNhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuaApAQCAtNzksNyArNzksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBnb1RvQmFja0Zv
cndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mLCBPcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmKTsKICAgICB2b2lkIGNhbmNlbCgpOwogCi0gICAg
dm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKCk7CiAgICAgdm9pZCBwcm9jZXNzRGlkVGVy
bWluYXRlKCk7CiAgICAgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJik7
CiAKQEAgLTExNSw3ICsxMTQsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGluaXRp
YWxpemVXZWJQYWdlKCk7Ci0gICAgdm9pZCBmaW5pc2hJbml0aWFsaXppbmdXZWJQYWdlQWZ0ZXJQ
cm9jZXNzTGF1bmNoKCk7CiAKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKICAgICBSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9WaXNpdGVkTGlua1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rU3RvcmUuY3BwCmluZGV4IDI5YmY5NDRiNmZjYjRmYTNiYmJhNjlhMDNmMzBmYTcyOTAz
NjgzNDguLmZhYzNjZGRkNmM2ZmMyOTA2OGU1YjE0ZjlmNDdjOWUxMTEyZTY2ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCkBAIC00MiwxMCArNDIs
NyBAQCBSZWY8VmlzaXRlZExpbmtTdG9yZT4gVmlzaXRlZExpbmtTdG9yZTo6Y3JlYXRlKCkKIAog
VmlzaXRlZExpbmtTdG9yZTo6flZpc2l0ZWRMaW5rU3RvcmUoKQogewotICAgIGZvciAoV2ViUHJv
Y2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9wcm9jZXNzZXMpIHsKLSAgICAgICAgcHJvY2Vzcy0+cmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpWaXNpdGVkTGlua1N0b3JlOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIoKSk7Ci0gICAgICAgIHByb2Nlc3MtPmRpZERlc3Ryb3lW
aXNpdGVkTGlua1N0b3JlKCp0aGlzKTsKLSAgICB9CisgICAgUkVMRUFTRV9BU1NFUlQobV9wcm9j
ZXNzZXMuaXNFbXB0eSgpKTsKIH0KIAogVmlzaXRlZExpbmtTdG9yZTo6VmlzaXRlZExpbmtTdG9y
ZSgpCkBAIC01Niw2ICs1Myw3IEBAIFZpc2l0ZWRMaW5rU3RvcmU6OlZpc2l0ZWRMaW5rU3RvcmUo
KQogdm9pZCBWaXNpdGVkTGlua1N0b3JlOjphZGRQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJv
Y2VzcykKIHsKICAgICBBU1NFUlQocHJvY2Vzcy5zdGF0ZSgpID09IFdlYlByb2Nlc3NQcm94eTo6
U3RhdGU6OlJ1bm5pbmcpOworICAgIEFTU0VSVCghbV9wcm9jZXNzZXMuY29udGFpbnMoJnByb2Nl
c3MpKTsKIAogICAgIGlmICghbV9wcm9jZXNzZXMuYWRkKCZwcm9jZXNzKS5pc05ld0VudHJ5KQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBmOTNmOWY1YTY1ZjE2ODVkYWNkZmE1ZjZmYTVlZTc2MGM1MmFlMDViLi5hYzNiNzJmN2Vm
N2IyYzAxN2RiMTg0YjU1MmI4YmYyMWZhNTEzZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgxOSw3ICs4MTksNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9jZXNzKElzUHJvY2Vzc1N3YXAgaXNQcm9jZXNzU3dhcCkK
ICAgICAgICAgLy8gd2hlbiB0aGUgcHJvY2VzcyB3YXMgcHJvdmlzaW9uYWwuCiAgICAgICAgIGlm
IChpc1Byb2Nlc3NTd2FwICE9IElzUHJvY2Vzc1N3YXA6OlllcykKICAgICAgICAgICAgIG1fd2Vi
UHJvY2Vzc0xpZmV0aW1lVHJhY2tlci53ZWJQYWdlRW50ZXJpbmdXZWJQcm9jZXNzKG1fcHJvY2Vz
cyk7Ci0gICAgICAgIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcoKTsKICAgICB9CiAKICAgICB1
cGRhdGVBY3Rpdml0eVN0YXRlKCk7CkBAIC05NTgsMTkgKzk1Nyw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojppbml0aWFsaXplV2ViUGFnZSgpCiAKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzczo6Q3JlYXRlV2ViUGFnZShtX3BhZ2VJRCwgY3JlYXRpb25QYXJhbWV0ZXJzKG1f
cHJvY2VzcywgKm1fZHJhd2luZ0FyZWEpKSwgMCk7CiAKLSAgICBtX25lZWRzVG9GaW5pc2hJbml0
aWFsaXppbmdXZWJQYWdlQWZ0ZXJQcm9jZXNzTGF1bmNoID0gdHJ1ZTsKLSAgICBmaW5pc2hJbml0
aWFsaXppbmdXZWJQYWdlQWZ0ZXJQcm9jZXNzTGF1bmNoKCk7Ci19Ci0KLXZvaWQgV2ViUGFnZVBy
b3h5OjpmaW5pc2hJbml0aWFsaXppbmdXZWJQYWdlQWZ0ZXJQcm9jZXNzTGF1bmNoKCkKLXsKLSAg
ICBpZiAoIW1fbmVlZHNUb0ZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVu
Y2gpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobV9wcm9jZXNzLT5zdGF0ZSgpICE9IFdlYlBy
b2Nlc3NQcm94eTo6U3RhdGU6OlJ1bm5pbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fbmVl
ZHNUb0ZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVuY2ggPSBmYWxzZTsK
LSAgICBtX3Byb2Nlc3MtPmFkZFZpc2l0ZWRMaW5rU3RvcmUobV92aXNpdGVkTGlua1N0b3JlKTsK
KyAgICBtX3Byb2Nlc3MtPmFkZFZpc2l0ZWRMaW5rU3RvcmVVc2VyKHZpc2l0ZWRMaW5rU3RvcmUo
KSwgbV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKQpAQCAtNTExMywx
MiArNTEwMCw2IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3ZWJQcm9jZXNzV2lsbFNodXREb3duKCkK
ICAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIud2ViUGFnZUxlYXZpbmdXZWJQcm9jZXNz
KG1fcHJvY2Vzcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkRmluaXNoTGF1
bmNoaW5nKCkKLXsKLSAgICBBU1NFUlQobV9wcm9jZXNzLT5zdGF0ZSgpID09IFdlYlByb2Nlc3NQ
cm94eTo6U3RhdGU6OlJ1bm5pbmcpOwotICAgIGZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRl
clByb2Nlc3NMYXVuY2goKTsKLX0KLQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQog
dm9pZCBXZWJQYWdlUHJveHk6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCh1aW50MzJf
dCBvcGFxdWVQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGx1Z2luc3Bh
Z2VBdHRyaWJ1dGVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcGFnZVVSTFN0cmluZykKIHsKQEAgLTY5MjQsOCArNjkwNSw2IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpyZXNldFN0YXRlQWZ0ZXJQcm9jZXNzRXhpdGVkKFByb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbiB0ZXJtaW5hCiAgICAgbV9oYXNSdW5uaW5nUHJvY2VzcyA9IGZhbHNlOwogICAgIG1f
aXNQYWdlU3VzcGVuZGVkID0gZmFsc2U7CiAKLSAgICBtX25lZWRzVG9GaW5pc2hJbml0aWFsaXpp
bmdXZWJQYWdlQWZ0ZXJQcm9jZXNzTGF1bmNoID0gZmFsc2U7Ci0KICAgICBtX2VkaXRvclN0YXRl
ID0gRWRpdG9yU3RhdGUoKTsKICAgICBtX2NhY2hlZEZvbnRBdHRyaWJ1dGVzQXRTZWxlY3Rpb25T
dGFydC5yZXNldCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDY4NWY0MDQ3MGI1YTUyYzJhYzUzZWRkNTdlZGE2YTQ5MzI2ZTU0MjguLjYwNTM2Nzk1MDE5Y2I0
OWU5NmIyY2M5Y2Q4M2YyMjhmZTIzMWMyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xMjMzLDggKzEyMzMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25uZWN0
aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJik7CiAgICAgdm9pZCB3ZWJQcm9jZXNzV2lsbFNo
dXREb3duKCk7CiAKLSAgICB2b2lkIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcoKTsKLQogICAg
IHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCk7CiAgICAgICAgIAogICAgIHZvaWQgc2V0U2Nyb2xs
UGlubmluZ0JlaGF2aW9yKFdlYkNvcmU6OlNjcm9sbFBpbm5pbmdCZWhhdmlvcik7CkBAIC0xOTc0
LDggKzE5NzIsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRSZXNpZ25JbnB1dEVsZW1lbnRT
dHJvbmdQYXNzd29yZEFwcGVhcmFuY2UoY29uc3QgVXNlckRhdGEmKTsKIAotICAgIHZvaWQgZmlu
aXNoSW5pdGlhbGl6aW5nV2ViUGFnZUFmdGVyUHJvY2Vzc0xhdW5jaCgpOwotCiAgICAgdm9pZCBo
YW5kbGVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUs
IGNvbnN0IFVzZXJEYXRhJiBtZXNzYWdlQm9keSk7CiAgICAgdm9pZCBoYW5kbGVTeW5jaHJvbm91
c01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29u
c3QgVXNlckRhdGEmIG1lc3NhZ2VCb2R5LCBVc2VyRGF0YSYgcmV0dXJuVXNlckRhdGEpOwogCkBA
IC0yMjI1LDggKzIyMjEsNiBAQCBwcml2YXRlOgogICAgIC8vIFdoZXRoZXIgaXQgY2FuIHJ1biBt
b2RhbCBjaGlsZCB3ZWIgcGFnZXMuCiAgICAgYm9vbCBtX2NhblJ1bk1vZGFsIHsgZmFsc2UgfTsK
IAotICAgIGJvb2wgbV9uZWVkc1RvRmluaXNoSW5pdGlhbGl6aW5nV2ViUGFnZUFmdGVyUHJvY2Vz
c0xhdW5jaCB7IGZhbHNlIH07Ci0KICAgICBib29sIG1faXNJblByaW50aW5nTW9kZSB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uIHsgZmFsc2UgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNDZl
ODMxNjI3NjY2NDFlZjFiMTUzZDNkYWJlMWY1ZjAwMmFlMDU1OC4uOWEzNzM5NWFlNjBmNDdhOTk5
MjI5NGZiOTJlOWYzODMzYjllYzhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCkBAIC0yOTgsOSArMjk4LDkgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6
OnNodXREb3duKCkKICAgICAgICAgZnJhbWUtPndlYlByb2Nlc3NXaWxsU2h1dERvd24oKTsKICAg
ICBtX2ZyYW1lTWFwLmNsZWFyKCk7CiAKLSAgICBmb3IgKGF1dG8qIHZpc2l0ZWRMaW5rU3RvcmUg
OiBtX3Zpc2l0ZWRMaW5rU3RvcmVzKQorICAgIGZvciAoYXV0byogdmlzaXRlZExpbmtTdG9yZSA6
IG1fdmlzaXRlZExpbmtTdG9yZXNXaXRoVXNlcnMua2V5cygpKQogICAgICAgICB2aXNpdGVkTGlu
a1N0b3JlLT5yZW1vdmVQcm9jZXNzKCp0aGlzKTsKLSAgICBtX3Zpc2l0ZWRMaW5rU3RvcmVzLmNs
ZWFyKCk7CisgICAgbV92aXNpdGVkTGlua1N0b3Jlc1dpdGhVc2Vycy5jbGVhcigpOwogCiAgICAg
Zm9yIChhdXRvKiB3ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSA6IG1fd2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveGllcykKICAgICAgICAgd2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHktPnJlbW92ZVByb2Nlc3MoKnRoaXMpOwpAQCAtMzkyLDI3ICszOTIsNDQgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnJlbW92ZVdlYlBhZ2UoV2ViUGFnZVByb3h5JiB3ZWJQYWdlLCBFbmRzVXNp
bmdEYXRhU3RvcmUgZW4KICAgICBpZiAoZW5kc1VzaW5nRGF0YVN0b3JlID09IEVuZHNVc2luZ0Rh
dGFTdG9yZTo6WWVzKQogICAgICAgICBtX3Byb2Nlc3NQb29sLT5wYWdlRW5kVXNpbmdXZWJzaXRl
RGF0YVN0b3JlKHdlYlBhZ2UucGFnZUlEKCksIHdlYlBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpKTsK
IAorICAgIHJlbW92ZVZpc2l0ZWRMaW5rU3RvcmVVc2VyKHdlYlBhZ2UudmlzaXRlZExpbmtTdG9y
ZSgpLCB3ZWJQYWdlLnBhZ2VJRCgpKTsKKwogICAgIHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZl
bmVzc1RpbWVyKCk7CiAKICAgICBtYXliZVNodXREb3duKCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjphZGRWaXNpdGVkTGlua1N0b3JlKFZpc2l0ZWRMaW5rU3RvcmUmIHN0b3JlKQordm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmFkZFZpc2l0ZWRMaW5rU3RvcmVVc2VyKFZpc2l0ZWRMaW5rU3Rv
cmUmIHZpc2l0ZWRMaW5rU3RvcmUsIHVpbnQ2NF90IHBhZ2VJRCkKIHsKLSAgICBtX3Zpc2l0ZWRM
aW5rU3RvcmVzLmFkZCgmc3RvcmUpOwotICAgIHN0b3JlLmFkZFByb2Nlc3MoKnRoaXMpOworICAg
IGF1dG8gdXNlcnMgPSBtX3Zpc2l0ZWRMaW5rU3RvcmVzV2l0aFVzZXJzLmVuc3VyZSgmdmlzaXRl
ZExpbmtTdG9yZSwgW10geworICAgICAgICByZXR1cm4gSGFzaFNldDx1aW50NjRfdD4geyB9Owor
ICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKKworICAgIEFTU0VSVCghdXNlcnMuY29udGFpbnMocGFn
ZUlEKSk7CisgICAgdXNlcnMuYWRkKHBhZ2VJRCk7CisKKyAgICBpZiAodXNlcnMuc2l6ZSgpID09
IDEgJiYgc3RhdGUoKSA9PSBTdGF0ZTo6UnVubmluZykKKyAgICAgICAgdmlzaXRlZExpbmtTdG9y
ZS5hZGRQcm9jZXNzKCp0aGlzKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5KFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5JiBw
cm94eSwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3ZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpyZW1vdmVWaXNpdGVkTGlua1N0b3JlVXNlcihWaXNpdGVkTGlua1N0b3JlJiB2
aXNpdGVkTGlua1N0b3JlLCB1aW50NjRfdCBwYWdlSUQpCiB7Ci0gICAgbV93ZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94aWVzLmFkZCgmcHJveHkpOwotICAgIHByb3h5LmFkZFByb2Nlc3MoKnRo
aXMsIHBhcmFtZXRlcnMpOworICAgIGF1dG8gaXQgPSBtX3Zpc2l0ZWRMaW5rU3RvcmVzV2l0aFVz
ZXJzLmZpbmQoJnZpc2l0ZWRMaW5rU3RvcmUpOworICAgIGlmIChpdCA9PSBtX3Zpc2l0ZWRMaW5r
U3RvcmVzV2l0aFVzZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiB1c2Vy
cyA9IGl0LT52YWx1ZTsKKyAgICB1c2Vycy5yZW1vdmUocGFnZUlEKTsKKyAgICBpZiAodXNlcnMu
aXNFbXB0eSgpKSB7CisgICAgICAgIG1fdmlzaXRlZExpbmtTdG9yZXNXaXRoVXNlcnMucmVtb3Zl
KGl0KTsKKyAgICAgICAgdmlzaXRlZExpbmtTdG9yZS5yZW1vdmVQcm9jZXNzKCp0aGlzKTsKKyAg
ICB9CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95VmlzaXRlZExpbmtTdG9y
ZShWaXNpdGVkTGlua1N0b3JlJiBzdG9yZSkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjphZGRXZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eShXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSYg
cHJveHksIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgQVNT
RVJUKG1fdmlzaXRlZExpbmtTdG9yZXMuY29udGFpbnMoJnN0b3JlKSk7Ci0gICAgbV92aXNpdGVk
TGlua1N0b3Jlcy5yZW1vdmUoJnN0b3JlKTsKKyAgICBtX3dlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3hpZXMuYWRkKCZwcm94eSk7CisgICAgcHJveHkuYWRkUHJvY2VzcygqdGhpcywgcGFyYW1l
dGVycyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95V2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkoV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkmIHByb3h5KQpA
QCAtNzM5LDIyICs3NTYsMTQgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5j
aGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3QKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGZvciAoV2ViUGFnZVByb3h5KiBwYWdlIDogbV9wYWdlTWFwLnZh
bHVlcygpKSB7Ci0gICAgICAgIEFTU0VSVCh0aGlzID09ICZwYWdlLT5wcm9jZXNzKCkpOwotICAg
ICAgICBwYWdlLT5wcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKCk7Ci0gICAgfQotCi0gICAgZm9y
IChhdXRvKiBwcm92aXNpb25hbFBhZ2UgOiBtX3Byb3Zpc2lvbmFsUGFnZXMpIHsKLSAgICAgICAg
QVNTRVJUKHRoaXMgPT0gJnByb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpKTsKLSAgICAgICAgcHJv
dmlzaW9uYWxQYWdlLT5wcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKCk7Ci0gICAgfQotCi0KICAg
ICBSRUxFQVNFX0FTU0VSVCghbV93ZWJDb25uZWN0aW9uKTsKICAgICBtX3dlYkNvbm5lY3Rpb24g
PSBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUodGhpcyk7CiAKICAgICBtX3Byb2Nl
c3NQb29sLT5wcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKHRoaXMpOwogCisgICAgZm9yIChhdXRv
KiB2aXNpdGVkTGlua1N0b3JlIDogbV92aXNpdGVkTGlua1N0b3Jlc1dpdGhVc2Vycy5rZXlzKCkp
CisgICAgICAgIHZpc2l0ZWRMaW5rU3RvcmUtPmFkZFByb2Nlc3MoKnRoaXMpOworCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoY29ubmVjdGlvbigpKSB7CiAgICAgICAgIGlmICh4
cGNfY29ubmVjdGlvbl90IHhwY0Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uKCktPnhwY0Nvbm5lY3Rp
b24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggZmY2
YTllY2U1YWY5NDUzOGI3YjdiZDhlMTIyNzk4ODk0NmJmOWIzOS4uMjc2NDkwZGUzNmM5ZDhiYWFl
OWI2ZDFlNzg4NGEzZGU0NDljNjk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKQEAgLTE0Niw5ICsxNDYsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0g
ICAgdm9pZCBhZGRWaXNpdGVkTGlua1N0b3JlKFZpc2l0ZWRMaW5rU3RvcmUmKTsKKyAgICB2b2lk
IGRpZENyZWF0ZVdlYlBhZ2VJblByb2Nlc3ModWludDY0X3QgcGFnZUlEKTsKKworICAgIHZvaWQg
YWRkVmlzaXRlZExpbmtTdG9yZVVzZXIoVmlzaXRlZExpbmtTdG9yZSYsIHVpbnQ2NF90IHBhZ2VJ
RCk7CisgICAgdm9pZCByZW1vdmVWaXNpdGVkTGlua1N0b3JlVXNlcihWaXNpdGVkTGlua1N0b3Jl
JiwgdWludDY0X3QgcGFnZUlEKTsKKwogICAgIHZvaWQgYWRkV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHkoV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkmLCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzJik7Ci0gICAgdm9pZCBkaWREZXN0cm95VmlzaXRlZExpbmtTdG9yZShWaXNpdGVk
TGlua1N0b3JlJik7CiAgICAgdm9pZCBkaWREZXN0cm95V2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkoV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkmKTsKIAogICAgIFJlZlB0cjxBUEk6
OlVzZXJJbml0aWF0ZWRBY3Rpb24+IHVzZXJJbml0aWF0ZWRBY3Rpdml0eSh1aW50NjRfdCk7CkBA
IC00MjgsNyArNDMxLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFByb3Zpc2lvbmFsUGFnZVBy
b3h5Kj4gbV9wcm92aXNpb25hbFBhZ2VzOwogICAgIFVzZXJJbml0aWF0ZWRBY3Rpb25NYXAgbV91
c2VySW5pdGlhdGVkQWN0aW9uTWFwOwogCi0gICAgSGFzaFNldDxWaXNpdGVkTGlua1N0b3JlKj4g
bV92aXNpdGVkTGlua1N0b3JlczsKKyAgICBIYXNoTWFwPFZpc2l0ZWRMaW5rU3RvcmUqLCBIYXNo
U2V0PHVpbnQ2NF90LyogcGFnZUlEICovPj4gbV92aXNpdGVkTGlua1N0b3Jlc1dpdGhVc2VyczsK
ICAgICBIYXNoU2V0PFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Kj4gbV93ZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94aWVzOwogCiAgICAgaW50IG1fbnVtYmVyT2ZUaW1lc1N1ZGRlblRl
cm1pbmF0aW9uV2FzRGlzYWJsZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365201</attachid>
            <date>2019-03-19 12:05:31 -0700</date>
            <delta_ts>2019-03-19 12:19:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194787-20190319120530.patch</filename>
            <type>text/plain</type>
            <size>17377</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMxMjk3MTI2OWRkMzUxYzAx
MGE1M2M1MWZmN2YwY2NjMzkwYWI4MzUuLjAxY2FmMjNjNjYxZDUzYWJlM2JkNmYxM2Q0ODg4Mjk2
ZmQ1MWI0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMTktMDMtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTcGV3OiBVbmhhbmRsZWQgd2ViIHBy
b2Nlc3MgbWVzc2FnZSAnVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6VmlzaXRlZExpbmtTdGF0
ZUNoYW5nZWQnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTQ3ODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4MTc1NTIwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB1bmhhbmRsZWQgJ1Zpc2l0
ZWRMaW5rVGFibGVDb250cm9sbGVyOlZpc2l0ZWRMaW5rU3RhdGVDaGFuZ2VkJyBtZXNzYWdlIGxv
Z2dpbmcgaGFwcGVucworICAgICAgICB3aGVuIElQQyBpcyBzZW50IHRvIGEgV2ViUHJvY2VzcyB3
aGljaCBkb2VzIG5vdCBoYXZlIGEgVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIgd2l0aCB0aGUK
KyAgICAgICAgZ2l2ZW4gaWRlbnRpZmllci4gVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIgYXJl
IGtlcHQgYWxpdmUgYnkgdGhlIFdlYlBhZ2UgaW4gdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgc2lk
ZSBzbyB0aGlzIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIG5vIFdlYlBhZ2UgdXNpbmcgdGhpcyBW
aXNpdGVkTGlua1RhYmxlQ29udHJvbGxlciBhbnltb3JlLgorCisgICAgICAgIEluIHRoZSBVSVBy
b2Nlc3Mgc2lkZSwgb3VyIHRyYWNraW5nIG9mIHdobyBpcyB1c2luZyB3aGljaCBWaXNpdGVkTGlu
a1N0b3JlIHdhcyB2ZXJ5IHBvb3IuCisgICAgICAgIFdlYlBhZ2VQcm94eSBvYmplY3RzIHdvdWxk
IGFzayB0aGVpciBwcm9jZXNzIHRvIHJlZ2lzdGVyIGl0c2VsZiB3aXRoIHRoZSBwYWdlJ3Mgdmlz
aXRlZExpbmtTdG9yZQorICAgICAgICBhcyBzb29uIGFzIHRoZSBXZWJQYWdlIG9iamVjdCBoYXMg
YmVlbiBjcmVhdGVkIG9uIHRoZSBXZWJQcm9jZXNzIHNpZGUuIFRoaXMgcGFydCB3YXMgZmluZS4K
KyAgICAgICAgSG93ZXZlciwgdW5yZWdpc3RyYXRpb24gZnJvbSB0aGUgdmlzaXRlZExpbmtTdG9y
ZXMgd291bGQgb25seSBoYXBwZW4gd2hlbiBlaXRoZXIgdGhlCisgICAgICAgIHZpc2l0ZWRMaW5r
U3RvcmUgd291bGQgZ2V0IGRlc3Ryb3llZCBvciB3aGVuIHRoZSBXZWJQcm9jZXNzIHdvdWxkIHNo
dXRkb3duLiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAgV2ViUHJvY2VzcyBjb3VsZCBzdGF5IHJl
Z2lzdGVyZWQgd2l0aCBhIHZpc2l0ZWRMaW5rU3RvcmUgZXZlbiBhZnRlciB0aGUgcGFnZSB0aGF0
IHdhcyB1c2luZyBpdAorICAgICAgICBoYXMgYmVlbiBjbG9zZWQsIHdoaWNoIHdvdWxkIGxlYWQg
dG8gc3VjaCBsb2dnaW5nLgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB0aGUgV2Vi
UHJvY2Vzc1Byb3h5IG5vdyBrZWVwcyB0cmFjayBmb3Igd2hpY2ggcGFnZXMgYXJlIHVzaW5nIHdo
aWNoCisgICAgICAgIHZpc2l0ZWRMaW5rU3RvcmUuIFdoZW4gYSB2aXNpdGVkTGlua1N0b3JlIGlz
IHVzZWQgYnkgYSBwYWdlIGZvciB0aGUgZmlyc3QgdGltZSwgdGhlCisgICAgICAgIFdlYlByb2Nl
c3NQcm94eSB3aWxsIHJlZ2lzdGVyIGl0c2VsZiB3aXRoIHRoZSB2aXNpdGVkTGlua1N0b3JlLiBT
aW1pbGFybHksIHdoZW4gdGhlIGxhc3QgcGFnZQorICAgICAgICB1c2luZyBhIGdpdmVuIHZpc2l0
ZWRMaW5rU3RvcmUgaXMgY2xvc2VkLCB0aGUgcHJvY2VzcyB1bnJlZ2lzdGVycyBpdHNlbGYgZnJv
bSB0aGUKKyAgICAgICAgdmlzaXRlZExpbmtTdG9yZSwgdGh1cyBhdm9pZGluZyB0aGUgYnVnLgor
CisgICAgICAgIEkgYWxzbyBzaW1wbGlmaWVkIGEgbG90IHRoZSBsb2dpYyBmb3IgaGF2aW5nIGEg
cGFnZSB0ZWxsaW5nIHRoZSBXZWJQcm9jZXNzUHJveHkgaXQgc3RhcnRlZAorICAgICAgICB1c2lu
ZyBhIHZpc2l0ZWRMaW5rU3RvcmUuIFByZXZpb3VzbHksIGl0IHdvdWxkIGhhdmUgdG8gd2FpdCB1
bnRpbCB0aGUgcHJvY2VzcyBpcyBkb25lIGxhdW5jaGluZworICAgICAgICBiZWZvcmUgbm90aWZ5
aW5nIHRoZSBXZWJQcm9jZXNzUHJveHkuIE5vdywgdGhlIFdlYlBhZ2VQcm94eSBtZXJlbHkgdGVs
bHMgdGhlIFdlYlByb2Nlc3NQcm94eQorICAgICAgICB0aGF0IGl0IGlzIHN0YXJ0aW5nIHRvIHVz
ZSBhIHZpc2l0ZWRMaW5rU3RvcmUgYXMgc29vbiBhcyBpdCBzZW50IHRoZSBDcmVhdGVXZWJQYWdl
IElQQyB0byB0aGUKKyAgICAgICAgV2ViUHJvY2VzcyAobm8gbWF0dGVyIGlmIHRoZSBwcm9jZXNz
IGlzIHN0aWxsIGxhdW5jaGluZyBvciBub3QpLiBBdCB0aGlzIHBvaW50LCB0aGUKKyAgICAgICAg
V2ViUHJvY2Vzc1Byb3h5IHJlZ2lzdGVycyB0aGUgcGFnZSBhcyBhIHVzZXIgb2YgdGhlIHZpc2l0
ZWRMaW5rU3RvcmUgYW5kIHRha2VzIGNhcmUgb2Ygd2FpdGluZworICAgICAgICB1bnRpbCBpdCBp
cyBkb25lIGxhdW5jaGluZyBiZWZvcmUgcmVnaXN0ZXJpbmcgaXRzZWxmIHdpdGggdGhlIHZpc2l0
ZWRMaW5rU3RvcmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6flByb3Zpc2lvbmFs
UGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmluaXRp
YWxpemVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OnBy
b2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZmluaXNoSW5pdGlhbGl6aW5nV2ViUGFnZUFmdGVyUHJvY2Vzc0xh
dW5jaCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpWaXNpdGVkTGlua1N0b3JlOjp+VmlzaXRlZExpbmtTdG9yZSk6CisgICAgICAgIChX
ZWJLaXQ6OlZpc2l0ZWRMaW5rU3RvcmU6OmFkZFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZpbmlz
aEF0dGFjaGluZ1RvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
aW5pdGlhbGl6ZVdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0
U3RhdGVBZnRlclByb2Nlc3NFeGl0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVuY2gpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcp
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
cmVtb3ZlV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YWRkVmlz
aXRlZExpbmtTdG9yZVVzZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnJl
bW92ZVZpc2l0ZWRMaW5rU3RvcmVVc2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjphZGRXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjphZGRWaXNpdGVkTGlua1N0b3JlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95VmlzaXRlZExpbmtTdG9yZSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorCiAyMDE5LTAz
LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjI0MzE0Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCAwOWEyOGIwYTY3YzM1MGQyYmNjZjFkMWU2OGNl
MGIzMmM2NTEzOWI2Li5iYmZmNjhiMDhhNGI0ZDE5ZTdmMjU3MmI0NGRkMzAxMGViZWFiNDgzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3Bw
CkBAIC05OSw2ICs5OSw3IEBAIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp+UHJvdmlzaW9uYWxQYWdl
UHJveHkoKQogCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCkpOwog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2UoKSwgbV9wYWdlLnBh
Z2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MtPnJlbW92ZVZpc2l0ZWRMaW5rU3RvcmVVc2VyKG1fcGFn
ZS52aXNpdGVkTGlua1N0b3JlKCksIG1fcGFnZS5wYWdlSUQoKSk7CiAKICAgICBSdW5Mb29wOjpt
YWluKCkuZGlzcGF0Y2goW3Byb2Nlc3MgPSBtX3Byb2Nlc3MuY29weVJlZigpXSB7CiAgICAgICAg
IHByb2Nlc3MtPm1heWJlU2h1dERvd24oKTsKQEAgLTEzNiwyMSArMTM3LDYgQEAgdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6Y2FuY2VsKCkKICAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUobV9tYWluRnJhbWUtPmZyYW1lSUQoKSwgeyB9LCBtX25hdmlnYXRpb25JRCwgbV9wcm92
aXNpb25hbExvYWRVUkwsIGVycm9yLCBVc2VyRGF0YSB7IH0pOyAvLyBXaWxsIGRlbGV0ZSB8dGhp
c3wuCiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnByb2Nlc3NEaWRGaW5pc2hMYXVu
Y2hpbmcoKQotewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAi
cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZzogcGFnZUlEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFn
ZUlEKCkpOwotICAgIGZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVuY2go
KTsKLX0KLQotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZmluaXNoSW5pdGlhbGl6aW5nV2Vi
UGFnZUFmdGVyUHJvY2Vzc0xhdW5jaCgpCi17Ci0gICAgQVNTRVJUKG1fcHJvY2Vzcy0+c3RhdGUo
KSA9PSBXZWJQcm9jZXNzUHJveHk6OlN0YXRlOjpSdW5uaW5nKTsKLQotICAgIC8vIEZJWE1FOiBU
aGUgV2ViUGFnZVByb3h5IGRlbGF5cyBhZGRpbmcgdGhlIHZpc2l0ZWQgbGluayBzdG9yZSB1bnRp
bCBhZnRlciB0aGUgcHJvY2VzcyBoYXMgbGF1bmNoZWQKLSAgICAvLyBzbyB0aGUgUHJvdmlzaW9u
YWxQYWdlUHJveHkgZG9lcyB0aGUgc2FtZS4gSG93ZXZlciwgZG8gd2UgcmVhbGx5IG5lZWQgdG8/
Ci0gICAgbV9wcm9jZXNzLT5hZGRWaXNpdGVkTGlua1N0b3JlKG1fcGFnZS52aXNpdGVkTGlua1N0
b3JlKCkpOwotfQotCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojppbml0aWFsaXplV2ViUGFn
ZSgpCiB7CiAgICAgbV9kcmF3aW5nQXJlYSA9IG1fcGFnZS5wYWdlQ2xpZW50KCkuY3JlYXRlRHJh
d2luZ0FyZWFQcm94eShtX3Byb2Nlc3MpOwpAQCAtMTU4LDkgKzE0NCw3IEBAIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmluaXRpYWxpemVXZWJQYWdlKCkKICAgICBhdXRvIHBhcmFtZXRlcnMg
PSBtX3BhZ2UuY3JlYXRpb25QYXJhbWV0ZXJzKG1fcHJvY2VzcywgKm1fZHJhd2luZ0FyZWEpOwog
ICAgIHBhcmFtZXRlcnMuaXNQcm9jZXNzU3dhcCA9IHRydWU7CiAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpDcmVhdGVXZWJQYWdlKG1fcGFnZS5wYWdlSUQoKSwgcGFy
YW1ldGVycyksIDApOwotCi0gICAgaWYgKG1fcHJvY2Vzcy0+c3RhdGUoKSA9PSBXZWJQcm9jZXNz
UHJveHk6OlN0YXRlOjpSdW5uaW5nKQotICAgICAgICBmaW5pc2hJbml0aWFsaXppbmdXZWJQYWdl
QWZ0ZXJQcm9jZXNzTGF1bmNoKCk7CisgICAgbV9wcm9jZXNzLT5hZGRWaXNpdGVkTGlua1N0b3Jl
VXNlcihtX3BhZ2UudmlzaXRlZExpbmtTdG9yZSgpLCBtX3BhZ2UucGFnZUlEKCkpOwogfQogCiB2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YShBUEk6Ok5hdmlnYXRpb24mIG5hdmln
YXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6
Ok9iamVjdCogdXNlckRhdGEsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0
ZVBvbGljaWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmgKaW5kZXggMTZiZDVjZDU4NTEzYWZhZTliMDAyZDY5MjgyNzMyMGE2Njc3NDk4Mi4uMWNl
OTc4MGJmZjAzMDYyMGUwOTQwZWNmYWViYWExNDBlMzJmY2FjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC03OSw3ICs3OSw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiwgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSYsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYpOwog
ICAgIHZvaWQgY2FuY2VsKCk7CiAKLSAgICB2b2lkIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmco
KTsKICAgICB2b2lkIHByb2Nlc3NEaWRUZXJtaW5hdGUoKTsKICAgICB2b2lkIGNvbm5lY3Rpb25X
aWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKTsKIApAQCAtMTE1LDcgKzExNCw2IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlBhZ2UoKTsKLSAgICB2b2lkIGZpbmlz
aEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVuY2goKTsKIAogICAgIFdlYlBhZ2VQ
cm94eSYgbV9wYWdlOwogICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5jcHAKaW5kZXggMjliZjk0NGI2
ZmNiNGZhM2JiYmE2OWEwM2YzMGZhNzI5MDM2ODM0OC4uZmFjM2NkZGQ2YzZmYzI5MDY4ZTViMTRm
OWY0N2M5ZTExMTJlNjZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlz
aXRlZExpbmtTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExp
bmtTdG9yZS5jcHAKQEAgLTQyLDEwICs0Miw3IEBAIFJlZjxWaXNpdGVkTGlua1N0b3JlPiBWaXNp
dGVkTGlua1N0b3JlOjpjcmVhdGUoKQogCiBWaXNpdGVkTGlua1N0b3JlOjp+VmlzaXRlZExpbmtT
dG9yZSgpCiB7Ci0gICAgZm9yIChXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MgOiBtX3Byb2Nlc3Nl
cykgewotICAgICAgICBwcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlZp
c2l0ZWRMaW5rU3RvcmU6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllcigpKTsKLSAg
ICAgICAgcHJvY2Vzcy0+ZGlkRGVzdHJveVZpc2l0ZWRMaW5rU3RvcmUoKnRoaXMpOwotICAgIH0K
KyAgICBSRUxFQVNFX0FTU0VSVChtX3Byb2Nlc3Nlcy5pc0VtcHR5KCkpOwogfQogCiBWaXNpdGVk
TGlua1N0b3JlOjpWaXNpdGVkTGlua1N0b3JlKCkKQEAgLTU2LDYgKzUzLDcgQEAgVmlzaXRlZExp
bmtTdG9yZTo6VmlzaXRlZExpbmtTdG9yZSgpCiB2b2lkIFZpc2l0ZWRMaW5rU3RvcmU6OmFkZFBy
b2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQogewogICAgIEFTU0VSVChwcm9jZXNzLnN0
YXRlKCkgPT0gV2ViUHJvY2Vzc1Byb3h5OjpTdGF0ZTo6UnVubmluZyk7CisgICAgQVNTRVJUKCFt
X3Byb2Nlc3Nlcy5jb250YWlucygmcHJvY2VzcykpOwogCiAgICAgaWYgKCFtX3Byb2Nlc3Nlcy5h
ZGQoJnByb2Nlc3MpLmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDRiYjAxNDFmNGVjMDQzZmZhM2RhNjU4MGFm
Nzk4NWMzMmE0NzIyYmIuLmNiNTZlNGZiODc2NmRmOTQzZjg5NGViODBlMDJmZjBiN2RiNjllMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODE5LDcgKzgx
OSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoSXNQ
cm9jZXNzU3dhcCBpc1Byb2Nlc3NTd2FwKQogICAgICAgICAvLyB3aGVuIHRoZSBwcm9jZXNzIHdh
cyBwcm92aXNpb25hbC4KICAgICAgICAgaWYgKGlzUHJvY2Vzc1N3YXAgIT0gSXNQcm9jZXNzU3dh
cDo6WWVzKQogICAgICAgICAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLndlYlBhZ2VF
bnRlcmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsKLSAgICAgICAgcHJvY2Vzc0RpZEZpbmlzaExh
dW5jaGluZygpOwogICAgIH0KIAogICAgIHVwZGF0ZUFjdGl2aXR5U3RhdGUoKTsKQEAgLTk1OCwx
OSArOTU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVXZWJQYWdlKCkKIAogICAg
IHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpDcmVhdGVXZWJQYWdlKG1fcGFn
ZUlELCBjcmVhdGlvblBhcmFtZXRlcnMobV9wcm9jZXNzLCAqbV9kcmF3aW5nQXJlYSkpLCAwKTsK
IAotICAgIG1fbmVlZHNUb0ZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVu
Y2ggPSB0cnVlOwotICAgIGZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVu
Y2goKTsKLX0KLQotdm9pZCBXZWJQYWdlUHJveHk6OmZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VB
ZnRlclByb2Nlc3NMYXVuY2goKQotewotICAgIGlmICghbV9uZWVkc1RvRmluaXNoSW5pdGlhbGl6
aW5nV2ViUGFnZUFmdGVyUHJvY2Vzc0xhdW5jaCkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICht
X3Byb2Nlc3MtPnN0YXRlKCkgIT0gV2ViUHJvY2Vzc1Byb3h5OjpTdGF0ZTo6UnVubmluZykKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgbV9uZWVkc1RvRmluaXNoSW5pdGlhbGl6aW5nV2ViUGFnZUFm
dGVyUHJvY2Vzc0xhdW5jaCA9IGZhbHNlOwotICAgIG1fcHJvY2Vzcy0+YWRkVmlzaXRlZExpbmtT
dG9yZShtX3Zpc2l0ZWRMaW5rU3RvcmUpOworICAgIG1fcHJvY2Vzcy0+YWRkVmlzaXRlZExpbmtT
dG9yZVVzZXIodmlzaXRlZExpbmtTdG9yZSgpLCBtX3BhZ2VJRCk7CiB9CiAKIHZvaWQgV2ViUGFn
ZVByb3h5OjpjbG9zZSgpCkBAIC01MTEzLDEyICs1MTAwLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OndlYlByb2Nlc3NXaWxsU2h1dERvd24oKQogICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tl
ci53ZWJQYWdlTGVhdmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcoKQotewotICAgIEFTU0VSVChtX3Byb2Nl
c3MtPnN0YXRlKCkgPT0gV2ViUHJvY2Vzc1Byb3h5OjpTdGF0ZTo6UnVubmluZyk7Ci0gICAgZmlu
aXNoSW5pdGlhbGl6aW5nV2ViUGFnZUFmdGVyUHJvY2Vzc0xhdW5jaCgpOwotfQotCiAjaWYgRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiB2b2lkIFdlYlBhZ2VQcm94eTo6dW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkKHVpbnQzMl90IG9wYXF1ZVBsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHBsdWdpblVSTFN0cmlu
ZywgY29uc3QgU3RyaW5nJiBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5nKQogewpAQCAt
NjkyNCw4ICs2OTA1LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGVBZnRlclByb2Nl
c3NFeGl0ZWQoUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHRlcm1pbmEKICAgICBtX2hhc1J1bm5p
bmdQcm9jZXNzID0gZmFsc2U7CiAgICAgbV9pc1BhZ2VTdXNwZW5kZWQgPSBmYWxzZTsKIAotICAg
IG1fbmVlZHNUb0ZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVuY2ggPSBm
YWxzZTsKLQogICAgIG1fZWRpdG9yU3RhdGUgPSBFZGl0b3JTdGF0ZSgpOwogICAgIG1fY2FjaGVk
Rm9udEF0dHJpYnV0ZXNBdFNlbGVjdGlvblN0YXJ0LnJlc2V0KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNGM2Y2ViZjRjYWRkMDEwZGZhZGIxMGYyMjdlNTdj
MzI3NzBmYTY1OS4uNGMwNWMyNDcyMzdjNDg5Y2I4M2NiOWRkMGViMjI4ZmJjZjg1ZGE4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEyMzMsOCArMTIzMyw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKTsK
ICAgICB2b2lkIHdlYlByb2Nlc3NXaWxsU2h1dERvd24oKTsKIAotICAgIHZvaWQgcHJvY2Vzc0Rp
ZEZpbmlzaExhdW5jaGluZygpOwotCiAgICAgdm9pZCBkaWRTYXZlVG9QYWdlQ2FjaGUoKTsKICAg
ICAgICAgCiAgICAgdm9pZCBzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoV2ViQ29yZTo6U2Nyb2xs
UGlubmluZ0JlaGF2aW9yKTsKQEAgLTE5NzQsOCArMTk3Miw2IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZShjb25zdCBV
c2VyRGF0YSYpOwogCi0gICAgdm9pZCBmaW5pc2hJbml0aWFsaXppbmdXZWJQYWdlQWZ0ZXJQcm9j
ZXNzTGF1bmNoKCk7Ci0KICAgICB2b2lkIGhhbmRsZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29uc3QgVXNlckRhdGEmIG1lc3NhZ2VCb2R5KTsK
ICAgICB2b2lkIGhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBjb25zdCBVc2VyRGF0YSYgbWVzc2FnZUJvZHksIFVzZXJE
YXRhJiByZXR1cm5Vc2VyRGF0YSk7CiAKQEAgLTIyMjUsOCArMjIyMSw2IEBAIHByaXZhdGU6CiAg
ICAgLy8gV2hldGhlciBpdCBjYW4gcnVuIG1vZGFsIGNoaWxkIHdlYiBwYWdlcy4KICAgICBib29s
IG1fY2FuUnVuTW9kYWwgeyBmYWxzZSB9OwogCi0gICAgYm9vbCBtX25lZWRzVG9GaW5pc2hJbml0
aWFsaXppbmdXZWJQYWdlQWZ0ZXJQcm9jZXNzTGF1bmNoIHsgZmFsc2UgfTsKLQogICAgIGJvb2wg
bV9pc0luUHJpbnRpbmdNb2RlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQZXJmb3JtaW5nRE9N
UHJpbnRPcGVyYXRpb24geyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0NmU4MzE2Mjc2NjY0MWVmMWIxNTNkM2RhYmUxZjVmMDAy
YWUwNTU4Li4yZjQ0OGRjNjg1ZGI2ZGFlZTk3ZDY1NzQ2NjcxZjFhMzE4MDRiNTBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTI5OCw5ICsyOTgs
OSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2h1dERvd24oKQogICAgICAgICBmcmFtZS0+d2Vi
UHJvY2Vzc1dpbGxTaHV0RG93bigpOwogICAgIG1fZnJhbWVNYXAuY2xlYXIoKTsKIAotICAgIGZv
ciAoYXV0byogdmlzaXRlZExpbmtTdG9yZSA6IG1fdmlzaXRlZExpbmtTdG9yZXMpCisgICAgZm9y
IChhdXRvKiB2aXNpdGVkTGlua1N0b3JlIDogbV92aXNpdGVkTGlua1N0b3Jlc1dpdGhVc2Vycy5r
ZXlzKCkpCiAgICAgICAgIHZpc2l0ZWRMaW5rU3RvcmUtPnJlbW92ZVByb2Nlc3MoKnRoaXMpOwot
ICAgIG1fdmlzaXRlZExpbmtTdG9yZXMuY2xlYXIoKTsKKyAgICBtX3Zpc2l0ZWRMaW5rU3RvcmVz
V2l0aFVzZXJzLmNsZWFyKCk7CiAKICAgICBmb3IgKGF1dG8qIHdlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5IDogbV93ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94aWVzKQogICAgICAgICB3
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS0+cmVtb3ZlUHJvY2VzcygqdGhpcyk7CkBAIC0z
OTIsMjcgKzM5Miw0NCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVtb3ZlV2ViUGFnZShXZWJQ
YWdlUHJveHkmIHdlYlBhZ2UsIEVuZHNVc2luZ0RhdGFTdG9yZSBlbgogICAgIGlmIChlbmRzVXNp
bmdEYXRhU3RvcmUgPT0gRW5kc1VzaW5nRGF0YVN0b3JlOjpZZXMpCiAgICAgICAgIG1fcHJvY2Vz
c1Bvb2wtPnBhZ2VFbmRVc2luZ1dlYnNpdGVEYXRhU3RvcmUod2ViUGFnZS5wYWdlSUQoKSwgd2Vi
UGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkpOwogCisgICAgcmVtb3ZlVmlzaXRlZExpbmtTdG9yZVVz
ZXIod2ViUGFnZS52aXNpdGVkTGlua1N0b3JlKCksIHdlYlBhZ2UucGFnZUlEKCkpOworCiAgICAg
dXBkYXRlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAogICAgIG1heWJlU2h1dERv
d24oKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZFZpc2l0ZWRMaW5rU3RvcmUoVmlz
aXRlZExpbmtTdG9yZSYgc3RvcmUpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6YWRkVmlzaXRlZExp
bmtTdG9yZVVzZXIoVmlzaXRlZExpbmtTdG9yZSYgdmlzaXRlZExpbmtTdG9yZSwgdWludDY0X3Qg
cGFnZUlEKQogewotICAgIG1fdmlzaXRlZExpbmtTdG9yZXMuYWRkKCZzdG9yZSk7Ci0gICAgc3Rv
cmUuYWRkUHJvY2VzcygqdGhpcyk7CisgICAgYXV0byYgdXNlcnMgPSBtX3Zpc2l0ZWRMaW5rU3Rv
cmVzV2l0aFVzZXJzLmVuc3VyZSgmdmlzaXRlZExpbmtTdG9yZSwgW10geworICAgICAgICByZXR1
cm4gSGFzaFNldDx1aW50NjRfdD4geyB9OworICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKKworICAg
IEFTU0VSVCghdXNlcnMuY29udGFpbnMocGFnZUlEKSk7CisgICAgdXNlcnMuYWRkKHBhZ2VJRCk7
CisKKyAgICBpZiAodXNlcnMuc2l6ZSgpID09IDEgJiYgc3RhdGUoKSA9PSBTdGF0ZTo6UnVubmlu
ZykKKyAgICAgICAgdmlzaXRlZExpbmtTdG9yZS5hZGRQcm9jZXNzKCp0aGlzKTsKIH0KIAotdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmFkZFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5JiBwcm94eSwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyYgcGFyYW1ldGVycykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpyZW1vdmVWaXNpdGVkTGlua1N0
b3JlVXNlcihWaXNpdGVkTGlua1N0b3JlJiB2aXNpdGVkTGlua1N0b3JlLCB1aW50NjRfdCBwYWdl
SUQpCiB7Ci0gICAgbV93ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94aWVzLmFkZCgmcHJveHkp
OwotICAgIHByb3h5LmFkZFByb2Nlc3MoKnRoaXMsIHBhcmFtZXRlcnMpOworICAgIGF1dG8gaXQg
PSBtX3Zpc2l0ZWRMaW5rU3RvcmVzV2l0aFVzZXJzLmZpbmQoJnZpc2l0ZWRMaW5rU3RvcmUpOwor
ICAgIGlmIChpdCA9PSBtX3Zpc2l0ZWRMaW5rU3RvcmVzV2l0aFVzZXJzLmVuZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvJiB1c2VycyA9IGl0LT52YWx1ZTsKKyAgICB1c2Vycy5yZW1v
dmUocGFnZUlEKTsKKyAgICBpZiAodXNlcnMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fdmlzaXRl
ZExpbmtTdG9yZXNXaXRoVXNlcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgdmlzaXRlZExpbmtTdG9y
ZS5yZW1vdmVQcm9jZXNzKCp0aGlzKTsKKyAgICB9CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkaWREZXN0cm95VmlzaXRlZExpbmtTdG9yZShWaXNpdGVkTGlua1N0b3JlJiBzdG9yZSkKK3Zv
aWQgV2ViUHJvY2Vzc1Byb3h5OjphZGRXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eShXZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eSYgcHJveHksIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgQVNTRVJUKG1fdmlzaXRlZExpbmtTdG9yZXMuY29udGFp
bnMoJnN0b3JlKSk7Ci0gICAgbV92aXNpdGVkTGlua1N0b3Jlcy5yZW1vdmUoJnN0b3JlKTsKKyAg
ICBtX3dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3hpZXMuYWRkKCZwcm94eSk7CisgICAgcHJv
eHkuYWRkUHJvY2VzcygqdGhpcywgcGFyYW1ldGVycyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpkaWREZXN0cm95V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkoV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkmIHByb3h5KQpAQCAtNzM5LDIyICs3NTYsMTQgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVy
LCBJUEM6OkNvbm5lY3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZvciAoV2ViUGFn
ZVByb3h5KiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIEFTU0VSVCh0aGlz
ID09ICZwYWdlLT5wcm9jZXNzKCkpOwotICAgICAgICBwYWdlLT5wcm9jZXNzRGlkRmluaXNoTGF1
bmNoaW5nKCk7Ci0gICAgfQotCi0gICAgZm9yIChhdXRvKiBwcm92aXNpb25hbFBhZ2UgOiBtX3By
b3Zpc2lvbmFsUGFnZXMpIHsKLSAgICAgICAgQVNTRVJUKHRoaXMgPT0gJnByb3Zpc2lvbmFsUGFn
ZS0+cHJvY2VzcygpKTsKLSAgICAgICAgcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzRGlkRmluaXNo
TGF1bmNoaW5nKCk7Ci0gICAgfQotCi0KICAgICBSRUxFQVNFX0FTU0VSVCghbV93ZWJDb25uZWN0
aW9uKTsKICAgICBtX3dlYkNvbm5lY3Rpb24gPSBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
cmVhdGUodGhpcyk7CiAKICAgICBtX3Byb2Nlc3NQb29sLT5wcm9jZXNzRGlkRmluaXNoTGF1bmNo
aW5nKHRoaXMpOwogCisgICAgZm9yIChhdXRvKiB2aXNpdGVkTGlua1N0b3JlIDogbV92aXNpdGVk
TGlua1N0b3Jlc1dpdGhVc2Vycy5rZXlzKCkpCisgICAgICAgIHZpc2l0ZWRMaW5rU3RvcmUtPmFk
ZFByb2Nlc3MoKnRoaXMpOworCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoY29u
bmVjdGlvbigpKSB7CiAgICAgICAgIGlmICh4cGNfY29ubmVjdGlvbl90IHhwY0Nvbm5lY3Rpb24g
PSBjb25uZWN0aW9uKCktPnhwY0Nvbm5lY3Rpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggZmY2YTllY2U1YWY5NDUzOGI3YjdiZDhlMTIyNzk4ODk0
NmJmOWIzOS4uMjc2NDkwZGUzNmM5ZDhiYWFlOWI2ZDFlNzg4NGEzZGU0NDljNjk0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTE0Niw5ICsxNDYsMTIg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBhZGRWaXNpdGVkTGlua1N0b3JlKFZp
c2l0ZWRMaW5rU3RvcmUmKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdlYlBhZ2VJblByb2Nlc3ModWlu
dDY0X3QgcGFnZUlEKTsKKworICAgIHZvaWQgYWRkVmlzaXRlZExpbmtTdG9yZVVzZXIoVmlzaXRl
ZExpbmtTdG9yZSYsIHVpbnQ2NF90IHBhZ2VJRCk7CisgICAgdm9pZCByZW1vdmVWaXNpdGVkTGlu
a1N0b3JlVXNlcihWaXNpdGVkTGlua1N0b3JlJiwgdWludDY0X3QgcGFnZUlEKTsKKwogICAgIHZv
aWQgYWRkV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkoV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHkmLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7Ci0gICAgdm9pZCBkaWREZXN0
cm95VmlzaXRlZExpbmtTdG9yZShWaXNpdGVkTGlua1N0b3JlJik7CiAgICAgdm9pZCBkaWREZXN0
cm95V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkoV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkmKTsKIAogICAgIFJlZlB0cjxBUEk6OlVzZXJJbml0aWF0ZWRBY3Rpb24+IHVzZXJJbml0
aWF0ZWRBY3Rpdml0eSh1aW50NjRfdCk7CkBAIC00MjgsNyArNDMxLDcgQEAgcHJpdmF0ZToKICAg
ICBIYXNoU2V0PFByb3Zpc2lvbmFsUGFnZVByb3h5Kj4gbV9wcm92aXNpb25hbFBhZ2VzOwogICAg
IFVzZXJJbml0aWF0ZWRBY3Rpb25NYXAgbV91c2VySW5pdGlhdGVkQWN0aW9uTWFwOwogCi0gICAg
SGFzaFNldDxWaXNpdGVkTGlua1N0b3JlKj4gbV92aXNpdGVkTGlua1N0b3JlczsKKyAgICBIYXNo
TWFwPFZpc2l0ZWRMaW5rU3RvcmUqLCBIYXNoU2V0PHVpbnQ2NF90LyogcGFnZUlEICovPj4gbV92
aXNpdGVkTGlua1N0b3Jlc1dpdGhVc2VyczsKICAgICBIYXNoU2V0PFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5Kj4gbV93ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94aWVzOwogCiAgICAg
aW50IG1fbnVtYmVyT2ZUaW1lc1N1ZGRlblRlcm1pbmF0aW9uV2FzRGlzYWJsZWQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>