<?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>211291</bug_id>
          
          <creation_ts>2020-05-01 07:33:07 -0700</creation_ts>
          <short_desc>Sending WebRTC network packets should not go through the main thread</short_desc>
          <delta_ts>2020-05-07 02:24:16 -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>WebRTC</component>
          <version>WebKit Local 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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1647839</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-01 07:33:07 -0700</bug_when>
    <thetext>Sending WebRTC network packets should not go through the main thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647841</commentid>
    <comment_count>1</comment_count>
      <attachid>398182</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-01 07:36:00 -0700</bug_when>
    <thetext>Created attachment 398182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647870</commentid>
    <comment_count>2</comment_count>
      <attachid>398182</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-05-01 09:29:29 -0700</bug_when>
    <thetext>Comment on attachment 398182
Patch

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

&gt; Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.cpp:61
&gt;  void LibWebRTCSocket::sendOnMainThread(Function&lt;void(IPC::Connection&amp;)&gt;&amp;&amp; callback)

Should this be renamed now that it doesn&apos;t send on the main thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647874</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-01 09:41:25 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #2)
&gt; Comment on attachment 398182 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=398182&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.cpp:61
&gt; &gt;  void LibWebRTCSocket::sendOnMainThread(Function&lt;void(IPC::Connection&amp;)&gt;&amp;&amp; callback)
&gt; 
&gt; Should this be renamed now that it doesn&apos;t send on the main thread?

Right, we also need a better handling of getting the IPC::Connection.
The callOnMainThreadAndWait should be removed to ensure we do not end up in a deadlock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649201</commentid>
    <comment_count>4</comment_count>
      <attachid>398508</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-05 08:17:31 -0700</bug_when>
    <thetext>Created attachment 398508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649205</commentid>
    <comment_count>5</comment_count>
      <attachid>398509</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-05 08:26:31 -0700</bug_when>
    <thetext>Created attachment 398509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649555</commentid>
    <comment_count>6</comment_count>
      <attachid>398604</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 05:49:13 -0700</bug_when>
    <thetext>Created attachment 398604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649598</commentid>
    <comment_count>7</comment_count>
      <attachid>398612</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 07:42:21 -0700</bug_when>
    <thetext>Created attachment 398612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649599</commentid>
    <comment_count>8</comment_count>
      <attachid>398613</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 07:48:09 -0700</bug_when>
    <thetext>Created attachment 398613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649665</commentid>
    <comment_count>9</comment_count>
      <attachid>398613</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-05-06 09:44:32 -0700</bug_when>
    <thetext>Comment on attachment 398613
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Fix a case where the SDP would be badly formatted we do not have yet a MDNS name for the corresponding IP address.

s/would be badly formatted we do not have yet a MDNS name/would be badly formatted if we do not yet have an MDNS name/

&gt; Source/WebCore/ChangeLog:13
&gt; +        Small refactoring to use less else if

s/use less else if/use early returns/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649686</commentid>
    <comment_count>10</comment_count>
      <attachid>398634</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 10:22:08 -0700</bug_when>
    <thetext>Created attachment 398634
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650013</commentid>
    <comment_count>11</comment_count>
      <attachid>398714</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-07 01:56:28 -0700</bug_when>
    <thetext>Created attachment 398714
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650022</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-07 02:23:48 -0700</bug_when>
    <thetext>Committed r261277: &lt;https://trac.webkit.org/changeset/261277&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398714.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650023</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-07 02:24:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/62967836&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398182</attachid>
            <date>2020-05-01 07:36:00 -0700</date>
            <delta_ts>2020-05-05 08:17:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211291-20200501163558.patch</filename>
            <type>text/plain</type>
            <size>3250</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFkYTk4ZWZkYTM1MzM5MWZh
Y2ZjMzI3N2JiOTllMzViYmIwYmYzNWQuLmFiZTViNzdjNDU1YmI3MmZiMTI5YjhmNzI0YWQ0Yzdl
MDkxNzI2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDUtMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyOTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViUlRDIHNvY2tl
dCBrZWVwcyBhIHJlZmVyZW5jZSB0byB0aGUgSVBDIGNvbm5lY3Rpb24gdG8gc2VuZCBJUEMgbWVz
c2FnZXMgZnJvbSBhIGJhY2tncm91bmQgdGhyZWFkLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OkxpYldlYlJU
Q1NvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6c2VuZE9uTWFpblRo
cmVhZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXQuaDoKKwogMjAyMC0wNS0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjptdXRlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1NvY2tldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0LmNwcAppbmRleCBiNWU0M2Y0NTZlYjMwZTAyZmYxZDM0ZDVjMTU3MmYxMmE1
MTM3Mzk5Li43Y2I0OWRmMzkyN2QwMzgwMDI2YTg1YWU1M2NiZDBmYmJhOTU1NjNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29j
a2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0LmNwcApAQCAtNDcsNiArNDcsNyBAQCBMaWJXZWJSVENTb2NrZXQ6OkxpYldl
YlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBjb25zdCB2b2lkKiBz
bwogICAgICwgbV9sb2NhbEFkZHJlc3MobG9jYWxBZGRyZXNzKQogICAgICwgbV9yZW1vdGVBZGRy
ZXNzKHJlbW90ZUFkZHJlc3MpCiAgICAgLCBtX3NvY2tldEdyb3VwKHNvY2tldEdyb3VwKQorICAg
ICwgbV9jb25uZWN0aW9uKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmso
KS5jb25uZWN0aW9uKCkpCiB7CiAgICAgbV9mYWN0b3J5LmFkZFNvY2tldCgqdGhpcyk7CiB9CkBA
IC01OSw5ICs2MCwxMyBAQCBMaWJXZWJSVENTb2NrZXQ6On5MaWJXZWJSVENTb2NrZXQoKQogCiB2
b2lkIExpYldlYlJUQ1NvY2tldDo6c2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6
Q29ubmVjdGlvbiYpPiYmIGNhbGxiYWNrKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgewotICAgICAgICBjYWxsYmFjayhXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkpOwotICAgIH0pOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbm90IG5lZWQgdG8gZG8gdGhl
IG1fY29ubmVjdGlvbiBpZiBjaGVjay4KKyAgICBpZiAoIW1fY29ubmVjdGlvbikgeworICAgICAg
ICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChbdGhpc10geworICAgICAgICAgICAgbV9jb25uZWN0
aW9uID0gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIGNhbGxiYWNrKCpt
X2Nvbm5lY3Rpb24pOwogfQogCiBydGM6OlNvY2tldEFkZHJlc3MgTGliV2ViUlRDU29ja2V0OjpH
ZXRMb2NhbEFkZHJlc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCmluZGV4IDlmYTgyYTQ1ZTkx
NzNhZDg3MDUyMWI1YTc4ODRjZTJlOGVmNzMzMWQuLjM2MjlhNjM0NDdhMGQ4NzYxZmRjY2NhNmFj
MDBiOWY5NjgwOTRiODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKQEAgLTg5LDcgKzg5LDcgQEAgcHJp
dmF0ZToKICAgICBpbnQgR2V0T3B0aW9uKHJ0Yzo6U29ja2V0OjpPcHRpb24sIGludCopIGZpbmFs
OwogICAgIGludCBTZXRPcHRpb24ocnRjOjpTb2NrZXQ6Ok9wdGlvbiwgaW50KSBmaW5hbDsKIAot
ICAgIHN0YXRpYyB2b2lkIHNlbmRPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChJUEM6OkNvbm5l
Y3Rpb24mKT4mJik7CisgICAgdm9pZCBzZW5kT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBD
OjpDb25uZWN0aW9uJik+JiYpOwogCiAgICAgTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgbV9mYWN0
b3J5OwogICAgIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbV9pZGVudGlmaWVy
OwpAQCAtMTA4LDYgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFNpZ25hbFJl
YWR5VG9TZW5kIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9Owog
ICAgIGNvbnN0IHZvaWQqIG1fc29ja2V0R3JvdXAgeyBudWxscHRyIH07CisgICAgUmVmUHRyPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398508</attachid>
            <date>2020-05-05 08:17:31 -0700</date>
            <delta_ts>2020-05-05 08:26:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211291-20200505171729.patch</filename>
            <type>text/plain</type>
            <size>16442</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJhMWRiYjVjMTdlZmYzOWIz
Zjg3ZmYxN2FjYWJjMjQyYmQ3OGRjYWQuLjg5MzA3YjRiZGU5MDc4YWE5NThjMzgzYjMxOGI0ZGEz
ZGRmNzJiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjAtMDUtMDUgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyOTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb2xsb3dpbmcgb24gcmVj
ZWl2aW5nIFJUQyBwYWNrZXRzIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZCwgd2UgYWxzbyBzZW5k
IFJUQyBwYWNrZXRzIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZC4KKyAgICAgICAgQ3JlYXRpb24g
b2YgdGhlIHNvY2tldHMgYWxzbyBoYXBwZW5zIGluIGEgYmFja2dyb3VuZCB0aHJlYWQuCisgICAg
ICAgIEF0IGNyZWF0aW9uIG9mIHRoZSBzb2NrZXQsIHdlIGdldCB0aGUgSVBDIGNvbm5lY3Rpb24g
dG8gdGhlIG5ldHdvcmsgcHJvY2VzcyBhbmQga2VlcCBhIHJlZiBpbiB0aGUgUlRDIHNvY2tldC4K
KyAgICAgICAgSW4gY2FzZSBuZXR3b3JrIHByb2Nlc3MgY3Jhc2hlZCBhbmQgdGhlIElQQyBjb25u
ZWN0aW9uIG9mIHRoZSBSVEMgbmV0d29yayBpcyBudWxsLCB3ZSBob3AgdG8gdGhlIG1haW4gdGhy
ZWFkIHRvIGNyZWF0ZSBhIG5ldyBJUEMgY29ubmVjdGlvbi4KKyAgICAgICAgVGhpcyB3aWxsIGZh
aWwgdGhlIGNyZWF0aW9uIG9mIHRoZSBzb2NrZXQgKGFzIHdlbGwgYXMgbmV3IG9uZXMgYXMgd2Vs
bCkgYXMgbG9uZyBhcyB0aGUgSVBDIGNvbm5lY3Rpb24gdG8gbmV0d29yayBwcm9jZXNzIGlzIG5v
dCB2YWxpZCBhZ2Fpbi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6OkxpYldlYlJUQ05ldHdvcmspOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENOZXR3b3JrOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6TGliV2ViUlRDU29ja2V0KToKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDU29ja2V0OjpTZW5kVG8pOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXQ6OkNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpTZXRPcHRp
b24pOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnN1c3BlbmQpOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNlbmRPbk1haW5UaHJlYWQpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2Vy
dmVyVGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6
Y3JlYXRlVWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9y
eTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29j
a2V0RmFjdG9yeTo6Y3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5Lmg6CisgICAgICAgIChX
ZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkxpYldlYlJUQ1NvY2tldEZhY3RvcnkpOgor
CiAyMDIwLTA1LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZWNlaXZpbmcgV2ViUlRDIG5ldHdvcmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2gg
dGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaAppbmRleCA1Y2RmNGY3NTJjNjU2YjA1
YzUwM2IwOGQ3YTBmM2NkZmE0NmEwOTIyLi5kYzhhNjRiNWI2NDM5YjRkNDdlOTg5M2FjOGY3Yjlj
M2JmNDhiMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKQEAgLTM4LDEwICszOCwxOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIExpYldlYlJUQ05ldHdvcmsgOiBwdWJsaWMgSVBDOjpDb25u
ZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIExpYldlYlJUQ05ldHdvcmsoKSA9IGRlZmF1bHQ7CisgICAgTGli
V2ViUlRDTmV0d29yaygpCisjaWYgVVNFKExJQldFQlJUQykKKyAgICAgICAgOiBtX3NvY2tldEZh
Y3RvcnkoKnRoaXMpCisjZW5kaWYKKyAgICB7CisgICAgfQorCiAgICAgfkxpYldlYlJUQ05ldHdv
cmsoKTsKIAorICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5nZXQoKTsgfQogICAgIHZvaWQgc2V0Q29ubmVjdGlvbihSZWZQdHI8SVBDOjpDb25u
ZWN0aW9uPiYmKTsKKwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVkKCk7CiAKICAgICBi
b29sIGlzQWN0aXZlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCmluZGV4IDdhZWQ2NDU3
YTgzODE1N2I3MmIwMjM3NDBkOGQ3NTI0OGJhNTI2NDMuLmVmNmUzNzJiNWQxZGQ0ZDk4ODRjZWYw
ZmNmZDJmMjM1ZmQ0YTkwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCkBAIC00MCw4ICs0MCw5
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1MaWJXZWJSVENTb2NrZXQ6OkxpYldlYlJUQ1Nv
Y2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBjb25zdCB2b2lkKiBzb2NrZXRH
cm91cCwgVHlwZSB0eXBlLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQorTGliV2ViUlRDU29ja2V0
OjpMaWJXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgVHlw
ZSB0eXBlLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQogICAgIDogbV9mYWN0b3J5KGZhY3Rvcnkp
CisgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1faWRlbnRp
ZmllcihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAg
ICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX2xvY2FsQWRkcmVzcyhsb2NhbEFkZHJlc3MpCkBAIC01
NywxMyArNTgsNiBAQCBMaWJXZWJSVENTb2NrZXQ6On5MaWJXZWJSVENTb2NrZXQoKQogICAgIG1f
ZmFjdG9yeS5yZW1vdmVTb2NrZXQoKnRoaXMpOwogfQogCi12b2lkIExpYldlYlJUQ1NvY2tldDo6
c2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYpPiYmIGNhbGxi
YWNrKQotewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKCkgewotICAgICAgICBjYWxsYmFjayhXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkpOwotICAgIH0pOwotfQotCiBy
dGM6OlNvY2tldEFkZHJlc3MgTGliV2ViUlRDU29ja2V0OjpHZXRMb2NhbEFkZHJlc3MoKSBjb25z
dAogewogICAgIHJldHVybiBtX2xvY2FsQWRkcmVzczsKQEAgLTE0MSwxMyArMTM1LDkgQEAgaW50
IExpYldlYlJUQ1NvY2tldDo6U2VuZFRvKGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwg
Y29uc3QgcnRjOjpTb2NrZXRBZGQKICAgICBpZiAobV9pc1N1c3BlbmRlZCkKICAgICAgICAgcmV0
dXJuIHNpemU7CiAKLSAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZSksIHNpemUpOwotICAgIGF1dG8g
aWRlbnRpZmllciA9IHRoaXMtPmlkZW50aWZpZXIoKTsKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZSksIHNpemUpOworICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6U2VuZFRvIHsg
ZGF0YSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyB7IGFkZHJlc3MgfSwgUlRDUGFja2V0T3B0
aW9ucyB7IG9wdGlvbnMgfSB9LCBtX2lkZW50aWZpZXIpOwogCi0gICAgc2VuZE9uTWFpblRocmVh
ZChbaWRlbnRpZmllciwgYnVmZmVyID0gV1RGTW92ZShidWZmZXIpLCBhZGRyZXNzLCBvcHRpb25z
XShhdXRvJiBjb25uZWN0aW9uKSB7Ci0gICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5z
aXplKCkpOwotICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2Nr
ZXQ6OlNlbmRUbyB7IGRhdGEsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgeyBhZGRyZXNzIH0s
IFJUQ1BhY2tldE9wdGlvbnMgeyBvcHRpb25zIH0gfSwgaWRlbnRpZmllcik7Ci0gICAgfSk7CiAg
ICAgcmV0dXJuIHNpemU7CiB9CiAKQEAgLTE1OCw5ICsxNDgsOCBAQCBpbnQgTGliV2ViUlRDU29j
a2V0OjpDbG9zZSgpCiAKICAgICBtX3N0YXRlID0gU1RBVEVfQ0xPU0VEOwogCi0gICAgc2VuZE9u
TWFpblRocmVhZChbaWRlbnRpZmllciA9IGlkZW50aWZpZXIoKV0oYXV0byYgY29ubmVjdGlvbikg
ewotICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OkNs
b3NlKCksIGlkZW50aWZpZXIpOwotICAgIH0pOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1JUQ1NvY2tldDo6Q2xvc2UoKSwgbV9pZGVudGlmaWVyKTsKKwogICAgIHJl
dHVybiAwOwogfQogCkBAIC0xODAsOSArMTY5LDggQEAgaW50IExpYldlYlJUQ1NvY2tldDo6U2V0
T3B0aW9uKHJ0Yzo6U29ja2V0OjpPcHRpb24gb3B0aW9uLCBpbnQgdmFsdWUpCiAKICAgICBtX29w
dGlvbnNbb3B0aW9uXSA9IHZhbHVlOwogCi0gICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmll
ciA9IGlkZW50aWZpZXIoKSwgb3B0aW9uLCB2YWx1ZV0oYXV0byYgY29ubmVjdGlvbikgewotICAg
ICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OlNldE9wdGlv
bihvcHRpb24sIHZhbHVlKSwgaWRlbnRpZmllcik7Ci0gICAgfSk7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpTZXRPcHRpb24ob3B0aW9uLCB2YWx1
ZSksIG1faWRlbnRpZmllcik7CisKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMjA3LDExICsxOTUs
OCBAQCB2b2lkIExpYldlYlJUQ1NvY2tldDo6c3VzcGVuZCgpCiAgICAgbV9pc1N1c3BlbmRlZCA9
IHRydWU7CiAKICAgICAvLyBPbiBzdXNwZW5kLCB3ZSBjbG9zZSBUQ1Agc29ja2V0cyBhcyB3ZSBj
YW5ub3QgbWFrZSBzdXJlIHBhY2tldHMgYXJlIGRlbGl2ZXJlZCByZWxpYWJseS4KLSAgICBpZiAo
bV90eXBlICE9IFR5cGU6OlVEUCkgewotICAgICAgICBzZW5kT25NYWluVGhyZWFkKFtpZGVudGlm
aWVyID0gaWRlbnRpZmllcigpXShhdXRvJiBjb25uZWN0aW9uKSB7Ci0gICAgICAgICAgICBjb25u
ZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlIHsgfSwgaWRlbnRp
Zmllcik7Ci0gICAgICAgIH0pOwotICAgIH0KKyAgICBpZiAobV90eXBlICE9IFR5cGU6OlVEUCkK
KyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpD
bG9zZSB7IH0sIG1faWRlbnRpZmllcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1NvY2tldC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldC5oCmluZGV4IGIyZThlY2M3OThmOTEzZTZjOTI2YmQ3MjM1ZjMzMTk2ODViNTli
MTAuLjcyYTIyOTFkYTRjZGMwZjkxYWQwNmUwN2FkMWMxZGYwNmJmNTE3YmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgTGliV2ViUlRDU29ja2V0IGZpbmFsIDog
cHVibGljIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQgewogcHVibGljOgogICAgIGVudW0gY2xhc3Mg
VHlwZSB7IFVEUCwgU2VydmVyVENQLCBDbGllbnRUQ1AsIFNlcnZlckNvbm5lY3Rpb25UQ1AgfTsK
IAotICAgIExpYldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgY29uc3Qgdm9p
ZCogc29ja2V0R3JvdXAsIFR5cGUsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRy
ZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpOworICAgIExpYldl
YlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgUmVmPElQQzo6Q29ubmVjdGlvbj4m
JiwgY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIFR5cGUsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3Mp
OwogICAgIH5MaWJXZWJSVENTb2NrZXQoKTsKIAogICAgIGNvbnN0IHZvaWQqIHNvY2tldEdyb3Vw
KCkgY29uc3QgeyByZXR1cm4gbV9zb2NrZXRHcm91cDsgfQpAQCAtODUsOSArODUsOCBAQCBwcml2
YXRlOgogICAgIGludCBHZXRPcHRpb24ocnRjOjpTb2NrZXQ6Ok9wdGlvbiwgaW50KikgZmluYWw7
CiAgICAgaW50IFNldE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uLCBpbnQpIGZpbmFsOwogCi0g
ICAgc3RhdGljIHZvaWQgc2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6Q29ubmVj
dGlvbiYpPiYmKTsKLQogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIG1fZmFjdG9yeTsKKyAg
ICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgV2ViQ29yZTo6TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgVHlwZSBtX3R5cGU7CiAgICAg
cnRjOjpTb2NrZXRBZGRyZXNzIG1fbG9jYWxBZGRyZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuY3BwCmluZGV4IGE4ZGE3Y2M5YWU4MDRmZTljMjg4YmVmMmQ1M2U2NWYyMzZhZGM4
MDYuLmQ0ODg3YmY4ZDVhMTM2MWRmMjY4M2Y4Y2MxMjdiYzY3ZTk3NTlkNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRG
YWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIFVTRShM
SUJXRUJSVEMpCiAKKyNpbmNsdWRlICJMaWJXZWJSVENOZXR3b3JrLmgiCisjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtSVENNb25pdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUlRDUHJvdmlk
ZXJNZXNzYWdlcy5oIgpAQCAtNDcsNTcgKzQ5LDgwIEBAIHN0YXRpYyBpbmxpbmUgcnRjOjpTb2Nr
ZXRBZGRyZXNzIHByZXBhcmVTb2NrZXRBZGRyZXNzKGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYK
IAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRl
U2VydmVyVGNwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGlu
dCBvcHRpb25zKQogewotICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2Nr
ZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJUQ1As
IGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBt
YWtlUmVmUHRyKG1fbmV0d29yay5jb25uZWN0aW9uKCkpOworICAgIGlmICghY29ubmVjdGlvbikg
eworICAgICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJObyBjb25uZWN0aW9uIHRvIGNyZWF0ZSBz
ZXJ2ZXIgVENQIHNvY2tldCIpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtdIHsKKyAgICAg
ICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAg
IGF1dG8qIGNvbm5lY3Rpb25QdHIgPSBjb25uZWN0aW9uLmdldCgpOworCisgICAgYXV0byBzb2Nr
ZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIGNvbm5lY3Rpb24ucmVsZWFz
ZU5vbk51bGwoKSwgc29ja2V0R3JvdXAsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQ
LCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFk
KFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGFkZHJlc3MgPSBwcmVwYXJlU29j
a2V0QWRkcmVzcyhhZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyksIG1p
blBvcnQsIG1heFBvcnQsIG9wdGlvbnNdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVNlcnZlclRDUFNvY2tldChp
ZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBt
YXhQb3J0LCBvcHRpb25zKSwgMCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgZXJyb3Ig
YmFjayB0byBzb2NrZXQKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgIGNvbm5l
Y3Rpb25QdHItPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlU2VydmVy
VENQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
KGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zKSwgMCk7CiAKLSAgICB9KTsKICAg
ICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCog
TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tl
dEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBv
cnQsIHVpbnQxNl90IG1heFBvcnQpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExp
YldlYlJUQ1NvY2tldD4oKnRoaXMsIHNvY2tldEdyb3VwLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6
OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwotCi0gICAgY2FsbE9uTWFpblRo
cmVhZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBhZGRyZXNzID0gcHJlcGFy
ZVNvY2tldEFkZHJlc3MoYWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMp
LCBtaW5Qb3J0LCBtYXhQb3J0XSgpIHsKLSAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQoaWRlbnRpZmllciwg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCksIDAp
KSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29ja2V0Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9KTsKKyAgICBhdXRvIGNvbm5lY3Rpb24g
PSBtYWtlUmVmUHRyKG1fbmV0d29yay5jb25uZWN0aW9uKCkpOworICAgIGlmICghY29ubmVjdGlv
bikgeworICAgICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJObyBjb25uZWN0aW9uIHRvIGNyZWF0
ZSBVRFAgc29ja2V0Iik7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgYXV0
byogY29ubmVjdGlvblB0ciA9IGNvbm5lY3Rpb24uZ2V0KCk7CisKKyAgICBhdXRvIHNvY2tldCA9
IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgY29ubmVjdGlvbi5yZWxlYXNlTm9u
TnVsbCgpLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpVRFAsIGFkZHJlc3Ms
IHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKKworICAgIGNvbm5lY3Rpb25QdHItPnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KHNvY2tldC0+aWRlbnRpZmll
cigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0
KSwgMCk7CisKICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAogcnRjOjpBc3luY1Bh
Y2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0
KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2Fs
QWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcm
JiB1c2VyQWdlbnQsIGNvbnN0IHJ0Yzo6UGFja2V0U29ja2V0VGNwT3B0aW9ucyYgb3B0aW9ucykK
IHsKLSAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywg
c29ja2V0R3JvdXAsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbEFkZHJl
c3MsIHJlbW90ZUFkZHJlc3MpOworICAgIGF1dG8gY29ubmVjdGlvbiA9IG1ha2VSZWZQdHIobV9u
ZXR3b3JrLmNvbm5lY3Rpb24oKSk7CisgICAgaWYgKCFjb25uZWN0aW9uKSB7CisgICAgICAgIFJF
TEVBU0VfTE9HKFdlYlJUQywgIk5vIGNvbm5lY3Rpb24gdG8gY3JlYXRlIGNsaWVudCBUQ1Agc29j
a2V0Iik7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CisgICAg
ICAgIH0pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgYXV0byogY29ubmVj
dGlvblB0ciA9IGNvbm5lY3Rpb24uZ2V0KCk7CisKKyAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlx
dWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgY29ubmVjdGlvbi5yZWxlYXNlTm9uTnVsbCgpLCBz
b2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1AsIGxvY2FsQWRkcmVz
cywgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6
OlNUQVRFX0NPTk5FQ1RJTkcpOwogCiAgICAgLy8gRklYTUU6IFdlIG9ubHkgdHJhbnNmZXIgb3B0
aW9ucy5vcHRzIGJ1dCBzaG91bGQgYWxzbyBoYW5kbGUgb3RoZXIgbWVtYmVycy4KLSAgICBjYWxs
T25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGxvY2FsQWRk
cmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3Mo
cmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCB1c2VyQWdl
bnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25z
Lm9wdHNdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlmaWVyLCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcyksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MocmVtb3RlQWRkcmVzcyksIHVzZXJBZ2VudCwgb3B0aW9ucyksIDApKSB7Ci0gICAgICAgICAg
ICAvLyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29ja2V0Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLSAgICB9KTsKKyAgICBjb25uZWN0aW9uUHRyLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChzb2NrZXQtPmlkZW50aWZp
ZXIoKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhsb2Nh
bEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSksIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNh
YmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwgdXNlckFnZW50LCBvcHRpb25zLm9wdHMpLCAw
KTsKKwogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCiBydGM6OkFzeW5jUGFja2V0
U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0
KExpYldlYlJUQ1NvY2tldCYgc2VydmVyU29ja2V0LCBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
IHJlbW90ZUFkZHJlc3MpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJU
Q1NvY2tldD4oKnRoaXMsIHNlcnZlclNvY2tldC5zb2NrZXRHcm91cCgpLCBMaWJXZWJSVENTb2Nr
ZXQ6OlR5cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1AsIHNlcnZlclNvY2tldC5sb2NhbEFkZHJlc3Mo
KSwgcmVtb3RlQWRkcmVzcyk7CisgICAgYXV0byBjb25uZWN0aW9uID0gbWFrZVJlZlB0cihtX25l
dHdvcmsuY29ubmVjdGlvbigpKTsKKyAgICBpZiAoIWNvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVM
RUFTRV9MT0coV2ViUlRDLCAiTm8gY29ubmVjdGlvbiB0byBjcmVhdGUgaW5jb21pbmcgVENQIHNv
Y2tldCIpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtdIHsKKyAgICAgICAgICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOworICAg
ICAgICB9KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGF1dG8qIGNvbm5l
Y3Rpb25QdHIgPSBjb25uZWN0aW9uLmdldCgpOworCisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5p
cXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIGNvbm5lY3Rpb24ucmVsZWFzZU5vbk51bGwoKSwg
c2VydmVyU29ja2V0LnNvY2tldEdyb3VwKCksIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVy
Q29ubmVjdGlvblRDUCwgc2VydmVyU29ja2V0LmxvY2FsQWRkcmVzcygpLCByZW1vdGVBZGRyZXNz
KTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExpYldlYlJUQ1NvY2tldDo6U1RBVEVfQ09OTkVDVEVE
KTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZp
ZXIoKSwgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXJdKCkgewotICAgICAgICBpZiAoIVdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OldyYXBOZXdUQ1BD
b25uZWN0aW9uKGlkZW50aWZpZXIsIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKSwgMCkp
IHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgZXJyb3IgYmFjayB0byBzb2NrZXQKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0pOworICAgIGNvbm5lY3Rpb25QdHItPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6V3JhcE5ld1RDUENvbm5lY3Rpb24oc29j
a2V0LT5pZGVudGlmaWVyKCksIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKSwgMCk7CisK
ICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRG
YWN0b3J5LmgKaW5kZXggZDBhNjI3YjdjOTViNjFjMGM4MDNmY2I1OWY3MTg0MzQ3YTY4MmE5Yy4u
NWNiNzExZTNlNmU5OGZmNjQxZTMzOGE0ZjFjMDllNDU3MWEwZDdmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rv
cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDU29ja2V0RmFjdG9yeS5oCkBAIC0zNywxMSArMzcsMTUgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKK2NsYXNzIExpYldlYlJUQ05ldHdvcms7CiBjbGFzcyBMaWJXZWJSVENTb2NrZXQ7CiAK
IGNsYXNzIExpYldlYlJUQ1NvY2tldEZhY3RvcnkgewogcHVibGljOgotICAgIExpYldlYlJUQ1Nv
Y2tldEZhY3RvcnkoKSB7IH0KKyAgICBleHBsaWNpdCBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KExp
YldlYlJUQ05ldHdvcmsmIG5ldHdvcmspCisgICAgICAgIDogbV9uZXR3b3JrKG5ldHdvcmspCisg
ICAgeworICAgIH0KIAogICAgIHZvaWQgYWRkU29ja2V0KExpYldlYlJUQ1NvY2tldCYpOwogICAg
IHZvaWQgcmVtb3ZlU29ja2V0KExpYldlYlJUQ1NvY2tldCYpOwpAQCAtNjAsNiArNjQsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlz
YWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsgfQogCiBwcml2YXRlOgorICAgIExp
YldlYlJUQ05ldHdvcmsmIG1fbmV0d29yazsKKwogICAgIC8vIFdlIGNhbm5vdCBvd24gc29ja2V0
cywgY2xpZW50cyBvZiB0aGUgZmFjdG9yeSBhcmUgcmVzcG9uc2libGUgdG8gZnJlZSB0aGVtLgog
ICAgIEhhc2hNYXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRD
U29ja2V0Kj4gbV9zb2NrZXRzOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398509</attachid>
            <date>2020-05-05 08:26:31 -0700</date>
            <delta_ts>2020-05-06 05:49:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211291-20200505172628.patch</filename>
            <type>text/plain</type>
            <size>16452</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJhMWRiYjVjMTdlZmYzOWIz
Zjg3ZmYxN2FjYWJjMjQyYmQ3OGRjYWQuLjg5MzA3YjRiZGU5MDc4YWE5NThjMzgzYjMxOGI0ZGEz
ZGRmNzJiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjAtMDUtMDUgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyOTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb2xsb3dpbmcgb24gcmVj
ZWl2aW5nIFJUQyBwYWNrZXRzIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZCwgd2UgYWxzbyBzZW5k
IFJUQyBwYWNrZXRzIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZC4KKyAgICAgICAgQ3JlYXRpb24g
b2YgdGhlIHNvY2tldHMgYWxzbyBoYXBwZW5zIGluIGEgYmFja2dyb3VuZCB0aHJlYWQuCisgICAg
ICAgIEF0IGNyZWF0aW9uIG9mIHRoZSBzb2NrZXQsIHdlIGdldCB0aGUgSVBDIGNvbm5lY3Rpb24g
dG8gdGhlIG5ldHdvcmsgcHJvY2VzcyBhbmQga2VlcCBhIHJlZiBpbiB0aGUgUlRDIHNvY2tldC4K
KyAgICAgICAgSW4gY2FzZSBuZXR3b3JrIHByb2Nlc3MgY3Jhc2hlZCBhbmQgdGhlIElQQyBjb25u
ZWN0aW9uIG9mIHRoZSBSVEMgbmV0d29yayBpcyBudWxsLCB3ZSBob3AgdG8gdGhlIG1haW4gdGhy
ZWFkIHRvIGNyZWF0ZSBhIG5ldyBJUEMgY29ubmVjdGlvbi4KKyAgICAgICAgVGhpcyB3aWxsIGZh
aWwgdGhlIGNyZWF0aW9uIG9mIHRoZSBzb2NrZXQgKGFzIHdlbGwgYXMgbmV3IG9uZXMgYXMgd2Vs
bCkgYXMgbG9uZyBhcyB0aGUgSVBDIGNvbm5lY3Rpb24gdG8gbmV0d29yayBwcm9jZXNzIGlzIG5v
dCB2YWxpZCBhZ2Fpbi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6OkxpYldlYlJUQ05ldHdvcmspOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENOZXR3b3JrOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6TGliV2ViUlRDU29ja2V0KToKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDU29ja2V0OjpTZW5kVG8pOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXQ6OkNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpTZXRPcHRp
b24pOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnN1c3BlbmQpOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNlbmRPbk1haW5UaHJlYWQpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2Vy
dmVyVGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6
Y3JlYXRlVWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9y
eTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29j
a2V0RmFjdG9yeTo6Y3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5Lmg6CisgICAgICAgIChX
ZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkxpYldlYlJUQ1NvY2tldEZhY3RvcnkpOgor
CiAyMDIwLTA1LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZWNlaXZpbmcgV2ViUlRDIG5ldHdvcmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2gg
dGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaAppbmRleCA1Y2RmNGY3NTJjNjU2YjA1
YzUwM2IwOGQ3YTBmM2NkZmE0NmEwOTIyLi5kYzhhNjRiNWI2NDM5YjRkNDdlOTg5M2FjOGY3Yjlj
M2JmNDhiMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKQEAgLTM4LDEwICszOCwxOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIExpYldlYlJUQ05ldHdvcmsgOiBwdWJsaWMgSVBDOjpDb25u
ZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIExpYldlYlJUQ05ldHdvcmsoKSA9IGRlZmF1bHQ7CisgICAgTGli
V2ViUlRDTmV0d29yaygpCisjaWYgVVNFKExJQldFQlJUQykKKyAgICAgICAgOiBtX3NvY2tldEZh
Y3RvcnkoKnRoaXMpCisjZW5kaWYKKyAgICB7CisgICAgfQorCiAgICAgfkxpYldlYlJUQ05ldHdv
cmsoKTsKIAorICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5nZXQoKTsgfQogICAgIHZvaWQgc2V0Q29ubmVjdGlvbihSZWZQdHI8SVBDOjpDb25u
ZWN0aW9uPiYmKTsKKwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVkKCk7CiAKICAgICBi
b29sIGlzQWN0aXZlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCmluZGV4IDdhZWQ2NDU3
YTgzODE1N2I3MmIwMjM3NDBkOGQ3NTI0OGJhNTI2NDMuLjlkYzcxNjQ2ZDZlZmMzMWVlYzEzMzEx
MTIzZGQ1ODgzOWU3ZTE3YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCkBAIC00MCw4ICs0MCw5
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1MaWJXZWJSVENTb2NrZXQ6OkxpYldlYlJUQ1Nv
Y2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBjb25zdCB2b2lkKiBzb2NrZXRH
cm91cCwgVHlwZSB0eXBlLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQorTGliV2ViUlRDU29ja2V0
OjpMaWJXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgVHlw
ZSB0eXBlLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQogICAgIDogbV9mYWN0b3J5KGZhY3Rvcnkp
CisgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1faWRlbnRp
ZmllcihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAg
ICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX2xvY2FsQWRkcmVzcyhsb2NhbEFkZHJlc3MpCkBAIC01
NywxMyArNTgsNiBAQCBMaWJXZWJSVENTb2NrZXQ6On5MaWJXZWJSVENTb2NrZXQoKQogICAgIG1f
ZmFjdG9yeS5yZW1vdmVTb2NrZXQoKnRoaXMpOwogfQogCi12b2lkIExpYldlYlJUQ1NvY2tldDo6
c2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYpPiYmIGNhbGxi
YWNrKQotewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKCkgewotICAgICAgICBjYWxsYmFjayhXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkpOwotICAgIH0pOwotfQotCiBy
dGM6OlNvY2tldEFkZHJlc3MgTGliV2ViUlRDU29ja2V0OjpHZXRMb2NhbEFkZHJlc3MoKSBjb25z
dAogewogICAgIHJldHVybiBtX2xvY2FsQWRkcmVzczsKQEAgLTE0MSwxMyArMTM1LDkgQEAgaW50
IExpYldlYlJUQ1NvY2tldDo6U2VuZFRvKGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwg
Y29uc3QgcnRjOjpTb2NrZXRBZGQKICAgICBpZiAobV9pc1N1c3BlbmRlZCkKICAgICAgICAgcmV0
dXJuIHNpemU7CiAKLSAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZSksIHNpemUpOwotICAgIGF1dG8g
aWRlbnRpZmllciA9IHRoaXMtPmlkZW50aWZpZXIoKTsKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4odmFsdWUpLCBzaXplKTsKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OlNlbmRUbyB7IGRhdGEs
IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgeyBhZGRyZXNzIH0sIFJUQ1BhY2tldE9wdGlvbnMg
eyBvcHRpb25zIH0gfSwgbV9pZGVudGlmaWVyKTsKIAotICAgIHNlbmRPbk1haW5UaHJlYWQoW2lk
ZW50aWZpZXIsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcywgb3B0aW9uc10oYXV0
byYgY29ubmVjdGlvbikgewotICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YShyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+c2l6ZSgp
KTsKLSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpT
ZW5kVG8geyBkYXRhLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHsgYWRkcmVzcyB9LCBSVENQ
YWNrZXRPcHRpb25zIHsgb3B0aW9ucyB9IH0sIGlkZW50aWZpZXIpOwotICAgIH0pOwogICAgIHJl
dHVybiBzaXplOwogfQogCkBAIC0xNTgsOSArMTQ4LDggQEAgaW50IExpYldlYlJUQ1NvY2tldDo6
Q2xvc2UoKQogCiAgICAgbV9zdGF0ZSA9IFNUQVRFX0NMT1NFRDsKIAotICAgIHNlbmRPbk1haW5U
aHJlYWQoW2lkZW50aWZpZXIgPSBpZGVudGlmaWVyKCldKGF1dG8mIGNvbm5lY3Rpb24pIHsKLSAg
ICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpDbG9zZSgp
LCBpZGVudGlmaWVyKTsKLSAgICB9KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlKCksIG1faWRlbnRpZmllcik7CisKICAgICByZXR1cm4g
MDsKIH0KIApAQCAtMTgwLDkgKzE2OSw4IEBAIGludCBMaWJXZWJSVENTb2NrZXQ6OlNldE9wdGlv
bihydGM6OlNvY2tldDo6T3B0aW9uIG9wdGlvbiwgaW50IHZhbHVlKQogCiAgICAgbV9vcHRpb25z
W29wdGlvbl0gPSB2YWx1ZTsKIAotICAgIHNlbmRPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBp
ZGVudGlmaWVyKCksIG9wdGlvbiwgdmFsdWVdKGF1dG8mIGNvbm5lY3Rpb24pIHsKLSAgICAgICAg
Y29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpTZXRPcHRpb24ob3B0
aW9uLCB2YWx1ZSksIGlkZW50aWZpZXIpOwotICAgIH0pOworICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6U2V0T3B0aW9uKG9wdGlvbiwgdmFsdWUpLCBt
X2lkZW50aWZpZXIpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTIwNywxMSArMTk1LDggQEAg
dm9pZCBMaWJXZWJSVENTb2NrZXQ6OnN1c3BlbmQoKQogICAgIG1faXNTdXNwZW5kZWQgPSB0cnVl
OwogCiAgICAgLy8gT24gc3VzcGVuZCwgd2UgY2xvc2UgVENQIHNvY2tldHMgYXMgd2UgY2Fubm90
IG1ha2Ugc3VyZSBwYWNrZXRzIGFyZSBkZWxpdmVyZWQgcmVsaWFibHkuCi0gICAgaWYgKG1fdHlw
ZSAhPSBUeXBlOjpVRFApIHsKLSAgICAgICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9
IGlkZW50aWZpZXIoKV0oYXV0byYgY29ubmVjdGlvbikgewotICAgICAgICAgICAgY29ubmVjdGlv
bi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpDbG9zZSB7IH0sIGlkZW50aWZpZXIp
OwotICAgICAgICB9KTsKLSAgICB9CisgICAgaWYgKG1fdHlwZSAhPSBUeXBlOjpVRFApCisgICAg
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6Q2xvc2Ug
eyB9LCBtX2lkZW50aWZpZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXQuaAppbmRleCBiMmU4ZWNjNzk4ZjkxM2U2YzkyNmJkNzIzNWYzMzE5Njg1YjU5YjEwLi5m
YTA0ZjhhOGViMDRmZWZjZWIzNmU5MTUxMDI3M2M1ZjY4NWVkZmYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dC5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIExpYldlYlJUQ1NvY2tldCBmaW5hbCA6IHB1Ymxp
YyBydGM6OkFzeW5jUGFja2V0U29ja2V0IHsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIFR5cGUg
eyBVRFAsIFNlcnZlclRDUCwgQ2xpZW50VENQLCBTZXJ2ZXJDb25uZWN0aW9uVENQIH07CiAKLSAg
ICBMaWJXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYsIGNvbnN0IHZvaWQqIHNv
Y2tldEdyb3VwLCBUeXBlLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKTsKKyAgICBMaWJXZWJSVENT
b2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGNv
bnN0IHZvaWQqIHNvY2tldEdyb3VwLCBUeXBlLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxv
Y2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKTsKICAg
ICB+TGliV2ViUlRDU29ja2V0KCk7CiAKICAgICBjb25zdCB2b2lkKiBzb2NrZXRHcm91cCgpIGNv
bnN0IHsgcmV0dXJuIG1fc29ja2V0R3JvdXA7IH0KQEAgLTYyLDYgKzYyLDggQEAgcHVibGljOgog
ICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAKKyAgICBJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb247IH0KKwogcHJpdmF0ZToK
ICAgICBib29sIHdpbGxTZW5kKHNpemVfdCk7CiAKQEAgLTg1LDkgKzg3LDggQEAgcHJpdmF0ZToK
ICAgICBpbnQgR2V0T3B0aW9uKHJ0Yzo6U29ja2V0OjpPcHRpb24sIGludCopIGZpbmFsOwogICAg
IGludCBTZXRPcHRpb24ocnRjOjpTb2NrZXQ6Ok9wdGlvbiwgaW50KSBmaW5hbDsKIAotICAgIHN0
YXRpYyB2b2lkIHNlbmRPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChJUEM6OkNvbm5lY3Rpb24m
KT4mJik7Ci0KICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBtX2ZhY3Rvcnk7CisgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFR5cGUgbV90eXBlOwogICAgIHJ0Yzo6
U29ja2V0QWRkcmVzcyBtX2xvY2FsQWRkcmVzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmNwcAppbmRleCBhOGRhN2NjOWFlODA0ZmU5YzI4OGJlZjJkNTNlNjVmMjM2YWRjODA2Li4y
YmEzMWU0YmVjZDYwNzZjZGVjM2YyOWRhMjRjMzYxMjJhYjQyNDIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9y
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBVU0UoTElCV0VC
UlRDKQogCisjaW5jbHVkZSAiTGliV2ViUlRDTmV0d29yay5oIgorI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3
b3JrUlRDTW9uaXRvck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyTWVz
c2FnZXMuaCIKQEAgLTQ3LDU3ICs0OSw3NiBAQCBzdGF0aWMgaW5saW5lIHJ0Yzo6U29ja2V0QWRk
cmVzcyBwcmVwYXJlU29ja2V0QWRkcmVzcyhjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmCiAKIHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZl
clRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0
aW9ucykKIHsKLSAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0Pigq
dGhpcywgc29ja2V0R3JvdXAsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRy
ZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CisgICAgYXV0byBjb25uZWN0aW9uID0gbWFrZVJl
ZlB0cihtX25ldHdvcmsuY29ubmVjdGlvbigpKTsKKyAgICBpZiAoIWNvbm5lY3Rpb24pIHsKKyAg
ICAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAiTm8gY29ubmVjdGlvbiB0byBjcmVhdGUgc2VydmVy
IFRDUCBzb2NrZXQiKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGF1
dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBjb25uZWN0aW9u
LnJlbGVhc2VOb25OdWxsKCksIHNvY2tldEdyb3VwLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNl
cnZlclRDUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogCi0gICAgY2FsbE9uTWFp
blRocmVhZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBhZGRyZXNzID0gcHJl
cGFyZVNvY2tldEFkZHJlc3MoYWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlv
bnMpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zXSgpIHsKLSAgICAgICAgaWYgKCFXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVTZXJ2ZXJUQ1BT
b2NrZXQoaWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWlu
UG9ydCwgbWF4UG9ydCwgb3B0aW9ucyksIDApKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogU2V0
IGVycm9yIGJhY2sgdG8gc29ja2V0Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAg
ICBzb2NrZXQtPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6
OkNyZWF0ZVNlcnZlclRDUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyksIDApOwog
Ci0gICAgfSk7CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKIHJ0Yzo6QXN5bmNQ
YWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChjb25z
dCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1
aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogewotICAgIGF1dG8gc29ja2V0ID0g
bWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRD
U29ja2V0OjpUeXBlOjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKLQotICAg
IGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRk
cmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7Ci0gICAgICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0
KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQs
IG1heFBvcnQpLCAwKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRv
IHNvY2tldAotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSk7CisgICAgYXV0
byBjb25uZWN0aW9uID0gbWFrZVJlZlB0cihtX25ldHdvcmsuY29ubmVjdGlvbigpKTsKKyAgICBp
ZiAoIWNvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAiTm8gY29ubmVj
dGlvbiB0byBjcmVhdGUgVURQIHNvY2tldCIpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtd
IHsKKyAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRo
aXMsIGNvbm5lY3Rpb24ucmVsZWFzZU5vbk51bGwoKSwgc29ja2V0R3JvdXAsIExpYldlYlJUQ1Nv
Y2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CisKKyAgICBz
b2NrZXQtPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNy
ZWF0ZVVEUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29ja2V0QWRk
cmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCksIDApOworCiAgICAgcmV0dXJuIHNvY2tl
dC5yZWxlYXNlKCk7CiB9CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBydGM6OlBh
Y2tldFNvY2tldFRjcE9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBtYWtl
VW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIHNvY2tldEdyb3VwLCBMaWJXZWJSVENTb2Nr
ZXQ6OlR5cGU6OkNsaWVudFRDUCwgbG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzKTsKKyAgICBh
dXRvIGNvbm5lY3Rpb24gPSBtYWtlUmVmUHRyKG1fbmV0d29yay5jb25uZWN0aW9uKCkpOworICAg
IGlmICghY29ubmVjdGlvbikgeworICAgICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJObyBjb25u
ZWN0aW9uIHRvIGNyZWF0ZSBjbGllbnQgVENQIHNvY2tldCIpOworICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFtdIHsKKyAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgfQorCisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1Nv
Y2tldD4oKnRoaXMsIGNvbm5lY3Rpb24ucmVsZWFzZU5vbk51bGwoKSwgc29ja2V0R3JvdXAsIExp
YldlYlJUQ1NvY2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJl
c3MpOwogICAgIHNvY2tldC0+c2V0U3RhdGUoTGliV2ViUlRDU29ja2V0OjpTVEFURV9DT05ORUNU
SU5HKTsKIAogICAgIC8vIEZJWE1FOiBXZSBvbmx5IHRyYW5zZmVyIG9wdGlvbnMub3B0cyBidXQg
c2hvdWxkIGFsc28gaGFuZGxlIG90aGVyIG1lbWJlcnMuCi0gICAgY2FsbE9uTWFpblRocmVhZChb
aWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBsb2NhbEFkZHJlc3MgPSBwcmVwYXJl
U29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rp
b25zKSwgcmVtb3RlQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3Ms
IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSwgdXNlckFnZW50ID0gV1RGTW92ZSh1
c2VyQWdlbnQpLmlzb2xhdGVkQ29weSgpLCBvcHRpb25zID0gb3B0aW9ucy5vcHRzXSgpIHsKLSAg
ICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVy
OjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRk
cmVzcyhsb2NhbEFkZHJlc3MpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJl
c3MpLCB1c2VyQWdlbnQsIG9wdGlvbnMpLCAwKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNl
dCBlcnJvciBiYWNrIHRvIHNvY2tldAotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgfSk7CisgICAgc29ja2V0LT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3MobG9jYWxBZGRyZXNz
LCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCBSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxv
Y2FsaG9zdENvbm5lY3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0aW9ucy5vcHRzKSwgMCk7CisKICAg
ICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCog
TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldChMaWJXZWJS
VENTb2NrZXQmIHNlcnZlclNvY2tldCwgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25u
ZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVB
ZGRyZXNzKQogewotICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+
KCp0aGlzLCBzZXJ2ZXJTb2NrZXQuc29ja2V0R3JvdXAoKSwgTGliV2ViUlRDU29ja2V0OjpUeXBl
OjpTZXJ2ZXJDb25uZWN0aW9uVENQLCBzZXJ2ZXJTb2NrZXQubG9jYWxBZGRyZXNzKCksIHJlbW90
ZUFkZHJlc3MpOworICAgIGF1dG8gY29ubmVjdGlvbiA9IG1ha2VSZWZQdHIobV9uZXR3b3JrLmNv
bm5lY3Rpb24oKSk7CisgICAgaWYgKCFjb25uZWN0aW9uKSB7CisgICAgICAgIFJFTEVBU0VfTE9H
KFdlYlJUQywgIk5vIGNvbm5lY3Rpb24gdG8gY3JlYXRlIGluY29taW5nIFRDUCBzb2NrZXQiKTsK
KyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGF1dG8gc29ja2V0ID0gbWFr
ZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBjb25uZWN0aW9uLnJlbGVhc2VOb25OdWxs
KCksIHNlcnZlclNvY2tldC5zb2NrZXRHcm91cCgpLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNl
cnZlckNvbm5lY3Rpb25UQ1AsIHNlcnZlclNvY2tldC5sb2NhbEFkZHJlc3MoKSwgcmVtb3RlQWRk
cmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5F
Q1RFRCk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVu
dGlmaWVyKCksIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyXSgpIHsKLSAgICAgICAgaWYg
KCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpXcmFwTmV3
VENQQ29ubmVjdGlvbihpZGVudGlmaWVyLCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciks
IDApKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29ja2V0Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9KTsKKyAgICBzb2NrZXQtPmNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OldyYXBOZXdUQ1BDb25u
ZWN0aW9uKHNvY2tldC0+aWRlbnRpZmllcigpLCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmll
ciksIDApOworCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRG
YWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDU29ja2V0RmFjdG9yeS5oCmluZGV4IGQwYTYyN2I3Yzk1YjYxYzBjODAzZmNiNTlmNzE4NDM0
N2E2ODJhOWMuLjVjYjcxMWUzZTZlOThmZjY0MWUzMzhhNGYxYzA5ZTQ1NzFhMGQ3ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaApAQCAtMzcsMTEgKzM3LDE1IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCitjbGFzcyBMaWJXZWJSVENOZXR3b3JrOwogY2xhc3MgTGliV2ViUlRD
U29ja2V0OwogCiBjbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgeyB9CisgICAgZXhwbGljaXQgTGliV2ViUlRDU29ja2V0
RmFjdG9yeShMaWJXZWJSVENOZXR3b3JrJiBuZXR3b3JrKQorICAgICAgICA6IG1fbmV0d29yayhu
ZXR3b3JrKQorICAgIHsKKyAgICB9CiAKICAgICB2b2lkIGFkZFNvY2tldChMaWJXZWJSVENTb2Nr
ZXQmKTsKICAgICB2b2lkIHJlbW92ZVNvY2tldChMaWJXZWJSVENTb2NrZXQmKTsKQEAgLTYwLDYg
KzY0LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25z
KCkgeyBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyA9IHRydWU7IH0KIAogcHJpdmF0
ZToKKyAgICBMaWJXZWJSVENOZXR3b3JrJiBtX25ldHdvcms7CisKICAgICAvLyBXZSBjYW5ub3Qg
b3duIHNvY2tldHMsIGNsaWVudHMgb2YgdGhlIGZhY3RvcnkgYXJlIHJlc3BvbnNpYmxlIHRvIGZy
ZWUgdGhlbS4KICAgICBIYXNoTWFwPFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIs
IExpYldlYlJUQ1NvY2tldCo+IG1fc29ja2V0czsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398604</attachid>
            <date>2020-05-06 05:49:13 -0700</date>
            <delta_ts>2020-05-06 07:42:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211291-20200506144910.patch</filename>
            <type>text/plain</type>
            <size>26385</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1M2QwMzE2MzQ0YjY3
NTZmY2FhYzMxM2M3ODIzYjMzMjcxZjc4Yy4uZjY5YWJjMjM2NTVlYTBkNGU2NTQ2MTk5YmFjMjg0
YzQwMTYzOWVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kaW5nIFdlYlJUQyBu
ZXR3b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWluIHRocmVhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjkxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6ZmlsdGVyU0RQIGNvbnN0KToKKyAgICAgICAgRml4IGEgY2FzZSB3aGVyZSB0aGUgU0RQIHdv
dWxkIGJlIGJhZGx5IGZvcm1hdHRlZCB3ZSBkbyBub3QgaGF2ZSB5ZXQgYSBNRE5TIG5hbWUgZm9y
IHRoZSBjb3JyZXNwb25kaW5nIElQIGFkZHJlc3MuCisgICAgICAgIFNtYWxsIHJlZmFjdG9yaW5n
IHRvIHVzZSBsZXNzIGVsc2UgaWYKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRD
UHJvdmlkZXI6OmdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgQWRk
IHRoZSBhYmlsaXR5IGZvciBXZWJLaXQgTGliV2ViUlRDUHJvdmlkZXIgdG8gZG8gc29tZSBwcm9j
ZXNzaW5nIG9uIGNyZWF0aW9uIG9mIHRoZSBSVEMgdGhyZWFkcy4KKwogMjAyMC0wNS0wNSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHNob3VsZCB1bm9ic2VydmUgdGhlIHRyYWNrcyBmcm9tIGl0
cyBhdWRpbyBhbmQgdmlkZW8gdHJhY2sgc2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyYTFkYmI1YzE3ZWZmMzli
M2Y4N2ZmMTdhY2FiYzI0MmJkNzhkY2FkLi41NDQ2Yjk1YjI1YjA0NTMyYTFlNTZlZjlkYmE4ZWZl
NGRlOWNlNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA1LTA2ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kaW5nIFdlYlJUQyBuZXR3
b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWluIHRocmVhZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjkxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93aW5nIG9uIHJl
Y2VpdmluZyBSVEMgcGFja2V0cyBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQsIHdlIGFsc28gc2Vu
ZCBSVEMgcGFja2V0cyBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQuCisgICAgICAgIENyZWF0aW9u
IG9mIHRoZSBzb2NrZXRzIGFsc28gaGFwcGVucyBpbiBhIGJhY2tncm91bmQgdGhyZWFkLgorICAg
ICAgICBMaWJXZWJSVENOZXR3b3JrIGlzIGdldHRpbmcgdGhlIGNvbm5lY3Rpb24gd2hlbmV2ZXIg
YSBuZXcgY29ubmVjdGlvbiB0byBuZXR3b3JrIHByb2Nlc3MgaXMgY3JlYXRlZC4KKyAgICAgICAg
SXQgd2lsbCB0aGVuIGhvcCB0byB0aGUgUlRDIG5ldHdvcmsgdGhyZWFkIHRvIHNldCB0aGUgSVBD
IGNvbm5lY3Rpb24gdG8gdGhlIGxpYndlYnJ0YyBzb2NrZXQgZmFjdG9yeS4KKworICAgICAgICBB
dCBjcmVhdGlvbiBvZiB0aGUgc29ja2V0LCB3ZSBnZXQgdGhlIElQQyBjb25uZWN0aW9uIHRvIHRo
ZSBuZXR3b3JrIHByb2Nlc3MgYW5kIGtlZXAgYSByZWYgaW4gdGhlIFJUQyBzb2NrZXQuCisgICAg
ICAgIEluIGNhc2UgbmV0d29yayBwcm9jZXNzIGNyYXNoZWQgYW5kIHRoZSBJUEMgY29ubmVjdGlv
biBvZiB0aGUgUlRDIG5ldHdvcmsgaXMgbnVsbCwgd2UgaG9wIHRvIHRoZSBtYWluIHRocmVhZCB0
byBjcmVhdGUgYSBuZXcgSVBDIGNvbm5lY3Rpb24uCisgICAgICAgIFRoaXMgd2lsbCBmYWlsIHRo
ZSBjcmVhdGlvbiBvZiB0aGUgc29ja2V0IChhcyB3ZWxsIGFzIG5ldyBvbmVzIGFzIHdlbGwpIGFz
IGxvbmcgYXMgdGhlIElQQyBjb25uZWN0aW9uIHRvIG5ldHdvcmsgcHJvY2VzcyBpcyBub3QgdmFs
aWQgYWdhaW4uCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6OnNldEFzQWN0aXZlKToKKyAgICAgICAgKFdl
YktpdDo6TGliV2ViUlRDTmV0d29yazo6c2V0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ05ldHdvcms6OmRpc3BhdGNoVG9UaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oOgorICAgICAgICAoV2ViS2l0OjpM
aWJXZWJSVENOZXR3b3JrOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRD
TmV0d29yazo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQ
cm92aWRlcjo6c3RhcnRlZE5ldHdvcmtUaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldl
YlJUQ1NvY2tldDo6U2VuZFRvKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpD
bG9zZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6U2V0T3B0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OnNldENvbm5lY3Rpb24pOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpjb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KToK
KyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0
KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50
VGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3Jl
YXRlTmV3Q29ubmVjdGlvblNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZh
Y3Rvcnk6OnJlbW92ZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZh
Y3Rvcnk6OmZvclNvY2tldEluR3JvdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOgorCiAyMDIwLTA1LTAxICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWNlaXZpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAKaW5kZXggMGZiNzZmZGRmOWZmMTZiZThkNDcyNDkyMmFhNGYxOTMzMjVm
YTEyYS4uYzE0OWQyMWU4OGZhZGU2NjhmNDVkZjEyMjg0ZWVkODUyYWJlYWM2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcApAQCAtNDM5LDIzICs0MzksMzIgQEAgU3RyaW5nIFBlZXJDb25uZWN0
aW9uQmFja2VuZDo6ZmlsdGVyU0RQKFN0cmluZyYmIHNkcCkgY29uc3QKIAogICAgIFN0cmluZ0J1
aWxkZXIgZmlsdGVyZWRTRFA7CiAgICAgc2RwLnNwbGl0KCdcbicsIFt0aGlzLCAmZmlsdGVyZWRT
RFBdKFN0cmluZ1ZpZXcgbGluZSkgewotICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlO
IElQNCIpKQotICAgICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCJjPUlOIElQNCAwLjAuMC4w
XHIiKTsKLSAgICAgICAgZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlOIElQNiIpKQotICAg
ICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCJjPUlOIElQNiA6OlxyIik7Ci0gICAgICAgIGVs
c2UgaWYgKCFsaW5lLnN0YXJ0c1dpdGgoImE9Y2FuZGlkYXRlIikpCisgICAgICAgIGlmIChsaW5l
LnN0YXJ0c1dpdGgoImM9SU4gSVA0IikpIHsKKyAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVu
ZCgiYz1JTiBJUDQgMC4wLjAuMFxyXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlOIElQNiIpKSB7CisgICAgICAgICAg
ICBmaWx0ZXJlZFNEUC5hcHBlbmQoImM9SU4gSVA2IDo6XHJcbiIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIGlmICghbGluZS5zdGFydHNXaXRoKCJhPWNhbmRpZGF0
ZSIpKSB7CiAgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQobGluZSk7Ci0gICAgICAgIGVs
c2UgaWYgKGxpbmUuZmluZCgiIGhvc3QgIiwgMTEpID09IG5vdEZvdW5kKQorICAgICAgICAgICAg
ZmlsdGVyZWRTRFAuYXBwZW5kKCdcbicpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIGlmIChsaW5lLmZpbmQoIiBob3N0ICIsIDExKSA9PSBub3RGb3VuZCkgewogICAg
ICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKGZpbHRlcklDRUNhbmRpZGF0ZShsaW5lLnRvU3Ry
aW5nKCkpKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGlwQWRkcmVzcyA9IGV4
dHJhY3RJUEFkZHJlc3MobGluZSk7Ci0gICAgICAgICAgICBhdXRvIG1kbnNOYW1lID0gbV9pcEFk
ZHJlc3NUb01ETlNOYW1lTWFwLmdldChpcEFkZHJlc3MpOwotICAgICAgICAgICAgaWYgKCFtZG5z
TmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHNkcCA9IGxpbmUudG9TdHJp
bmcoKTsKLSAgICAgICAgICAgICAgICBzZHAucmVwbGFjZShpcEFkZHJlc3MsIG1kbnNOYW1lKTsK
LSAgICAgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoc2RwKTsKLSAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQorCisgICAgICAgIGF1dG8gaXBBZGRyZXNzID0gZXh0cmFjdElQQWRkcmVz
cyhsaW5lKTsKKyAgICAgICAgYXV0byBtZG5zTmFtZSA9IG1faXBBZGRyZXNzVG9NRE5TTmFtZU1h
cC5nZXQoaXBBZGRyZXNzKTsKKyAgICAgICAgaWYgKG1kbnNOYW1lLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBzZHAgPSBsaW5lLnRvU3RyaW5nKCk7CisgICAg
ICAgIHNkcC5yZXBsYWNlKGlwQWRkcmVzcywgbWRuc05hbWUpOworICAgICAgICBmaWx0ZXJlZFNE
UC5hcHBlbmQoc2RwKTsKICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCdcbicpOwogICAgIH0p
OwogICAgIHJldHVybiBmaWx0ZXJlZFNEUC50b1N0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAKaW5kZXggNjRkYjJiNGUxZGQ2MDBkYjcxMWExODgxNjgxNzU3MGI0
MjQ5M2RkNy4uZGYyZmQ3Y2NiNTQ1MWRkYmYzZjRjMjYyMzljOTk3ZDc0MGQ5Mzc1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgc3Rh
dGljIGlubGluZSBQZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzJiBzdGF0aWNGYWN0b3J5
QW5kVGhyZWFkcygpCiAgICAgcmV0dXJuIGZhY3RvcnlBbmRUaHJlYWRzLmdldCgpOwogfQogCi1z
dGF0aWMgaW5saW5lIFBlZXJDb25uZWN0aW9uRmFjdG9yeUFuZFRocmVhZHMmIGdldFN0YXRpY0Zh
Y3RvcnlBbmRUaHJlYWRzKGJvb2wgdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIpCitQ
ZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzJiBMaWJXZWJSVENQcm92aWRlcjo6Z2V0U3Rh
dGljRmFjdG9yeUFuZFRocmVhZHMoYm9vbCB1c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZl
cikKIHsKICAgICBhdXRvJiBmYWN0b3J5QW5kVGhyZWFkcyA9IHN0YXRpY0ZhY3RvcnlBbmRUaHJl
YWRzKCk7CiAKQEAgLTIwMCw2ICsyMDAsNyBAQCBzdGF0aWMgaW5saW5lIFBlZXJDb25uZWN0aW9u
RmFjdG9yeUFuZFRocmVhZHMmIGdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKGJvb2wgdQogICAg
IGlmICghZmFjdG9yeUFuZFRocmVhZHMubmV0d29ya1RocmVhZCkgewogICAgICAgICBmYWN0b3J5
QW5kVGhyZWFkcy5uZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlciA9IHVzZU5ldHdvcmtUaHJl
YWRXaXRoU29ja2V0U2VydmVyOwogICAgICAgICBpbml0aWFsaXplUGVlckNvbm5lY3Rpb25GYWN0
b3J5QW5kVGhyZWFkcyhmYWN0b3J5QW5kVGhyZWFkcyk7CisgICAgICAgIHN0YXJ0ZWROZXR3b3Jr
VGhyZWFkKCk7CiAgICAgfQogICAgIHJldHVybiBmYWN0b3J5QW5kVGhyZWFkczsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMjJiMTBkZDQ4MGM4N2Y0ZGNkMDQyZmJj
ODhjOTk1NGRlMzIwZDc4Zi4uMmU5NmU2NjIzZTk0YTk2Njg1NDQ3MjY3Y2M5MWRhMTMwNTBlZjVh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTU5LDYgKzU5LDcgQEAg
Y2xhc3MgUGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlOwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBMaWJXZWJSVENBdWRpb01vZHVsZTsKK3N0cnVjdCBQZWVyQ29ubmVjdGlvbkZh
Y3RvcnlBbmRUaHJlYWRzOwogc3RydWN0IFJUQ1J0cENhcGFiaWxpdGllczsKIAogZW51bSBjbGFz
cyBNRE5TUmVnaXN0ZXJFcnJvciB7IE5vdEltcGxlbWVudGVkLCBCYWRQYXJhbWV0ZXIsIEROU1NE
LCBJbnRlcm5hbCwgVGltZW91dCB9OwpAQCAtMTM0LDYgKzEzNSwxMCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBj
cmVhdGVEZWNvZGVyRmFjdG9yeSgpOwogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0
Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4gY3JlYXRlRW5jb2RlckZhY3RvcnkoKTsKIAorICAgIHZp
cnR1YWwgdm9pZCBzdGFydGVkTmV0d29ya1RocmVhZCgpIHsgfTsKKworICAgIFBlZXJDb25uZWN0
aW9uRmFjdG9yeUFuZFRocmVhZHMmIGdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKGJvb2wgdXNl
TmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIpOworCiAgICAgYm9vbCBtX2VuYWJsZUVudW1l
cmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMgeyBmYWxzZSB9OwogICAgIC8vIEZJWE1FOiBSZW1v
dmUgbV91c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlciBtZW1iZXIgdmFyaWFibGUgYW5k
IG1ha2UgaXQgYSBnbG9iYWwuCiAgICAgYm9vbCBtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0
U2VydmVyIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwCmluZGV4IDU0YjJiZDBjOWJk
ZTc3OTQ5YjM4ODYyMjY2NTAzZGEzNTNlNjIwOGMuLmEyMWNmOTQ5MjczOTY4OTU0ZTE4MzNmNzM5
NWNkMTM3NjdhYTFlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHAKQEAgLTM5LDYgKzM5LDE5
IEBAIExpYldlYlJUQ05ldHdvcms6On5MaWJXZWJSVENOZXR3b3JrKCkKICAgICBzZXRDb25uZWN0
aW9uKG51bGxwdHIpOwogfQogCit2b2lkIExpYldlYlJUQ05ldHdvcms6OnNldEFzQWN0aXZlKCkK
K3sKKyAgICBBU1NFUlQoIW1faXNBY3RpdmUpOworICAgIG1faXNBY3RpdmUgPSB0cnVlOworI2lm
IFVTRShMSUJXRUJSVEMpCisgICAgaWYgKG1fY29ubmVjdGlvbikgeworICAgICAgICBXZWJDb3Jl
OjpMaWJXZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRDTmV0d29ya1RocmVhZChbdGhpcywgY29u
bmVjdGlvbiA9IG1fY29ubmVjdGlvbl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG1fc29ja2V0
RmFjdG9yeS5zZXRDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpOworICAgICAgICB9KTsK
KyAgICB9CisjZW5kaWYKK30KKwogdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpuZXR3b3JrUHJvY2Vz
c0NyYXNoZWQoKQogewogICAgIHNldENvbm5lY3Rpb24obnVsbHB0cik7CkBAIC01NCw2ICs2Nywx
MSBAQCB2b2lkIExpYldlYlJUQ05ldHdvcms6OnNldENvbm5lY3Rpb24oUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIGlmIChtX2Nvbm5lY3Rpb24pCiAgICAgICAgIG1f
Y29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJS
VENOZXR3b3JrOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogI2VuZGlmCisgICAgaWYgKG1faXNB
Y3RpdmUpIHsKKyAgICAgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNhbGxPbldlYlJU
Q05ldHdvcmtUaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb25dKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBtX3NvY2tldEZhY3Rvcnkuc2V0Q29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAg
ICAgICAgfSk7CisgICAgfQogICAgIG1fY29ubmVjdGlvbiA9IFdURk1vdmUoY29ubmVjdGlvbik7
CiAjaWYgVVNFKExJQldFQlJUQykKICAgICBpZiAobV9jb25uZWN0aW9uKQpAQCAtNjEsMTggKzc5
LDkgQEAgdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpzZXRDb25uZWN0aW9uKFJlZlB0cjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICNlbmRpZgogfQogCi1ib29sIExpYldlYlJUQ05ldHdv
cms6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSNpZiBVU0UoTElCV0VCUlRDKQotICAgIHJldHVybiBX
ZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6aGFzV2ViUlRDVGhyZWFkcygpOwotI2Vsc2UKLSAg
ICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpkaXNw
YXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKLSAgICBpZiAoIWlz
QWN0aXZlKCkpIHsKKyAgICBpZiAoIW1faXNBY3RpdmUpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoV2ViUlRDLCAiUmVjZWl2ZWQgV2ViUlRDU29ja2V0IG1lc3NhZ2Ugd2hpbGUgbGliV2Vi
UlRDTmV0d29yayBpcyBub3QgYWN0aXZlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
TmV0d29yay5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ05ldHdvcmsuaAppbmRleCA1Y2RmNGY3NTJjNjU2YjA1YzUwM2IwOGQ3YTBmM2NkZmE0NmEw
OTIyLi4xNWJiMTZlNzk5ZmRmZDJlODlmZDUxNTM4MmQ0YmJjZjA1ZWNmYzIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29y
ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENOZXR3b3JrLmgKQEAgLTQxLDEwICs0MSwxMiBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRDTmV0
d29yaygpID0gZGVmYXVsdDsKICAgICB+TGliV2ViUlRDTmV0d29yaygpOwogCisgICAgSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAg
ICAgdm9pZCBzZXRDb25uZWN0aW9uKFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+JiYpOworCiAgICAg
dm9pZCBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIAotICAgIGJvb2wgaXNBY3RpdmUoKSBjb25z
dDsKKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjdGl2ZTsgfQogCiAj
aWYgVVNFKExJQldFQlJUQykKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtNjEsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgV2Vi
TUROU1JlZ2lzdGVyJiBtZG5zUmVnaXN0ZXIoKSB7IHJldHVybiBtX21kbnNSZWdpc3RlcjsgfQog
I2VuZGlmCiAKKyAgICB2b2lkIHNldEFzQWN0aXZlKCk7CisKIHByaXZhdGU6CiAjaWYgVVNFKExJ
QldFQlJUQykKICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgUlRDTmV0d29y
azo6SVBBZGRyZXNzJiwgdWludDE2X3QgcG9ydCwgaW50NjRfdCk7CkBAIC04MSw2ICs4NSw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgV2ViTUROU1JlZ2lzdGVyIG1fbWRu
c1JlZ2lzdGVyOwogI2VuZGlmCisgICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBS
ZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmNwcAppbmRleCBhNjZmOTU3N2E4NjFlOTk4YThmMjk0Y2QzYWViNTY4NWNlZGY0OTY5
Li44ZWMzNzY3ODU5NTBkMzA4YzM1YmRlZjI2Mjk4MDU1N2U5ZjM4ZGY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5jcHAKQEAgLTEzMSw2ICsxMzEsMTEgQEAgdm9pZCBSVENTb2NrZXRGYWN0b3J5
OjpyZXN1bWUoKQogICAgIH0pOwogfQogCit2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpzdGFydGVk
TmV0d29ya1RocmVhZCgpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRD
TmV0d29yaygpLnNldEFzQWN0aXZlKCk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQ
cm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3Jl
YXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQpCiB7CiAgICAgcmV0dXJuIG1ha2VV
bmlxdWU8UlRDU29ja2V0RmFjdG9yeT4oV1RGTW92ZSh1c2VyQWdlbnQpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmgKaW5kZXggNzU1ZDZjNmZmNmNjNzkzNmY4MTdkYmJlOTFlMDBmYzdiNDZhNTFlYy4u
YzZiM2UwYTQ0MTZjYTBhNTZlYzliNzBiZmNiMGQ1MzRjOTg3ZjIwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVucmVnaXN0ZXJN
RE5TTmFtZXMoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJl
Z2lzdGVyTUROU05hbWUoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGlwQWRkcmVzcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNRE5TTmFtZU9yRXJyb3ImJik+JiYp
IGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgZmluYWw7
CisgICAgdm9pZCBzdGFydGVkTmV0d29ya1RocmVhZCgpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4g
Y3JlYXRlRGVjb2RlckZhY3RvcnkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKaW5kZXgg
N2FlZDY0NTdhODM4MTU3YjcyYjAyMzc0MGQ4ZDc1MjQ4YmE1MjY0My4uZThlZTczNDE3ZWQ5YTBm
MDJkMGI4ZDRkNjVmOThmMzQzYmE1NzU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKQEAgLTU3
LDEzICs1Nyw2IEBAIExpYldlYlJUQ1NvY2tldDo6fkxpYldlYlJUQ1NvY2tldCgpCiAgICAgbV9m
YWN0b3J5LnJlbW92ZVNvY2tldCgqdGhpcyk7CiB9CiAKLXZvaWQgTGliV2ViUlRDU29ja2V0Ojpz
ZW5kT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+JiYgY2FsbGJh
Y2spCi17Ci0gICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oKSB7Ci0gICAgICAgIGNhbGxiYWNrKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7Ci0gICAgfSk7Ci19Ci0KIHJ0
Yzo6U29ja2V0QWRkcmVzcyBMaWJXZWJSVENTb2NrZXQ6OkdldExvY2FsQWRkcmVzcygpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fbG9jYWxBZGRyZXNzOwpAQCAtMTM1LDMyICsxMjgsMjkgQEAgYm9v
bCBMaWJXZWJSVENTb2NrZXQ6OndpbGxTZW5kKHNpemVfdCBzaXplKQogCiBpbnQgTGliV2ViUlRD
U29ja2V0OjpTZW5kVG8oY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYgb3B0aW9u
cykKIHsKLSAgICBpZiAoIXdpbGxTZW5kKHNpemUpKQorICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBt
X2ZhY3RvcnkuY29ubmVjdGlvbigpOworICAgIGlmICghY29ubmVjdGlvbiB8fCAhd2lsbFNlbmQo
c2l6ZSkpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChtX2lzU3VzcGVuZGVkKQogICAg
ICAgICByZXR1cm4gc2l6ZTsKIAotICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVm
ZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZhbHVlKSwgc2l6ZSk7Ci0g
ICAgYXV0byBpZGVudGlmaWVyID0gdGhpcy0+aWRlbnRpZmllcigpOworICAgIElQQzo6RGF0YVJl
ZmVyZW5jZSBkYXRhKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZSksIHNpemUpOwor
ICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OlNlbmRUbyB7
IGRhdGEsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgeyBhZGRyZXNzIH0sIFJUQ1BhY2tldE9w
dGlvbnMgeyBvcHRpb25zIH0gfSwgbV9pZGVudGlmaWVyKTsKIAotICAgIHNlbmRPbk1haW5UaHJl
YWQoW2lkZW50aWZpZXIsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcywgb3B0aW9u
c10oYXV0byYgY29ubmVjdGlvbikgewotICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YShy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+
c2l6ZSgpKTsKLSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29j
a2V0OjpTZW5kVG8geyBkYXRhLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHsgYWRkcmVzcyB9
LCBSVENQYWNrZXRPcHRpb25zIHsgb3B0aW9ucyB9IH0sIGlkZW50aWZpZXIpOwotICAgIH0pOwog
ICAgIHJldHVybiBzaXplOwogfQogCiBpbnQgTGliV2ViUlRDU29ja2V0OjpDbG9zZSgpCiB7Ci0g
ICAgaWYgKG1fc3RhdGUgPT0gU1RBVEVfQ0xPU0VEKQorICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBt
X2ZhY3RvcnkuY29ubmVjdGlvbigpOworICAgIGlmICghY29ubmVjdGlvbiB8fCBtX3N0YXRlID09
IFNUQVRFX0NMT1NFRCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBtX3N0YXRlID0gU1RBVEVf
Q0xPU0VEOwogCi0gICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IGlkZW50aWZpZXIo
KV0oYXV0byYgY29ubmVjdGlvbikgewotICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlKCksIGlkZW50aWZpZXIpOwotICAgIH0pOworICAgIGNv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlKCksIG1faWRl
bnRpZmllcik7CisKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTgwLDkgKzE3MCw5IEBAIGludCBM
aWJXZWJSVENTb2NrZXQ6OlNldE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uIG9wdGlvbiwgaW50
IHZhbHVlKQogCiAgICAgbV9vcHRpb25zW29wdGlvbl0gPSB2YWx1ZTsKIAotICAgIHNlbmRPbk1h
aW5UaHJlYWQoW2lkZW50aWZpZXIgPSBpZGVudGlmaWVyKCksIG9wdGlvbiwgdmFsdWVdKGF1dG8m
IGNvbm5lY3Rpb24pIHsKLSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UlRDU29ja2V0OjpTZXRPcHRpb24ob3B0aW9uLCB2YWx1ZSksIGlkZW50aWZpZXIpOwotICAgIH0p
OworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9mYWN0b3J5LmNvbm5lY3Rpb24oKSkKKyAg
ICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6U2V0T3B0
aW9uKG9wdGlvbiwgdmFsdWUpLCBtX2lkZW50aWZpZXIpOworCiAgICAgcmV0dXJuIDA7CiB9CiAK
QEAgLTIwNywxMSArMTk3LDExIEBAIHZvaWQgTGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKCkKICAg
ICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKIAogICAgIC8vIE9uIHN1c3BlbmQsIHdlIGNsb3NlIFRD
UCBzb2NrZXRzIGFzIHdlIGNhbm5vdCBtYWtlIHN1cmUgcGFja2V0cyBhcmUgZGVsaXZlcmVkIHJl
bGlhYmx5LgotICAgIGlmIChtX3R5cGUgIT0gVHlwZTo6VURQKSB7Ci0gICAgICAgIHNlbmRPbk1h
aW5UaHJlYWQoW2lkZW50aWZpZXIgPSBpZGVudGlmaWVyKCldKGF1dG8mIGNvbm5lY3Rpb24pIHsK
LSAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6
Q2xvc2UgeyB9LCBpZGVudGlmaWVyKTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIGlmIChtX3R5
cGUgPT0gVHlwZTo6VURQKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogY29ubmVj
dGlvbiA9IG1fZmFjdG9yeS5jb25uZWN0aW9uKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlIHsgfSwgbV9pZGVudGlmaWVyKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKaW5kZXggYjJlOGVjYzc5
OGY5MTNlNmM5MjZiZDcyMzVmMzMxOTY4NWI1OWIxMC4uY2I0OGUwNTczNDhhMmU4NjZiMDkxZmY1
YWM4NzI2MDVjYTE5MmRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaApAQCAtODUsOCArODUsNiBAQCBw
cml2YXRlOgogICAgIGludCBHZXRPcHRpb24ocnRjOjpTb2NrZXQ6Ok9wdGlvbiwgaW50KikgZmlu
YWw7CiAgICAgaW50IFNldE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uLCBpbnQpIGZpbmFsOwog
Ci0gICAgc3RhdGljIHZvaWQgc2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6Q29u
bmVjdGlvbiYpPiYmKTsKLQogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIG1fZmFjdG9yeTsK
ICAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAg
ICBUeXBlIG1fdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAppbmRleCBh
OGRhN2NjOWFlODA0ZmU5YzI4OGJlZjJkNTNlNjVmMjM2YWRjODA2Li5hNjg3OTQ0YzNkZGI0Mjc3
MDIzYzE4NmY0MWRjYmI3YjM0NzllZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rv
cnkuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBVU0UoTElCV0VCUlRDKQogCisjaW5jbHVk
ZSAiTGliV2ViUlRDTmV0d29yay5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrUlRDTW9uaXRvck1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyTWVzc2FnZXMuaCIKQEAgLTQ1
LDc2ICs0NywxMTAgQEAgc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNv
Y2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJgogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK3ZvaWQgTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c2V0Q29ubmVjdGlvbihSZWZQdHI8
SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFp
blJ1bkxvb3AoKSk7CisgICAgbV9jb25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsKK30K
KworSVBDOjpDb25uZWN0aW9uKiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpjb25uZWN0aW9uKCkK
K3sKKyAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKKyAgICByZXR1cm4gbV9jb25u
ZWN0aW9uLmdldCgpOworfQorCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAs
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWlu
dDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1
bkxvb3AoKSk7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFTRV9MT0co
V2ViUlRDLCAiTm8gY29ubmVjdGlvbiB0byBjcmVhdGUgc2VydmVyIFRDUCBzb2NrZXQiKTsKKyAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVu
aXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0
OjpUeXBlOjpTZXJ2ZXJUQ1AsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKIAotICAg
IGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRk
cmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9uc10oKSB7Ci0gICAgICAgIGlm
ICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRl
U2VydmVyVENQU29ja2V0KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRk
cmVzcyksIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnMpLCAwKSkgewotICAgICAgICAgICAgLy8g
RklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tldAotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlk
ZXI6OkNyZWF0ZVNlcnZlclRDUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyksIDAp
OwogCi0gICAgfSk7CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKIHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChj
b25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNz
LCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogeworICAgIEFTU0VSVCghV1RG
Ojppc01haW5SdW5Mb29wKCkpOworICAgIGlmICghbV9jb25uZWN0aW9uKSB7CisgICAgICAgIFJF
TEVBU0VfTE9HKFdlYlJUQywgIk5vIGNvbm5lY3Rpb24gdG8gY3JlYXRlIFVEUCBzb2NrZXQiKTsK
KyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFr
ZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29j
a2V0OjpUeXBlOjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKIAotICAgIGNh
bGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVz
cyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENv
bm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7Ci0gICAgICAgIGlmICghV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KGlk
ZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1h
eFBvcnQpLCAwKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNv
Y2tldAotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSk7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tl
dChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNz
KSwgbWluUG9ydCwgbWF4UG9ydCksIDApOworCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7
CiB9CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNy
ZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVt
b3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRj
cE9wdGlvbnMmIG9wdGlvbnMpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7
CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAi
Tm8gY29ubmVjdGlvbiB0byBjcmVhdGUgY2xpZW50IFRDUCBzb2NrZXQiKTsKKyAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJX
ZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpD
bGllbnRUQ1AsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRT
dGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5FQ1RJTkcpOwogCiAgICAgLy8gRklYTUU6
IFdlIG9ubHkgdHJhbnNmZXIgb3B0aW9ucy5vcHRzIGJ1dCBzaG91bGQgYWxzbyBoYW5kbGUgb3Ro
ZXIgbWVtYmVycy4KLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5p
ZGVudGlmaWVyKCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRk
cmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNzID0g
cHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0
Q29ubmVjdGlvbnMpLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5
KCksIG9wdGlvbnMgPSBvcHRpb25zLm9wdHNdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tl
dChpZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcyksIFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcyksIHVzZXJBZ2VudCwgb3B0aW9u
cyksIDApKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29ja2V0
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9KTsKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29j
a2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBh
cmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVj
dGlvbnMpKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhy
ZW1vdGVBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCB1c2VyQWdl
bnQsIG9wdGlvbnMub3B0cyksIDApOworCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9
CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0
ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQoTGliV2ViUlRDU29ja2V0JiBzZXJ2ZXJTb2NrZXQsIExpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKIHsKKyAgICBBU1NFUlQoIVdURjo6
aXNNYWluUnVuTG9vcCgpKTsKKyAgICBpZiAoIW1fY29ubmVjdGlvbikgeworICAgICAgICBSRUxF
QVNFX0xPRyhXZWJSVEMsICJObyBjb25uZWN0aW9uIHRvIGNyZWF0ZSBpbmNvbWluZyBUQ1Agc29j
a2V0Iik7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CisgICAg
ICAgIH0pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBhdXRvIHNvY2tl
dCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc2VydmVyU29ja2V0LnNvY2tl
dEdyb3VwKCksIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyQ29ubmVjdGlvblRDUCwgc2Vy
dmVyU29ja2V0LmxvY2FsQWRkcmVzcygpLCByZW1vdGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNl
dFN0YXRlKExpYldlYlJUQ1NvY2tldDo6U1RBVEVfQ09OTkVDVEVEKTsKIAotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgbmV3Q29ubmVjdGlv
blNvY2tldElkZW50aWZpZXJdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OldyYXBOZXdUQ1BDb25uZWN0aW9uKGlkZW50aWZp
ZXIsIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKSwgMCkpIHsKLSAgICAgICAgICAgIC8v
IEZJWE1FOiBTZXQgZXJyb3IgYmFjayB0byBzb2NrZXQKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfQotICAgIH0pOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1JUQ1Byb3ZpZGVyOjpXcmFwTmV3VENQQ29ubmVjdGlvbihzb2NrZXQtPmlkZW50aWZpZXIoKSwg
bmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpLCAwKTsKKwogICAgIHJldHVybiBzb2NrZXQu
cmVsZWFzZSgpOwogfQogCiB2b2lkIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmFkZFNvY2tldChM
aWJXZWJSVENTb2NrZXQmIHNvY2tldCkKIHsKKyAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9v
cCgpKTsKICAgICBBU1NFUlQoIW1fc29ja2V0cy5jb250YWlucyhzb2NrZXQuaWRlbnRpZmllcigp
KSk7CiAgICAgbV9zb2NrZXRzLmFkZChzb2NrZXQuaWRlbnRpZmllcigpLCAmc29ja2V0KTsKIH0K
IAogdm9pZCBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpyZW1vdmVTb2NrZXQoTGliV2ViUlRDU29j
a2V0JiBzb2NrZXQpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAg
QVNTRVJUKG1fc29ja2V0cy5jb250YWlucyhzb2NrZXQuaWRlbnRpZmllcigpKSk7CiAgICAgbV9z
b2NrZXRzLnJlbW92ZShzb2NrZXQuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBMaWJXZWJSVENT
b2NrZXRGYWN0b3J5Ojpmb3JTb2NrZXRJbkdyb3VwKGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBj
b25zdCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYgY2FsbGJhY2spCiB7CisgICAg
QVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgZm9yIChhdXRvKiBzb2NrZXQgOiBt
X3NvY2tldHMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKHNvY2tldC0+c29ja2V0R3JvdXAoKSA9
PSBzb2NrZXRHcm91cCkKICAgICAgICAgICAgIGNhbGxiYWNrKCpzb2NrZXQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5kZXggZDBhNjI3YjdjOTViNjFjMGM4MDNmY2I1OWY3MTg0
MzQ3YTY4MmE5Yy4uZGJiYWFmYzBhMTEzNDIzMDE0YTcwM2M0MDQ5ZGVlOTU1MDVhYjc3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1NvY2tldEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCkBAIC0zNywxMSArMzcsMTIgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIExpYldlYlJUQ05ldHdvcms7CiBjbGFzcyBMaWJXZWJS
VENTb2NrZXQ7CiAKIGNsYXNzIExpYldlYlJUQ1NvY2tldEZhY3RvcnkgewogcHVibGljOgotICAg
IExpYldlYlJUQ1NvY2tldEZhY3RvcnkoKSB7IH0KKyAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5
KCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBhZGRTb2NrZXQoTGliV2ViUlRDU29ja2V0Jik7CiAg
ICAgdm9pZCByZW1vdmVTb2NrZXQoTGliV2ViUlRDU29ja2V0Jik7CkBAIC01OSw2ICs2MCw5IEBA
IHB1YmxpYzoKICAgICAKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygp
IHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKKyAgICB2b2lk
IHNldENvbm5lY3Rpb24oUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uKCk7CisKIHByaXZhdGU6CiAgICAgLy8gV2UgY2Fubm90IG93biBz
b2NrZXRzLCBjbGllbnRzIG9mIHRoZSBmYWN0b3J5IGFyZSByZXNwb25zaWJsZSB0byBmcmVlIHRo
ZW0uCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBMaWJX
ZWJSVENTb2NrZXQqPiBtX3NvY2tldHM7CkBAIC02Niw2ICs3MCw4IEBAIHByaXZhdGU6CiAgICAg
Ly8gV2UgY2FuIG93biByZXNvbHZlcnMgYXMgd2UgY29udHJvbCB0aGVpciBEZXN0cm95IG1ldGhv
ZC4KICAgICBIYXNoTWFwPExpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPExpYldlYlJUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7CiAgICAgYm9vbCBtX2Rpc2FibGVO
b25Mb2NhbGhvc3RDb25uZWN0aW9ucyB7IGZhbHNlIH07CisKKyAgICBSZWZQdHI8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398612</attachid>
            <date>2020-05-06 07:42:21 -0700</date>
            <delta_ts>2020-05-06 07:48:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211291-20200506164218.patch</filename>
            <type>text/plain</type>
            <size>21944</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5YWJjMjM2NTVlYTBk
NGU2NTQ2MTk5YmFjMjg0YzQwMTYzOWVkNC4uMDM5ZTQyNzUzNzY0NGRhNmIwMGI0NzA0Nzk5MTE2
MDhiZGI1YTg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kaW5nIFdlYlJUQyBu
ZXR3b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWluIHRocmVhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjkxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHNldElu
dGVycnVwdGVkIGFuZCByZWxhdGVkIGNvZGUuCisgICAgICAgIEluc3RlYWQsIGRpcmVjdGx5IHVz
ZSBzZXRNdXRlZCh0cnVlL2ZhbHNlKSBvZiB0aGUgc291cmNlIG9mIGNhcHR1cmUgdHJhY2tzLgor
ICAgICAgICBUbyBlbnN1cmUgd2UgdmFsaWRhdGUgdGhhdCB0aGUgYWN0aXZlIHNvdXJjZSBpcyB0
aWVkIHRvIGEgdHJhY2sgb2YgdGhlIGRvY3VtZW50LAorICAgICAgICB3ZSBhZGQgUmVhbHRpbWVT
b3VyY2U6OmlzU2FtZUFzIHdoaWNoIGhhbmRsZXMgdGhlIGNhc2Ugb2YgYSBSZWFsdGltZVZpZGVv
U291cmNlIHdyYXBwaW5nIGFuIEFWVmlkZW9DYXB0dXJlU291cmNlLgorICAgICAgICBUaGVyZSBt
aWdodCBiZSBtdWx0aXBsZSB2aWRlbyB0cmFja3Mgd2l0aCBlYWNoIG9uZSBpdHMgUmVhbHRpbWVW
aWRlb1NvdXJjZSB1c2luZyB0aGUgc2FtZSBBVlZpZGVvQ2FwdHVyZVNvdXJjZS4KKyAgICAgICAg
V2UgbXV0ZSB0aGUgQVZWaWRlb0NhcHR1cmVTb3VyY2UgZGlyZWN0bHkgdG8gbWFrZSBzdXJlIGFs
bCBsaW5rZWQgdHJhY2tzIHdpbGwgZ2V0IG11dGVkL3VubXV0ZWQgYXQgdGhlIHNhbWUgdGltZS4K
KyAgICAgICAgVGVzdHMgdG8gYmUgZml4ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1U
cmFjazo6TWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgIChXZWJDb3JlOjppc1NvdXJjZUNhcHR1
cmluZ0ZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnVw
ZGF0ZUNhcHR1cmVBY2NvcmRpbmdUb011dGVkU3RhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKwogMjAyMC0wNS0wNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2VuZGluZyBXZWJSVEMg
bmV0d29yayBwYWNrZXRzIHNob3VsZCBub3QgZ28gdGhyb3VnaCB0aGUgbWFpbiB0aHJlYWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNTQ0NmI5NWIyNWIwNDUzMmExZTU2ZWY5ZGJhOGVmZTRkZTljZTZiMS4uOTU0ZjFl
M2M4ZTA1NWYxMzFjM2U2MjAwYTgwNDE3Y2UxYjIwODg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMC0wNS0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgU2VuZGluZyBXZWJSVEMgbmV0d29yayBwYWNrZXRzIHNob3VsZCBub3QgZ28gdGhyb3Vn
aCB0aGUgbWFpbiB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMTI5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGNvZGUuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6c2V0QWN0aXZlU291cmNl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6
CisKIDIwMjAtMDUtMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdvcmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2gg
dGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCBkMGIyY2I5ZmQwYWExYmQxZjI5YWNl
ZGM1YjYwOTM5Nzc0YTExY2IwLi42OTJlMGNlMTU0YmZmMjgxNjBkMGEzNDc2ZjUwMzYyZDI1Njhk
NDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgTWVkaWFTdHJlYW1UcmFjazo6
TWVkaWFTdHJlYW1UcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8TWVk
aWFTdHIKIAogICAgIGlmIChhdXRvIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkgewogICAg
ICAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKSAmJiBkb2N1bWVudC0+cGFnZSgpLT5tdXRlZFN0YXRl
KCkpCi0gICAgICAgICAgICBzZXRNdXRlZCh0cnVlKTsKKyAgICAgICAgICAgIG1fcHJpdmF0ZS0+
c2V0TXV0ZWQodHJ1ZSk7CiAgICAgfQogfQogCkBAIC0xOTUsMjYgKzE5NSw2IEBAIGJvb2wgTWVk
aWFTdHJlYW1UcmFjazo6bXV0ZWQoKSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUtPm11dGVk
KCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQotewotICAgIGJvb2wgdHJhY2tNdXRlZCA9IGZhbHNlOwot
ICAgIHN3aXRjaCAoc291cmNlKCkuZGV2aWNlVHlwZSgpKSB7Ci0gICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6Q2FtZXJhOgotICAgICAgICB0cmFja011dGVkID0gc3RhdGUgJiBNZWRpYVByb2R1
Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgotICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgotICAgICAgICB0cmFja011dGVkID0gc3RhdGUgJiBN
ZWRpYVByb2R1Y2VyOjpTY3JlZW5DYXB0dXJlSXNNdXRlZDsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgbV9wcml2YXRlLT5z
ZXRNdXRlZCh0cmFja011dGVkKTsKLX0KLQogYXV0byBNZWRpYVN0cmVhbVRyYWNrOjpyZWFkeVN0
YXRlKCkgY29uc3QgLT4gU3RhdGUKIHsKICAgICByZXR1cm4gZW5kZWQoKSA/IFN0YXRlOjpFbmRl
ZCA6IFN0YXRlOjpMaXZlOwpAQCAtNDY4LDQwICs0NDgsNTYgQEAgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJhY2s6OmNhcHR1cmVTdGF0ZShEb2N1bWVudCYgZG9j
dW1lbnQKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgTWVkaWFTdHJlYW1U
cmFjayogZmluZEFjdGl2ZUNhcHR1cmVUcmFja0ZvckRvY3VtZW50KERvY3VtZW50JiBkb2N1bWVu
dCwgUmVhbHRpbWVNZWRpYVNvdXJjZSogYWN0aXZlU291cmNlLCBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlIHR5cGUpCitzdGF0aWMgYm9vbCBpc1NvdXJjZUNhcHR1cmluZ0ZvckRvY3VtZW50KFJl
YWx0aW1lTWVkaWFTb3VyY2UmIGFjdGl2ZVNvdXJjZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewot
ICAgIE1lZGlhU3RyZWFtVHJhY2sqIHNlbGVjdGVkVHJhY2sgPSBudWxscHRyOwotICAgIGZvciAo
YXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmIChj
YXB0dXJlVHJhY2stPmRvY3VtZW50KCkgIT0gJmRvY3VtZW50IHx8IGNhcHR1cmVUcmFjay0+ZW5k
ZWQoKSkKKyAgICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7CisgICAg
ICAgIGlmICh0cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwgdHJhY2stPmVuZGVkKCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoJmNhcHR1cmVUcmFjay0+c291
cmNlKCkgPT0gYWN0aXZlU291cmNlKQotICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVUcmFjazsK
LQotICAgICAgICAvLyBJZiB0aGUgZG9jdW1lbnQgaGFzIGEgbGl2ZSBjYXB0dXJlIHRyYWNrLCB3
aGljaCBpcyBub3QgdGhlIGFjdGl2ZSBvbmUsIHdlIHBpY2sgdGhlIGZpcnN0IG9uZS4KLSAgICAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBzdG9yZSBwZXIgcGFnZSBhY3RpdmUgYXVk
aW8vdmlkZW8gY2FwdHVyZSB0cmFja3MuCi0gICAgICAgIGlmICghc2VsZWN0ZWRUcmFjayAmJiBj
YXB0dXJlVHJhY2stPnByaXZhdGVUcmFjaygpLnR5cGUoKSA9PSB0eXBlKQotICAgICAgICAgICAg
c2VsZWN0ZWRUcmFjayA9IGNhcHR1cmVUcmFjazsKKyAgICAgICAgaWYgKHRyYWNrLT5zb3VyY2Uo
KS5pc1NhbWVBcyhhY3RpdmVTb3VyY2UpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQotICAgIHJldHVybiBzZWxlY3RlZFRyYWNrOworICAgIHJldHVybiBmYWxzZTsKIH0KICNlbmRp
ZgogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZUNhcHR1cmVBY2NvcmRpbmdUb011dGVk
U3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogeworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5w
YWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIG11dGVk
U3RhdGUgPSBwYWdlLT5tdXRlZFN0YXRlKCk7CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIGF1dG8qIGFjdGl2ZUF1ZGlvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwotICAgIGlm
IChhdXRvKiBhdWRpb0NhcHR1cmVUcmFjayA9IGZpbmRBY3RpdmVDYXB0dXJlVHJhY2tGb3JEb2N1
bWVudChkb2N1bWVudCwgYWN0aXZlQXVkaW9Tb3VyY2UsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OkF1ZGlvKSkKLSAgICAgICAgYXVkaW9DYXB0dXJlVHJhY2stPnNldE11dGVkKGRvY3VtZW50
LnBhZ2UoKS0+bXV0ZWRTdGF0ZSgpKTsKKyAgICBpZiAoYWN0aXZlQXVkaW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JEb2N1bWVudCgqYWN0aXZlQXVkaW9Tb3VyY2UsIGRvY3VtZW50KSkg
eworICAgICAgICBib29sIG11dGVkID0gbXV0ZWRTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlv
QW5kVmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICAgICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11
dGVkKG11dGVkIHx8IChkb2N1bWVudC5oaWRkZW4oKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmludGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZUVu
YWJsZWQoKSkpOworICAgIH0KIAogICAgIGF1dG8qIGFjdGl2ZVZpZGVvU291cmNlID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFj
dGl2ZVNvdXJjZSgpOwotICAgIGlmIChhdXRvKiB2aWRlb0NhcHR1cmVUcmFjayA9IGZpbmRBY3Rp
dmVDYXB0dXJlVHJhY2tGb3JEb2N1bWVudChkb2N1bWVudCwgYWN0aXZlVmlkZW9Tb3VyY2UsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSkKLSAgICAgICAgdmlkZW9DYXB0dXJlVHJh
Y2stPnNldE11dGVkKGRvY3VtZW50LnBhZ2UoKS0+bXV0ZWRTdGF0ZSgpKTsKKyAgICBpZiAoYWN0
aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JEb2N1bWVudCgqYWN0aXZlVmlk
ZW9Tb3VyY2UsIGRvY3VtZW50KSkgeworICAgICAgICBib29sIG11dGVkID0gbXV0ZWRTdGF0ZSAm
IE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICAgICAgYWN0
aXZlVmlkZW9Tb3VyY2UtPnNldE11dGVkKG11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigpKTsKKyAg
ICB9CiAjZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2FwdHVyZVRyYWNr
cygpKSB7CiAgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkgIT0gJmRvY3VtZW50
IHx8IGNhcHR1cmVUcmFjay0+ZW5kZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICBjYXB0dXJlVHJhY2stPnNldE11dGVkKGRvY3VtZW50LnBhZ2UoKS0+bXV0ZWRTdGF0ZSgpKTsK
KyAgICAgICAgc3dpdGNoIChjYXB0dXJlVHJhY2stPnNvdXJjZSgpLmRldmljZVR5cGUoKSkgewor
ICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAg
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAgICAgICAgICAg
Y2FwdHVyZVRyYWNrLT5tX3ByaXZhdGUtPnNldE11dGVkKG11dGVkU3RhdGUgJiBNZWRpYVByb2R1
Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgICAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgICAgIGNhcHR1
cmVUcmFjay0+bV9wcml2YXRlLT5zZXRNdXRlZChtdXRlZFN0YXRlICYgTWVkaWFQcm9kdWNlcjo6
U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9CiAjZW5k
aWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmgKaW5kZXggMDJmZDQ1NGI2YTFkYTNjNTRiZGEzYjIwNDllOGUwM2Y3Y2Fj
ZGIwYS4uYTIwN2U4MjZmMTIzNTFkY2JiZTQ3ODE0ZDM3NTVlMDgwODEzODEwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmgKQEAgLTg3LDcgKzg3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RW5hYmxlZChib29sKTsK
IAogICAgIGJvb2wgbXV0ZWQoKSBjb25zdDsKLSAgICB2b2lkIHNldE11dGVkKE1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGVGbGFncyk7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsgTGl2ZSwgRW5k
ZWQgfTsKICAgICBTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCAxODQ0YmYyOWJiZjdjNWMwMTBhY2NjOTliNjlkMTdiZTI4NTNiZjlhLi41ZmI3MzQy
ODBjMjZiOTk4NTI1ZDU4N2Q3NWM3Mjc5MjJiMmQzYmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTE3NDksMTcgKzE3NDksMTAgQEAgdm9pZCBEb2N1bWVudDo6dmlzaWJpbGl0eVN0YXRl
Q2hhbmdlZCgpCiAgICAgZm9yIChhdXRvKiBjbGllbnQgOiBtX3Zpc2liaWxpdHlTdGF0ZUNhbGxi
YWNrQ2xpZW50cykKICAgICAgICAgY2xpZW50LT52aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCk7CiAK
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCk7
Ci0gICAgaWYgKHBhZ2UgJiYgaGlkZGVuKCkpIHsKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0Q2FwdHVyZVBhZ2VTdGF0ZSh0cnVlLCBwYWdlLT5pc01l
ZGlhQ2FwdHVyZU11dGVkKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpLmlzSW50ZXJydXB0ZWQoKSkKICAgICAgICAgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2Fw
dHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSgqdGhpcyk7CiAjZW5kaWYKLSNlbmRpZgogfQogCiBW
aXNpYmlsaXR5U3RhdGUgRG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCmluZGV4IDViNDQyNDUzZjI5NTdmZDQ0NmIwOWMzOWM5MTliNDg0MmI1MDBm
YTIuLjZlOWY1Yjk2ZTE1ZTA4OGI4YTE4NzgxZDlmNzA0NGRkZWY2YzhkOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCkBAIC04OCwxNiArODgsNiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKICAgICAgICAgc3RvcEJlaW5nT2Jz
ZXJ2ZWQoKTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRJbnRlcnJ1cHRlZChi
b29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLXsKLSNpZiBSRUxFQVNFX0xPR19ESVNB
QkxFRAotICAgIFVOVVNFRF9QQVJBTShwYWdlTXV0ZWQpOwotI2VuZGlmCi0KLSAgICBBTFdBWVNf
TE9HX0lGKG1fbG9nZ2VyLCBMT0dJREVOVElGSUVSLCBpbnRlcnJ1cHRlZCwgIiwgcGFnZSBtdXRl
ZCA6ICIsIHBhZ2VNdXRlZCk7Ci0gICAgc2V0TXV0ZWQoaW50ZXJydXB0ZWQpOwotfQotCiB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldE11dGVkKGJvb2wgbXV0ZWQpCiB7CiAgICAgQUxXQVlT
X0xPR19JRihtX2xvZ2dlciwgTE9HSURFTlRJRklFUiwgbXV0ZWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CmluZGV4IDY2YWEzNTA0YTcyMDUxNTliNTRlNTY0MDc5OWVmNjM1NWY5YmEwZTkuLmY4YWJhYTNh
ZWJlYmJlNjNlZWRlMWY1ZDMwMjI3ZDg4NGViNDgxNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAg
LTEyNyw3ICsxMjcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYXB0dXJlRGlkRmFpbCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2FwdHVyZURpZEZhaWxlZDsgfQogCiAgICAgdmlydHVhbCBib29sIGludGVy
cnVwdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcnJ1cHRlZDsgfQotICAgIHZpcnR1YWwgdm9p
ZCBzZXRJbnRlcnJ1cHRlZChib29sLCBib29sKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgIHZvaWQgc2V0TmFtZShTdHJpbmcmJiBuYW1l
KSB7IG1fbmFtZSA9IFdURk1vdmUobmFtZSk7IH0KQEAgLTE5Myw2ICsxOTIsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FwdHVyZUZhaWxlZCgpOwogCisgICAgdmlydHVhbCBib29s
IGlzU2FtZUFzKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkgY29uc3QgeyByZXR1cm4gdGhp
cyA9PSAmc291cmNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW5jb21pbmdBdWRpb1NvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW5jb21pbmdWaWRl
b1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKaW5kZXggZGM0OGE3NTZmN2NhYzlmZmNkOGY1ZmVhNDgxMWQ2MmM1MTYwYmJl
NC4uZTcyZjZkMjM4NTk1MjAzMGE3NGY1NmE4YjIwMzY5MTFlNjJiNzNlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTI3MSwxMyArMjcxLDYgQEAgdm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0
cmFpbnRzSGFuZGwKICAgICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZN
b3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7CiB9
CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0Q2FwdHVyZVBhZ2VTdGF0ZShi
b29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLXsKLSAgICBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxp
dHlDaGFuZ2VFbmFibGVkKCkpCi0gICAgICAgIGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBdWRp
b0NhcHR1cmVQYWdlU3RhdGUoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci0gICAgdmlkZW9DYXB0
dXJlRmFjdG9yeSgpLnNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShpbnRlcnJ1cHRlZCwgcGFnZU11
dGVkKTsKLX0KLQogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRBdWRpb0NhcHR1
cmVGYWN0b3J5KEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB7CiAgICAgbV9hdWRpb0Nh
cHR1cmVGYWN0b3J5T3ZlcnJpZGUgPSAmZmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAppbmRleCAxMGRkYjI5MDNjMWNkOTYyMjFmZDVkZjAxYTM5YjkxMGRlYTk4YjViLi4wMjgy
ODY1OGUwOWVhZGU5NzIxMThhZGVjZGMxN2YzNjRmZWEzMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oCkBAIC04Niw4ICs4Niw2IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4m
Jik7CiAKLSAgICB2b2lkIHNldENhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9v
bCBwYWdlTXV0ZWQpOwotCiAgICAgdm9pZCBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdEF1ZGlvT25QYWdlVmlz
aWJpbGl0eUNoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggMzAz
NDQxZDVhYjgzMmMzNTcwN2Y2MWZiNWNlYzk4M2RiNDBjN2JjNy4uYTMyNjI4YjdhMTYwOTM1YWNi
OGI3NTMxMTNmODM4NTUzYTZlYjhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5o
CkBAIC02MCwxMSArNjAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QXVkaW9DYXB0dXJlRmFj
dG9yeSgpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CiAgICAgdmlydHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdl
ciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQot
ICAgIHsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGludGVycnVwdGVkKTsKLSAgICAgICAgVU5VU0VE
X1BBUkFNKHBhZ2VNdXRlZCk7Ci0gICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQXVkaW9DYXB0dXJl
RmFjdG9yeSgpID0gZGVmYXVsdDsKQEAgLTc5LDExICs3NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5WaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogICAgIHZpcnR1YWwgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKICAgICB2aXJ0dWFs
IENhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRl
ZCwgYm9vbCBwYWdlTXV0ZWQpCi0gICAgewotICAgICAgICBVTlVTRURfUEFSQU0oaW50ZXJydXB0
ZWQpOwotICAgICAgICBVTlVTRURfUEFSQU0ocGFnZU11dGVkKTsKLSAgICB9CiAKIHByb3RlY3Rl
ZDoKICAgICBWaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CmluZGV4IGJlYWQzYjk1ZDk1N2U4YzYxMjQxNTM3M2EwM2RmN2EwMjM5OWE3MmUuLmNjY2U5Yjlh
YTE5NzAzZTA5NTczM2VkMjdhMjNjMzM4ZjYzOGFlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAg
LTQxLDcgKzQxLDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBSZWFsdGltZVZpZGVvU291cmNl
KFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4mJik7CiAgICAgflJlYWx0aW1lVmlkZW9T
b3VyY2UoKTsKIAotICAgIC8vIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlCisgICAgLy8gUmVh
bHRpbWVNZWRpYVNpb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwog
ICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzU2l6
ZUFuZEZyYW1lUmF0ZShPcHRpb25hbDxpbnQ+IHdpZHRoLCBPcHRpb25hbDxpbnQ+IGhlaWdodCwg
T3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJhdGUpIGZpbmFsOwpAQCAtNTYsNiArNTYsNyBAQCBwcml2
YXRlOgogICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fc291cmNlLT5kZXZpY2VUeXBlKCk7IH0KICAgICB2b2lkIG1vbml0b3JP
cmllbnRhdGlvbihPcmllbnRhdGlvbk5vdGlmaWVyJiBub3RpZmllcikgZmluYWwgeyBtX3NvdXJj
ZS0+bW9uaXRvck9yaWVudGF0aW9uKG5vdGlmaWVyKTsgfQogICAgIGJvb2wgaW50ZXJydXB0ZWQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZS0+aW50ZXJydXB0ZWQoKTsgfQorICAgIGJv
b2wgaXNTYW1lQXMoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0aGlzID09ICZzb3VyY2UgfHwgbV9zb3VyY2UucHRyKCkgPT0gJnNvdXJjZTsgfQogCiAg
ICAgLy8gT2JzZXJ2ZXIKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbQppbmRleCA4ZDk3MDQxYzE0ZDNmYWU3
NWU2NjViNWNmYTAyMmJhNTdlMjA3MzI2Li40YTIwNDdiYzQ0M2E2NTY2MjRkMzFiMDViZmE3ODJh
MTg3ZTUyNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbQpAQCAt
MTAyLDEyICsxMDIsNiBAQCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0
KCk7CiB9CiAKLXZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNldEF1ZGlvQ2Fw
dHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKLXsKLSAgICBp
ZiAoYXV0byogYWN0aXZlU291cmNlID0gdGhpcy0+YWN0aXZlU291cmNlKCkpCi0gICAgICAgIGFj
dGl2ZVNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci19Ci0K
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKElPU19GQU1J
TFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCBlNGU4OWJmMGQ4ZWU1MTUz
Y2JhNTBiOTg4MjM4YjExODUyNjNjNWEwLi44ZDk1MjgyNDQwMDI2ODgxYjA0MGVjMjVjYTE1ZWJk
ZjRlMzU5YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTExNSwxMCAr
MTE1LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXZpY2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8
Q2FwdHVyZURldmljZT4mKTsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBz
ZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQp
IGZpbmFsOwotI2VuZGlmCi0KIHByaXZhdGU6CiAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAppbmRl
eCAwYmVkNTg5YTQwNjVmY2RjMWE1MjcyZDE0YWY1NTY4YTRhNmRiYzU1Li4zZTNhYTRlZDg2ZDVi
OGZjMjA4M2UyZTVkZjgwYmY5ZGVkMWI4YzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMuY3BwCkBAIC01MywxNCArNTMsNiBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBzZXRWaWRlb0Nh
cHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCi0gICAgewot
ICAgICAgICBpZiAoYWN0aXZlU291cmNlKCkpCi0gICAgICAgICAgICBhY3RpdmVTb3VyY2UoKS0+
c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci0gICAgfQotI2VuZGlmCi0K
ICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsg
cmV0dXJuIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpOyB9CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGZjNDJmNmJhN2FkZWI5NTY5NDEzMGZhYmI4NjY3
ODYzMmU1Yzk4YTkuLjcyNGUxNTM4YzBkMWFjYjg5ZWRlODQxYjY4MDU4OTVkYTY5ZDc5MzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0xMDIsMTMgKzEwMiw2IEBAIHB1YmxpYzoK
ICAgICB9CiAKIHByaXZhdGU6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNl
dFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkg
ZmluYWwKLSAgICB7Ci0gICAgICAgIGlmIChhY3RpdmVTb3VyY2UoKSkKLSAgICAgICAgICAgIGFj
dGl2ZVNvdXJjZSgpLT5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLSAg
ICB9Ci0jZW5kaWYKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNl
TWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS52aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7IH0KIH07CiAKQEAgLTE5MSw3
ICsxODQsNiBAQCBwdWJsaWM6CiAgICAgfQogcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgIHZvaWQgc2V0QXVkaW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQs
IGJvb2wgcGFnZU11dGVkKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5Ojpz
aW5nbGV0b24oKS5zZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoaW50ZXJydXB0ZWQsIHBhZ2VNdXRl
ZCk7IH0KICAgICB2b2lkIHNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3Vy
Y2UpIGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNl
dEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9CiAgICAgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZh
Y3Rvcnk6OnNpbmdsZXRvbigpLnVuc2V0QWN0aXZlU291cmNlKHNvdXJjZSk7IH0KICAgICBSZWFs
dGltZU1lZGlhU291cmNlKiBhY3RpdmVTb3VyY2UoKSBmaW5hbCB7IHJldHVybiBDb3JlQXVkaW9D
YXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkuYWN0aXZlU291cmNlKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwCmluZGV4IDBhYzM4NDExZTkyYzg0MDNjMjgwNDdmNGY0NTlkZTdiYzU1NThl
MGIuLjA2MTk4ZDBhMWVkNzRjODlkOWVjYjM4NThkNTZhOGUwZTRjM2E3ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcApAQCAtNTM5LDI2ICs1MzksMTAgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU28K
IH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpBdWRpb0ZhY3Rvcnk6OnNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVw
dGVkLCBib29sIHBhZ2VNdXRlZCkKLXsKLSAgICBpZiAoYXV0byogYWN0aXZlU291cmNlID0gdGhp
cy0+YWN0aXZlU291cmNlKCkpCi0gICAgICAgIGFjdGl2ZVNvdXJjZS0+c2V0SW50ZXJydXB0ZWQo
aW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7Ci19Ci0KLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlZpZGVvRmFjdG9yeTo6c2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0
ZWQsIGJvb2wgcGFnZU11dGVkKQotewotICAgIC8vIEluIGNhc2Ugb2YgY2xvbmluZywgd2UgbWln
aHQgaGF2ZSBtb3JlIHRoYW4gYSBzaW5nbGUgc291cmNlLgotICAgIGZvciAoYXV0byYgc291cmNl
IDogbV9tYW5hZ2VyLm1fc291cmNlcy52YWx1ZXMoKSkgewotICAgICAgICBpZiAoc291cmNlLT5k
ZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQotICAgICAg
ICAgICAgc291cmNlLT5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKLSAg
ICB9Ci19Ci0KIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6c2V0
QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmKQogewogICAgIC8vIE11dGluZyBpcyBk
b25lIGJ5IEdQVVByb2Nlc3MgZmFjdG9yeS4gV2UgZG8gbm90IHdhbnQgdG8gaGFuZGxlIGl0IGhl
cmUgaW4gY2FzZSBvZiB0cmFjayBjbG9uaW5nLgogfQotCiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaAppbmRleCA3MjU2NDk4NDUwOWQ0OTA4NThjNDY5NzFkMjU4ZjBkNGU5ZTY0YmYwLi4zYmM1
MWVhYjkxYTU0ZmRmNjAxNGU2MGY5NmY0ODcwMzUzNmQ2YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApA
QCAtNjcsOSArNjcsNiBAQCBwcml2YXRlOgogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYkNvcmU6
OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1h
bmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFn
ZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgICAgICB2b2lkIHNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVk
LCBib29sIHBhZ2VNdXRlZCkgZmluYWw7Ci0jZW5kaWYKIAogICAgICAgICBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwogICAgICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcyB7IGZhbHNlIH07CkBAIC04NCw3ICs4MSw2IEBAIHByaXZhdGU6CiAgICAgICAgIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkg
ZmluYWwgeyByZXR1cm4gbV9tYW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgdm9pZCBzZXRBY3RpdmVTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSYpIGZpbmFsOwotICAgICAgICB2b2lkIHNldFZpZGVv
Q2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkgZmluYWw7
CiAjZW5kaWYKIAogICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398613</attachid>
            <date>2020-05-06 07:48:09 -0700</date>
            <delta_ts>2020-05-06 10:22:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211291-20200506164807.patch</filename>
            <type>text/plain</type>
            <size>26382</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1M2QwMzE2MzQ0YjY3
NTZmY2FhYzMxM2M3ODIzYjMzMjcxZjc4Yy4uZjY5YWJjMjM2NTVlYTBkNGU2NTQ2MTk5YmFjMjg0
YzQwMTYzOWVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kaW5nIFdlYlJUQyBu
ZXR3b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWluIHRocmVhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjkxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6ZmlsdGVyU0RQIGNvbnN0KToKKyAgICAgICAgRml4IGEgY2FzZSB3aGVyZSB0aGUgU0RQIHdv
dWxkIGJlIGJhZGx5IGZvcm1hdHRlZCB3ZSBkbyBub3QgaGF2ZSB5ZXQgYSBNRE5TIG5hbWUgZm9y
IHRoZSBjb3JyZXNwb25kaW5nIElQIGFkZHJlc3MuCisgICAgICAgIFNtYWxsIHJlZmFjdG9yaW5n
IHRvIHVzZSBsZXNzIGVsc2UgaWYKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRD
UHJvdmlkZXI6OmdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgQWRk
IHRoZSBhYmlsaXR5IGZvciBXZWJLaXQgTGliV2ViUlRDUHJvdmlkZXIgdG8gZG8gc29tZSBwcm9j
ZXNzaW5nIG9uIGNyZWF0aW9uIG9mIHRoZSBSVEMgdGhyZWFkcy4KKwogMjAyMC0wNS0wNSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHNob3VsZCB1bm9ic2VydmUgdGhlIHRyYWNrcyBmcm9tIGl0
cyBhdWRpbyBhbmQgdmlkZW8gdHJhY2sgc2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyYTFkYmI1YzE3ZWZmMzli
M2Y4N2ZmMTdhY2FiYzI0MmJkNzhkY2FkLi41NDQ2Yjk1YjI1YjA0NTMyYTFlNTZlZjlkYmE4ZWZl
NGRlOWNlNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA1LTA2ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kaW5nIFdlYlJUQyBuZXR3
b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWluIHRocmVhZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjkxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93aW5nIG9uIHJl
Y2VpdmluZyBSVEMgcGFja2V0cyBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQsIHdlIGFsc28gc2Vu
ZCBSVEMgcGFja2V0cyBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQuCisgICAgICAgIENyZWF0aW9u
IG9mIHRoZSBzb2NrZXRzIGFsc28gaGFwcGVucyBpbiBhIGJhY2tncm91bmQgdGhyZWFkLgorICAg
ICAgICBMaWJXZWJSVENOZXR3b3JrIGlzIGdldHRpbmcgdGhlIGNvbm5lY3Rpb24gd2hlbmV2ZXIg
YSBuZXcgY29ubmVjdGlvbiB0byBuZXR3b3JrIHByb2Nlc3MgaXMgY3JlYXRlZC4KKyAgICAgICAg
SXQgd2lsbCB0aGVuIGhvcCB0byB0aGUgUlRDIG5ldHdvcmsgdGhyZWFkIHRvIHNldCB0aGUgSVBD
IGNvbm5lY3Rpb24gdG8gdGhlIGxpYndlYnJ0YyBzb2NrZXQgZmFjdG9yeS4KKworICAgICAgICBB
dCBjcmVhdGlvbiBvZiB0aGUgc29ja2V0LCB3ZSBnZXQgdGhlIElQQyBjb25uZWN0aW9uIHRvIHRo
ZSBuZXR3b3JrIHByb2Nlc3MgYW5kIGtlZXAgYSByZWYgaW4gdGhlIFJUQyBzb2NrZXQuCisgICAg
ICAgIEluIGNhc2UgbmV0d29yayBwcm9jZXNzIGNyYXNoZWQgYW5kIHRoZSBJUEMgY29ubmVjdGlv
biBvZiB0aGUgUlRDIG5ldHdvcmsgaXMgbnVsbCwgd2UgaG9wIHRvIHRoZSBtYWluIHRocmVhZCB0
byBjcmVhdGUgYSBuZXcgSVBDIGNvbm5lY3Rpb24uCisgICAgICAgIFRoaXMgd2lsbCBmYWlsIHRo
ZSBjcmVhdGlvbiBvZiB0aGUgc29ja2V0IChhcyB3ZWxsIGFzIG5ldyBvbmVzIGFzIHdlbGwpIGFz
IGxvbmcgYXMgdGhlIElQQyBjb25uZWN0aW9uIHRvIG5ldHdvcmsgcHJvY2VzcyBpcyBub3QgdmFs
aWQgYWdhaW4uCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6OnNldEFzQWN0aXZlKToKKyAgICAgICAgKFdl
YktpdDo6TGliV2ViUlRDTmV0d29yazo6c2V0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ05ldHdvcms6OmRpc3BhdGNoVG9UaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oOgorICAgICAgICAoV2ViS2l0OjpM
aWJXZWJSVENOZXR3b3JrOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRD
TmV0d29yazo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQ
cm92aWRlcjo6c3RhcnRlZE5ldHdvcmtUaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldl
YlJUQ1NvY2tldDo6U2VuZFRvKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpD
bG9zZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6U2V0T3B0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OnNldENvbm5lY3Rpb24pOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpjb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KToK
KyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0
KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50
VGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3Jl
YXRlTmV3Q29ubmVjdGlvblNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZh
Y3Rvcnk6OnJlbW92ZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZh
Y3Rvcnk6OmZvclNvY2tldEluR3JvdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOgorCiAyMDIwLTA1LTAxICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWNlaXZpbmcgV2ViUlRDIG5ldHdv
cmsgcGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAKaW5kZXggMGZiNzZmZGRmOWZmMTZiZThkNDcyNDkyMmFhNGYxOTMzMjVm
YTEyYS4uYzE0OWQyMWU4OGZhZGU2NjhmNDVkZjEyMjg0ZWVkODUyYWJlYWM2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcApAQCAtNDM5LDIzICs0MzksMzIgQEAgU3RyaW5nIFBlZXJDb25uZWN0
aW9uQmFja2VuZDo6ZmlsdGVyU0RQKFN0cmluZyYmIHNkcCkgY29uc3QKIAogICAgIFN0cmluZ0J1
aWxkZXIgZmlsdGVyZWRTRFA7CiAgICAgc2RwLnNwbGl0KCdcbicsIFt0aGlzLCAmZmlsdGVyZWRT
RFBdKFN0cmluZ1ZpZXcgbGluZSkgewotICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlO
IElQNCIpKQotICAgICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCJjPUlOIElQNCAwLjAuMC4w
XHIiKTsKLSAgICAgICAgZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlOIElQNiIpKQotICAg
ICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCJjPUlOIElQNiA6OlxyIik7Ci0gICAgICAgIGVs
c2UgaWYgKCFsaW5lLnN0YXJ0c1dpdGgoImE9Y2FuZGlkYXRlIikpCisgICAgICAgIGlmIChsaW5l
LnN0YXJ0c1dpdGgoImM9SU4gSVA0IikpIHsKKyAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVu
ZCgiYz1JTiBJUDQgMC4wLjAuMFxyXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlOIElQNiIpKSB7CisgICAgICAgICAg
ICBmaWx0ZXJlZFNEUC5hcHBlbmQoImM9SU4gSVA2IDo6XHJcbiIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIGlmICghbGluZS5zdGFydHNXaXRoKCJhPWNhbmRpZGF0
ZSIpKSB7CiAgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQobGluZSk7Ci0gICAgICAgIGVs
c2UgaWYgKGxpbmUuZmluZCgiIGhvc3QgIiwgMTEpID09IG5vdEZvdW5kKQorICAgICAgICAgICAg
ZmlsdGVyZWRTRFAuYXBwZW5kKCdcbicpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIGlmIChsaW5lLmZpbmQoIiBob3N0ICIsIDExKSA9PSBub3RGb3VuZCkgewogICAg
ICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKGZpbHRlcklDRUNhbmRpZGF0ZShsaW5lLnRvU3Ry
aW5nKCkpKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGlwQWRkcmVzcyA9IGV4
dHJhY3RJUEFkZHJlc3MobGluZSk7Ci0gICAgICAgICAgICBhdXRvIG1kbnNOYW1lID0gbV9pcEFk
ZHJlc3NUb01ETlNOYW1lTWFwLmdldChpcEFkZHJlc3MpOwotICAgICAgICAgICAgaWYgKCFtZG5z
TmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHNkcCA9IGxpbmUudG9TdHJp
bmcoKTsKLSAgICAgICAgICAgICAgICBzZHAucmVwbGFjZShpcEFkZHJlc3MsIG1kbnNOYW1lKTsK
LSAgICAgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoc2RwKTsKLSAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQorCisgICAgICAgIGF1dG8gaXBBZGRyZXNzID0gZXh0cmFjdElQQWRkcmVz
cyhsaW5lKTsKKyAgICAgICAgYXV0byBtZG5zTmFtZSA9IG1faXBBZGRyZXNzVG9NRE5TTmFtZU1h
cC5nZXQoaXBBZGRyZXNzKTsKKyAgICAgICAgaWYgKG1kbnNOYW1lLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBzZHAgPSBsaW5lLnRvU3RyaW5nKCk7CisgICAg
ICAgIHNkcC5yZXBsYWNlKGlwQWRkcmVzcywgbWRuc05hbWUpOworICAgICAgICBmaWx0ZXJlZFNE
UC5hcHBlbmQoc2RwKTsKICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCdcbicpOwogICAgIH0p
OwogICAgIHJldHVybiBmaWx0ZXJlZFNEUC50b1N0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAKaW5kZXggNjRkYjJiNGUxZGQ2MDBkYjcxMWExODgxNjgxNzU3MGI0
MjQ5M2RkNy4uZGYyZmQ3Y2NiNTQ1MWRkYmYzZjRjMjYyMzljOTk3ZDc0MGQ5Mzc1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgc3Rh
dGljIGlubGluZSBQZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzJiBzdGF0aWNGYWN0b3J5
QW5kVGhyZWFkcygpCiAgICAgcmV0dXJuIGZhY3RvcnlBbmRUaHJlYWRzLmdldCgpOwogfQogCi1z
dGF0aWMgaW5saW5lIFBlZXJDb25uZWN0aW9uRmFjdG9yeUFuZFRocmVhZHMmIGdldFN0YXRpY0Zh
Y3RvcnlBbmRUaHJlYWRzKGJvb2wgdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIpCitQ
ZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzJiBMaWJXZWJSVENQcm92aWRlcjo6Z2V0U3Rh
dGljRmFjdG9yeUFuZFRocmVhZHMoYm9vbCB1c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZl
cikKIHsKICAgICBhdXRvJiBmYWN0b3J5QW5kVGhyZWFkcyA9IHN0YXRpY0ZhY3RvcnlBbmRUaHJl
YWRzKCk7CiAKQEAgLTIwMCw2ICsyMDAsNyBAQCBzdGF0aWMgaW5saW5lIFBlZXJDb25uZWN0aW9u
RmFjdG9yeUFuZFRocmVhZHMmIGdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKGJvb2wgdQogICAg
IGlmICghZmFjdG9yeUFuZFRocmVhZHMubmV0d29ya1RocmVhZCkgewogICAgICAgICBmYWN0b3J5
QW5kVGhyZWFkcy5uZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlciA9IHVzZU5ldHdvcmtUaHJl
YWRXaXRoU29ja2V0U2VydmVyOwogICAgICAgICBpbml0aWFsaXplUGVlckNvbm5lY3Rpb25GYWN0
b3J5QW5kVGhyZWFkcyhmYWN0b3J5QW5kVGhyZWFkcyk7CisgICAgICAgIHN0YXJ0ZWROZXR3b3Jr
VGhyZWFkKCk7CiAgICAgfQogICAgIHJldHVybiBmYWN0b3J5QW5kVGhyZWFkczsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMjJiMTBkZDQ4MGM4N2Y0ZGNkMDQyZmJj
ODhjOTk1NGRlMzIwZDc4Zi4uMmU5NmU2NjIzZTk0YTk2Njg1NDQ3MjY3Y2M5MWRhMTMwNTBlZjVh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTU5LDYgKzU5LDcgQEAg
Y2xhc3MgUGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlOwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBMaWJXZWJSVENBdWRpb01vZHVsZTsKK3N0cnVjdCBQZWVyQ29ubmVjdGlvbkZh
Y3RvcnlBbmRUaHJlYWRzOwogc3RydWN0IFJUQ1J0cENhcGFiaWxpdGllczsKIAogZW51bSBjbGFz
cyBNRE5TUmVnaXN0ZXJFcnJvciB7IE5vdEltcGxlbWVudGVkLCBCYWRQYXJhbWV0ZXIsIEROU1NE
LCBJbnRlcm5hbCwgVGltZW91dCB9OwpAQCAtMTM0LDYgKzEzNSwxMCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBj
cmVhdGVEZWNvZGVyRmFjdG9yeSgpOwogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0
Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4gY3JlYXRlRW5jb2RlckZhY3RvcnkoKTsKIAorICAgIHZp
cnR1YWwgdm9pZCBzdGFydGVkTmV0d29ya1RocmVhZCgpIHsgfTsKKworICAgIFBlZXJDb25uZWN0
aW9uRmFjdG9yeUFuZFRocmVhZHMmIGdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKGJvb2wgdXNl
TmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIpOworCiAgICAgYm9vbCBtX2VuYWJsZUVudW1l
cmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMgeyBmYWxzZSB9OwogICAgIC8vIEZJWE1FOiBSZW1v
dmUgbV91c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlciBtZW1iZXIgdmFyaWFibGUgYW5k
IG1ha2UgaXQgYSBnbG9iYWwuCiAgICAgYm9vbCBtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0
U2VydmVyIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwCmluZGV4IDU0YjJiZDBjOWJk
ZTc3OTQ5YjM4ODYyMjY2NTAzZGEzNTNlNjIwOGMuLmQ3OGQ3NTk1ODk0NTlkOTQ2MzJiNzU1MGM0
MTdkMThiZTYzYzJmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHAKQEAgLTM5LDYgKzM5LDE5
IEBAIExpYldlYlJUQ05ldHdvcms6On5MaWJXZWJSVENOZXR3b3JrKCkKICAgICBzZXRDb25uZWN0
aW9uKG51bGxwdHIpOwogfQogCit2b2lkIExpYldlYlJUQ05ldHdvcms6OnNldEFzQWN0aXZlKCkK
K3sKKyAgICBBU1NFUlQoIW1faXNBY3RpdmUpOworICAgIG1faXNBY3RpdmUgPSB0cnVlOworI2lm
IFVTRShMSUJXRUJSVEMpCisgICAgaWYgKG1fY29ubmVjdGlvbikgeworICAgICAgICBXZWJDb3Jl
OjpMaWJXZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRDTmV0d29ya1RocmVhZChbdGhpcywgY29u
bmVjdGlvbiA9IG1fY29ubmVjdGlvbl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG1fc29ja2V0
RmFjdG9yeS5zZXRDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpOworICAgICAgICB9KTsK
KyAgICB9CisjZW5kaWYKK30KKwogdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpuZXR3b3JrUHJvY2Vz
c0NyYXNoZWQoKQogewogICAgIHNldENvbm5lY3Rpb24obnVsbHB0cik7CkBAIC01Myw2ICs2Niwx
MSBAQCB2b2lkIExpYldlYlJUQ05ldHdvcms6OnNldENvbm5lY3Rpb24oUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uKQogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKG1fY29u
bmVjdGlvbikKICAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OkxpYldlYlJUQ05ldHdvcms6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cisg
ICAgaWYgKG1faXNBY3RpdmUpIHsKKyAgICAgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6
OmNhbGxPbldlYlJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb25dKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICBtX3NvY2tldEZhY3Rvcnkuc2V0Q29ubmVjdGlvbihXVEZNb3ZlKGNvbm5l
Y3Rpb24pKTsKKyAgICAgICAgfSk7CisgICAgfQogI2VuZGlmCiAgICAgbV9jb25uZWN0aW9uID0g
V1RGTW92ZShjb25uZWN0aW9uKTsKICNpZiBVU0UoTElCV0VCUlRDKQpAQCAtNjEsMTggKzc5LDkg
QEAgdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpzZXRDb25uZWN0aW9uKFJlZlB0cjxJUEM6OkNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbikKICNlbmRpZgogfQogCi1ib29sIExpYldlYlJUQ05ldHdvcms6
OmlzQWN0aXZlKCkgY29uc3QKLXsKLSNpZiBVU0UoTElCV0VCUlRDKQotICAgIHJldHVybiBXZWJD
b3JlOjpMaWJXZWJSVENQcm92aWRlcjo6aGFzV2ViUlRDVGhyZWFkcygpOwotI2Vsc2UKLSAgICBy
ZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpkaXNwYXRj
aFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKLSAgICBpZiAoIWlzQWN0
aXZlKCkpIHsKKyAgICBpZiAoIW1faXNBY3RpdmUpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoV2ViUlRDLCAiUmVjZWl2ZWQgV2ViUlRDU29ja2V0IG1lc3NhZ2Ugd2hpbGUgbGliV2ViUlRD
TmV0d29yayBpcyBub3QgYWN0aXZlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0
d29yay5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q05ldHdvcmsuaAppbmRleCA1Y2RmNGY3NTJjNjU2YjA1YzUwM2IwOGQ3YTBmM2NkZmE0NmEwOTIy
Li4xNWJiMTZlNzk5ZmRmZDJlODlmZDUxNTM4MmQ0YmJjZjA1ZWNmYzIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENO
ZXR3b3JrLmgKQEAgLTQxLDEwICs0MSwxMiBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRDTmV0d29y
aygpID0gZGVmYXVsdDsKICAgICB+TGliV2ViUlRDTmV0d29yaygpOwogCisgICAgSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAgICAg
dm9pZCBzZXRDb25uZWN0aW9uKFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+JiYpOworCiAgICAgdm9p
ZCBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIAotICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsK
KyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjdGl2ZTsgfQogCiAjaWYg
VVNFKExJQldFQlJUQykKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpOwpAQCAtNjEsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgV2ViTURO
U1JlZ2lzdGVyJiBtZG5zUmVnaXN0ZXIoKSB7IHJldHVybiBtX21kbnNSZWdpc3RlcjsgfQogI2Vu
ZGlmCiAKKyAgICB2b2lkIHNldEFzQWN0aXZlKCk7CisKIHByaXZhdGU6CiAjaWYgVVNFKExJQldF
QlJUQykKICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgUlRDTmV0d29yazo6
SVBBZGRyZXNzJiwgdWludDE2X3QgcG9ydCwgaW50NjRfdCk7CkBAIC04MSw2ICs4NSw3IEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgV2ViTUROU1JlZ2lzdGVyIG1fbWRuc1Jl
Z2lzdGVyOwogI2VuZGlmCisgICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBSZWZQ
dHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmNwcAppbmRleCBhNjZmOTU3N2E4NjFlOTk4YThmMjk0Y2QzYWViNTY4NWNlZGY0OTY5Li44
ZWMzNzY3ODU5NTBkMzA4YzM1YmRlZjI2Mjk4MDU1N2U5ZjM4ZGY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHAKQEAgLTEzMSw2ICsxMzEsMTEgQEAgdm9pZCBSVENTb2NrZXRGYWN0b3J5Ojpy
ZXN1bWUoKQogICAgIH0pOwogfQogCit2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpzdGFydGVkTmV0
d29ya1RocmVhZCgpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0
d29yaygpLnNldEFzQWN0aXZlKCk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92
aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRl
U29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQpCiB7CiAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8UlRDU29ja2V0RmFjdG9yeT4oV1RGTW92ZSh1c2VyQWdlbnQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmgKaW5kZXggNzU1ZDZjNmZmNmNjNzkzNmY4MTdkYmJlOTFlMDBmYzdiNDZhNTFlYy4uYzZi
M2UwYTQ0MTZjYTBhNTZlYzliNzBiZmNiMGQ1MzRjOTg3ZjIwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVucmVnaXN0ZXJNRE5T
TmFtZXMoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lz
dGVyTUROU05hbWUoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlw
QWRkcmVzcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNRE5TTmFtZU9yRXJyb3ImJik+JiYpIGZp
bmFsOwogICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgZmluYWw7Cisg
ICAgdm9pZCBzdGFydGVkTmV0d29ya1RocmVhZCgpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3Jl
YXRlRGVjb2RlckZhY3RvcnkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKaW5kZXggN2Fl
ZDY0NTdhODM4MTU3YjcyYjAyMzc0MGQ4ZDc1MjQ4YmE1MjY0My4uZThlZTczNDE3ZWQ5YTBmMDJk
MGI4ZDRkNjVmOThmMzQzYmE1NzU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKQEAgLTU3LDEz
ICs1Nyw2IEBAIExpYldlYlJUQ1NvY2tldDo6fkxpYldlYlJUQ1NvY2tldCgpCiAgICAgbV9mYWN0
b3J5LnJlbW92ZVNvY2tldCgqdGhpcyk7CiB9CiAKLXZvaWQgTGliV2ViUlRDU29ja2V0OjpzZW5k
T25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+JiYgY2FsbGJhY2sp
Ci17Ci0gICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0o
KSB7Ci0gICAgICAgIGNhbGxiYWNrKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7Ci0gICAgfSk7Ci19Ci0KIHJ0Yzo6
U29ja2V0QWRkcmVzcyBMaWJXZWJSVENTb2NrZXQ6OkdldExvY2FsQWRkcmVzcygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fbG9jYWxBZGRyZXNzOwpAQCAtMTM1LDMyICsxMjgsMjkgQEAgYm9vbCBM
aWJXZWJSVENTb2NrZXQ6OndpbGxTZW5kKHNpemVfdCBzaXplKQogCiBpbnQgTGliV2ViUlRDU29j
a2V0OjpTZW5kVG8oY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLCBjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmIGFkZHJlc3MsIGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYgb3B0aW9ucykK
IHsKLSAgICBpZiAoIXdpbGxTZW5kKHNpemUpKQorICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Zh
Y3RvcnkuY29ubmVjdGlvbigpOworICAgIGlmICghY29ubmVjdGlvbiB8fCAhd2lsbFNlbmQoc2l6
ZSkpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChtX2lzU3VzcGVuZGVkKQogICAgICAg
ICByZXR1cm4gc2l6ZTsKIAotICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVy
OjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZhbHVlKSwgc2l6ZSk7Ci0gICAg
YXV0byBpZGVudGlmaWVyID0gdGhpcy0+aWRlbnRpZmllcigpOworICAgIElQQzo6RGF0YVJlZmVy
ZW5jZSBkYXRhKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZSksIHNpemUpOworICAg
IGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OlNlbmRUbyB7IGRh
dGEsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgeyBhZGRyZXNzIH0sIFJUQ1BhY2tldE9wdGlv
bnMgeyBvcHRpb25zIH0gfSwgbV9pZGVudGlmaWVyKTsKIAotICAgIHNlbmRPbk1haW5UaHJlYWQo
W2lkZW50aWZpZXIsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcywgb3B0aW9uc10o
YXV0byYgY29ubmVjdGlvbikgewotICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+c2l6
ZSgpKTsKLSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0
OjpTZW5kVG8geyBkYXRhLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHsgYWRkcmVzcyB9LCBS
VENQYWNrZXRPcHRpb25zIHsgb3B0aW9ucyB9IH0sIGlkZW50aWZpZXIpOwotICAgIH0pOwogICAg
IHJldHVybiBzaXplOwogfQogCiBpbnQgTGliV2ViUlRDU29ja2V0OjpDbG9zZSgpCiB7Ci0gICAg
aWYgKG1fc3RhdGUgPT0gU1RBVEVfQ0xPU0VEKQorICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Zh
Y3RvcnkuY29ubmVjdGlvbigpOworICAgIGlmICghY29ubmVjdGlvbiB8fCBtX3N0YXRlID09IFNU
QVRFX0NMT1NFRCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBtX3N0YXRlID0gU1RBVEVfQ0xP
U0VEOwogCi0gICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IGlkZW50aWZpZXIoKV0o
YXV0byYgY29ubmVjdGlvbikgewotICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtSVENTb2NrZXQ6OkNsb3NlKCksIGlkZW50aWZpZXIpOwotICAgIH0pOworICAgIGNvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlKCksIG1faWRlbnRp
Zmllcik7CisKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTgwLDkgKzE3MCw5IEBAIGludCBMaWJX
ZWJSVENTb2NrZXQ6OlNldE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uIG9wdGlvbiwgaW50IHZh
bHVlKQogCiAgICAgbV9vcHRpb25zW29wdGlvbl0gPSB2YWx1ZTsKIAotICAgIHNlbmRPbk1haW5U
aHJlYWQoW2lkZW50aWZpZXIgPSBpZGVudGlmaWVyKCksIG9wdGlvbiwgdmFsdWVdKGF1dG8mIGNv
bm5lY3Rpb24pIHsKLSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRD
U29ja2V0OjpTZXRPcHRpb24ob3B0aW9uLCB2YWx1ZSksIGlkZW50aWZpZXIpOwotICAgIH0pOwor
ICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9mYWN0b3J5LmNvbm5lY3Rpb24oKSkKKyAgICAg
ICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6U2V0T3B0aW9u
KG9wdGlvbiwgdmFsdWUpLCBtX2lkZW50aWZpZXIpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAg
LTIwNywxMSArMTk3LDExIEBAIHZvaWQgTGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKCkKICAgICBt
X2lzU3VzcGVuZGVkID0gdHJ1ZTsKIAogICAgIC8vIE9uIHN1c3BlbmQsIHdlIGNsb3NlIFRDUCBz
b2NrZXRzIGFzIHdlIGNhbm5vdCBtYWtlIHN1cmUgcGFja2V0cyBhcmUgZGVsaXZlcmVkIHJlbGlh
Ymx5LgotICAgIGlmIChtX3R5cGUgIT0gVHlwZTo6VURQKSB7Ci0gICAgICAgIHNlbmRPbk1haW5U
aHJlYWQoW2lkZW50aWZpZXIgPSBpZGVudGlmaWVyKCldKGF1dG8mIGNvbm5lY3Rpb24pIHsKLSAg
ICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6Q2xv
c2UgeyB9LCBpZGVudGlmaWVyKTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIGlmIChtX3R5cGUg
PT0gVHlwZTo6VURQKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogY29ubmVjdGlv
biA9IG1fZmFjdG9yeS5jb25uZWN0aW9uKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlIHsgfSwgbV9pZGVudGlmaWVyKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKaW5kZXggYjJlOGVjYzc5OGY5
MTNlNmM5MjZiZDcyMzVmMzMxOTY4NWI1OWIxMC4uY2I0OGUwNTczNDhhMmU4NjZiMDkxZmY1YWM4
NzI2MDVjYTE5MmRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaApAQCAtODUsOCArODUsNiBAQCBwcml2
YXRlOgogICAgIGludCBHZXRPcHRpb24ocnRjOjpTb2NrZXQ6Ok9wdGlvbiwgaW50KikgZmluYWw7
CiAgICAgaW50IFNldE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uLCBpbnQpIGZpbmFsOwogCi0g
ICAgc3RhdGljIHZvaWQgc2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6Q29ubmVj
dGlvbiYpPiYmKTsKLQogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIG1fZmFjdG9yeTsKICAg
ICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBU
eXBlIG1fdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAppbmRleCBhOGRh
N2NjOWFlODA0ZmU5YzI4OGJlZjJkNTNlNjVmMjM2YWRjODA2Li5hNjg3OTQ0YzNkZGI0Mjc3MDIz
YzE4NmY0MWRjYmI3YjM0NzllZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
Y3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBVU0UoTElCV0VCUlRDKQogCisjaW5jbHVkZSAi
TGliV2ViUlRDTmV0d29yay5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrUlRDTW9uaXRvck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyTWVzc2FnZXMuaCIKQEAgLTQ1LDc2
ICs0NywxMTAgQEAgc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tl
dEFkZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJgogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKK3ZvaWQgTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c2V0Q29ubmVjdGlvbihSZWZQdHI8SVBD
OjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1
bkxvb3AoKSk7CisgICAgbV9jb25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsKK30KKwor
SVBDOjpDb25uZWN0aW9uKiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpjb25uZWN0aW9uKCkKK3sK
KyAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKKyAgICByZXR1cm4gbV9jb25uZWN0
aW9uLmdldCgpOworfQorCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRG
YWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxv
b3AoKSk7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFTRV9MT0coV2Vi
UlRDLCAiTm8gY29ubmVjdGlvbiB0byBjcmVhdGUgc2VydmVyIFRDUCBzb2NrZXQiKTsKKyAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1
ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpU
eXBlOjpTZXJ2ZXJUQ1AsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKIAotICAgIGNh
bGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVz
cyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENv
bm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9uc10oKSB7Ci0gICAgICAgIGlmICgh
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlU2Vy
dmVyVENQU29ja2V0KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVz
cyksIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnMpLCAwKSkgewotICAgICAgICAgICAgLy8gRklY
TUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tldAotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6
OkNyZWF0ZVNlcnZlclRDUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyksIDApOwog
Ci0gICAgfSk7CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKIHJ0Yzo6QXN5bmNQ
YWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChjb25z
dCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1
aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogeworICAgIEFTU0VSVCghV1RGOjpp
c01haW5SdW5Mb29wKCkpOworICAgIGlmICghbV9jb25uZWN0aW9uKSB7CisgICAgICAgIFJFTEVB
U0VfTE9HKFdlYlJUQywgIk5vIGNvbm5lY3Rpb24gdG8gY3JlYXRlIFVEUCBzb2NrZXQiKTsKKyAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVu
aXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0
OjpUeXBlOjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKIAotICAgIGNhbGxP
bk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9
IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7Ci0gICAgICAgIGlmICghV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KGlkZW50
aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBv
cnQpLCAwKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tl
dAotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSk7CisgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChz
b2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwg
bWluUG9ydCwgbWF4UG9ydCksIDApOworCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9
CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0
ZUNsaWVudFRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3Rl
QWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9w
dGlvbnMmIG9wdGlvbnMpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7Cisg
ICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAiTm8g
Y29ubmVjdGlvbiB0byBjcmVhdGUgY2xpZW50IFRDUCBzb2NrZXQiKTsKKyAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJS
VENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGll
bnRUQ1AsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0
ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5FQ1RJTkcpOwogCiAgICAgLy8gRklYTUU6IFdl
IG9ubHkgdHJhbnNmZXIgb3B0aW9ucy5vcHRzIGJ1dCBzaG91bGQgYWxzbyBoYW5kbGUgb3RoZXIg
bWVtYmVycy4KLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVu
dGlmaWVyKCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVz
cywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNzID0gcHJl
cGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29u
bmVjdGlvbnMpLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCks
IG9wdGlvbnMgPSBvcHRpb25zLm9wdHNdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChp
ZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcyksIFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcyksIHVzZXJBZ2VudCwgb3B0aW9ucyks
IDApKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29ja2V0Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9KTsKKyAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0
KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVT
b2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlv
bnMpKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhyZW1v
dGVBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCB1c2VyQWdlbnQs
IG9wdGlvbnMub3B0cyksIDApOworCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAK
IHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZU5l
d0Nvbm5lY3Rpb25Tb2NrZXQoTGliV2ViUlRDU29ja2V0JiBzZXJ2ZXJTb2NrZXQsIExpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKIHsKKyAgICBBU1NFUlQoIVdURjo6aXNN
YWluUnVuTG9vcCgpKTsKKyAgICBpZiAoIW1fY29ubmVjdGlvbikgeworICAgICAgICBSRUxFQVNF
X0xPRyhXZWJSVEMsICJObyBjb25uZWN0aW9uIHRvIGNyZWF0ZSBpbmNvbWluZyBUQ1Agc29ja2V0
Iik7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgICAg
IH0pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBhdXRvIHNvY2tldCA9
IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc2VydmVyU29ja2V0LnNvY2tldEdy
b3VwKCksIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyQ29ubmVjdGlvblRDUCwgc2VydmVy
U29ja2V0LmxvY2FsQWRkcmVzcygpLCByZW1vdGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNldFN0
YXRlKExpYldlYlJUQ1NvY2tldDo6U1RBVEVfQ09OTkVDVEVEKTsKIAotICAgIGNhbGxPbk1haW5U
aHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgbmV3Q29ubmVjdGlvblNv
Y2tldElkZW50aWZpZXJdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OldyYXBOZXdUQ1BDb25uZWN0aW9uKGlkZW50aWZpZXIs
IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKSwgMCkpIHsKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBTZXQgZXJyb3IgYmFjayB0byBzb2NrZXQKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotICAgIH0pOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjpXcmFwTmV3VENQQ29ubmVjdGlvbihzb2NrZXQtPmlkZW50aWZpZXIoKSwgbmV3
Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpLCAwKTsKKwogICAgIHJldHVybiBzb2NrZXQucmVs
ZWFzZSgpOwogfQogCiB2b2lkIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmFkZFNvY2tldChMaWJX
ZWJSVENTb2NrZXQmIHNvY2tldCkKIHsKKyAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgp
KTsKICAgICBBU1NFUlQoIW1fc29ja2V0cy5jb250YWlucyhzb2NrZXQuaWRlbnRpZmllcigpKSk7
CiAgICAgbV9zb2NrZXRzLmFkZChzb2NrZXQuaWRlbnRpZmllcigpLCAmc29ja2V0KTsKIH0KIAog
dm9pZCBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpyZW1vdmVTb2NrZXQoTGliV2ViUlRDU29ja2V0
JiBzb2NrZXQpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNT
RVJUKG1fc29ja2V0cy5jb250YWlucyhzb2NrZXQuaWRlbnRpZmllcigpKSk7CiAgICAgbV9zb2Nr
ZXRzLnJlbW92ZShzb2NrZXQuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5Ojpmb3JTb2NrZXRJbkdyb3VwKGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25z
dCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYgY2FsbGJhY2spCiB7CisgICAgQVNT
RVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgZm9yIChhdXRvKiBzb2NrZXQgOiBtX3Nv
Y2tldHMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKHNvY2tldC0+c29ja2V0R3JvdXAoKSA9PSBz
b2NrZXRHcm91cCkKICAgICAgICAgICAgIGNhbGxiYWNrKCpzb2NrZXQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZh
Y3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRGYWN0b3J5LmgKaW5kZXggZDBhNjI3YjdjOTViNjFjMGM4MDNmY2I1OWY3MTg0MzQ3
YTY4MmE5Yy4uZGJiYWFmYzBhMTEzNDIzMDE0YTcwM2M0MDQ5ZGVlOTU1MDVhYjc3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Nv
Y2tldEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCkBAIC0zNywxMSArMzcsMTIgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKK2NsYXNzIExpYldlYlJUQ05ldHdvcms7CiBjbGFzcyBMaWJXZWJSVENT
b2NrZXQ7CiAKIGNsYXNzIExpYldlYlJUQ1NvY2tldEZhY3RvcnkgewogcHVibGljOgotICAgIExp
YldlYlJUQ1NvY2tldEZhY3RvcnkoKSB7IH0KKyAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkg
PSBkZWZhdWx0OwogCiAgICAgdm9pZCBhZGRTb2NrZXQoTGliV2ViUlRDU29ja2V0Jik7CiAgICAg
dm9pZCByZW1vdmVTb2NrZXQoTGliV2ViUlRDU29ja2V0Jik7CkBAIC01OSw2ICs2MCw5IEBAIHB1
YmxpYzoKICAgICAKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsg
bV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKKyAgICB2b2lkIHNl
dENvbm5lY3Rpb24oUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uKCk7CisKIHByaXZhdGU6CiAgICAgLy8gV2UgY2Fubm90IG93biBzb2Nr
ZXRzLCBjbGllbnRzIG9mIHRoZSBmYWN0b3J5IGFyZSByZXNwb25zaWJsZSB0byBmcmVlIHRoZW0u
CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBMaWJXZWJS
VENTb2NrZXQqPiBtX3NvY2tldHM7CkBAIC02Niw2ICs3MCw4IEBAIHByaXZhdGU6CiAgICAgLy8g
V2UgY2FuIG93biByZXNvbHZlcnMgYXMgd2UgY29udHJvbCB0aGVpciBEZXN0cm95IG1ldGhvZC4K
ICAgICBIYXNoTWFwPExpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PExpYldlYlJUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7CiAgICAgYm9vbCBtX2Rpc2FibGVOb25M
b2NhbGhvc3RDb25uZWN0aW9ucyB7IGZhbHNlIH07CisKKyAgICBSZWZQdHI8SVBDOjpDb25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398634</attachid>
            <date>2020-05-06 10:22:08 -0700</date>
            <delta_ts>2020-05-07 01:56:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211291-20200506192206.patch</filename>
            <type>text/plain</type>
            <size>26832</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1M2QwMzE2MzQ0YjY3
NTZmY2FhYzMxM2M3ODIzYjMzMjcxZjc4Yy4uY2M1YmI0ZDM5MzZkMGZhMDFiY2M4YTM1YzhlYTAw
OTE1MjI2NTU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kaW5nIFdlYlJUQyBu
ZXR3b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWluIHRocmVhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjkxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmZpbHRlclNEUCBjb25zdCk6CisgICAgICAgIEZpeCBhIGNhc2Ugd2hlcmUgdGhlIFNEUCB3b3Vs
ZCBiZSBiYWRseSBmb3JtYXR0ZWQgaWYgd2UgZG8gbm90IGhhdmUgeWV0IGEgTUROUyBuYW1lIGZv
ciB0aGUgY29ycmVzcG9uZGluZyBJUCBhZGRyZXNzLgorICAgICAgICBTbWFsbCByZWZhY3Rvcmlu
ZyB0byB1c2UgZWFybHkgcmV0dXJucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2Vi
UlRDUHJvdmlkZXI6OmdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAg
QWRkIHRoZSBhYmlsaXR5IGZvciBXZWJLaXQgTGliV2ViUlRDUHJvdmlkZXIgdG8gZG8gc29tZSBw
cm9jZXNzaW5nIG9uIGNyZWF0aW9uIG9mIHRoZSBSVEMgdGhyZWFkcy4KKwogMjAyMC0wNS0wNSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHNob3VsZCB1bm9ic2VydmUgdGhlIHRyYWNrcyBmcm9t
IGl0cyBhdWRpbyBhbmQgdmlkZW8gdHJhY2sgc2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyYTFkYmI1YzE3ZWZm
MzliM2Y4N2ZmMTdhY2FiYzI0MmJkNzhkY2FkLi5jNzQwZWMyZDc5ZGQxMGEzYzU3ZWU3YTliNzM2
YzJmZDIyYWIxMjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBjYXB0dXJlIGRv
ZXMgbm90IGdldCB1bm11dGVkIGluIGNhc2Ugb2YgdGFiIHN3aXRjaCBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTUwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBubyBsb25nZXIg
bmVlZGVkIGNvZGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OlZpZGVvRmFjdG9yeTo6c2V0QWN0aXZlU291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKKzIwMjAtMDUtMDYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNlbmRpbmcgV2ViUlRDIG5ldHdvcmsg
cGFja2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyOTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgRm9sbG93aW5nIG9uIHJlY2Vpdmlu
ZyBSVEMgcGFja2V0cyBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQsIHdlIGFsc28gc2VuZCBSVEMg
cGFja2V0cyBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQuCisgICAgICAgIENyZWF0aW9uIG9mIHRo
ZSBzb2NrZXRzIGFsc28gaGFwcGVucyBpbiBhIGJhY2tncm91bmQgdGhyZWFkLgorICAgICAgICBM
aWJXZWJSVENOZXR3b3JrIGlzIGdldHRpbmcgdGhlIGNvbm5lY3Rpb24gd2hlbmV2ZXIgYSBuZXcg
Y29ubmVjdGlvbiB0byBuZXR3b3JrIHByb2Nlc3MgaXMgY3JlYXRlZC4KKyAgICAgICAgSXQgd2ls
bCB0aGVuIGhvcCB0byB0aGUgUlRDIG5ldHdvcmsgdGhyZWFkIHRvIHNldCB0aGUgSVBDIGNvbm5l
Y3Rpb24gdG8gdGhlIGxpYndlYnJ0YyBzb2NrZXQgZmFjdG9yeS4KKworICAgICAgICBBdCBjcmVh
dGlvbiBvZiB0aGUgc29ja2V0LCB3ZSBnZXQgdGhlIElQQyBjb25uZWN0aW9uIHRvIHRoZSBuZXR3
b3JrIHByb2Nlc3MgYW5kIGtlZXAgYSByZWYgaW4gdGhlIFJUQyBzb2NrZXQuCisgICAgICAgIElu
IGNhc2UgbmV0d29yayBwcm9jZXNzIGNyYXNoZWQgYW5kIHRoZSBJUEMgY29ubmVjdGlvbiBvZiB0
aGUgUlRDIG5ldHdvcmsgaXMgbnVsbCwgd2UgaG9wIHRvIHRoZSBtYWluIHRocmVhZCB0byBjcmVh
dGUgYSBuZXcgSVBDIGNvbm5lY3Rpb24uCisgICAgICAgIFRoaXMgd2lsbCBmYWlsIHRoZSBjcmVh
dGlvbiBvZiB0aGUgc29ja2V0IChhcyB3ZWxsIGFzIG5ldyBvbmVzIGFzIHdlbGwpIGFzIGxvbmcg
YXMgdGhlIElQQyBjb25uZWN0aW9uIHRvIG5ldHdvcmsgcHJvY2VzcyBpcyBub3QgdmFsaWQgYWdh
aW4uCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6OnNldEFzQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6
TGliV2ViUlRDTmV0d29yazo6c2V0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkxpYldl
YlJUQ05ldHdvcms6OmRpc3BhdGNoVG9UaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJS
VENOZXR3b3JrOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDTmV0d29y
azo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRl
cjo6c3RhcnRlZE5ldHdvcmtUaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Nv
Y2tldDo6U2VuZFRvKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpDbG9zZSk6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6U2V0T3B0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OnNldENvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KToKKyAgICAg
ICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KToKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29j
a2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlTmV3
Q29ubmVjdGlvblNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rv
cnk6OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OnJlbW92ZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OmZvclNvY2tldEluR3JvdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOgorCiAyMDIwLTA1LTAxICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWNlaXZpbmcgV2ViUlRDIG5ldHdvcmsgcGFj
a2V0cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAKaW5kZXggMGZiNzZmZGRmOWZmMTZiZThkNDcyNDkyMmFhNGYxOTMzMjVmYTEyYS4u
YzE0OWQyMWU4OGZhZGU2NjhmNDVkZjEyMjg0ZWVkODUyYWJlYWM2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcApAQCAtNDM5LDIzICs0MzksMzIgQEAgU3RyaW5nIFBlZXJDb25uZWN0aW9uQmFj
a2VuZDo6ZmlsdGVyU0RQKFN0cmluZyYmIHNkcCkgY29uc3QKIAogICAgIFN0cmluZ0J1aWxkZXIg
ZmlsdGVyZWRTRFA7CiAgICAgc2RwLnNwbGl0KCdcbicsIFt0aGlzLCAmZmlsdGVyZWRTRFBdKFN0
cmluZ1ZpZXcgbGluZSkgewotICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlOIElQNCIp
KQotICAgICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCJjPUlOIElQNCAwLjAuMC4wXHIiKTsK
LSAgICAgICAgZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlOIElQNiIpKQotICAgICAgICAg
ICAgZmlsdGVyZWRTRFAuYXBwZW5kKCJjPUlOIElQNiA6OlxyIik7Ci0gICAgICAgIGVsc2UgaWYg
KCFsaW5lLnN0YXJ0c1dpdGgoImE9Y2FuZGlkYXRlIikpCisgICAgICAgIGlmIChsaW5lLnN0YXJ0
c1dpdGgoImM9SU4gSVA0IikpIHsKKyAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgiYz1J
TiBJUDQgMC4wLjAuMFxyXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAobGluZS5zdGFydHNXaXRoKCJjPUlOIElQNiIpKSB7CisgICAgICAgICAgICBmaWx0
ZXJlZFNEUC5hcHBlbmQoImM9SU4gSVA2IDo6XHJcbiIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIGlmICghbGluZS5zdGFydHNXaXRoKCJhPWNhbmRpZGF0ZSIpKSB7
CiAgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQobGluZSk7Ci0gICAgICAgIGVsc2UgaWYg
KGxpbmUuZmluZCgiIGhvc3QgIiwgMTEpID09IG5vdEZvdW5kKQorICAgICAgICAgICAgZmlsdGVy
ZWRTRFAuYXBwZW5kKCdcbicpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIGlmIChsaW5lLmZpbmQoIiBob3N0ICIsIDExKSA9PSBub3RGb3VuZCkgewogICAgICAgICAg
ICAgZmlsdGVyZWRTRFAuYXBwZW5kKGZpbHRlcklDRUNhbmRpZGF0ZShsaW5lLnRvU3RyaW5nKCkp
KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGlwQWRkcmVzcyA9IGV4dHJhY3RJ
UEFkZHJlc3MobGluZSk7Ci0gICAgICAgICAgICBhdXRvIG1kbnNOYW1lID0gbV9pcEFkZHJlc3NU
b01ETlNOYW1lTWFwLmdldChpcEFkZHJlc3MpOwotICAgICAgICAgICAgaWYgKCFtZG5zTmFtZS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHNkcCA9IGxpbmUudG9TdHJpbmcoKTsK
LSAgICAgICAgICAgICAgICBzZHAucmVwbGFjZShpcEFkZHJlc3MsIG1kbnNOYW1lKTsKLSAgICAg
ICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoc2RwKTsKLSAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQorCisgICAgICAgIGF1dG8gaXBBZGRyZXNzID0gZXh0cmFjdElQQWRkcmVzcyhsaW5l
KTsKKyAgICAgICAgYXV0byBtZG5zTmFtZSA9IG1faXBBZGRyZXNzVG9NRE5TTmFtZU1hcC5nZXQo
aXBBZGRyZXNzKTsKKyAgICAgICAgaWYgKG1kbnNOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgYXV0byBzZHAgPSBsaW5lLnRvU3RyaW5nKCk7CisgICAgICAgIHNk
cC5yZXBsYWNlKGlwQWRkcmVzcywgbWRuc05hbWUpOworICAgICAgICBmaWx0ZXJlZFNEUC5hcHBl
bmQoc2RwKTsKICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCdcbicpOwogICAgIH0pOwogICAg
IHJldHVybiBmaWx0ZXJlZFNEUC50b1N0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHAKaW5kZXggNjRkYjJiNGUxZGQ2MDBkYjcxMWExODgxNjgxNzU3MGI0MjQ5M2Rk
Ny4uZGYyZmQ3Y2NiNTQ1MWRkYmYzZjRjMjYyMzljOTk3ZDc0MGQ5Mzc1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgc3RhdGljIGlu
bGluZSBQZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzJiBzdGF0aWNGYWN0b3J5QW5kVGhy
ZWFkcygpCiAgICAgcmV0dXJuIGZhY3RvcnlBbmRUaHJlYWRzLmdldCgpOwogfQogCi1zdGF0aWMg
aW5saW5lIFBlZXJDb25uZWN0aW9uRmFjdG9yeUFuZFRocmVhZHMmIGdldFN0YXRpY0ZhY3RvcnlB
bmRUaHJlYWRzKGJvb2wgdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIpCitQZWVyQ29u
bmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzJiBMaWJXZWJSVENQcm92aWRlcjo6Z2V0U3RhdGljRmFj
dG9yeUFuZFRocmVhZHMoYm9vbCB1c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlcikKIHsK
ICAgICBhdXRvJiBmYWN0b3J5QW5kVGhyZWFkcyA9IHN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCk7
CiAKQEAgLTIwMCw2ICsyMDAsNyBAQCBzdGF0aWMgaW5saW5lIFBlZXJDb25uZWN0aW9uRmFjdG9y
eUFuZFRocmVhZHMmIGdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKGJvb2wgdQogICAgIGlmICgh
ZmFjdG9yeUFuZFRocmVhZHMubmV0d29ya1RocmVhZCkgewogICAgICAgICBmYWN0b3J5QW5kVGhy
ZWFkcy5uZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlciA9IHVzZU5ldHdvcmtUaHJlYWRXaXRo
U29ja2V0U2VydmVyOwogICAgICAgICBpbml0aWFsaXplUGVlckNvbm5lY3Rpb25GYWN0b3J5QW5k
VGhyZWFkcyhmYWN0b3J5QW5kVGhyZWFkcyk7CisgICAgICAgIHN0YXJ0ZWROZXR3b3JrVGhyZWFk
KCk7CiAgICAgfQogICAgIHJldHVybiBmYWN0b3J5QW5kVGhyZWFkczsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMjJiMTBkZDQ4MGM4N2Y0ZGNkMDQyZmJjODhjOTk1
NGRlMzIwZDc4Zi4uMmU5NmU2NjIzZTk0YTk2Njg1NDQ3MjY3Y2M5MWRhMTMwNTBlZjVhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTU5LDYgKzU5LDcgQEAgY2xhc3Mg
UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBMaWJXZWJSVENBdWRpb01vZHVsZTsKK3N0cnVjdCBQZWVyQ29ubmVjdGlvbkZhY3RvcnlB
bmRUaHJlYWRzOwogc3RydWN0IFJUQ1J0cENhcGFiaWxpdGllczsKIAogZW51bSBjbGFzcyBNRE5T
UmVnaXN0ZXJFcnJvciB7IE5vdEltcGxlbWVudGVkLCBCYWRQYXJhbWV0ZXIsIEROU1NELCBJbnRl
cm5hbCwgVGltZW91dCB9OwpAQCAtMTM0LDYgKzEzNSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVE
ZWNvZGVyRmFjdG9yeSgpOwogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6Vmlk
ZW9FbmNvZGVyRmFjdG9yeT4gY3JlYXRlRW5jb2RlckZhY3RvcnkoKTsKIAorICAgIHZpcnR1YWwg
dm9pZCBzdGFydGVkTmV0d29ya1RocmVhZCgpIHsgfTsKKworICAgIFBlZXJDb25uZWN0aW9uRmFj
dG9yeUFuZFRocmVhZHMmIGdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKGJvb2wgdXNlTmV0d29y
a1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIpOworCiAgICAgYm9vbCBtX2VuYWJsZUVudW1lcmF0aW5n
QWxsTmV0d29ya0ludGVyZmFjZXMgeyBmYWxzZSB9OwogICAgIC8vIEZJWE1FOiBSZW1vdmUgbV91
c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlciBtZW1iZXIgdmFyaWFibGUgYW5kIG1ha2Ug
aXQgYSBnbG9iYWwuCiAgICAgYm9vbCBtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2VydmVy
IHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwCmluZGV4IDU0YjJiZDBjOWJkZTc3OTQ5
YjM4ODYyMjY2NTAzZGEzNTNlNjIwOGMuLmQ3OGQ3NTk1ODk0NTlkOTQ2MzJiNzU1MGM0MTdkMThi
ZTYzYzJmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHAKQEAgLTM5LDYgKzM5LDE5IEBAIExp
YldlYlJUQ05ldHdvcms6On5MaWJXZWJSVENOZXR3b3JrKCkKICAgICBzZXRDb25uZWN0aW9uKG51
bGxwdHIpOwogfQogCit2b2lkIExpYldlYlJUQ05ldHdvcms6OnNldEFzQWN0aXZlKCkKK3sKKyAg
ICBBU1NFUlQoIW1faXNBY3RpdmUpOworICAgIG1faXNBY3RpdmUgPSB0cnVlOworI2lmIFVTRShM
SUJXRUJSVEMpCisgICAgaWYgKG1fY29ubmVjdGlvbikgeworICAgICAgICBXZWJDb3JlOjpMaWJX
ZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRDTmV0d29ya1RocmVhZChbdGhpcywgY29ubmVjdGlv
biA9IG1fY29ubmVjdGlvbl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG1fc29ja2V0RmFjdG9y
eS5zZXRDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpOworICAgICAgICB9KTsKKyAgICB9
CisjZW5kaWYKK30KKwogdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpuZXR3b3JrUHJvY2Vzc0NyYXNo
ZWQoKQogewogICAgIHNldENvbm5lY3Rpb24obnVsbHB0cik7CkBAIC01Myw2ICs2NiwxMSBAQCB2
b2lkIExpYldlYlJUQ05ldHdvcms6OnNldENvbm5lY3Rpb24oUmVmUHRyPElQQzo6Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKG1fY29ubmVjdGlv
bikKICAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OkxpYldlYlJUQ05ldHdvcms6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgaWYg
KG1faXNBY3RpdmUpIHsKKyAgICAgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNhbGxP
bldlYlJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb25dKCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBtX3NvY2tldEZhY3Rvcnkuc2V0Q29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24p
KTsKKyAgICAgICAgfSk7CisgICAgfQogI2VuZGlmCiAgICAgbV9jb25uZWN0aW9uID0gV1RGTW92
ZShjb25uZWN0aW9uKTsKICNpZiBVU0UoTElCV0VCUlRDKQpAQCAtNjEsMTggKzc5LDkgQEAgdm9p
ZCBMaWJXZWJSVENOZXR3b3JrOjpzZXRDb25uZWN0aW9uKFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbikKICNlbmRpZgogfQogCi1ib29sIExpYldlYlJUQ05ldHdvcms6OmlzQWN0
aXZlKCkgY29uc3QKLXsKLSNpZiBVU0UoTElCV0VCUlRDKQotICAgIHJldHVybiBXZWJDb3JlOjpM
aWJXZWJSVENQcm92aWRlcjo6aGFzV2ViUlRDVGhyZWFkcygpOwotI2Vsc2UKLSAgICByZXR1cm4g
ZmFsc2U7Ci0jZW5kaWYKLX0KLQogdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpkaXNwYXRjaFRvVGhy
ZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKLSAgICBpZiAoIWlzQWN0aXZlKCkp
IHsKKyAgICBpZiAoIW1faXNBY3RpdmUpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiUmVjZWl2ZWQgV2ViUlRDU29ja2V0IG1lc3NhZ2Ugd2hpbGUgbGliV2ViUlRDTmV0d29y
ayBpcyBub3QgYWN0aXZlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdv
cmsuaAppbmRleCA1Y2RmNGY3NTJjNjU2YjA1YzUwM2IwOGQ3YTBmM2NkZmE0NmEwOTIyLi4xNWJi
MTZlNzk5ZmRmZDJlODlmZDUxNTM4MmQ0YmJjZjA1ZWNmYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3Jr
LmgKQEAgLTQxLDEwICs0MSwxMiBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRDTmV0d29yaygpID0g
ZGVmYXVsdDsKICAgICB+TGliV2ViUlRDTmV0d29yaygpOwogCisgICAgSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAgICAgdm9pZCBz
ZXRDb25uZWN0aW9uKFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+JiYpOworCiAgICAgdm9pZCBuZXR3
b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIAotICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKKyAgICBi
b29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjdGl2ZTsgfQogCiAjaWYgVVNFKExJ
QldFQlJUQykKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOwpAQCAtNjEsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgV2ViTUROU1JlZ2lz
dGVyJiBtZG5zUmVnaXN0ZXIoKSB7IHJldHVybiBtX21kbnNSZWdpc3RlcjsgfQogI2VuZGlmCiAK
KyAgICB2b2lkIHNldEFzQWN0aXZlKCk7CisKIHByaXZhdGU6CiAjaWYgVVNFKExJQldFQlJUQykK
ICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgUlRDTmV0d29yazo6SVBBZGRy
ZXNzJiwgdWludDE2X3QgcG9ydCwgaW50NjRfdCk7CkBAIC04MSw2ICs4NSw3IEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgV2ViTUROU1JlZ2lzdGVyIG1fbWRuc1JlZ2lzdGVy
OwogI2VuZGlmCisgICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8SVBD
OjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNw
cAppbmRleCBhNjZmOTU3N2E4NjFlOTk4YThmMjk0Y2QzYWViNTY4NWNlZGY0OTY5Li44ZWMzNzY3
ODU5NTBkMzA4YzM1YmRlZjI2Mjk4MDU1N2U5ZjM4ZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5jcHAKQEAgLTEzMSw2ICsxMzEsMTEgQEAgdm9pZCBSVENTb2NrZXRGYWN0b3J5OjpyZXN1bWUo
KQogICAgIH0pOwogfQogCit2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpzdGFydGVkTmV0d29ya1Ro
cmVhZCgpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygp
LnNldEFzQWN0aXZlKCk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92aWRlcjo6
U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0
RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQpCiB7CiAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UlRD
U29ja2V0RmFjdG9yeT4oV1RGTW92ZSh1c2VyQWdlbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
aW5kZXggNzU1ZDZjNmZmNmNjNzkzNmY4MTdkYmJlOTFlMDBmYzdiNDZhNTFlYy4uYzZiM2UwYTQ0
MTZjYTBhNTZlYzliNzBiZmNiMGQ1MzRjOTg3ZjIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
QEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVucmVnaXN0ZXJNRE5TTmFtZXMo
V2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyTURO
U05hbWUoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVz
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNRE5TTmFtZU9yRXJyb3ImJik+JiYpIGZpbmFsOwog
ICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgZmluYWw7CisgICAgdm9p
ZCBzdGFydGVkTmV0d29ya1RocmVhZCgpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlRGVj
b2RlckZhY3RvcnkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKaW5kZXggN2FlZDY0NTdh
ODM4MTU3YjcyYjAyMzc0MGQ4ZDc1MjQ4YmE1MjY0My4uZThlZTczNDE3ZWQ5YTBmMDJkMGI4ZDRk
NjVmOThmMzQzYmE1NzU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKQEAgLTU3LDEzICs1Nyw2
IEBAIExpYldlYlJUQ1NvY2tldDo6fkxpYldlYlJUQ1NvY2tldCgpCiAgICAgbV9mYWN0b3J5LnJl
bW92ZVNvY2tldCgqdGhpcyk7CiB9CiAKLXZvaWQgTGliV2ViUlRDU29ja2V0OjpzZW5kT25NYWlu
VGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+JiYgY2FsbGJhY2spCi17Ci0g
ICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSB7Ci0g
ICAgICAgIGNhbGxiYWNrKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7Ci0gICAgfSk7Ci19Ci0KIHJ0Yzo6U29ja2V0
QWRkcmVzcyBMaWJXZWJSVENTb2NrZXQ6OkdldExvY2FsQWRkcmVzcygpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fbG9jYWxBZGRyZXNzOwpAQCAtMTM1LDMyICsxMjgsMjkgQEAgYm9vbCBMaWJXZWJS
VENTb2NrZXQ6OndpbGxTZW5kKHNpemVfdCBzaXplKQogCiBpbnQgTGliV2ViUlRDU29ja2V0OjpT
ZW5kVG8oY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGFkZHJlc3MsIGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYgb3B0aW9ucykKIHsKLSAg
ICBpZiAoIXdpbGxTZW5kKHNpemUpKQorICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2ZhY3Rvcnku
Y29ubmVjdGlvbigpOworICAgIGlmICghY29ubmVjdGlvbiB8fCAhd2lsbFNlbmQoc2l6ZSkpCiAg
ICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChtX2lzU3VzcGVuZGVkKQogICAgICAgICByZXR1
cm4gc2l6ZTsKIAotICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVh
dGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZhbHVlKSwgc2l6ZSk7Ci0gICAgYXV0byBp
ZGVudGlmaWVyID0gdGhpcy0+aWRlbnRpZmllcigpOworICAgIElQQzo6RGF0YVJlZmVyZW5jZSBk
YXRhKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZSksIHNpemUpOworICAgIGNvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OlNlbmRUbyB7IGRhdGEsIFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MgeyBhZGRyZXNzIH0sIFJUQ1BhY2tldE9wdGlvbnMgeyBv
cHRpb25zIH0gfSwgbV9pZGVudGlmaWVyKTsKIAotICAgIHNlbmRPbk1haW5UaHJlYWQoW2lkZW50
aWZpZXIsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcywgb3B0aW9uc10oYXV0byYg
Y29ubmVjdGlvbikgewotICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YShyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+c2l6ZSgpKTsK
LSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpTZW5k
VG8geyBkYXRhLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHsgYWRkcmVzcyB9LCBSVENQYWNr
ZXRPcHRpb25zIHsgb3B0aW9ucyB9IH0sIGlkZW50aWZpZXIpOwotICAgIH0pOwogICAgIHJldHVy
biBzaXplOwogfQogCiBpbnQgTGliV2ViUlRDU29ja2V0OjpDbG9zZSgpCiB7Ci0gICAgaWYgKG1f
c3RhdGUgPT0gU1RBVEVfQ0xPU0VEKQorICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2ZhY3Rvcnku
Y29ubmVjdGlvbigpOworICAgIGlmICghY29ubmVjdGlvbiB8fCBtX3N0YXRlID09IFNUQVRFX0NM
T1NFRCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBtX3N0YXRlID0gU1RBVEVfQ0xPU0VEOwog
Ci0gICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IGlkZW50aWZpZXIoKV0oYXV0byYg
Y29ubmVjdGlvbikgewotICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtS
VENTb2NrZXQ6OkNsb3NlKCksIGlkZW50aWZpZXIpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlKCksIG1faWRlbnRpZmllcik7
CisKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTgwLDkgKzE3MCw5IEBAIGludCBMaWJXZWJSVENT
b2NrZXQ6OlNldE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uIG9wdGlvbiwgaW50IHZhbHVlKQog
CiAgICAgbV9vcHRpb25zW29wdGlvbl0gPSB2YWx1ZTsKIAotICAgIHNlbmRPbk1haW5UaHJlYWQo
W2lkZW50aWZpZXIgPSBpZGVudGlmaWVyKCksIG9wdGlvbiwgdmFsdWVdKGF1dG8mIGNvbm5lY3Rp
b24pIHsKLSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0
OjpTZXRPcHRpb24ob3B0aW9uLCB2YWx1ZSksIGlkZW50aWZpZXIpOwotICAgIH0pOworICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gbV9mYWN0b3J5LmNvbm5lY3Rpb24oKSkKKyAgICAgICAgY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6U2V0T3B0aW9uKG9wdGlv
biwgdmFsdWUpLCBtX2lkZW50aWZpZXIpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTIwNywx
MSArMTk3LDExIEBAIHZvaWQgTGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKCkKICAgICBtX2lzU3Vz
cGVuZGVkID0gdHJ1ZTsKIAogICAgIC8vIE9uIHN1c3BlbmQsIHdlIGNsb3NlIFRDUCBzb2NrZXRz
IGFzIHdlIGNhbm5vdCBtYWtlIHN1cmUgcGFja2V0cyBhcmUgZGVsaXZlcmVkIHJlbGlhYmx5Lgot
ICAgIGlmIChtX3R5cGUgIT0gVHlwZTo6VURQKSB7Ci0gICAgICAgIHNlbmRPbk1haW5UaHJlYWQo
W2lkZW50aWZpZXIgPSBpZGVudGlmaWVyKCldKGF1dG8mIGNvbm5lY3Rpb24pIHsKLSAgICAgICAg
ICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6Q2xvc2UgeyB9
LCBpZGVudGlmaWVyKTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIGlmIChtX3R5cGUgPT0gVHlw
ZTo6VURQKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1f
ZmFjdG9yeS5jb25uZWN0aW9uKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtSVENTb2NrZXQ6OkNsb3NlIHsgfSwgbV9pZGVudGlmaWVyKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKaW5kZXggYjJlOGVjYzc5OGY5MTNlNmM5
MjZiZDcyMzVmMzMxOTY4NWI1OWIxMC4uY2I0OGUwNTczNDhhMmU4NjZiMDkxZmY1YWM4NzI2MDVj
YTE5MmRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaApAQCAtODUsOCArODUsNiBAQCBwcml2YXRlOgog
ICAgIGludCBHZXRPcHRpb24ocnRjOjpTb2NrZXQ6Ok9wdGlvbiwgaW50KikgZmluYWw7CiAgICAg
aW50IFNldE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uLCBpbnQpIGZpbmFsOwogCi0gICAgc3Rh
dGljIHZvaWQgc2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYp
PiYmKTsKLQogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIG1fZmFjdG9yeTsKICAgICBXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBUeXBlIG1f
dHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAppbmRleCBhOGRhN2NjOWFl
ODA0ZmU5YzI4OGJlZjJkNTNlNjVmMjM2YWRjODA2Li5hNjg3OTQ0YzNkZGI0Mjc3MDIzYzE4NmY0
MWRjYmI3YjM0NzllZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBA
IC0yOCw2ICsyOCw4IEBACiAKICNpZiBVU0UoTElCV0VCUlRDKQogCisjaW5jbHVkZSAiTGliV2Vi
UlRDTmV0d29yay5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrUlRDTW9uaXRvck1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyTWVzc2FnZXMuaCIKQEAgLTQ1LDc2ICs0Nywx
MTAgQEAgc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJl
c3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3Zv
aWQgTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c2V0Q29ubmVjdGlvbihSZWZQdHI8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3Ao
KSk7CisgICAgbV9jb25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsKK30KKworSVBDOjpD
b25uZWN0aW9uKiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpjb25uZWN0aW9uKCkKK3sKKyAgICBB
U1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLmdl
dCgpOworfQorCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5
OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4
UG9ydCwgaW50IG9wdGlvbnMpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7
CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAi
Tm8gY29ubmVjdGlvbiB0byBjcmVhdGUgc2VydmVyIFRDUCBzb2NrZXQiKTsKKyAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJX
ZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpT
ZXJ2ZXJUQ1AsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKIAotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IHBy
ZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rp
b25zKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9uc10oKSB7Ci0gICAgICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlU2VydmVyVENQ
U29ja2V0KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1p
blBvcnQsIG1heFBvcnQsIG9wdGlvbnMpLCAwKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNl
dCBlcnJvciBiYWNrIHRvIHNvY2tldAotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0
ZVNlcnZlclRDUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyksIDApOwogCi0gICAg
fSk7CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKIHJ0Yzo6QXN5bmNQYWNrZXRT
b2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lk
KiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZf
dCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogeworICAgIEFTU0VSVCghV1RGOjppc01haW5S
dW5Mb29wKCkpOworICAgIGlmICghbV9jb25uZWN0aW9uKSB7CisgICAgICAgIFJFTEVBU0VfTE9H
KFdlYlJUQywgIk5vIGNvbm5lY3Rpb24gdG8gY3JlYXRlIFVEUCBzb2NrZXQiKTsKKyAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxM
aWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBl
OjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKIAotICAgIGNhbGxPbk1haW5U
aHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IHByZXBh
cmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25z
KSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7Ci0gICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KGlkZW50aWZpZXIs
IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQpLCAw
KSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tldAotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSk7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChzb2NrZXQt
PmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9y
dCwgbWF4UG9ydCksIDApOworCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKIHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVu
dFRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVz
cywgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMm
IG9wdGlvbnMpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CisgICAgaWYg
KCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAiTm8gY29ubmVj
dGlvbiB0byBjcmVhdGUgY2xpZW50IFRDUCBzb2NrZXQiKTsKKyAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbXSB7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKwogICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2Nr
ZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1As
IGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJX
ZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5FQ1RJTkcpOwogCiAgICAgLy8gRklYTUU6IFdlIG9ubHkg
dHJhbnNmZXIgb3B0aW9ucy5vcHRzIGJ1dCBzaG91bGQgYWxzbyBoYW5kbGUgb3RoZXIgbWVtYmVy
cy4KLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVy
KCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9k
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNzID0gcHJlcGFyZVNv
Y2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlv
bnMpLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlv
bnMgPSBvcHRpb25zLm9wdHNdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlm
aWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcyksIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcyksIHVzZXJBZ2VudCwgb3B0aW9ucyksIDApKSB7
Ci0gICAgICAgICAgICAvLyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29ja2V0Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KHNvY2tl
dC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRB
ZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhyZW1vdGVBZGRy
ZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCB1c2VyQWdlbnQsIG9wdGlv
bnMub3B0cyksIDApOworCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKIHJ0Yzo6
QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZU5ld0Nvbm5l
Y3Rpb25Tb2NrZXQoTGliV2ViUlRDU29ja2V0JiBzZXJ2ZXJTb2NrZXQsIExpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKIHsKKyAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVu
TG9vcCgpKTsKKyAgICBpZiAoIW1fY29ubmVjdGlvbikgeworICAgICAgICBSRUxFQVNFX0xPRyhX
ZWJSVEMsICJObyBjb25uZWN0aW9uIHRvIGNyZWF0ZSBpbmNvbWluZyBUQ1Agc29ja2V0Iik7Cisg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgICAgIH0pOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBhdXRvIHNvY2tldCA9IG1ha2VV
bmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc2VydmVyU29ja2V0LnNvY2tldEdyb3VwKCks
IExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyQ29ubmVjdGlvblRDUCwgc2VydmVyU29ja2V0
LmxvY2FsQWRkcmVzcygpLCByZW1vdGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExp
YldlYlJUQ1NvY2tldDo6U1RBVEVfQ09OTkVDVEVEKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQo
W2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgbmV3Q29ubmVjdGlvblNvY2tldElk
ZW50aWZpZXJdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OldyYXBOZXdUQ1BDb25uZWN0aW9uKGlkZW50aWZpZXIsIG5ld0Nv
bm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKSwgMCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBT
ZXQgZXJyb3IgYmFjayB0byBzb2NrZXQKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgIH0pOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3Zp
ZGVyOjpXcmFwTmV3VENQQ29ubmVjdGlvbihzb2NrZXQtPmlkZW50aWZpZXIoKSwgbmV3Q29ubmVj
dGlvblNvY2tldElkZW50aWZpZXIpLCAwKTsKKwogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgp
OwogfQogCiB2b2lkIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmFkZFNvY2tldChMaWJXZWJSVENT
b2NrZXQmIHNvY2tldCkKIHsKKyAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKICAg
ICBBU1NFUlQoIW1fc29ja2V0cy5jb250YWlucyhzb2NrZXQuaWRlbnRpZmllcigpKSk7CiAgICAg
bV9zb2NrZXRzLmFkZChzb2NrZXQuaWRlbnRpZmllcigpLCAmc29ja2V0KTsKIH0KIAogdm9pZCBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpyZW1vdmVTb2NrZXQoTGliV2ViUlRDU29ja2V0JiBzb2Nr
ZXQpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1f
c29ja2V0cy5jb250YWlucyhzb2NrZXQuaWRlbnRpZmllcigpKSk7CiAgICAgbV9zb2NrZXRzLnJl
bW92ZShzb2NrZXQuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBMaWJXZWJSVENTb2NrZXRGYWN0
b3J5Ojpmb3JTb2NrZXRJbkdyb3VwKGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBGdW5j
dGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYgY2FsbGJhY2spCiB7CisgICAgQVNTRVJUKCFX
VEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgZm9yIChhdXRvKiBzb2NrZXQgOiBtX3NvY2tldHMu
dmFsdWVzKCkpIHsKICAgICAgICAgaWYgKHNvY2tldC0+c29ja2V0R3JvdXAoKSA9PSBzb2NrZXRH
cm91cCkKICAgICAgICAgICAgIGNhbGxiYWNrKCpzb2NrZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5LmgKaW5kZXggZDBhNjI3YjdjOTViNjFjMGM4MDNmY2I1OWY3MTg0MzQ3YTY4MmE5
Yy4uZGJiYWFmYzBhMTEzNDIzMDE0YTcwM2M0MDQ5ZGVlOTU1MDVhYjc3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZh
Y3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0RmFjdG9yeS5oCkBAIC0zNywxMSArMzcsMTIgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK2NsYXNzIExpYldlYlJUQ05ldHdvcms7CiBjbGFzcyBMaWJXZWJSVENTb2NrZXQ7
CiAKIGNsYXNzIExpYldlYlJUQ1NvY2tldEZhY3RvcnkgewogcHVibGljOgotICAgIExpYldlYlJU
Q1NvY2tldEZhY3RvcnkoKSB7IH0KKyAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgPSBkZWZh
dWx0OwogCiAgICAgdm9pZCBhZGRTb2NrZXQoTGliV2ViUlRDU29ja2V0Jik7CiAgICAgdm9pZCBy
ZW1vdmVTb2NrZXQoTGliV2ViUlRDU29ja2V0Jik7CkBAIC01OSw2ICs2MCw5IEBAIHB1YmxpYzoK
ICAgICAKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9kaXNh
YmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKKyAgICB2b2lkIHNldENvbm5l
Y3Rpb24oUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uKCk7CisKIHByaXZhdGU6CiAgICAgLy8gV2UgY2Fubm90IG93biBzb2NrZXRzLCBj
bGllbnRzIG9mIHRoZSBmYWN0b3J5IGFyZSByZXNwb25zaWJsZSB0byBmcmVlIHRoZW0uCiAgICAg
SGFzaE1hcDxXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2Nr
ZXQqPiBtX3NvY2tldHM7CkBAIC02Niw2ICs3MCw4IEBAIHByaXZhdGU6CiAgICAgLy8gV2UgY2Fu
IG93biByZXNvbHZlcnMgYXMgd2UgY29udHJvbCB0aGVpciBEZXN0cm95IG1ldGhvZC4KICAgICBI
YXNoTWFwPExpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPExpYldl
YlJUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7CiAgICAgYm9vbCBtX2Rpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucyB7IGZhbHNlIH07CisKKyAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398714</attachid>
            <date>2020-05-07 01:56:28 -0700</date>
            <delta_ts>2020-05-07 02:23:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211291-20200507105626.patch</filename>
            <type>text/plain</type>
            <size>26383</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1M2QwMzE2MzQ0YjY3
NTZmY2FhYzMxM2M3ODIzYjMzMjcxZjc4Yy4uY2M1YmI0ZDM5MzZkMGZhMDFiY2M4YTM1YzhlYTAw
OTE1MjI2NTU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kaW5nIFdlYlJUQyBu
ZXR3b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWluIHRocmVhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjkxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmZpbHRlclNEUCBjb25zdCk6CisgICAgICAgIEZpeCBhIGNhc2Ugd2hlcmUgdGhlIFNEUCB3b3Vs
ZCBiZSBiYWRseSBmb3JtYXR0ZWQgaWYgd2UgZG8gbm90IGhhdmUgeWV0IGEgTUROUyBuYW1lIGZv
ciB0aGUgY29ycmVzcG9uZGluZyBJUCBhZGRyZXNzLgorICAgICAgICBTbWFsbCByZWZhY3Rvcmlu
ZyB0byB1c2UgZWFybHkgcmV0dXJucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2Vi
UlRDUHJvdmlkZXI6OmdldFN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAg
QWRkIHRoZSBhYmlsaXR5IGZvciBXZWJLaXQgTGliV2ViUlRDUHJvdmlkZXIgdG8gZG8gc29tZSBw
cm9jZXNzaW5nIG9uIGNyZWF0aW9uIG9mIHRoZSBSVEMgdGhyZWFkcy4KKwogMjAyMC0wNS0wNSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHNob3VsZCB1bm9ic2VydmUgdGhlIHRyYWNrcyBmcm9t
IGl0cyBhdWRpbyBhbmQgdmlkZW8gdHJhY2sgc2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyYTFkYmI1YzE3ZWZm
MzliM2Y4N2ZmMTdhY2FiYzI0MmJkNzhkY2FkLi4yMzg2NmQ2ZDg3N2IyMjY0NzI2MGFjNzU4NTVj
ZmZhMjkyMmNiY2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA1LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kaW5nIFdlYlJUQyBu
ZXR3b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWluIHRocmVhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjkxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEZvbGxvd2luZyBvbiBy
ZWNlaXZpbmcgUlRDIHBhY2tldHMgZnJvbSBhIGJhY2tncm91bmQgdGhyZWFkLCB3ZSBhbHNvIHNl
bmQgUlRDIHBhY2tldHMgZnJvbSBhIGJhY2tncm91bmQgdGhyZWFkLgorICAgICAgICBDcmVhdGlv
biBvZiB0aGUgc29ja2V0cyBhbHNvIGhhcHBlbnMgaW4gYSBiYWNrZ3JvdW5kIHRocmVhZC4KKyAg
ICAgICAgTGliV2ViUlRDTmV0d29yayBpcyBnZXR0aW5nIHRoZSBjb25uZWN0aW9uIHdoZW5ldmVy
IGEgbmV3IGNvbm5lY3Rpb24gdG8gbmV0d29yayBwcm9jZXNzIGlzIGNyZWF0ZWQuCisgICAgICAg
IEl0IHdpbGwgdGhlbiBob3AgdG8gdGhlIFJUQyBuZXR3b3JrIHRocmVhZCB0byBzZXQgdGhlIElQ
QyBjb25uZWN0aW9uIHRvIHRoZSBsaWJ3ZWJydGMgc29ja2V0IGZhY3RvcnkuCisKKyAgICAgICAg
QXQgY3JlYXRpb24gb2YgdGhlIHNvY2tldCwgd2UgZ2V0IHRoZSBJUEMgY29ubmVjdGlvbiB0byB0
aGUgbmV0d29yayBwcm9jZXNzIGFuZCBrZWVwIGEgcmVmIGluIHRoZSBSVEMgc29ja2V0LgorICAg
ICAgICBJbiBjYXNlIG5ldHdvcmsgcHJvY2VzcyBjcmFzaGVkIGFuZCB0aGUgSVBDIGNvbm5lY3Rp
b24gb2YgdGhlIFJUQyBuZXR3b3JrIGlzIG51bGwsIHdlIGhvcCB0byB0aGUgbWFpbiB0aHJlYWQg
dG8gY3JlYXRlIGEgbmV3IElQQyBjb25uZWN0aW9uLgorICAgICAgICBUaGlzIHdpbGwgZmFpbCB0
aGUgY3JlYXRpb24gb2YgdGhlIHNvY2tldCAoYXMgd2VsbCBhcyBuZXcgb25lcyBhcyB3ZWxsKSBh
cyBsb25nIGFzIHRoZSBJUEMgY29ubmVjdGlvbiB0byBuZXR3b3JrIHByb2Nlc3MgaXMgbm90IHZh
bGlkIGFnYWluLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENOZXR3b3JrOjpzZXRBc0FjdGl2ZSk6CisgICAgICAgIChX
ZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6OnNldENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0
OjpMaWJXZWJSVENOZXR3b3JrOjpkaXNwYXRjaFRvVGhyZWFkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaDoKKyAgICAgICAgKFdlYktpdDo6
TGliV2ViUlRDTmV0d29yazo6Y29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJU
Q05ldHdvcms6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRD
UHJvdmlkZXI6OnN0YXJ0ZWROZXR3b3JrVGhyZWFkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJX
ZWJSVENTb2NrZXQ6OlNlbmRUbyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6
Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OlNldE9wdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6c3VzcGVuZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpzZXRDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y29ubmVjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldCk6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tl
dCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVu
dFRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNy
ZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5OjphZGRTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRG
YWN0b3J5OjpyZW1vdmVTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRG
YWN0b3J5Ojpmb3JTb2NrZXRJbkdyb3VwKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaDoKKwogMjAyMC0wNS0wMSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVjZWl2aW5nIFdlYlJUQyBuZXR3
b3JrIHBhY2tldHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWluIHRocmVhZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwCmluZGV4IDBmYjc2ZmRkZjlmZjE2YmU4ZDQ3MjQ5MjJhYTRmMTkzMzI1
ZmExMmEuLmMxNDlkMjFlODhmYWRlNjY4ZjQ1ZGYxMjI4NGVlZDg1MmFiZWFjNjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcHAKQEAgLTQzOSwyMyArNDM5LDMyIEBAIFN0cmluZyBQZWVyQ29ubmVj
dGlvbkJhY2tlbmQ6OmZpbHRlclNEUChTdHJpbmcmJiBzZHApIGNvbnN0CiAKICAgICBTdHJpbmdC
dWlsZGVyIGZpbHRlcmVkU0RQOwogICAgIHNkcC5zcGxpdCgnXG4nLCBbdGhpcywgJmZpbHRlcmVk
U0RQXShTdHJpbmdWaWV3IGxpbmUpIHsKLSAgICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgiYz1J
TiBJUDQiKSkKLSAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgiYz1JTiBJUDQgMC4wLjAu
MFxyIik7Ci0gICAgICAgIGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aCgiYz1JTiBJUDYiKSkKLSAg
ICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgiYz1JTiBJUDYgOjpcciIpOwotICAgICAgICBl
bHNlIGlmICghbGluZS5zdGFydHNXaXRoKCJhPWNhbmRpZGF0ZSIpKQorICAgICAgICBpZiAobGlu
ZS5zdGFydHNXaXRoKCJjPUlOIElQNCIpKSB7CisgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBl
bmQoImM9SU4gSVA0IDAuMC4wLjBcclxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgiYz1JTiBJUDYiKSkgeworICAgICAgICAg
ICAgZmlsdGVyZWRTRFAuYXBwZW5kKCJjPUlOIElQNiA6OlxyXG4iKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWxpbmUuc3RhcnRzV2l0aCgiYT1jYW5kaWRh
dGUiKSkgewogICAgICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKGxpbmUpOwotICAgICAgICBl
bHNlIGlmIChsaW5lLmZpbmQoIiBob3N0ICIsIDExKSA9PSBub3RGb3VuZCkKKyAgICAgICAgICAg
IGZpbHRlcmVkU0RQLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBpZiAobGluZS5maW5kKCIgaG9zdCAiLCAxMSkgPT0gbm90Rm91bmQpIHsKICAg
ICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZChmaWx0ZXJJQ0VDYW5kaWRhdGUobGluZS50b1N0
cmluZygpKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgYXV0byBpcEFkZHJlc3MgPSBl
eHRyYWN0SVBBZGRyZXNzKGxpbmUpOwotICAgICAgICAgICAgYXV0byBtZG5zTmFtZSA9IG1faXBB
ZGRyZXNzVG9NRE5TTmFtZU1hcC5nZXQoaXBBZGRyZXNzKTsKLSAgICAgICAgICAgIGlmICghbWRu
c05hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBzZHAgPSBsaW5lLnRvU3Ry
aW5nKCk7Ci0gICAgICAgICAgICAgICAgc2RwLnJlcGxhY2UoaXBBZGRyZXNzLCBtZG5zTmFtZSk7
Ci0gICAgICAgICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKHNkcCk7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoJ1xuJyk7CisgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KKworICAgICAgICBhdXRvIGlwQWRkcmVzcyA9IGV4dHJhY3RJUEFkZHJl
c3MobGluZSk7CisgICAgICAgIGF1dG8gbWRuc05hbWUgPSBtX2lwQWRkcmVzc1RvTUROU05hbWVN
YXAuZ2V0KGlwQWRkcmVzcyk7CisgICAgICAgIGlmIChtZG5zTmFtZS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8gc2RwID0gbGluZS50b1N0cmluZygpOworICAg
ICAgICBzZHAucmVwbGFjZShpcEFkZHJlc3MsIG1kbnNOYW1lKTsKKyAgICAgICAgZmlsdGVyZWRT
RFAuYXBwZW5kKHNkcCk7CiAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnXG4nKTsKICAgICB9
KTsKICAgICByZXR1cm4gZmlsdGVyZWRTRFAudG9TdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IDY0ZGIyYjRlMWRkNjAwZGI3MTFhMTg4MTY4MTc1NzBi
NDI0OTNkZDcuLmRmMmZkN2NjYjU0NTFkZGJmM2Y0YzI2MjM5Yzk5N2Q3NDBkOTM3NTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMTkxLDcgKzE5MSw3IEBAIHN0
YXRpYyBpbmxpbmUgUGVlckNvbm5lY3Rpb25GYWN0b3J5QW5kVGhyZWFkcyYgc3RhdGljRmFjdG9y
eUFuZFRocmVhZHMoKQogICAgIHJldHVybiBmYWN0b3J5QW5kVGhyZWFkcy5nZXQoKTsKIH0KIAot
c3RhdGljIGlubGluZSBQZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzJiBnZXRTdGF0aWNG
YWN0b3J5QW5kVGhyZWFkcyhib29sIHVzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2VydmVyKQor
UGVlckNvbm5lY3Rpb25GYWN0b3J5QW5kVGhyZWFkcyYgTGliV2ViUlRDUHJvdmlkZXI6OmdldFN0
YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKGJvb2wgdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2
ZXIpCiB7CiAgICAgYXV0byYgZmFjdG9yeUFuZFRocmVhZHMgPSBzdGF0aWNGYWN0b3J5QW5kVGhy
ZWFkcygpOwogCkBAIC0yMDAsNiArMjAwLDcgQEAgc3RhdGljIGlubGluZSBQZWVyQ29ubmVjdGlv
bkZhY3RvcnlBbmRUaHJlYWRzJiBnZXRTdGF0aWNGYWN0b3J5QW5kVGhyZWFkcyhib29sIHUKICAg
ICBpZiAoIWZhY3RvcnlBbmRUaHJlYWRzLm5ldHdvcmtUaHJlYWQpIHsKICAgICAgICAgZmFjdG9y
eUFuZFRocmVhZHMubmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIgPSB1c2VOZXR3b3JrVGhy
ZWFkV2l0aFNvY2tldFNlcnZlcjsKICAgICAgICAgaW5pdGlhbGl6ZVBlZXJDb25uZWN0aW9uRmFj
dG9yeUFuZFRocmVhZHMoZmFjdG9yeUFuZFRocmVhZHMpOworICAgICAgICBzdGFydGVkTmV0d29y
a1RocmVhZCgpOwogICAgIH0KICAgICByZXR1cm4gZmFjdG9yeUFuZFRocmVhZHM7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IDIyYjEwZGQ0ODBjODdmNGRjZDA0MmZi
Yzg4Yzk5NTRkZTMyMGQ3OGYuLjJlOTZlNjYyM2U5NGE5NjY4NTQ0NzI2N2NjOTFkYTEzMDUwZWY1
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC01OSw2ICs1OSw3IEBA
IGNsYXNzIFBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZTsKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgTGliV2ViUlRDQXVkaW9Nb2R1bGU7CitzdHJ1Y3QgUGVlckNvbm5lY3Rpb25G
YWN0b3J5QW5kVGhyZWFkczsKIHN0cnVjdCBSVENSdHBDYXBhYmlsaXRpZXM7CiAKIGVudW0gY2xh
c3MgTUROU1JlZ2lzdGVyRXJyb3IgeyBOb3RJbXBsZW1lbnRlZCwgQmFkUGFyYW1ldGVyLCBETlNT
RCwgSW50ZXJuYWwsIFRpbWVvdXQgfTsKQEAgLTEzNCw2ICsxMzUsMTAgQEAgcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4g
Y3JlYXRlRGVjb2RlckZhY3RvcnkoKTsKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjx3ZWJy
dGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNyZWF0ZUVuY29kZXJGYWN0b3J5KCk7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRlZE5ldHdvcmtUaHJlYWQoKSB7IH07CisKKyAgICBQZWVyQ29ubmVj
dGlvbkZhY3RvcnlBbmRUaHJlYWRzJiBnZXRTdGF0aWNGYWN0b3J5QW5kVGhyZWFkcyhib29sIHVz
ZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2VydmVyKTsKKwogICAgIGJvb2wgbV9lbmFibGVFbnVt
ZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIHsgZmFsc2UgfTsKICAgICAvLyBGSVhNRTogUmVt
b3ZlIG1fdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIgbWVtYmVyIHZhcmlhYmxlIGFu
ZCBtYWtlIGl0IGEgZ2xvYmFsLgogICAgIGJvb2wgbV91c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tl
dFNlcnZlciB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNwcAppbmRleCA1NGIyYmQwYzli
ZGU3Nzk0OWIzODg2MjI2NjUwM2RhMzUzZTYyMDhjLi5kNzhkNzU5NTg5NDU5ZDk0NjMyYjc1NTBj
NDE3ZDE4YmU2M2MyZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwCkBAIC0zOSw2ICszOSwx
OSBAQCBMaWJXZWJSVENOZXR3b3JrOjp+TGliV2ViUlRDTmV0d29yaygpCiAgICAgc2V0Q29ubmVj
dGlvbihudWxscHRyKTsKIH0KIAordm9pZCBMaWJXZWJSVENOZXR3b3JrOjpzZXRBc0FjdGl2ZSgp
Cit7CisgICAgQVNTRVJUKCFtX2lzQWN0aXZlKTsKKyAgICBtX2lzQWN0aXZlID0gdHJ1ZTsKKyNp
ZiBVU0UoTElCV0VCUlRDKQorICAgIGlmIChtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgV2ViQ29y
ZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNhbGxPbldlYlJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGNv
bm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25dKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBtX3NvY2tl
dEZhY3Rvcnkuc2V0Q29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICAgICAgfSk7
CisgICAgfQorI2VuZGlmCit9CisKIHZvaWQgTGliV2ViUlRDTmV0d29yazo6bmV0d29ya1Byb2Nl
c3NDcmFzaGVkKCkKIHsKICAgICBzZXRDb25uZWN0aW9uKG51bGxwdHIpOwpAQCAtNTMsNiArNjYs
MTEgQEAgdm9pZCBMaWJXZWJSVENOZXR3b3JrOjpzZXRDb25uZWN0aW9uKFJlZlB0cjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICNpZiBVU0UoTElCV0VCUlRDKQogICAgIGlmIChtX2Nv
bm5lY3Rpb24pCiAgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENOZXR3b3JrOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwor
ICAgIGlmIChtX2lzQWN0aXZlKSB7CisgICAgICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVy
OjpjYWxsT25XZWJSVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBjb25uZWN0aW9uXSgpIG11dGFibGUg
eworICAgICAgICAgICAgbV9zb2NrZXRGYWN0b3J5LnNldENvbm5lY3Rpb24oV1RGTW92ZShjb25u
ZWN0aW9uKSk7CisgICAgICAgIH0pOworICAgIH0KICNlbmRpZgogICAgIG1fY29ubmVjdGlvbiA9
IFdURk1vdmUoY29ubmVjdGlvbik7CiAjaWYgVVNFKExJQldFQlJUQykKQEAgLTYxLDE4ICs3OSw5
IEBAIHZvaWQgTGliV2ViUlRDTmV0d29yazo6c2V0Q29ubmVjdGlvbihSZWZQdHI8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAjZW5kaWYKIH0KIAotYm9vbCBMaWJXZWJSVENOZXR3b3Jr
Ojppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0jaWYgVVNFKExJQldFQlJUQykKLSAgICByZXR1cm4gV2Vi
Q29yZTo6TGliV2ViUlRDUHJvdmlkZXI6Omhhc1dlYlJUQ1RocmVhZHMoKTsKLSNlbHNlCi0gICAg
cmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KIHZvaWQgTGliV2ViUlRDTmV0d29yazo6ZGlzcGF0
Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgaWYgKCFpc0Fj
dGl2ZSgpKSB7CisgICAgaWYgKCFtX2lzQWN0aXZlKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFdlYlJUQywgIlJlY2VpdmVkIFdlYlJUQ1NvY2tldCBtZXNzYWdlIHdoaWxlIGxpYldlYlJU
Q05ldHdvcmsgaXMgbm90IGFjdGl2ZSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05l
dHdvcmsuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENOZXR3b3JrLmgKaW5kZXggNWNkZjRmNzUyYzY1NmIwNWM1MDNiMDhkN2EwZjNjZGZhNDZhMDky
Mi4uMTViYjE2ZTc5OWZkZmQyZTg5ZmQ1MTUzODJkNGJiY2YwNWVjZmMyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
TmV0d29yay5oCkBAIC00MSwxMCArNDEsMTIgQEAgcHVibGljOgogICAgIExpYldlYlJUQ05ldHdv
cmsoKSA9IGRlZmF1bHQ7CiAgICAgfkxpYldlYlJUQ05ldHdvcmsoKTsKIAorICAgIElQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQogICAg
IHZvaWQgc2V0Q29ubmVjdGlvbihSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiYmKTsKKwogICAgIHZv
aWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVkKCk7CiAKLSAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7
CisgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBY3RpdmU7IH0KIAogI2lm
IFVTRShMSUJXRUJSVEMpCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKTsKQEAgLTYxLDYgKzYzLDggQEAgcHVibGljOgogICAgIFdlYk1E
TlNSZWdpc3RlciYgbWRuc1JlZ2lzdGVyKCkgeyByZXR1cm4gbV9tZG5zUmVnaXN0ZXI7IH0KICNl
bmRpZgogCisgICAgdm9pZCBzZXRBc0FjdGl2ZSgpOworCiBwcml2YXRlOgogI2lmIFVTRShMSUJX
RUJSVEMpCiAgICAgdm9pZCBzaWduYWxSZWFkUGFja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFJUQ05ldHdvcms6
OklQQWRkcmVzcyYsIHVpbnQxNl90IHBvcnQsIGludDY0X3QpOwpAQCAtODEsNiArODUsNyBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIFdlYk1ETlNSZWdpc3RlciBtX21kbnNS
ZWdpc3RlcjsKICNlbmRpZgorICAgIGJvb2wgbV9pc0FjdGl2ZSB7IGZhbHNlIH07CiAgICAgUmVm
UHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5jcHAKaW5kZXggYTY2Zjk1NzdhODYxZTk5OGE4ZjI5NGNkM2FlYjU2ODVjZWRmNDk2OS4u
OGVjMzc2Nzg1OTUwZDMwOGMzNWJkZWYyNjI5ODA1NTdlOWYzOGRmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuY3BwCkBAIC0xMzEsNiArMTMxLDExIEBAIHZvaWQgUlRDU29ja2V0RmFjdG9yeTo6
cmVzdW1lKCkKICAgICB9KTsKIH0KIAordm9pZCBMaWJXZWJSVENQcm92aWRlcjo6c3RhcnRlZE5l
dHdvcmtUaHJlYWQoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05l
dHdvcmsoKS5zZXRBc0FjdGl2ZSgpOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJv
dmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0
ZVNvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50KQogewogICAgIHJldHVybiBtYWtlVW5p
cXVlPFJUQ1NvY2tldEZhY3Rvcnk+KFdURk1vdmUodXNlckFnZW50KSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5oCmluZGV4IDc1NWQ2YzZmZjZjYzc5MzZmODE3ZGJiZTkxZTAwZmM3YjQ2YTUxZWMuLmM2
YjNlMGE0NDE2Y2EwYTU2ZWM5YjcwYmZjYjBkNTM0Yzk4N2YyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5oCkBAIC01Nyw2ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1bnJlZ2lzdGVyTURO
U05hbWVzKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCByZWdp
c3Rlck1ETlNOYW1lKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBp
cEFkZHJlc3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTUROU05hbWVPckVycm9yJiYpPiYmKSBm
aW5hbDsKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIGZpbmFsOwor
ICAgIHZvaWQgc3RhcnRlZE5ldHdvcmtUaHJlYWQoKSBmaW5hbDsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNy
ZWF0ZURlY29kZXJGYWN0b3J5KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCmluZGV4IDdh
ZWQ2NDU3YTgzODE1N2I3MmIwMjM3NDBkOGQ3NTI0OGJhNTI2NDMuLmU4ZWU3MzQxN2VkOWEwZjAy
ZDBiOGQ0ZDY1Zjk4ZjM0M2JhNTc1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCkBAIC01Nywx
MyArNTcsNiBAQCBMaWJXZWJSVENTb2NrZXQ6On5MaWJXZWJSVENTb2NrZXQoKQogICAgIG1fZmFj
dG9yeS5yZW1vdmVTb2NrZXQoKnRoaXMpOwogfQogCi12b2lkIExpYldlYlJUQ1NvY2tldDo6c2Vu
ZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYpPiYmIGNhbGxiYWNr
KQotewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KCkgewotICAgICAgICBjYWxsYmFjayhXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkpOwotICAgIH0pOwotfQotCiBydGM6
OlNvY2tldEFkZHJlc3MgTGliV2ViUlRDU29ja2V0OjpHZXRMb2NhbEFkZHJlc3MoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2xvY2FsQWRkcmVzczsKQEAgLTEzNSwzMiArMTI4LDI5IEBAIGJvb2wg
TGliV2ViUlRDU29ja2V0Ojp3aWxsU2VuZChzaXplX3Qgc2l6ZSkKIAogaW50IExpYldlYlJUQ1Nv
Y2tldDo6U2VuZFRvKGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBjb25zdCBydGM6OlBhY2tldE9wdGlvbnMmIG9wdGlvbnMp
CiB7Ci0gICAgaWYgKCF3aWxsU2VuZChzaXplKSkKKyAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9m
YWN0b3J5LmNvbm5lY3Rpb24oKTsKKyAgICBpZiAoIWNvbm5lY3Rpb24gfHwgIXdpbGxTZW5kKHNp
emUpKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAobV9pc1N1c3BlbmRlZCkKICAgICAg
ICAgcmV0dXJuIHNpemU7CiAKLSAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZSksIHNpemUpOwotICAg
IGF1dG8gaWRlbnRpZmllciA9IHRoaXMtPmlkZW50aWZpZXIoKTsKKyAgICBJUEM6OkRhdGFSZWZl
cmVuY2UgZGF0YShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4odmFsdWUpLCBzaXplKTsKKyAg
ICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpTZW5kVG8geyBk
YXRhLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHsgYWRkcmVzcyB9LCBSVENQYWNrZXRPcHRp
b25zIHsgb3B0aW9ucyB9IH0sIG1faWRlbnRpZmllcik7CiAKLSAgICBzZW5kT25NYWluVGhyZWFk
KFtpZGVudGlmaWVyLCBidWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIGFkZHJlc3MsIG9wdGlvbnNd
KGF1dG8mIGNvbm5lY3Rpb24pIHsKLSAgICAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPnNp
emUoKSk7Ci0gICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tl
dDo6U2VuZFRvIHsgZGF0YSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyB7IGFkZHJlc3MgfSwg
UlRDUGFja2V0T3B0aW9ucyB7IG9wdGlvbnMgfSB9LCBpZGVudGlmaWVyKTsKLSAgICB9KTsKICAg
ICByZXR1cm4gc2l6ZTsKIH0KIAogaW50IExpYldlYlJUQ1NvY2tldDo6Q2xvc2UoKQogewotICAg
IGlmIChtX3N0YXRlID09IFNUQVRFX0NMT1NFRCkKKyAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9m
YWN0b3J5LmNvbm5lY3Rpb24oKTsKKyAgICBpZiAoIWNvbm5lY3Rpb24gfHwgbV9zdGF0ZSA9PSBT
VEFURV9DTE9TRUQpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgbV9zdGF0ZSA9IFNUQVRFX0NM
T1NFRDsKIAotICAgIHNlbmRPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBpZGVudGlmaWVyKCld
KGF1dG8mIGNvbm5lY3Rpb24pIHsKLSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUlRDU29ja2V0OjpDbG9zZSgpLCBpZGVudGlmaWVyKTsKLSAgICB9KTsKKyAgICBjb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpDbG9zZSgpLCBtX2lkZW50
aWZpZXIpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTE4MCw5ICsxNzAsOSBAQCBpbnQgTGli
V2ViUlRDU29ja2V0OjpTZXRPcHRpb24ocnRjOjpTb2NrZXQ6Ok9wdGlvbiBvcHRpb24sIGludCB2
YWx1ZSkKIAogICAgIG1fb3B0aW9uc1tvcHRpb25dID0gdmFsdWU7CiAKLSAgICBzZW5kT25NYWlu
VGhyZWFkKFtpZGVudGlmaWVyID0gaWRlbnRpZmllcigpLCBvcHRpb24sIHZhbHVlXShhdXRvJiBj
b25uZWN0aW9uKSB7Ci0gICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JU
Q1NvY2tldDo6U2V0T3B0aW9uKG9wdGlvbiwgdmFsdWUpLCBpZGVudGlmaWVyKTsKLSAgICB9KTsK
KyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fZmFjdG9yeS5jb25uZWN0aW9uKCkpCisgICAg
ICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OlNldE9wdGlv
bihvcHRpb24sIHZhbHVlKSwgbV9pZGVudGlmaWVyKTsKKwogICAgIHJldHVybiAwOwogfQogCkBA
IC0yMDcsMTEgKzE5NywxMSBAQCB2b2lkIExpYldlYlJUQ1NvY2tldDo6c3VzcGVuZCgpCiAgICAg
bV9pc1N1c3BlbmRlZCA9IHRydWU7CiAKICAgICAvLyBPbiBzdXNwZW5kLCB3ZSBjbG9zZSBUQ1Ag
c29ja2V0cyBhcyB3ZSBjYW5ub3QgbWFrZSBzdXJlIHBhY2tldHMgYXJlIGRlbGl2ZXJlZCByZWxp
YWJseS4KLSAgICBpZiAobV90eXBlICE9IFR5cGU6OlVEUCkgewotICAgICAgICBzZW5kT25NYWlu
VGhyZWFkKFtpZGVudGlmaWVyID0gaWRlbnRpZmllcigpXShhdXRvJiBjb25uZWN0aW9uKSB7Ci0g
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2NrZXQ6OkNs
b3NlIHsgfSwgaWRlbnRpZmllcik7Ci0gICAgICAgIH0pOwotICAgIH0KKyAgICBpZiAobV90eXBl
ID09IFR5cGU6OlVEUCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIGNvbm5lY3Rp
b24gPSBtX2ZhY3RvcnkuY29ubmVjdGlvbigpKQorICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpDbG9zZSB7IH0sIG1faWRlbnRpZmllcik7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCmluZGV4IGIyZThlY2M3OThm
OTEzZTZjOTI2YmQ3MjM1ZjMzMTk2ODViNTliMTAuLmNiNDhlMDU3MzQ4YTJlODY2YjA5MWZmNWFj
ODcyNjA1Y2ExOTJkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKQEAgLTg1LDggKzg1LDYgQEAgcHJp
dmF0ZToKICAgICBpbnQgR2V0T3B0aW9uKHJ0Yzo6U29ja2V0OjpPcHRpb24sIGludCopIGZpbmFs
OwogICAgIGludCBTZXRPcHRpb24ocnRjOjpTb2NrZXQ6Ok9wdGlvbiwgaW50KSBmaW5hbDsKIAot
ICAgIHN0YXRpYyB2b2lkIHNlbmRPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChJUEM6OkNvbm5l
Y3Rpb24mKT4mJik7Ci0KICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBtX2ZhY3Rvcnk7CiAg
ICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAg
VHlwZSBtX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKaW5kZXggYThk
YTdjYzlhZTgwNGZlOWMyODhiZWYyZDUzZTY1ZjIzNmFkYzgwNi4uYTY4Nzk0NGMzZGRiNDI3NzAy
M2MxODZmNDFkY2JiN2IzNDc5ZWVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5
LmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAorI2luY2x1ZGUg
IkxpYldlYlJUQ05ldHdvcmsuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ01vbml0b3JNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENQcm92aWRlck1lc3NhZ2VzLmgiCkBAIC00NSw3
NiArNDcsMTEwIEBAIHN0YXRpYyBpbmxpbmUgcnRjOjpTb2NrZXRBZGRyZXNzIHByZXBhcmVTb2Nr
ZXRBZGRyZXNzKGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCit2b2lkIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OnNldENvbm5lY3Rpb24oUmVmUHRyPElQ
Qzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVCghV1RGOjppc01haW5S
dW5Mb29wKCkpOworICAgIG1fY29ubmVjdGlvbiA9IFdURk1vdmUoY29ubmVjdGlvbik7Cit9CisK
K0lQQzo6Q29ubmVjdGlvbiogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y29ubmVjdGlvbigpCit7
CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CisgICAgcmV0dXJuIG1fY29ubmVj
dGlvbi5nZXQoKTsKK30KKwogcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0
RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQsIGludCBvcHRpb25zKQogeworICAgIEFTU0VSVCghV1RGOjppc01haW5SdW5M
b29wKCkpOworICAgIGlmICghbV9jb25uZWN0aW9uKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKFdl
YlJUQywgIk5vIGNvbm5lY3Rpb24gdG8gY3JlYXRlIHNlcnZlciBUQ1Agc29ja2V0Iik7CisgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgICAgIH0pOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlx
dWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc29ja2V0R3JvdXAsIExpYldlYlJUQ1NvY2tldDo6
VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CiAKLSAgICBj
YWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGFkZHJl
c3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhhZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RD
b25uZWN0aW9ucyksIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnNdKCkgewotICAgICAgICBpZiAo
IVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVNl
cnZlclRDUFNvY2tldChpZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJl
c3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zKSwgMCkpIHsKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBTZXQgZXJyb3IgYmFjayB0byBzb2NrZXQKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVy
OjpDcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnMpLCAwKTsK
IAotICAgIH0pOwogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCiBydGM6OkFzeW5j
UGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQoY29u
c3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywg
dWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKIHsKKyAgICBBU1NFUlQoIVdURjo6
aXNNYWluUnVuTG9vcCgpKTsKKyAgICBpZiAoIW1fY29ubmVjdGlvbikgeworICAgICAgICBSRUxF
QVNFX0xPRyhXZWJSVEMsICJObyBjb25uZWN0aW9uIHRvIGNyZWF0ZSBVRFAgc29ja2V0Iik7Cisg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgICAgIH0pOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBhdXRvIHNvY2tldCA9IG1ha2VV
bmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc29ja2V0R3JvdXAsIExpYldlYlJUQ1NvY2tl
dDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CiAKLSAgICBjYWxs
T25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGFkZHJlc3Mg
PSBwcmVwYXJlU29ja2V0QWRkcmVzcyhhZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25u
ZWN0aW9ucyksIG1pblBvcnQsIG1heFBvcnRdKCkgewotICAgICAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChpZGVu
dGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQ
b3J0KSwgMCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgZXJyb3IgYmFjayB0byBzb2Nr
ZXQKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0pOworICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQo
c29ja2V0LT5pZGVudGlmaWVyKCksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyks
IG1pblBvcnQsIG1heFBvcnQpLCAwKTsKKwogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwog
fQogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVh
dGVDbGllbnRUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90
ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgY29uc3QgcnRjOjpQYWNrZXRTb2NrZXRUY3BP
cHRpb25zJiBvcHRpb25zKQogeworICAgIEFTU0VSVCghV1RGOjppc01haW5SdW5Mb29wKCkpOwor
ICAgIGlmICghbV9jb25uZWN0aW9uKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKFdlYlJUQywgIk5v
IGNvbm5lY3Rpb24gdG8gY3JlYXRlIGNsaWVudCBUQ1Agc29ja2V0Iik7CisgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW10geworICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2Vi
UlRDU29ja2V0PigqdGhpcywgc29ja2V0R3JvdXAsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6Q2xp
ZW50VENQLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MpOwogICAgIHNvY2tldC0+c2V0U3Rh
dGUoTGliV2ViUlRDU29ja2V0OjpTVEFURV9DT05ORUNUSU5HKTsKIAogICAgIC8vIEZJWE1FOiBX
ZSBvbmx5IHRyYW5zZmVyIG9wdGlvbnMub3B0cyBidXQgc2hvdWxkIGFsc28gaGFuZGxlIG90aGVy
IG1lbWJlcnMuCi0gICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRl
bnRpZmllcigpLCBsb2NhbEFkZHJlc3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJl
c3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSwgcmVtb3RlQWRkcmVzcyA9IHBy
ZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENv
bm5lY3Rpb25zKSwgdXNlckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQpLmlzb2xhdGVkQ29weSgp
LCBvcHRpb25zID0gb3B0aW9ucy5vcHRzXSgpIHsKLSAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQo
aWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MpLCBSVENO
ZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MpLCB1c2VyQWdlbnQsIG9wdGlvbnMp
LCAwKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tldAot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSk7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tl
dChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJl
U29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rp
b25zKSksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3MocmVt
b3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwgdXNlckFnZW50
LCBvcHRpb25zLm9wdHMpLCAwKTsKKwogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQog
CiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVO
ZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYgc2VydmVyU29ja2V0LCBMaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCiB7CisgICAgQVNTRVJUKCFXVEY6Omlz
TWFpblJ1bkxvb3AoKSk7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFT
RV9MT0coV2ViUlRDLCAiTm8gY29ubmVjdGlvbiB0byBjcmVhdGUgaW5jb21pbmcgVENQIHNvY2tl
dCIpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtdIHsKKyAgICAgICAgICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOworICAgICAg
ICB9KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgYXV0byBzb2NrZXQg
PSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIHNlcnZlclNvY2tldC5zb2NrZXRH
cm91cCgpLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1AsIHNlcnZl
clNvY2tldC5sb2NhbEFkZHJlc3MoKSwgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRT
dGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5FQ1RFRCk7CiAKLSAgICBjYWxsT25NYWlu
VGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIG5ld0Nvbm5lY3Rpb25T
b2NrZXRJZGVudGlmaWVyXSgpIHsKLSAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpXcmFwTmV3VENQQ29ubmVjdGlvbihpZGVudGlmaWVy
LCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciksIDApKSB7Ci0gICAgICAgICAgICAvLyBG
SVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29ja2V0Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtS
VENQcm92aWRlcjo6V3JhcE5ld1RDUENvbm5lY3Rpb24oc29ja2V0LT5pZGVudGlmaWVyKCksIG5l
d0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKSwgMCk7CisKICAgICByZXR1cm4gc29ja2V0LnJl
bGVhc2UoKTsKIH0KIAogdm9pZCBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjphZGRTb2NrZXQoTGli
V2ViUlRDU29ja2V0JiBzb2NrZXQpCiB7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3Ao
KSk7CiAgICAgQVNTRVJUKCFtX3NvY2tldHMuY29udGFpbnMoc29ja2V0LmlkZW50aWZpZXIoKSkp
OwogICAgIG1fc29ja2V0cy5hZGQoc29ja2V0LmlkZW50aWZpZXIoKSwgJnNvY2tldCk7CiB9CiAK
IHZvaWQgTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6cmVtb3ZlU29ja2V0KExpYldlYlJUQ1NvY2tl
dCYgc29ja2V0KQogeworICAgIEFTU0VSVCghV1RGOjppc01haW5SdW5Mb29wKCkpOwogICAgIEFT
U0VSVChtX3NvY2tldHMuY29udGFpbnMoc29ja2V0LmlkZW50aWZpZXIoKSkpOwogICAgIG1fc29j
a2V0cy5yZW1vdmUoc29ja2V0LmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgTGliV2ViUlRDU29j
a2V0RmFjdG9yeTo6Zm9yU29ja2V0SW5Hcm91cChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29u
c3QgRnVuY3Rpb248dm9pZChMaWJXZWJSVENTb2NrZXQmKT4mIGNhbGxiYWNrKQogeworICAgIEFT
U0VSVCghV1RGOjppc01haW5SdW5Mb29wKCkpOwogICAgIGZvciAoYXV0byogc29ja2V0IDogbV9z
b2NrZXRzLnZhbHVlcygpKSB7CiAgICAgICAgIGlmIChzb2NrZXQtPnNvY2tldEdyb3VwKCkgPT0g
c29ja2V0R3JvdXApCiAgICAgICAgICAgICBjYWxsYmFjaygqc29ja2V0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRG
YWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDU29ja2V0RmFjdG9yeS5oCmluZGV4IGQwYTYyN2I3Yzk1YjYxYzBjODAzZmNiNTlmNzE4NDM0
N2E2ODJhOWMuLmRiYmFhZmMwYTExMzQyMzAxNGE3MDNjNDA0OWRlZTk1NTA1YWI3N2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaApAQCAtMzcsMTEgKzM3LDEyIEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCitjbGFzcyBMaWJXZWJSVENOZXR3b3JrOwogY2xhc3MgTGliV2ViUlRD
U29ja2V0OwogCiBjbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgeyB9CisgICAgTGliV2ViUlRDU29ja2V0RmFjdG9yeSgp
ID0gZGVmYXVsdDsKIAogICAgIHZvaWQgYWRkU29ja2V0KExpYldlYlJUQ1NvY2tldCYpOwogICAg
IHZvaWQgcmVtb3ZlU29ja2V0KExpYldlYlJUQ1NvY2tldCYpOwpAQCAtNTksNiArNjAsOSBAQCBw
dWJsaWM6CiAgICAgCiAgICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7
IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsgfQogCisgICAgdm9pZCBz
ZXRDb25uZWN0aW9uKFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIElQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbigpOworCiBwcml2YXRlOgogICAgIC8vIFdlIGNhbm5vdCBvd24gc29j
a2V0cywgY2xpZW50cyBvZiB0aGUgZmFjdG9yeSBhcmUgcmVzcG9uc2libGUgdG8gZnJlZSB0aGVt
LgogICAgIEhhc2hNYXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTGliV2Vi
UlRDU29ja2V0Kj4gbV9zb2NrZXRzOwpAQCAtNjYsNiArNzAsOCBAQCBwcml2YXRlOgogICAgIC8v
IFdlIGNhbiBvd24gcmVzb2x2ZXJzIGFzIHdlIGNvbnRyb2wgdGhlaXIgRGVzdHJveSBtZXRob2Qu
CiAgICAgSGFzaE1hcDxMaWJXZWJSVENSZXNvbHZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxMaWJXZWJSVENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJzOwogICAgIGJvb2wgbV9kaXNhYmxlTm9u
TG9jYWxob3N0Q29ubmVjdGlvbnMgeyBmYWxzZSB9OworCisgICAgUmVmUHRyPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>