<?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>213714</bug_id>
          
          <creation_ts>2020-06-29 01:48:29 -0700</creation_ts>
          <short_desc>Make NetworkSendQueue use CString instead of String for UTF-8 data</short_desc>
          <delta_ts>2020-07-01 07:24:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit 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>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1667010</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-29 01:48:29 -0700</bug_when>
    <thetext>Make NetworkSendQueue use Cstring instead of String for UTF-8 data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667022</commentid>
    <comment_count>1</comment_count>
      <attachid>403040</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-29 02:27:22 -0700</bug_when>
    <thetext>Created attachment 403040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667069</commentid>
    <comment_count>2</comment_count>
      <attachid>403053</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-29 05:51:48 -0700</bug_when>
    <thetext>Created attachment 403053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667095</commentid>
    <comment_count>3</comment_count>
      <attachid>403059</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-29 08:04:28 -0700</bug_when>
    <thetext>Created attachment 403059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667135</commentid>
    <comment_count>4</comment_count>
      <attachid>403059</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-29 09:24:16 -0700</bug_when>
    <thetext>Comment on attachment 403059
Patch

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

Test failures look like they might be caused by the refactoring.

&gt; Source/WebCore/Modules/mediastream/RTCDataChannel.cpp:124
&gt; +    // FIXME: We might want to use strict conversion like WebSocket.

Maybe test coverage would help us decide this?

&gt; Source/WebCore/fileapi/NetworkSendQueue.h:49
&gt; +    using WriteString = Function&lt;void(const CString&amp;)&gt;;

Might be helpful to make it clear that this is UTF-8 encoded. In WTF::String that’s included in the definition of the class, but not WTF::CString, so we might need an argument name?

&gt; Source/WebCore/fileapi/NetworkSendQueue.h:56
&gt; +    void enqueue(const CString&amp;);

Would be nice to take a CString&amp;&amp;, add some WTFMove at call sites, and save a little bit of reference count churn.

Might also be helpful to make it clear that this is UTF-8 encoded. In WTF::String that’s included in the definition of the class, but not WTF::CString, so we might need an argument name?

&gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:120
&gt; +    auto text = adoptNS([[NSString alloc] initWithBytes:utf8String.data() length:utf8String.size() encoding:NSUTF8StringEncoding]);

Do we have a guarantee that this won’t fail UTF-8 decoding? If not, might need a null check.

&gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:121
&gt; +    auto message = adoptNS([[NSURLSessionWebSocketMessage alloc] initWithString: text.get()]);

Stray space after the colon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667198</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-29 11:07:40 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 403059 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=403059&amp;action=review
&gt; 
&gt; Test failures look like they might be caused by the refactoring.
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/RTCDataChannel.cpp:124
&gt; &gt; +    // FIXME: We might want to use strict conversion like WebSocket.
&gt; 
&gt; Maybe test coverage would help us decide this?

Right, this patch keeps the status quo and I plan to validate one way or the other as a follow-up.

&gt; &gt; Source/WebCore/fileapi/NetworkSendQueue.h:49
&gt; &gt; +    using WriteString = Function&lt;void(const CString&amp;)&gt;;
&gt; 
&gt; Might be helpful to make it clear that this is UTF-8 encoded. In WTF::String
&gt; that’s included in the definition of the class, but not WTF::CString, so we
&gt; might need an argument name?

OK

&gt; &gt; Source/WebCore/fileapi/NetworkSendQueue.h:56
&gt; &gt; +    void enqueue(const CString&amp;);
&gt; 
&gt; Would be nice to take a CString&amp;&amp;, add some WTFMove at call sites, and save
&gt; a little bit of reference count churn.

I&apos;ll look into that.
This is not done as in most cases, no count churn will anyway happen (it only happens in case of mixing blob calls with string calls, which is unusual). 

But, since the call sites create the Ref and do not use after...

&gt; Might also be helpful to make it clear that this is UTF-8 encoded. In
&gt; WTF::String that’s included in the definition of the class, but not
&gt; WTF::CString, so we might need an argument name?

OK.

&gt; &gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:120
&gt; &gt; +    auto text = adoptNS([[NSString alloc] initWithBytes:utf8String.data() length:utf8String.size() encoding:NSUTF8StringEncoding]);
&gt; 
&gt; Do we have a guarantee that this won’t fail UTF-8 decoding? If not, might
&gt; need a null check.

This comes straight from IPC so we cannot be sure.
Will fix this.

&gt; &gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:121
&gt; &gt; +    auto message = adoptNS([[NSURLSessionWebSocketMessage alloc] initWithString: text.get()]);
&gt; 
&gt; Stray space after the colon.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667522</commentid>
    <comment_count>6</comment_count>
      <attachid>403186</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-30 02:51:23 -0700</bug_when>
    <thetext>Created attachment 403186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667671</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-30 12:28:36 -0700</bug_when>
    <thetext>Windows crash seems related?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667675</commentid>
    <comment_count>8</comment_count>
      <attachid>403186</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-30 12:30:44 -0700</bug_when>
    <thetext>Comment on attachment 403186
Patch

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

r=me assuming Windows failures are not due to these changes

&gt; Source/WebCore/fileapi/NetworkSendQueue.h:49
&gt; +    using WriteString = Function&lt;void(const CString&amp; /* utf8 */)&gt;;

Could use an argument name. It does not need to be commented out. Also, in a comment I would spell it UTF-8, not utf8.

&gt; Source/WebCore/fileapi/NetworkSendQueue.h:56
&gt; +    void enqueue(CString&amp;&amp; /* utf8 */);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667860</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-30 23:55:27 -0700</bug_when>
    <thetext>Win failures seem to be due to http://trac.webkit.org/changeset/263700/webkit as per https://results.webkit.org/?suite=layout-tests&amp;test=http%2Fwpt%2Ffetch%2Frequest-stream-disturbed-1.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667861</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-30 23:58:51 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #9)
&gt; Win failures seem to be due to
&gt; http://trac.webkit.org/changeset/263700/webkit as per
&gt; https://results.webkit.org/?suite=layout-
&gt; tests&amp;test=http%2Fwpt%2Ffetch%2Frequest-stream-disturbed-1.html.

https://bugs.webkit.org/show_bug.cgi?id=213792</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667869</commentid>
    <comment_count>11</comment_count>
      <attachid>403277</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-01 00:23:15 -0700</bug_when>
    <thetext>Created attachment 403277
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667921</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-01 07:23:51 -0700</bug_when>
    <thetext>Committed r263797: &lt;https://trac.webkit.org/changeset/263797&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403277.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667922</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-01 07:24:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/64986255&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403040</attachid>
            <date>2020-06-29 02:27:22 -0700</date>
            <delta_ts>2020-06-29 05:51:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213714-20200629112721.patch</filename>
            <type>text/plain</type>
            <size>19194</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ3NGZkYzIyZDA2NTg5
NGM2ODEwMzdkODE0MzM5ZjIyZjRjYzlkNS4uMjJlMzkzNmU1ZmJkOTZiOGEzZmE0NDdkYTM0YWE2
ZDRhMjFiNTNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA2LTI5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIE5ldHdvcmtTZW5k
UXVldWUgdXNlIENzdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmcgZm9yIFVURi04IGRhdGEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcxNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDU3RyaW5nIGlu
c3RlYWQgb2YgU3RyaW5nIGluIE5ldHdvcmtTZW5kUXVldWUgYXMgYWxsIGRhdGEgaXMgdG8gYmUg
ZW5jb2RlZCBhcyBVVEYtOC4KKyAgICAgICAgVGhpcyBhbGxvd3MgY29udmVydGluZyBhbmQgYWxs
b2NhdGluZyB0aGUgVVRGLTggc3RyaW5nIG9ubHkgb25jZS4KKyAgICAgICAgQ292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNyZWF0ZU1lc3Nh
Z2VRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6c2VuZCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxl
cjo6c2VuZFN0cmluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyOjpzZW5kUmF3RGF0YSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmg6CisgICAgICAgICogZmlsZWFw
aS9OZXR3b3JrU2VuZFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTZW5kUXVl
dWU6OmVucXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1NlbmRRdWV1ZTo6cHJvY2Vz
c01lc3NhZ2VzKToKKyAgICAgICAgKiBmaWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jazo6c2VuZFN0cmluZ0RhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oOgorCiAy
MDIwLTA2LTI5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
VENEYXRhQ2hhbm5lbC5idWZmZXJlZEFtb3VudCBzaG91bGQgc3RheSB0aGUgc2FtZSBldmVuIGlm
IGNoYW5uZWwgaXMgY2xvc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcyZWE1NWYxYTM2NzZkOGM2ZTA2MGMwMDUy
NTdmYTRkYTViNDU1ZGUuLjA5NWNkNDc5ODg3Nzk1NTBiMjdjOTJlNjBmZDAxNGE0NWU5NTJhMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDYtMjkgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgTmV0d29ya1NlbmRRdWV1ZSB1c2UgQ3N0
cmluZyBpbnN0ZWFkIG9mIFN0cmluZyBmb3IgVVRGLTggZGF0YQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzE0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICBVcGRhdGUgY29kZSB0byB1c2UgQ1N0cmluZy9E
YXRhUmVmZXJlbmNlIHRvIHRyYW5zbWl0IFdlYlNvY2tldCB0ZXh0IG1lc3NhZ2VzLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2VuZFN0cmluZyk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9XZWJTb2NrZXRUYXNrLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6
OnNlbmRTdHJpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRh
c2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0VGFzazo6c2VuZFN0cmluZyk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OnNlbmRTdHJpbmcpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U29ja2V0Q2hhbm5lbDo6Y3JlYXRlTWVzc2FnZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U29ja2V0Q2hhbm5lbDo6c2VuZCk6CisKIDIwMjAtMDYtMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQWRkIHdlYmtpdF9h
dXRoZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9zZWN1cml0eV9vcmlnaW4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5kZXgg
MzhmMzlkZDQ5ZGI1ODFhNDU3MWI0ZWY5ZDgxYmRmMTdhOThkNzNmMC4uMjYyZTJlZGJmYzgxMjI4
MDJkNTUxZThiNWRmYWQ5YTFlZWFmYmM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAgLTY2LDggKzY2LDggQEAg
UmVmPFJUQ0RhdGFDaGFubmVsPiBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCwgc3RkOjp1bmlxdWVfcHRyPFIKIAogTmV0d29ya1NlbmRRdWV1ZSBSVENEYXRhQ2hhbm5l
bDo6Y3JlYXRlTWVzc2FnZVF1ZXVlKERvY3VtZW50JiBkb2N1bWVudCwgUlRDRGF0YUNoYW5uZWwm
IGNoYW5uZWwpCiB7Ci0gICAgcmV0dXJuIHsgZG9jdW1lbnQsIFsmY2hhbm5lbF0oY29uc3QgU3Ry
aW5nJiBkYXRhKSB7Ci0gICAgICAgIGlmICghY2hhbm5lbC5tX2hhbmRsZXItPnNlbmRTdHJpbmdE
YXRhKGRhdGEpKQorICAgIHJldHVybiB7IGRvY3VtZW50LCBbJmNoYW5uZWxdKGF1dG8mIHN0cmlu
ZykgeworICAgICAgICBpZiAoIWNoYW5uZWwubV9oYW5kbGVyLT5zZW5kU3RyaW5nRGF0YShzdHJp
bmcpKQogICAgICAgICAgICAgY2hhbm5lbC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiRXJy
b3Igc2VuZGluZyBzdHJpbmcgdGhyb3VnaCBSVENEYXRhQ2hhbm5lbC4iX3MpOwogICAgIH0sIFsm
Y2hhbm5lbF0oYXV0byogZGF0YSwgc2l6ZV90IGxlbmd0aCkgewogICAgICAgICBpZiAoIWNoYW5u
ZWwubV9oYW5kbGVyLT5zZW5kUmF3RGF0YShkYXRhLCBsZW5ndGgpKQpAQCAtMTIxLDggKzEyMSw5
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ0RhdGFDaGFubmVsOjpzZW5kKGNvbnN0IFN0cmluZyYg
ZGF0YSkKICAgICBpZiAobV9yZWFkeVN0YXRlICE9IFJUQ0RhdGFDaGFubmVsU3RhdGU6Ok9wZW4p
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAg
bV9idWZmZXJlZEFtb3VudCArPSBkYXRhLnV0ZjgoKS5sZW5ndGgoKTsKLSAgICBtX21lc3NhZ2VR
dWV1ZS5lbnF1ZXVlKGRhdGEpOworICAgIGF1dG8gdXRmOCA9IGRhdGEudXRmOCgpOworICAgIG1f
YnVmZmVyZWRBbW91bnQgKz0gdXRmOC5sZW5ndGgoKTsKKyAgICBtX21lc3NhZ2VRdWV1ZS5lbnF1
ZXVlKHV0ZjgpOwogICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCmluZGV4IGZjZDY5MGUwMTk3OWMyNjRhYzNk
OGE2MDJjZmU4MjFhNTIxZjRlZGQuLjQ3OTY5OWMzZDUwN2U5MmU0OTAyN2M3NTY5N2M0MDEzMDVh
Njc2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5k
bGVyLmNwcApAQCAtODksMTUgKzg5LDE0IEBAIHZvaWQgTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5k
bGVyOjpzZXRDbGllbnQoUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50JiBjbGllbnQpCiAgICAg
Y2hlY2tTdGF0ZSgpOwogfQogCi1ib29sIExpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlcjo6c2Vu
ZFN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJiB0ZXh0KQorYm9vbCBMaWJXZWJSVENEYXRhQ2hhbm5l
bEhhbmRsZXI6OnNlbmRTdHJpbmdEYXRhKGNvbnN0IENTdHJpbmcmIHV0ZjhUZXh0KQogewotICAg
IGF1dG8gdXRmOFRleHQgPSB0ZXh0LnV0ZjgoKTsKICAgICByZXR1cm4gbV9jaGFubmVsLT5TZW5k
KHsgcnRjOjpDb3B5T25Xcml0ZUJ1ZmZlcih1dGY4VGV4dC5kYXRhKCksIHV0ZjhUZXh0Lmxlbmd0
aCgpKSwgZmFsc2UgfSk7CiB9CiAKIGJvb2wgTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyOjpz
ZW5kUmF3RGF0YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogewotICAgIHJldHVy
biBtX2NoYW5uZWwtPlNlbmQoe3J0Yzo6Q29weU9uV3JpdGVCdWZmZXIoZGF0YSwgbGVuZ3RoKSwg
dHJ1ZX0pOworICAgIHJldHVybiBtX2NoYW5uZWwtPlNlbmQoeyBydGM6OkNvcHlPbldyaXRlQnVm
ZmVyKGRhdGEsIGxlbmd0aCksIHRydWUgfSk7CiB9CiAKIHZvaWQgTGliV2ViUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyOjpjbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFu
bmVsSGFuZGxlci5oCmluZGV4IDVkMmNkODlhMWIxZWZmMGIwNTVhYWU5NTAwNjVlMmE5ZDUwMGJk
YTIuLmFlYTI2OTRkZTY4ZWU4NWI1OWExOTllZWQ2YTczZGUzNjc0Y2Q1ZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0Rh
dGFDaGFubmVsSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCkBAIC02MCw3ICs2MCw3
IEBAIHByaXZhdGU6CiAgICAgLy8gUlRDRGF0YUNoYW5uZWxIYW5kbGVyIEFQSQogICAgIHZvaWQg
c2V0Q2xpZW50KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCYpIGZpbmFsOwogICAgIHZvaWQg
Y2hlY2tTdGF0ZSgpOwotICAgIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJikgZmlu
YWw7CisgICAgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBDU3RyaW5nJikgZmluYWw7CiAgICAg
Ym9vbCBzZW5kUmF3RGF0YShjb25zdCBjaGFyKiwgc2l6ZV90KSBmaW5hbDsKICAgICB2b2lkIGNs
b3NlKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29y
a1NlbmRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUu
Y3BwCmluZGV4IDk4NWU1MzAxZDRiMTJmZjc3NjVjMDMxYTM0YWUzMTJhNGQ0MTAwOWMuLmM1YjQy
OWIwOWYwYzAwZmQ5N2E1OGFmMjQ5NTFhNTc5ZjY1OGM3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBOZXR3b3JrU2Vu
ZFF1ZXVlOjpOZXR3b3JrU2VuZFF1ZXVlKERvY3VtZW50JiBkb2N1bWVudCwgV3JpdGVTdHJpbmcm
JiB3cml0ZVN0cmluZwogCiBOZXR3b3JrU2VuZFF1ZXVlOjp+TmV0d29ya1NlbmRRdWV1ZSgpID0g
ZGVmYXVsdDsKIAotdm9pZCBOZXR3b3JrU2VuZFF1ZXVlOjplbnF1ZXVlKGNvbnN0IFN0cmluZyYg
ZGF0YSkKK3ZvaWQgTmV0d29ya1NlbmRRdWV1ZTo6ZW5xdWV1ZShjb25zdCBDU3RyaW5nJiBkYXRh
KQogewogICAgIGlmIChtX3F1ZXVlLmlzRW1wdHkoKSkgewogICAgICAgICBtX3dyaXRlU3RyaW5n
KGRhdGEpOwpAQCAtODAsNyArODAsNyBAQCB2b2lkIE5ldHdvcmtTZW5kUXVldWU6OnByb2Nlc3NN
ZXNzYWdlcygpCiB7CiAgICAgd2hpbGUgKCFtX3F1ZXVlLmlzRW1wdHkoKSkgewogICAgICAgICBi
b29sIHNob3VsZFN0b3BQcm9jZXNzaW5nID0gZmFsc2U7Ci0gICAgICAgIHN3aXRjaE9uKG1fcXVl
dWUuZmlyc3QoKSwgW3RoaXNdKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeworICAgICAgICBzd2l0
Y2hPbihtX3F1ZXVlLmZpcnN0KCksIFt0aGlzXShjb25zdCBDU3RyaW5nJiBtZXNzYWdlKSB7CiAg
ICAgICAgICAgICBtX3dyaXRlU3RyaW5nKG1lc3NhZ2UpOwogICAgICAgICB9LCBbdGhpc10oUmVm
PFNoYXJlZEJ1ZmZlcj4mIGRhdGEpIHsKICAgICAgICAgICAgIG1fd3JpdGVSYXdEYXRhKGRhdGEt
PmRhdGEoKSwgZGF0YS0+c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvTmV0d29ya1NlbmRRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2Vu
ZFF1ZXVlLmgKaW5kZXggZTVjMjU2ZmNlM2Y3ZWQ5MGZhZGRhMzg4NGI0NTBkMmJhYzY2ODU1NC4u
NzQ1ZDU2YzllYmQ5MmI4ZjI2NzE3NzQ1ODRkYjEzNmY2ZTMxNzQ5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
IDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KICNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CiBjbGFzcyBBcnJheUJ1ZmZlcjsKQEAgLTQ1LDE0ICs0NiwxNCBAQCBjbGFzcyBTaGFy
ZWRCdWZmZXI7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIE5ldHdvcmtTZW5kUXVldWUgewogcHVi
bGljOgotICAgIHVzaW5nIFdyaXRlU3RyaW5nID0gRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcm
KT47CisgICAgdXNpbmcgV3JpdGVTdHJpbmcgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IENTdHJpbmcm
KT47CiAgICAgdXNpbmcgV3JpdGVSYXdEYXRhID0gRnVuY3Rpb248dm9pZChjb25zdCBjaGFyKiwg
c2l6ZV90KT47CiAgICAgZW51bSBjbGFzcyBDb250aW51ZSB7IE5vLCBZZXMgfTsKICAgICB1c2lu
ZyBQcm9jZXNzRXJyb3IgPSBGdW5jdGlvbjxDb250aW51ZShFeGNlcHRpb25Db2RlKT47CiAgICAg
TmV0d29ya1NlbmRRdWV1ZShEb2N1bWVudCYsIFdyaXRlU3RyaW5nJiYsIFdyaXRlUmF3RGF0YSYm
LCBQcm9jZXNzRXJyb3ImJik7CiAgICAgfk5ldHdvcmtTZW5kUXVldWUoKTsKIAotICAgIHZvaWQg
ZW5xdWV1ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGVucXVldWUoY29uc3QgQ1N0cmluZyYp
OwogICAgIHZvaWQgZW5xdWV1ZShjb25zdCBKU0M6OkFycmF5QnVmZmVyJiwgdW5zaWduZWQgYnl0
ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CiAgICAgdm9pZCBlbnF1ZXVlKEJsb2ImKTsK
IApAQCAtNjEsNyArNjIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgcHJvY2Vzc01l
c3NhZ2VzKCk7CiAKLSAgICB1c2luZyBNZXNzYWdlID0gVmFyaWFudDxTdHJpbmcsIFJlZjxTaGFy
ZWRCdWZmZXI+LCBVbmlxdWVSZWY8QmxvYkxvYWRlcj4+OworICAgIHVzaW5nIE1lc3NhZ2UgPSBW
YXJpYW50PENTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+LCBVbmlxdWVSZWY8QmxvYkxvYWRlcj4+
OwogICAgIERlcXVlPE1lc3NhZ2U+IG1fcXVldWU7CiAKICAgICBXVEY6OldlYWtQdHI8RG9jdW1l
bnQ+IG1fZG9jdW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCmluZGV4IDc3OGM3NDU5NmI3MzFk
YjQ3MThmZTU5NDIxMjQwM2QyZTVlNmQwZjQuLmNhNmNmNzJmMGIwNTAzZTYyZjMwMDM4ZjgxNzhi
NWNjZjliZDQ3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCkBAIC00OSw3ICs0OSw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoUlRDRGF0YUNoYW5uZWxIYW5kbGVy
Q2xpZW50JikgPSAwOwogCi0gICAgdmlydHVhbCBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IFN0
cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29uc3QgQ1N0cmlu
ZyYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2VuZFJhd0RhdGEoY29uc3QgY2hhciosIHNpemVf
dCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2Nr
LmNwcAppbmRleCBmNmY4MTExMjc3M2MyY2FhMzIzMWVlNDQyODcyODczYjFlYmViMjBmLi5lODA2
YTYxNTkyOTdjOTNiODk2YzJmOGRmZjFkOTc1NTBjZDhiY2EyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5j
cHAKQEAgLTQ4LDkgKzQ4LDkgQEAgdm9pZCBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrOjpzZXRD
bGllbnQoUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50JiBjbGllbnQpCiAgICAgbV90aW1lckV2
ZW50cy5hcHBlbmQoYWRvcHRSZWYobmV3IFRpbWVyRXZlbnQodGhpcywgV1RGTW92ZShub3RpZmll
cikpKSk7CiB9CiAKLWJvb2wgUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jazo6c2VuZFN0cmluZ0Rh
dGEoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitib29sIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6
OnNlbmRTdHJpbmdEYXRhKGNvbnN0IENTdHJpbmcmIHN0cmluZykKIHsKLSAgICBtX2NsaWVudC0+
ZGlkUmVjZWl2ZVN0cmluZ0RhdGEoc3RyaW5nKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVN0
cmluZ0RhdGEoU3RyaW5nOjpmcm9tVVRGOChzdHJpbmcpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5l
bEhhbmRsZXJNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFu
bmVsSGFuZGxlck1vY2suaAppbmRleCAyYjE2YjJhMmU4NjMyNDBhMjFlYzZiYWEzNmY5ODg2MmI4
MWM5YTdkLi5mM2NmYTY4MDQ4NmY3NDhhNWY0Yzg0OTg4YjhkZjgyZGY3ZjEwMmNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1v
Y2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFu
ZGxlck1vY2suaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQg
c2V0Q2xpZW50KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCYpIGZpbmFsOwogCi0gICAgYm9v
bCBzZW5kU3RyaW5nRGF0YShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHNlbmRTdHJp
bmdEYXRhKGNvbnN0IENTdHJpbmcmKSBmaW5hbDsKICAgICBib29sIHNlbmRSYXdEYXRhKGNvbnN0
IGNoYXIqLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgY2xvc2UoKSBmaW5hbDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNw
cAppbmRleCAzZGJkY2E0NGJjZWIyYWZiZDE5M2Q1ZjMzMDY3NTQ4YzAzMjcyMzY0Li4yNjU2NzBi
MzEwNWEyNjZjZjQ3MjM1ZTNjYzk4NGVhNzY1YWRmNTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcApAQCAtNzEsNyAr
NzEsNyBAQCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6fk5ldHdvcmtTb2NrZXRDaGFubmVsKCkKICAg
ICAgICAgbV9zb2NrZXQtPmNhbmNlbCgpOwogfQogCi12b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVs
OjpzZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNhbGxiYWNrKQordm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2VuZFN0cmluZyhj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3NvY2tldC0+c2VuZFN0cmluZyhtZXNzYWdlLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTb2NrZXRDaGFubmVsLmgKaW5kZXggZmNkYjlkNDM1NTNmNTg1NjY3NjA1OTg3MTVk
ODVmMGJmYjVjYjZlMC4uNTE0N2UzZGM3YmU0NWY4MDMxMjI2MjVkM2I4ZjA5MmUwYjQ5YzVmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hh
bm5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENo
YW5uZWwuaApAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU2VuZEhhbmRz
aGFrZVJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZUhhbmRzaGFrZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAKLSAg
ICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmREYXRhKGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBj
bG9zZShpbnQzMl90IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwu
bWVzc2FnZXMuaW4KaW5kZXggYzhiZTJiNDBmYzE3NzZkY2E1NmNjOGQ0YmE5ZTZlMTI2YjI2MmY0
OC4uYmQwMmI5MTUwZjQzODJiNmFlNjdlMzVmNDBkNzUwMWJhOWRmMWRhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFu
bmVsLm1lc3NhZ2VzLmluCkBAIC0yMSw3ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtTb2NrZXRDaGFubmVsIE5vdFJlZkNvdW50ZWQgewotICAgIFNlbmRTdHJp
bmcoU3RyaW5nIG1lc3NhZ2UpIC0+ICgpIEFzeW5jCisgICAgU2VuZFN0cmluZyhJUEM6OkRhdGFS
ZWZlcmVuY2UgbWVzc2FnZSkgLT4gKCkgQXN5bmMKICAgICBTZW5kRGF0YShJUEM6OkRhdGFSZWZl
cmVuY2UgZGF0YSkgLT4gKCkgQXN5bmMKICAgICBDbG9zZShpbnQzMl90IGNvZGUsIFN0cmluZyBy
ZWFzb24pCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlNv
Y2tldFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU29ja2V0VGFzay5o
CmluZGV4IDA0Nzk5MjA4OTZkYTI1N2ZjNTg2NDUxNjBjMDAwOWQxNjRjZTVmZjUuLjI1ZjIxNzU3
YTc4NDcxZTc1ODFiZDVlYzJjN2I3MDQ0MzdlMjAyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvV2ViU29ja2V0VGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvV2ViU29ja2V0VGFzay5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFdlYlNv
Y2tldFRhc2sgewogcHVibGljOgogICAgIHR5cGVkZWYgdWludDY0X3QgVGFza0lkZW50aWZpZXI7
CiAKLSAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSB7IH0KKyAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSB7IH0KICAgICB2b2lkIHNlbmREYXRh
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
eyB9CiAgICAgdm9pZCBjbG9zZShpbnQzMl90IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSB7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJT
b2NrZXRUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2Vi
U29ja2V0VGFza0NvY29hLmgKaW5kZXggNmM1ZjQ2OGI1MzFlMmMyYjRlNGYyNGQzOGY5ZDQ5ZTBh
YzY0ZWRlYS4uZGFjNjkzNTA3ZWIzZWZjZWE2ZDEwOTQ4MDFiYzAxYjM2ZmUyNjM5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29j
b2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRh
c2tDb2NvYS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBXZWJTb2NrZXRUYXNrKE5l
dHdvcmtTb2NrZXRDaGFubmVsJiwgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNvY2tldFRhc2s+
JiYpOwogICAgIH5XZWJTb2NrZXRUYXNrKCk7CiAKLSAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNlbmRTdHJp
bmcoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNlbmREYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbG9zZShpbnQzMl90IGNvZGUsIGNvbnN0
IFN0cmluZyYgcmVhc29uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQppbmRleCBkOTQzNGQzNDQ0ZTU4MjZj
YmE3MTU2NTljMDY4MTgyN2VjZTk0MDVmLi42MGE4YWI5MDYzNjM0MTMxNjkxNmUzOTQyYjRjODc1
MmUwNWQ0NTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L1dlYlNvY2tldFRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQpAQCAtMTE1LDkgKzExNSwxMCBAQCB2b2lkIFdl
YlNvY2tldFRhc2s6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYg
cmVhc29uKQogICAgIG1fY2hhbm5lbC5kaWRDbG9zZShjb2RlLCByZWFzb24pOwogfQogCi12b2lk
IFdlYlNvY2tldFRhc2s6OnNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiB0ZXh0ICwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJTb2NrZXRUYXNrOjpzZW5kU3Ry
aW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgdXRmOFN0cmluZywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIGF1dG8gbWVzc2FnZSA9IGFkb3B0TlMoW1tO
U1VSTFNlc3Npb25XZWJTb2NrZXRNZXNzYWdlIGFsbG9jXSBpbml0V2l0aFN0cmluZzogdGV4dF0p
OworICAgIGF1dG8gdGV4dCA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhCeXRl
czp1dGY4U3RyaW5nLmRhdGEoKSBsZW5ndGg6dXRmOFN0cmluZy5zaXplKCkgZW5jb2Rpbmc6TlNV
VEY4U3RyaW5nRW5jb2RpbmddKTsKKyAgICBhdXRvIG1lc3NhZ2UgPSBhZG9wdE5TKFtbTlNVUkxT
ZXNzaW9uV2ViU29ja2V0TWVzc2FnZSBhbGxvY10gaW5pdFdpdGhTdHJpbmc6IHRleHQuZ2V0KCld
KTsKICAgICBbbV90YXNrIHNlbmRNZXNzYWdlOiBtZXNzYWdlLmdldCgpIGNvbXBsZXRpb25IYW5k
bGVyOiBtYWtlQmxvY2tQdHIoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKE5TRXJyb3Ig
KiBfTnVsbGFibGUpIG11dGFibGUgewogICAgICAgICAvLyBXb3JrYXJvdW5kIHJkYXI6Ly9wcm9i
bGVtLzU1MzI0OTI2IHVudGlsIGl0IGdldHMgZml4ZWQuCiAgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFdURk1vdmUoY2FsbGJhY2spKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCmluZGV4IDBmZjFjMWE0NTliZGU5
YmZmMDIzZmQ3MTI1YWE5YTY0ODk3MjAzMjIuLjQ3YmRmZTE1NGVlZGJiMDk2ODZiMzY1MTNlYTg3
MjU0NDFlZmU2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcApAQCAtMTg1LDEzICsxODUsMTMgQEAgdm9pZCBX
ZWJTb2NrZXRUYXNrOjpkaWRDbG9zZSh1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcm
IHJlYXNvbikKICAgICBtX2NoYW5uZWwuZGlkQ2xvc2UoY29kZSwgcmVhc29uKTsKIH0KIAotdm9p
ZCBXZWJTb2NrZXRUYXNrOjpzZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgdGV4dCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJTb2NrZXRUYXNrOjpzZW5kU3Ry
aW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgdXRmOFN0cmluZywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIGlmIChtX2Nvbm5lY3Rpb24gJiYgc291cF93
ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRfc3RhdGUobV9jb25uZWN0aW9uLmdldCgpKSA9PSBTT1VQ
X1dFQlNPQ0tFVF9TVEFURV9PUEVOKSB7CiAgICAgICAgIENTdHJpbmcgdXRmOCA9IHRleHQudXRm
OChTdHJpY3RDb252ZXJzaW9uUmVwbGFjaW5nVW5wYWlyZWRTdXJyb2dhdGVzV2l0aEZGRkQpOwog
I2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA2NywgMykKICAgICAgICAgLy8gU291cCBpcyBnb2lu
ZyB0byBjb3B5IHRoZSBkYXRhIGltbWVkaWF0ZWx5LCBzbyB3ZSBjYW4gdXNlIGdfYnl0ZXNfbmV3
X3N0YXRpYygpIGhlcmUgdG8gYXZvaWQgbW9yZSBkYXRhIGNvcGllcy4KLSAgICAgICAgR1JlZlB0
cjxHQnl0ZXM+IGJ5dGVzID0gYWRvcHRHUmVmKGdfYnl0ZXNfbmV3X3N0YXRpYyh1dGY4LmRhdGEo
KSwgdXRmOC5sZW5ndGgoKSkpOworICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9w
dEdSZWYoZ19ieXRlc19uZXdfc3RhdGljKHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLnNp
emUoKSkpOwogICAgICAgICBzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX3NlbmRfbWVzc2FnZSht
X2Nvbm5lY3Rpb24uZ2V0KCksIFNPVVBfV0VCU09DS0VUX0RBVEFfVEVYVCwgYnl0ZXMuZ2V0KCkp
OwogI2Vsc2UKICAgICAgICAgc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9zZW5kX3RleHQobV9j
b25uZWN0aW9uLmdldCgpLCB1dGY4LmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGFkMzQzZmRjNGEw
NzFkMTMwNGQ1YWMxMmJkMTQyMDQ1Zjk0ODhjYmMuLmQzNzA2MDUzNGVlNGM2NGJlNmI2OGU1MjE1
ZmFlOGE1MzAyYWYyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC01NiwxMCArNTYsOSBAQCB2b2lkIFdlYlNv
Y2tldENoYW5uZWw6Om5vdGlmeVNlbmRGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29k
ZSwgY29uc3QgY2hhcgogCiBOZXR3b3JrU2VuZFF1ZXVlIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0
ZU1lc3NhZ2VRdWV1ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvY2tldENoYW5uZWwmIGNoYW5u
ZWwpCiB7Ci0gICAgcmV0dXJuIHsgZG9jdW1lbnQsIFsmY2hhbm5lbF0oYXV0byYgc3RyaW5nKSB7
Ci0gICAgICAgIGF1dG8gYnl0ZUxlbmd0aCA9IHN0cmluZy5zaXplSW5CeXRlcygpOwotICAgICAg
ICBjaGFubmVsLm5vdGlmeVNlbmRGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlOjpPcENvZGVU
ZXh0LCBzdHJpbmcudXRmOCgpLmRhdGEoKSwgYnl0ZUxlbmd0aCk7Ci0gICAgICAgIGNoYW5uZWwu
c2VuZE1lc3NhZ2UoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpTZW5kU3RyaW5nIHsg
c3RyaW5nIH0sIGJ5dGVMZW5ndGgpOworICAgIHJldHVybiB7IGRvY3VtZW50LCBbJmNoYW5uZWxd
KGF1dG8mIHV0ZjhTdHJpbmcpIHsKKyAgICAgICAgY2hhbm5lbC5ub3RpZnlTZW5kRnJhbWUoV2Vi
U29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlVGV4dCwgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhT
dHJpbmcubGVuZ3RoKCkpOworICAgICAgICBjaGFubmVsLnNlbmRNZXNzYWdlKE1lc3NhZ2VzOjpO
ZXR3b3JrU29ja2V0Q2hhbm5lbDo6U2VuZFN0cmluZyB7IElQQzo6RGF0YVJlZmVyZW5jZSB7IHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHV0ZjhTdHJpbmcuZGF0YSgpKSwgdXRmOFN0
cmluZy5sZW5ndGgoKSB9IH0sIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOwogICAgIH0sIFsmY2hhbm5l
bF0oY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGJ5dGVMZW5ndGgpIHsKICAgICAgICAgY2hhbm5l
bC5ub3RpZnlTZW5kRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlQmluYXJ5LCBk
YXRhLCBieXRlTGVuZ3RoKTsKICAgICAgICAgY2hhbm5lbC5zZW5kTWVzc2FnZShNZXNzYWdlczo6
TmV0d29ya1NvY2tldENoYW5uZWw6OlNlbmREYXRhIHsgSVBDOjpEYXRhUmVmZXJlbmNlIHsgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGJ5dGVMZW5ndGggfSB9LCBieXRl
TGVuZ3RoKTsKQEAgLTE2MiwxMSArMTYxLDExIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQg
V2ViU29ja2V0Q2hhbm5lbDo6c2VuZE1lc3NhZ2UoVCYmIG1lc3NhZ2UsIHNpemVfdCBieXRlCiAK
IFdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZChjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgYXV0byBieXRlTGVuZ3RoID0gbWVzc2FnZS5zaXpl
SW5CeXRlcygpOwotICAgIGlmICghaW5jcmVhc2VCdWZmZXJlZEFtb3VudChieXRlTGVuZ3RoKSkK
KyAgICBhdXRvIHV0ZjggPSBtZXNzYWdlLnV0ZjgoKTsKKyAgICBpZiAoIWluY3JlYXNlQnVmZmVy
ZWRBbW91bnQodXRmOC5sZW5ndGgoKSkpCiAgICAgICAgIHJldHVybiBTZW5kRmFpbDsKIAotICAg
IG1fbWVzc2FnZVF1ZXVlLmVucXVldWUobWVzc2FnZSk7CisgICAgbV9tZXNzYWdlUXVldWUuZW5x
dWV1ZSh1dGY4KTsKICAgICByZXR1cm4gU2VuZFN1Y2Nlc3M7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403053</attachid>
            <date>2020-06-29 05:51:48 -0700</date>
            <delta_ts>2020-06-29 08:04:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213714-20200629145146.patch</filename>
            <type>text/plain</type>
            <size>20006</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ3NGZkYzIyZDA2NTg5
NGM2ODEwMzdkODE0MzM5ZjIyZjRjYzlkNS4uZjVjMzU3ODYyNzkzNTA3YWY2NTcyMjkyODcxYzIw
ZWRhOGQyYzA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA2LTI5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIE5ldHdvcmtTZW5k
UXVldWUgdXNlIENTdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmcgZm9yIFVURi04IGRhdGEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcxNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDU3RyaW5nIGlu
c3RlYWQgb2YgU3RyaW5nIGluIE5ldHdvcmtTZW5kUXVldWUgYXMgYWxsIGRhdGEgaXMgdG8gYmUg
ZW5jb2RlZCBhcyBVVEYtOC4KKyAgICAgICAgVGhpcyBhbGxvd3MgY29udmVydGluZyBhbmQgYWxs
b2NhdGluZyB0aGUgVVRGLTggc3RyaW5nIG9ubHkgb25jZS4KKyAgICAgICAgQ292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNyZWF0ZU1lc3Nh
Z2VRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6c2VuZCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxl
cjo6c2VuZFN0cmluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyOjpzZW5kUmF3RGF0YSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmg6CisgICAgICAgICogZmlsZWFw
aS9OZXR3b3JrU2VuZFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTZW5kUXVl
dWU6OmVucXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1NlbmRRdWV1ZTo6cHJvY2Vz
c01lc3NhZ2VzKToKKyAgICAgICAgKiBmaWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jazo6c2VuZFN0cmluZ0RhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oOgorCiAy
MDIwLTA2LTI5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
VENEYXRhQ2hhbm5lbC5idWZmZXJlZEFtb3VudCBzaG91bGQgc3RheSB0aGUgc2FtZSBldmVuIGlm
IGNoYW5uZWwgaXMgY2xvc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcyZWE1NWYxYTM2NzZkOGM2ZTA2MGMwMDUy
NTdmYTRkYTViNDU1ZGUuLjgzYzVlOTUyYTI3ZWFhYWNkODAzYTkwYjI3ZDRhZTAyZjI1NDhiMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMDYtMjkgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgTmV0d29ya1NlbmRRdWV1ZSB1c2UgQ1N0
cmluZyBpbnN0ZWFkIG9mIFN0cmluZyBmb3IgVVRGLTggZGF0YQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzE0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICBVcGRhdGUgY29kZSB0byB1c2UgQ1N0cmluZy9E
YXRhUmVmZXJlbmNlIHRvIHRyYW5zbWl0IFdlYlNvY2tldCB0ZXh0IG1lc3NhZ2VzLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2VuZFN0cmluZyk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9XZWJTb2NrZXRUYXNrLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6
OnNlbmRTdHJpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRh
c2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0VGFzazo6c2VuZFN0cmluZyk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTb2NrZXRUYXNrOjpzZW5kU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dENoYW5uZWw6OmNyZWF0ZU1lc3NhZ2VRdWV1ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dENoYW5uZWw6OnNlbmQpOgorCiAyMDIwLTA2LTI5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCB3ZWJraXRfYXV0aGVu
dGljYXRpb25fcmVxdWVzdF9nZXRfc2VjdXJpdHlfb3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCmluZGV4IDM4ZjM5
ZGQ0OWRiNTgxYTQ1NzFiNGVmOWQ4MWJkZjE3YTk4ZDczZjAuLjI2MmUyZWRiZmM4MTIyODAyZDU1
MWU4YjVkZmFkOWExZWVhZmJjOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCkBAIC02Niw4ICs2Niw4IEBAIFJlZjxS
VENEYXRhQ2hhbm5lbD4gUlRDRGF0YUNoYW5uZWw6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQs
IHN0ZDo6dW5pcXVlX3B0cjxSCiAKIE5ldHdvcmtTZW5kUXVldWUgUlRDRGF0YUNoYW5uZWw6OmNy
ZWF0ZU1lc3NhZ2VRdWV1ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJUQ0RhdGFDaGFubmVsJiBjaGFu
bmVsKQogewotICAgIHJldHVybiB7IGRvY3VtZW50LCBbJmNoYW5uZWxdKGNvbnN0IFN0cmluZyYg
ZGF0YSkgewotICAgICAgICBpZiAoIWNoYW5uZWwubV9oYW5kbGVyLT5zZW5kU3RyaW5nRGF0YShk
YXRhKSkKKyAgICByZXR1cm4geyBkb2N1bWVudCwgWyZjaGFubmVsXShhdXRvJiBzdHJpbmcpIHsK
KyAgICAgICAgaWYgKCFjaGFubmVsLm1faGFuZGxlci0+c2VuZFN0cmluZ0RhdGEoc3RyaW5nKSkK
ICAgICAgICAgICAgIGNoYW5uZWwuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgIkVycm9yIHNl
bmRpbmcgc3RyaW5nIHRocm91Z2ggUlRDRGF0YUNoYW5uZWwuIl9zKTsKICAgICB9LCBbJmNoYW5u
ZWxdKGF1dG8qIGRhdGEsIHNpemVfdCBsZW5ndGgpIHsKICAgICAgICAgaWYgKCFjaGFubmVsLm1f
aGFuZGxlci0+c2VuZFJhd0RhdGEoZGF0YSwgbGVuZ3RoKSkKQEAgLTEyMSw4ICsxMjEsOSBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBSVENEYXRhQ2hhbm5lbDo6c2VuZChjb25zdCBTdHJpbmcmIGRhdGEp
CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBSVENEYXRhQ2hhbm5lbFN0YXRlOjpPcGVuKQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAotICAgIG1fYnVm
ZmVyZWRBbW91bnQgKz0gZGF0YS51dGY4KCkubGVuZ3RoKCk7Ci0gICAgbV9tZXNzYWdlUXVldWUu
ZW5xdWV1ZShkYXRhKTsKKyAgICBhdXRvIHV0ZjggPSBkYXRhLnV0ZjgoKTsKKyAgICBtX2J1ZmZl
cmVkQW1vdW50ICs9IHV0ZjgubGVuZ3RoKCk7CisgICAgbV9tZXNzYWdlUXVldWUuZW5xdWV1ZSh1
dGY4KTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAppbmRleCBmY2Q2OTBlMDE5NzljMjY0YWMzZDhhNjAy
Y2ZlODIxYTUyMWY0ZWRkLi40Nzk2OTljM2Q1MDdlOTJlNDkwMjdjNzU2OTdjNDAxMzA1YTY3NmRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5j
cHAKQEAgLTg5LDE1ICs4OSwxNCBAQCB2b2lkIExpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlcjo6
c2V0Q2xpZW50KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCYgY2xpZW50KQogICAgIGNoZWNr
U3RhdGUoKTsKIH0KIAotYm9vbCBMaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXI6OnNlbmRTdHJp
bmdEYXRhKGNvbnN0IFN0cmluZyYgdGV4dCkKK2Jvb2wgTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5k
bGVyOjpzZW5kU3RyaW5nRGF0YShjb25zdCBDU3RyaW5nJiB1dGY4VGV4dCkKIHsKLSAgICBhdXRv
IHV0ZjhUZXh0ID0gdGV4dC51dGY4KCk7CiAgICAgcmV0dXJuIG1fY2hhbm5lbC0+U2VuZCh7IHJ0
Yzo6Q29weU9uV3JpdGVCdWZmZXIodXRmOFRleHQuZGF0YSgpLCB1dGY4VGV4dC5sZW5ndGgoKSks
IGZhbHNlIH0pOwogfQogCiBib29sIExpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlcjo6c2VuZFJh
d0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHsKLSAgICByZXR1cm4gbV9j
aGFubmVsLT5TZW5kKHtydGM6OkNvcHlPbldyaXRlQnVmZmVyKGRhdGEsIGxlbmd0aCksIHRydWV9
KTsKKyAgICByZXR1cm4gbV9jaGFubmVsLT5TZW5kKHsgcnRjOjpDb3B5T25Xcml0ZUJ1ZmZlcihk
YXRhLCBsZW5ndGgpLCB0cnVlIH0pOwogfQogCiB2b2lkIExpYldlYlJUQ0RhdGFDaGFubmVsSGFu
ZGxlcjo6Y2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhh
bmRsZXIuaAppbmRleCA1ZDJjZDg5YTFiMWVmZjBiMDU1YWFlOTUwMDY1ZTJhOWQ1MDBiZGEyLi5h
ZWEyNjk0ZGU2OGVlODViNTlhMTk5ZWVkNmE3M2RlMzY3NGNkNWYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hh
bm5lbEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaApAQCAtNjAsNyArNjAsNyBAQCBw
cml2YXRlOgogICAgIC8vIFJUQ0RhdGFDaGFubmVsSGFuZGxlciBBUEkKICAgICB2b2lkIHNldENs
aWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmKSBmaW5hbDsKICAgICB2b2lkIGNoZWNr
U3RhdGUoKTsKLSAgICBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpIGZpbmFsOwor
ICAgIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29uc3QgQ1N0cmluZyYpIGZpbmFsOwogICAgIGJvb2wg
c2VuZFJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBjbG9zZSgp
IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5k
UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmNwcApp
bmRleCA5ODVlNTMwMWQ0YjEyZmY3NzY1YzAzMWEzNGFlMzEyYTRkNDEwMDljLi5jNWI0MjliMDlm
MGMwMGZkOTdhNThhZjI0OTUxYTU3OWY2NThjNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgTmV0d29ya1NlbmRRdWV1
ZTo6TmV0d29ya1NlbmRRdWV1ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdyaXRlU3RyaW5nJiYgd3Jp
dGVTdHJpbmcKIAogTmV0d29ya1NlbmRRdWV1ZTo6fk5ldHdvcmtTZW5kUXVldWUoKSA9IGRlZmF1
bHQ7CiAKLXZvaWQgTmV0d29ya1NlbmRRdWV1ZTo6ZW5xdWV1ZShjb25zdCBTdHJpbmcmIGRhdGEp
Cit2b2lkIE5ldHdvcmtTZW5kUXVldWU6OmVucXVldWUoY29uc3QgQ1N0cmluZyYgZGF0YSkKIHsK
ICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgbV93cml0ZVN0cmluZyhkYXRh
KTsKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBOZXR3b3JrU2VuZFF1ZXVlOjpwcm9jZXNzTWVzc2Fn
ZXMoKQogewogICAgIHdoaWxlICghbV9xdWV1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgYm9vbCBz
aG91bGRTdG9wUHJvY2Vzc2luZyA9IGZhbHNlOwotICAgICAgICBzd2l0Y2hPbihtX3F1ZXVlLmZp
cnN0KCksIFt0aGlzXShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsKKyAgICAgICAgc3dpdGNoT24o
bV9xdWV1ZS5maXJzdCgpLCBbdGhpc10oY29uc3QgQ1N0cmluZyYgbWVzc2FnZSkgewogICAgICAg
ICAgICAgbV93cml0ZVN0cmluZyhtZXNzYWdlKTsKICAgICAgICAgfSwgW3RoaXNdKFJlZjxTaGFy
ZWRCdWZmZXI+JiBkYXRhKSB7CiAgICAgICAgICAgICBtX3dyaXRlUmF3RGF0YShkYXRhLT5kYXRh
KCksIGRhdGEtPnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL05l
dHdvcmtTZW5kUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1
ZS5oCmluZGV4IGU1YzI1NmZjZTNmN2VkOTBmYWRkYTM4ODRiNDUwZDJiYWM2Njg1NTQuLjc0NWQ1
NmM5ZWJkOTJiOGYyNjcxNzc0NTg0ZGIxMzZmNmUzMTc0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8d3Rm
L1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
ewogY2xhc3MgQXJyYXlCdWZmZXI7CkBAIC00NSwxNCArNDYsMTQgQEAgY2xhc3MgU2hhcmVkQnVm
ZmVyOwogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBOZXR3b3JrU2VuZFF1ZXVlIHsKIHB1YmxpYzoK
LSAgICB1c2luZyBXcml0ZVN0cmluZyA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+Owor
ICAgIHVzaW5nIFdyaXRlU3RyaW5nID0gRnVuY3Rpb248dm9pZChjb25zdCBDU3RyaW5nJik+Owog
ICAgIHVzaW5nIFdyaXRlUmF3RGF0YSA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgY2hhciosIHNpemVf
dCk+OwogICAgIGVudW0gY2xhc3MgQ29udGludWUgeyBObywgWWVzIH07CiAgICAgdXNpbmcgUHJv
Y2Vzc0Vycm9yID0gRnVuY3Rpb248Q29udGludWUoRXhjZXB0aW9uQ29kZSk+OwogICAgIE5ldHdv
cmtTZW5kUXVldWUoRG9jdW1lbnQmLCBXcml0ZVN0cmluZyYmLCBXcml0ZVJhd0RhdGEmJiwgUHJv
Y2Vzc0Vycm9yJiYpOwogICAgIH5OZXR3b3JrU2VuZFF1ZXVlKCk7CiAKLSAgICB2b2lkIGVucXVl
dWUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBlbnF1ZXVlKGNvbnN0IENTdHJpbmcmKTsKICAg
ICB2b2lkIGVucXVldWUoY29uc3QgSlNDOjpBcnJheUJ1ZmZlciYsIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOwogICAgIHZvaWQgZW5xdWV1ZShCbG9iJik7CiAKQEAg
LTYxLDcgKzYyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3NNZXNzYWdl
cygpOwogCi0gICAgdXNpbmcgTWVzc2FnZSA9IFZhcmlhbnQ8U3RyaW5nLCBSZWY8U2hhcmVkQnVm
ZmVyPiwgVW5pcXVlUmVmPEJsb2JMb2FkZXI+PjsKKyAgICB1c2luZyBNZXNzYWdlID0gVmFyaWFu
dDxDU3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVyPiwgVW5pcXVlUmVmPEJsb2JMb2FkZXI+PjsKICAg
ICBEZXF1ZTxNZXNzYWdlPiBtX3F1ZXVlOwogCiAgICAgV1RGOjpXZWFrUHRyPERvY3VtZW50PiBt
X2RvY3VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaAppbmRleCA3NzhjNzQ1OTZiNzMxZGI0NzE4
ZmU1OTQyMTI0MDNkMmU1ZTZkMGY0Li5jYTZjZjcyZjBiMDUwM2U2MmYzMDAzOGY4MTc4YjVjY2Y5
YmQ0NzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENEYXRhQ2hhbm5lbEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVu
dCYpID0gMDsKIAotICAgIHZpcnR1YWwgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBTdHJpbmcm
KSA9IDA7CisgICAgdmlydHVhbCBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IENTdHJpbmcmKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIHNlbmRSYXdEYXRhKGNvbnN0IGNoYXIqLCBzaXplX3QpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAK
aW5kZXggZjZmODExMTI3NzNjMmNhYTMyMzFlZTQ0Mjg3Mjg3M2IxZWJlYjIwZi4uZTgwNmE2MTU5
Mjk3YzkzYjg5NmMyZjhkZmYxZDk3NTUwY2Q4YmNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwCkBA
IC00OCw5ICs0OCw5IEBAIHZvaWQgUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jazo6c2V0Q2xpZW50
KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCYgY2xpZW50KQogICAgIG1fdGltZXJFdmVudHMu
YXBwZW5kKGFkb3B0UmVmKG5ldyBUaW1lckV2ZW50KHRoaXMsIFdURk1vdmUobm90aWZpZXIpKSkp
OwogfQogCi1ib29sIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6OnNlbmRTdHJpbmdEYXRhKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQorYm9vbCBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrOjpzZW5k
U3RyaW5nRGF0YShjb25zdCBDU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgbV9jbGllbnQtPmRpZFJl
Y2VpdmVTdHJpbmdEYXRhKHN0cmluZyk7CisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVTdHJpbmdE
YXRhKFN0cmluZzo6ZnJvbVVURjgoc3RyaW5nKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5k
bGVyTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhh
bmRsZXJNb2NrLmgKaW5kZXggMmIxNmIyYTJlODYzMjQwYTIxZWM2YmFhMzZmOTg4NjJiODFjOWE3
ZC4uZjNjZmE2ODA0ODZmNzQ4YTVmNGM4NDk4OGI4ZGY4MmRmN2YxMDJjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJN
b2NrLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHNldENs
aWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmKSBmaW5hbDsKIAotICAgIGJvb2wgc2Vu
ZFN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBzZW5kU3RyaW5nRGF0
YShjb25zdCBDU3RyaW5nJikgZmluYWw7CiAgICAgYm9vbCBzZW5kUmF3RGF0YShjb25zdCBjaGFy
Kiwgc2l6ZV90KSBmaW5hbDsKICAgICB2b2lkIGNsb3NlKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKaW5k
ZXggM2RiZGNhNDRiY2ViMmFmYmQxOTNkNWYzMzA2NzU0OGMwMzI3MjM2NC4uMjY1NjcwYjMxMDVh
MjY2Y2Y0NzIzNWUzY2M5ODRlYTc2NWFkZjUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTcxLDcgKzcxLDcg
QEAgTmV0d29ya1NvY2tldENoYW5uZWw6On5OZXR3b3JrU29ja2V0Q2hhbm5lbCgpCiAgICAgICAg
IG1fc29ja2V0LT5jYW5jZWwoKTsKIH0KIAotdm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2Vu
ZFN0cmluZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjYWxsYmFjaykKK3ZvaWQgTmV0d29ya1NvY2tldENoYW5uZWw6OnNlbmRTdHJpbmcoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y2FsbGJhY2spCiB7CiAgICAgbV9zb2NrZXQtPnNlbmRTdHJpbmcobWVzc2FnZSwgV1RGTW92ZShj
YWxsYmFjaykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0Q2hhbm5lbC5oCmluZGV4IGZjZGI5ZDQzNTUzZjU4NTY2NzYwNTk4NzE1ZDg1ZjBi
ZmI1Y2I2ZTAuLjUxNDdlM2RjN2JlNDVmODAzMTIyNjI1ZDNiOGYwOTJlMGI0OWM1ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVs
LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFNlbmRIYW5kc2hha2VS
ZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVI
YW5kc2hha2VSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwogCi0gICAgdm9p
ZCBzZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZW5kRGF0YShjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xvc2Uo
aW50MzJfdCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3Nh
Z2VzLmluCmluZGV4IGM4YmUyYjQwZmMxNzc2ZGNhNTZjYzhkNGJhOWU2ZTEyNmIyNjJmNDguLmJk
MDJiOTE1MGY0MzgyYjZhZTY3ZTM1ZjQwZDc1MDFiYTlkZjFkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5t
ZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAt
PiBOZXR3b3JrU29ja2V0Q2hhbm5lbCBOb3RSZWZDb3VudGVkIHsKLSAgICBTZW5kU3RyaW5nKFN0
cmluZyBtZXNzYWdlKSAtPiAoKSBBc3luYworICAgIFNlbmRTdHJpbmcoSVBDOjpEYXRhUmVmZXJl
bmNlIG1lc3NhZ2UpIC0+ICgpIEFzeW5jCiAgICAgU2VuZERhdGEoSVBDOjpEYXRhUmVmZXJlbmNl
IGRhdGEpIC0+ICgpIEFzeW5jCiAgICAgQ2xvc2UoaW50MzJfdCBjb2RlLCBTdHJpbmcgcmVhc29u
KQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTb2NrZXRU
YXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlNvY2tldFRhc2suaAppbmRl
eCAwNDc5OTIwODk2ZGEyNTdmYzU4NjQ1MTYwYzAwMDlkMTY0Y2U1ZmY1Li4yNWYyMTc1N2E3ODQ3
MWU3NTgxYmQ1ZWMyYzdiNzA0NDM3ZTIwMjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlNvY2tldFRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1dlYlNvY2tldFRhc2suaApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBXZWJTb2NrZXRU
YXNrIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIHVpbnQ2NF90IFRhc2tJZGVudGlmaWVyOwogCi0g
ICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJikgeyB9CisgICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgeyB9CiAgICAgdm9pZCBzZW5kRGF0YShjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIHsgfQog
ICAgIHZvaWQgY2xvc2UoaW50MzJfdCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgeyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0
VGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tl
dFRhc2tDb2NvYS5oCmluZGV4IDZjNWY0NjhiNTMxZTJjMmI0ZTRmMjRkMzhmOWQ0OWUwYWM2NGVk
ZWEuLmRhYzY5MzUwN2ViM2VmY2VhNmQxMDk0ODAxYmMwMWIzNmZlMjYzOWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29j
b2EuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgV2ViU29ja2V0VGFzayhOZXR3b3Jr
U29ja2V0Q2hhbm5lbCYsIFJldGFpblB0cjxOU1VSTFNlc3Npb25XZWJTb2NrZXRUYXNrPiYmKTsK
ICAgICB+V2ViU29ja2V0VGFzaygpOwogCi0gICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IFN0cmlu
ZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZW5kU3RyaW5nKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBzZW5kRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xvc2UoaW50MzJfdCBjb2RlLCBjb25zdCBTdHJp
bmcmIHJlYXNvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW0KaW5kZXggZDk0MzRkMzQ0NGU1ODI2Y2JhNzE1
NjU5YzA2ODE4MjdlY2U5NDA1Zi4uNjBhOGFiOTA2MzYzNDEzMTY5MTZlMzk0MmI0Yzg3NTJlMDVk
NDU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJT
b2NrZXRUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9XZWJTb2NrZXRUYXNrQ29jb2EubW0KQEAgLTExNSw5ICsxMTUsMTAgQEAgdm9pZCBXZWJTb2Nr
ZXRUYXNrOjpkaWRDbG9zZSh1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNv
bikKICAgICBtX2NoYW5uZWwuZGlkQ2xvc2UoY29kZSwgcmVhc29uKTsKIH0KIAotdm9pZCBXZWJT
b2NrZXRUYXNrOjpzZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgdGV4dCAsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViU29ja2V0VGFzazo6c2VuZFN0cmluZyhj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHV0ZjhTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjYWxsYmFjaykKIHsKLSAgICBhdXRvIG1lc3NhZ2UgPSBhZG9wdE5TKFtbTlNVUkxT
ZXNzaW9uV2ViU29ja2V0TWVzc2FnZSBhbGxvY10gaW5pdFdpdGhTdHJpbmc6IHRleHRdKTsKKyAg
ICBhdXRvIHRleHQgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dXRm
OFN0cmluZy5kYXRhKCkgbGVuZ3RoOnV0ZjhTdHJpbmcuc2l6ZSgpIGVuY29kaW5nOk5TVVRGOFN0
cmluZ0VuY29kaW5nXSk7CisgICAgYXV0byBtZXNzYWdlID0gYWRvcHROUyhbW05TVVJMU2Vzc2lv
bldlYlNvY2tldE1lc3NhZ2UgYWxsb2NdIGluaXRXaXRoU3RyaW5nOiB0ZXh0LmdldCgpXSk7CiAg
ICAgW21fdGFzayBzZW5kTWVzc2FnZTogbWVzc2FnZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjog
bWFrZUJsb2NrUHRyKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShOU0Vycm9yICogX051
bGxhYmxlKSBtdXRhYmxlIHsKICAgICAgICAgLy8gV29ya2Fyb3VuZCByZGFyOi8vcHJvYmxlbS81
NTMyNDkyNiB1bnRpbCBpdCBnZXRzIGZpeGVkLgogICAgICAgICBjYWxsT25NYWluUnVuTG9vcChX
VEZNb3ZlKGNhbGxiYWNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAppbmRleCAwZmYxYzFhNDU5YmRlOWJmZjAy
M2ZkNzEyNWFhOWE2NDg5NzIwMzIyLi40N2JkZmUxNTRlZWRiYjA5Njg2YjM2NTEzZWE4NzI1NDQx
ZWZlNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2Vi
U29ja2V0VGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKQEAgLTE4NSwxMyArMTg1LDEzIEBAIHZvaWQgV2ViU29j
a2V0VGFzazo6ZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFz
b24pCiAgICAgbV9jaGFubmVsLmRpZENsb3NlKGNvZGUsIHJlYXNvbik7CiB9CiAKLXZvaWQgV2Vi
U29ja2V0VGFzazo6c2VuZFN0cmluZyhjb25zdCBTdHJpbmcmIHRleHQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViU29ja2V0VGFzazo6c2VuZFN0cmluZyhj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHV0ZjhTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9jb25uZWN0aW9uICYmIHNvdXBfd2Vic29j
a2V0X2Nvbm5lY3Rpb25fZ2V0X3N0YXRlKG1fY29ubmVjdGlvbi5nZXQoKSkgPT0gU09VUF9XRUJT
T0NLRVRfU1RBVEVfT1BFTikgewogICAgICAgICBDU3RyaW5nIHV0ZjggPSB0ZXh0LnV0ZjgoU3Ry
aWN0Q29udmVyc2lvblJlcGxhY2luZ1VucGFpcmVkU3Vycm9nYXRlc1dpdGhGRkZEKTsKICNpZiBT
T1VQX0NIRUNLX1ZFUlNJT04oMiwgNjcsIDMpCiAgICAgICAgIC8vIFNvdXAgaXMgZ29pbmcgdG8g
Y29weSB0aGUgZGF0YSBpbW1lZGlhdGVseSwgc28gd2UgY2FuIHVzZSBnX2J5dGVzX25ld19zdGF0
aWMoKSBoZXJlIHRvIGF2b2lkIG1vcmUgZGF0YSBjb3BpZXMuCi0gICAgICAgIEdSZWZQdHI8R0J5
dGVzPiBieXRlcyA9IGFkb3B0R1JlZihnX2J5dGVzX25ld19zdGF0aWModXRmOC5kYXRhKCksIHV0
ZjgubGVuZ3RoKCkpKTsKKyAgICAgICAgR1JlZlB0cjxHQnl0ZXM+IGJ5dGVzID0gYWRvcHRHUmVm
KGdfYnl0ZXNfbmV3X3N0YXRpYyh1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5zaXplKCkp
KTsKICAgICAgICAgc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UobV9jb25u
ZWN0aW9uLmdldCgpLCBTT1VQX1dFQlNPQ0tFVF9EQVRBX1RFWFQsIGJ5dGVzLmdldCgpKTsKICNl
bHNlCiAgICAgICAgIHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fc2VuZF90ZXh0KG1fY29ubmVj
dGlvbi5nZXQoKSwgdXRmOC5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaAppbmRleCA0ZjA3NmJmNTgzMDk3ZTU2
MzA3MjdlYjU4NWQzOTMzMTI1OTdiYTMxLi45NjFiOTU5Mjk4OTM0ODIzNzkzYWE5NGM5YTVjMzFm
MDM2ZDA3ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
V2ViU29ja2V0VGFza1NvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvV2ViU29ja2V0VGFza1NvdXAuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgV2Vi
U29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYsIFNvdXBTZXNzaW9uKiwgU291cE1lc3Nh
Z2UqLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsKICAgICB+V2ViU29ja2V0VGFzaygpOwogCi0g
ICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CisgICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZW5kRGF0YShjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
Y2xvc2UoaW50MzJfdCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5k
ZXggYWQzNDNmZGM0YTA3MWQxMzA0ZDVhYzEyYmQxNDIwNDVmOTQ4OGNiYy4uZDM3MDYwNTM0ZWU0
YzY0YmU2YjY4ZTUyMTVmYWU4YTUzMDJhZjJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTU2LDEwICs1Niw5
IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6bm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1l
OjpPcENvZGUgb3BDb2RlLCBjb25zdCBjaGFyCiAKIE5ldHdvcmtTZW5kUXVldWUgV2ViU29ja2V0
Q2hhbm5lbDo6Y3JlYXRlTWVzc2FnZVF1ZXVlKERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0
Q2hhbm5lbCYgY2hhbm5lbCkKIHsKLSAgICByZXR1cm4geyBkb2N1bWVudCwgWyZjaGFubmVsXShh
dXRvJiBzdHJpbmcpIHsKLSAgICAgICAgYXV0byBieXRlTGVuZ3RoID0gc3RyaW5nLnNpemVJbkJ5
dGVzKCk7Ci0gICAgICAgIGNoYW5uZWwubm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpP
cENvZGU6Ok9wQ29kZVRleHQsIHN0cmluZy51dGY4KCkuZGF0YSgpLCBieXRlTGVuZ3RoKTsKLSAg
ICAgICAgY2hhbm5lbC5zZW5kTWVzc2FnZShNZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6
OlNlbmRTdHJpbmcgeyBzdHJpbmcgfSwgYnl0ZUxlbmd0aCk7CisgICAgcmV0dXJuIHsgZG9jdW1l
bnQsIFsmY2hhbm5lbF0oYXV0byYgdXRmOFN0cmluZykgeworICAgICAgICBjaGFubmVsLm5vdGlm
eVNlbmRGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlOjpPcENvZGVUZXh0LCB1dGY4U3RyaW5n
LmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIGNoYW5uZWwuc2VuZE1lc3Nh
Z2UoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpTZW5kU3RyaW5nIHsgSVBDOjpEYXRh
UmVmZXJlbmNlIHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odXRmOFN0cmluZy5k
YXRhKCkpLCB1dGY4U3RyaW5nLmxlbmd0aCgpIH0gfSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CiAg
ICAgfSwgWyZjaGFubmVsXShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgYnl0ZUxlbmd0aCkgewog
ICAgICAgICBjaGFubmVsLm5vdGlmeVNlbmRGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlOjpP
cENvZGVCaW5hcnksIGRhdGEsIGJ5dGVMZW5ndGgpOwogICAgICAgICBjaGFubmVsLnNlbmRNZXNz
YWdlKE1lc3NhZ2VzOjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6U2VuZERhdGEgeyBJUEM6OkRhdGFS
ZWZlcmVuY2UgeyByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgYnl0ZUxl
bmd0aCB9IH0sIGJ5dGVMZW5ndGgpOwpAQCAtMTYyLDExICsxNjEsMTEgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kTWVzc2FnZShUJiYgbWVzc2FnZSwg
c2l6ZV90IGJ5dGUKIAogV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXZWJTb2NrZXRDaGFu
bmVsOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBhdXRvIGJ5dGVMZW5ndGgg
PSBtZXNzYWdlLnNpemVJbkJ5dGVzKCk7Ci0gICAgaWYgKCFpbmNyZWFzZUJ1ZmZlcmVkQW1vdW50
KGJ5dGVMZW5ndGgpKQorICAgIGF1dG8gdXRmOCA9IG1lc3NhZ2UudXRmOCgpOworICAgIGlmICgh
aW5jcmVhc2VCdWZmZXJlZEFtb3VudCh1dGY4Lmxlbmd0aCgpKSkKICAgICAgICAgcmV0dXJuIFNl
bmRGYWlsOwogCi0gICAgbV9tZXNzYWdlUXVldWUuZW5xdWV1ZShtZXNzYWdlKTsKKyAgICBtX21l
c3NhZ2VRdWV1ZS5lbnF1ZXVlKHV0ZjgpOwogICAgIHJldHVybiBTZW5kU3VjY2VzczsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403059</attachid>
            <date>2020-06-29 08:04:28 -0700</date>
            <delta_ts>2020-06-30 02:51:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213714-20200629170426.patch</filename>
            <type>text/plain</type>
            <size>20110</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ3NGZkYzIyZDA2NTg5
NGM2ODEwMzdkODE0MzM5ZjIyZjRjYzlkNS4uZjVjMzU3ODYyNzkzNTA3YWY2NTcyMjkyODcxYzIw
ZWRhOGQyYzA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA2LTI5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIE5ldHdvcmtTZW5k
UXVldWUgdXNlIENTdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmcgZm9yIFVURi04IGRhdGEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcxNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDU3RyaW5nIGlu
c3RlYWQgb2YgU3RyaW5nIGluIE5ldHdvcmtTZW5kUXVldWUgYXMgYWxsIGRhdGEgaXMgdG8gYmUg
ZW5jb2RlZCBhcyBVVEYtOC4KKyAgICAgICAgVGhpcyBhbGxvd3MgY29udmVydGluZyBhbmQgYWxs
b2NhdGluZyB0aGUgVVRGLTggc3RyaW5nIG9ubHkgb25jZS4KKyAgICAgICAgQ292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNyZWF0ZU1lc3Nh
Z2VRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6c2VuZCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxl
cjo6c2VuZFN0cmluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyOjpzZW5kUmF3RGF0YSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmg6CisgICAgICAgICogZmlsZWFw
aS9OZXR3b3JrU2VuZFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTZW5kUXVl
dWU6OmVucXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1NlbmRRdWV1ZTo6cHJvY2Vz
c01lc3NhZ2VzKToKKyAgICAgICAgKiBmaWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jazo6c2VuZFN0cmluZ0RhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oOgorCiAy
MDIwLTA2LTI5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
VENEYXRhQ2hhbm5lbC5idWZmZXJlZEFtb3VudCBzaG91bGQgc3RheSB0aGUgc2FtZSBldmVuIGlm
IGNoYW5uZWwgaXMgY2xvc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcyZWE1NWYxYTM2NzZkOGM2ZTA2MGMwMDUy
NTdmYTRkYTViNDU1ZGUuLjgzYzVlOTUyYTI3ZWFhYWNkODAzYTkwYjI3ZDRhZTAyZjI1NDhiMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMDYtMjkgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgTmV0d29ya1NlbmRRdWV1ZSB1c2UgQ1N0
cmluZyBpbnN0ZWFkIG9mIFN0cmluZyBmb3IgVVRGLTggZGF0YQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzE0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICBVcGRhdGUgY29kZSB0byB1c2UgQ1N0cmluZy9E
YXRhUmVmZXJlbmNlIHRvIHRyYW5zbWl0IFdlYlNvY2tldCB0ZXh0IG1lc3NhZ2VzLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2VuZFN0cmluZyk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9XZWJTb2NrZXRUYXNrLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6
OnNlbmRTdHJpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRh
c2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0VGFzazo6c2VuZFN0cmluZyk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTb2NrZXRUYXNrOjpzZW5kU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dENoYW5uZWw6OmNyZWF0ZU1lc3NhZ2VRdWV1ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dENoYW5uZWw6OnNlbmQpOgorCiAyMDIwLTA2LTI5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCB3ZWJraXRfYXV0aGVu
dGljYXRpb25fcmVxdWVzdF9nZXRfc2VjdXJpdHlfb3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCmluZGV4IDM4ZjM5
ZGQ0OWRiNTgxYTQ1NzFiNGVmOWQ4MWJkZjE3YTk4ZDczZjAuLjNjZmZkNzYyNzc2YmViMWQ0ODhh
YWJhMzVjY2E1ZWYzM2Q4MzhlMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCkBAIC02Niw4ICs2Niw4IEBAIFJlZjxS
VENEYXRhQ2hhbm5lbD4gUlRDRGF0YUNoYW5uZWw6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQs
IHN0ZDo6dW5pcXVlX3B0cjxSCiAKIE5ldHdvcmtTZW5kUXVldWUgUlRDRGF0YUNoYW5uZWw6OmNy
ZWF0ZU1lc3NhZ2VRdWV1ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJUQ0RhdGFDaGFubmVsJiBjaGFu
bmVsKQogewotICAgIHJldHVybiB7IGRvY3VtZW50LCBbJmNoYW5uZWxdKGNvbnN0IFN0cmluZyYg
ZGF0YSkgewotICAgICAgICBpZiAoIWNoYW5uZWwubV9oYW5kbGVyLT5zZW5kU3RyaW5nRGF0YShk
YXRhKSkKKyAgICByZXR1cm4geyBkb2N1bWVudCwgWyZjaGFubmVsXShhdXRvJiBzdHJpbmcpIHsK
KyAgICAgICAgaWYgKCFjaGFubmVsLm1faGFuZGxlci0+c2VuZFN0cmluZ0RhdGEoc3RyaW5nKSkK
ICAgICAgICAgICAgIGNoYW5uZWwuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgIkVycm9yIHNl
bmRpbmcgc3RyaW5nIHRocm91Z2ggUlRDRGF0YUNoYW5uZWwuIl9zKTsKICAgICB9LCBbJmNoYW5u
ZWxdKGF1dG8qIGRhdGEsIHNpemVfdCBsZW5ndGgpIHsKICAgICAgICAgaWYgKCFjaGFubmVsLm1f
aGFuZGxlci0+c2VuZFJhd0RhdGEoZGF0YSwgbGVuZ3RoKSkKQEAgLTEyMSw4ICsxMjEsMTAgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gUlRDRGF0YUNoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBkYXRh
KQogICAgIGlmIChtX3JlYWR5U3RhdGUgIT0gUlRDRGF0YUNoYW5uZWxTdGF0ZTo6T3BlbikKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBtX2J1
ZmZlcmVkQW1vdW50ICs9IGRhdGEudXRmOCgpLmxlbmd0aCgpOwotICAgIG1fbWVzc2FnZVF1ZXVl
LmVucXVldWUoZGF0YSk7CisgICAgLy8gRklYTUU6IFdlIG1pZ2h0IHdhbnQgdG8gdXNlIHN0cmlj
dCBjb252ZXJzaW9uIGxpa2UgV2ViU29ja2V0LgorICAgIGF1dG8gdXRmOCA9IGRhdGEudXRmOCgp
OworICAgIG1fYnVmZmVyZWRBbW91bnQgKz0gdXRmOC5sZW5ndGgoKTsKKyAgICBtX21lc3NhZ2VR
dWV1ZS5lbnF1ZXVlKHV0ZjgpOwogICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFD
aGFubmVsSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCmluZGV4IGZjZDY5MGUwMTk3
OWMyNjRhYzNkOGE2MDJjZmU4MjFhNTIxZjRlZGQuLjQ3OTY5OWMzZDUwN2U5MmU0OTAyN2M3NTY5
N2M0MDEzMDVhNjc2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNo
YW5uZWxIYW5kbGVyLmNwcApAQCAtODksMTUgKzg5LDE0IEBAIHZvaWQgTGliV2ViUlRDRGF0YUNo
YW5uZWxIYW5kbGVyOjpzZXRDbGllbnQoUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50JiBjbGll
bnQpCiAgICAgY2hlY2tTdGF0ZSgpOwogfQogCi1ib29sIExpYldlYlJUQ0RhdGFDaGFubmVsSGFu
ZGxlcjo6c2VuZFN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJiB0ZXh0KQorYm9vbCBMaWJXZWJSVENE
YXRhQ2hhbm5lbEhhbmRsZXI6OnNlbmRTdHJpbmdEYXRhKGNvbnN0IENTdHJpbmcmIHV0ZjhUZXh0
KQogewotICAgIGF1dG8gdXRmOFRleHQgPSB0ZXh0LnV0ZjgoKTsKICAgICByZXR1cm4gbV9jaGFu
bmVsLT5TZW5kKHsgcnRjOjpDb3B5T25Xcml0ZUJ1ZmZlcih1dGY4VGV4dC5kYXRhKCksIHV0ZjhU
ZXh0Lmxlbmd0aCgpKSwgZmFsc2UgfSk7CiB9CiAKIGJvb2wgTGliV2ViUlRDRGF0YUNoYW5uZWxI
YW5kbGVyOjpzZW5kUmF3RGF0YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogewot
ICAgIHJldHVybiBtX2NoYW5uZWwtPlNlbmQoe3J0Yzo6Q29weU9uV3JpdGVCdWZmZXIoZGF0YSwg
bGVuZ3RoKSwgdHJ1ZX0pOworICAgIHJldHVybiBtX2NoYW5uZWwtPlNlbmQoeyBydGM6OkNvcHlP
bldyaXRlQnVmZmVyKGRhdGEsIGxlbmd0aCksIHRydWUgfSk7CiB9CiAKIHZvaWQgTGliV2ViUlRD
RGF0YUNoYW5uZWxIYW5kbGVyOjpjbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q0RhdGFDaGFubmVsSGFuZGxlci5oCmluZGV4IDVkMmNkODlhMWIxZWZmMGIwNTVhYWU5NTAwNjVl
MmE5ZDUwMGJkYTIuLmFlYTI2OTRkZTY4ZWU4NWI1OWExOTllZWQ2YTczZGUzNjc0Y2Q1ZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCkBAIC02
MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgLy8gUlRDRGF0YUNoYW5uZWxIYW5kbGVyIEFQSQog
ICAgIHZvaWQgc2V0Q2xpZW50KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCYpIGZpbmFsOwog
ICAgIHZvaWQgY2hlY2tTdGF0ZSgpOwotICAgIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29uc3QgU3Ry
aW5nJikgZmluYWw7CisgICAgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBDU3RyaW5nJikgZmlu
YWw7CiAgICAgYm9vbCBzZW5kUmF3RGF0YShjb25zdCBjaGFyKiwgc2l6ZV90KSBmaW5hbDsKICAg
ICB2b2lkIGNsb3NlKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtT
ZW5kUXVldWUuY3BwCmluZGV4IDk4NWU1MzAxZDRiMTJmZjc3NjVjMDMxYTM0YWUzMTJhNGQ0MTAw
OWMuLmM1YjQyOWIwOWYwYzAwZmQ5N2E1OGFmMjQ5NTFhNTc5ZjY1OGM3MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBO
ZXR3b3JrU2VuZFF1ZXVlOjpOZXR3b3JrU2VuZFF1ZXVlKERvY3VtZW50JiBkb2N1bWVudCwgV3Jp
dGVTdHJpbmcmJiB3cml0ZVN0cmluZwogCiBOZXR3b3JrU2VuZFF1ZXVlOjp+TmV0d29ya1NlbmRR
dWV1ZSgpID0gZGVmYXVsdDsKIAotdm9pZCBOZXR3b3JrU2VuZFF1ZXVlOjplbnF1ZXVlKGNvbnN0
IFN0cmluZyYgZGF0YSkKK3ZvaWQgTmV0d29ya1NlbmRRdWV1ZTo6ZW5xdWV1ZShjb25zdCBDU3Ry
aW5nJiBkYXRhKQogewogICAgIGlmIChtX3F1ZXVlLmlzRW1wdHkoKSkgewogICAgICAgICBtX3dy
aXRlU3RyaW5nKGRhdGEpOwpAQCAtODAsNyArODAsNyBAQCB2b2lkIE5ldHdvcmtTZW5kUXVldWU6
OnByb2Nlc3NNZXNzYWdlcygpCiB7CiAgICAgd2hpbGUgKCFtX3F1ZXVlLmlzRW1wdHkoKSkgewog
ICAgICAgICBib29sIHNob3VsZFN0b3BQcm9jZXNzaW5nID0gZmFsc2U7Ci0gICAgICAgIHN3aXRj
aE9uKG1fcXVldWUuZmlyc3QoKSwgW3RoaXNdKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeworICAg
ICAgICBzd2l0Y2hPbihtX3F1ZXVlLmZpcnN0KCksIFt0aGlzXShjb25zdCBDU3RyaW5nJiBtZXNz
YWdlKSB7CiAgICAgICAgICAgICBtX3dyaXRlU3RyaW5nKG1lc3NhZ2UpOwogICAgICAgICB9LCBb
dGhpc10oUmVmPFNoYXJlZEJ1ZmZlcj4mIGRhdGEpIHsKICAgICAgICAgICAgIG1fd3JpdGVSYXdE
YXRhKGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9O
ZXR3b3JrU2VuZFF1ZXVlLmgKaW5kZXggZTVjMjU2ZmNlM2Y3ZWQ5MGZhZGRhMzg4NGI0NTBkMmJh
YzY2ODU1NC4uNzQ1ZDU2YzllYmQ5MmI4ZjI2NzE3NzQ1ODRkYjEzNmY2ZTMxNzQ5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmgKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBBcnJheUJ1ZmZlcjsKQEAgLTQ1LDE0ICs0NiwxNCBAQCBj
bGFzcyBTaGFyZWRCdWZmZXI7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIE5ldHdvcmtTZW5kUXVl
dWUgewogcHVibGljOgotICAgIHVzaW5nIFdyaXRlU3RyaW5nID0gRnVuY3Rpb248dm9pZChjb25z
dCBTdHJpbmcmKT47CisgICAgdXNpbmcgV3JpdGVTdHJpbmcgPSBGdW5jdGlvbjx2b2lkKGNvbnN0
IENTdHJpbmcmKT47CiAgICAgdXNpbmcgV3JpdGVSYXdEYXRhID0gRnVuY3Rpb248dm9pZChjb25z
dCBjaGFyKiwgc2l6ZV90KT47CiAgICAgZW51bSBjbGFzcyBDb250aW51ZSB7IE5vLCBZZXMgfTsK
ICAgICB1c2luZyBQcm9jZXNzRXJyb3IgPSBGdW5jdGlvbjxDb250aW51ZShFeGNlcHRpb25Db2Rl
KT47CiAgICAgTmV0d29ya1NlbmRRdWV1ZShEb2N1bWVudCYsIFdyaXRlU3RyaW5nJiYsIFdyaXRl
UmF3RGF0YSYmLCBQcm9jZXNzRXJyb3ImJik7CiAgICAgfk5ldHdvcmtTZW5kUXVldWUoKTsKIAot
ICAgIHZvaWQgZW5xdWV1ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGVucXVldWUoY29uc3Qg
Q1N0cmluZyYpOwogICAgIHZvaWQgZW5xdWV1ZShjb25zdCBKU0M6OkFycmF5QnVmZmVyJiwgdW5z
aWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CiAgICAgdm9pZCBlbnF1ZXVl
KEJsb2ImKTsKIApAQCAtNjEsNyArNjIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQg
cHJvY2Vzc01lc3NhZ2VzKCk7CiAKLSAgICB1c2luZyBNZXNzYWdlID0gVmFyaWFudDxTdHJpbmcs
IFJlZjxTaGFyZWRCdWZmZXI+LCBVbmlxdWVSZWY8QmxvYkxvYWRlcj4+OworICAgIHVzaW5nIE1l
c3NhZ2UgPSBWYXJpYW50PENTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+LCBVbmlxdWVSZWY8Qmxv
YkxvYWRlcj4+OwogICAgIERlcXVlPE1lc3NhZ2U+IG1fcXVldWU7CiAKICAgICBXVEY6OldlYWtQ
dHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCmluZGV4IDc3OGM3
NDU5NmI3MzFkYjQ3MThmZTU5NDIxMjQwM2QyZTVlNmQwZjQuLmNhNmNmNzJmMGIwNTAzZTYyZjMw
MDM4ZjgxNzhiNWNjZjliZDQ3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCkBAIC00OSw3ICs0
OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyQ2xpZW50JikgPSAwOwogCi0gICAgdmlydHVhbCBib29sIHNlbmRTdHJpbmdEYXRh
KGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29u
c3QgQ1N0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2VuZFJhd0RhdGEoY29uc3QgY2hh
ciosIHNpemVfdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxl
ck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhh
bmRsZXJNb2NrLmNwcAppbmRleCBmNmY4MTExMjc3M2MyY2FhMzIzMWVlNDQyODcyODczYjFlYmVi
MjBmLi5lODA2YTYxNTkyOTdjOTNiODk2YzJmOGRmZjFkOTc1NTBjZDhiY2EyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5k
bGVyTW9jay5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgdm9pZCBSVENEYXRhQ2hhbm5lbEhhbmRsZXJN
b2NrOjpzZXRDbGllbnQoUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50JiBjbGllbnQpCiAgICAg
bV90aW1lckV2ZW50cy5hcHBlbmQoYWRvcHRSZWYobmV3IFRpbWVyRXZlbnQodGhpcywgV1RGTW92
ZShub3RpZmllcikpKSk7CiB9CiAKLWJvb2wgUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jazo6c2Vu
ZFN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitib29sIFJUQ0RhdGFDaGFubmVsSGFu
ZGxlck1vY2s6OnNlbmRTdHJpbmdEYXRhKGNvbnN0IENTdHJpbmcmIHN0cmluZykKIHsKLSAgICBt
X2NsaWVudC0+ZGlkUmVjZWl2ZVN0cmluZ0RhdGEoc3RyaW5nKTsKKyAgICBtX2NsaWVudC0+ZGlk
UmVjZWl2ZVN0cmluZ0RhdGEoU3RyaW5nOjpmcm9tVVRGOChzdHJpbmcpKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENE
YXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JU
Q0RhdGFDaGFubmVsSGFuZGxlck1vY2suaAppbmRleCAyYjE2YjJhMmU4NjMyNDBhMjFlYzZiYWEz
NmY5ODg2MmI4MWM5YTdkLi5mM2NmYTY4MDQ4NmY3NDhhNWY0Yzg0OTg4YjhkZjgyZGY3ZjEwMmNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVs
SGFuZGxlck1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFD
aGFubmVsSGFuZGxlck1vY2suaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHZvaWQgc2V0Q2xpZW50KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCYpIGZpbmFsOwog
Ci0gICAgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29s
IHNlbmRTdHJpbmdEYXRhKGNvbnN0IENTdHJpbmcmKSBmaW5hbDsKICAgICBib29sIHNlbmRSYXdE
YXRhKGNvbnN0IGNoYXIqLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgY2xvc2UoKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0
Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsLmNwcAppbmRleCAzZGJkY2E0NGJjZWIyYWZiZDE5M2Q1ZjMzMDY3NTQ4YzAzMjcyMzY0
Li4yNjU2NzBiMzEwNWEyNjZjZjQ3MjM1ZTNjYzk4NGVhNzY1YWRmNTJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcApA
QCAtNzEsNyArNzEsNyBAQCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6fk5ldHdvcmtTb2NrZXRDaGFu
bmVsKCkKICAgICAgICAgbV9zb2NrZXQtPmNhbmNlbCgpOwogfQogCi12b2lkIE5ldHdvcmtTb2Nr
ZXRDaGFubmVsOjpzZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQordm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2Vu
ZFN0cmluZyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3NvY2tldC0+c2VuZFN0cmluZyhtZXNz
YWdlLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKaW5kZXggZmNkYjlkNDM1NTNmNTg1NjY3
NjA1OTg3MTVkODVmMGJmYjVjYjZlMC4uNTE0N2UzZGM3YmU0NWY4MDMxMjI2MjVkM2I4ZjA5MmUw
YjQ5YzVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1NvY2tldENoYW5uZWwuaApAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
U2VuZEhhbmRzaGFrZVJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIHZv
aWQgZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
Jik7CiAKLSAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmREYXRhKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBjbG9zZShpbnQzMl90IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tl
dENoYW5uZWwubWVzc2FnZXMuaW4KaW5kZXggYzhiZTJiNDBmYzE3NzZkY2E1NmNjOGQ0YmE5ZTZl
MTI2YjI2MmY0OC4uYmQwMmI5MTUwZjQzODJiNmFlNjdlMzVmNDBkNzUwMWJhOWRmMWRhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
b2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluCkBAIC0yMSw3ICsyMSw3IEBACiAjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtTb2NrZXRDaGFubmVsIE5vdFJlZkNvdW50ZWQgewotICAg
IFNlbmRTdHJpbmcoU3RyaW5nIG1lc3NhZ2UpIC0+ICgpIEFzeW5jCisgICAgU2VuZFN0cmluZyhJ
UEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSkgLT4gKCkgQXN5bmMKICAgICBTZW5kRGF0YShJUEM6
OkRhdGFSZWZlcmVuY2UgZGF0YSkgLT4gKCkgQXN5bmMKICAgICBDbG9zZShpbnQzMl90IGNvZGUs
IFN0cmluZyByZWFzb24pCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlNvY2tldFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU29j
a2V0VGFzay5oCmluZGV4IDA0Nzk5MjA4OTZkYTI1N2ZjNTg2NDUxNjBjMDAwOWQxNjRjZTVmZjUu
LjI1ZjIxNzU3YTc4NDcxZTc1ODFiZDVlYzJjN2I3MDQ0MzdlMjAyMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU29ja2V0VGFzay5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU29ja2V0VGFzay5oCkBAIC0zOCw3ICszOCw3IEBAIGNs
YXNzIFdlYlNvY2tldFRhc2sgewogcHVibGljOgogICAgIHR5cGVkZWYgdWludDY0X3QgVGFza0lk
ZW50aWZpZXI7CiAKLSAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKSB7IH0KKyAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSB7IH0KICAgICB2b2lk
IHNlbmREYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgeyB9CiAgICAgdm9pZCBjbG9zZShpbnQzMl90IGNvZGUsIGNvbnN0IFN0cmluZyYg
cmVhc29uKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvV2ViU29ja2V0VGFza0NvY29hLmgKaW5kZXggNmM1ZjQ2OGI1MzFlMmMyYjRlNGYyNGQz
OGY5ZDQ5ZTBhYzY0ZWRlYS4uZGFjNjkzNTA3ZWIzZWZjZWE2ZDEwOTQ4MDFiYzAxYjM2ZmUyNjM5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2Nr
ZXRUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dl
YlNvY2tldFRhc2tDb2NvYS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBXZWJTb2Nr
ZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNv
Y2tldFRhc2s+JiYpOwogICAgIH5XZWJTb2NrZXRUYXNrKCk7CiAKLSAgICB2b2lkIHNlbmRTdHJp
bmcoY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lk
IHNlbmRTdHJpbmcoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmREYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbG9zZShpbnQzMl90IGNv
ZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQppbmRleCBkOTQzNGQz
NDQ0ZTU4MjZjYmE3MTU2NTljMDY4MTgyN2VjZTk0MDVmLi42MGE4YWI5MDYzNjM0MTMxNjkxNmUz
OTQyYjRjODc1MmUwNWQ0NTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQpAQCAtMTE1LDkgKzExNSwxMCBA
QCB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0
IFN0cmluZyYgcmVhc29uKQogICAgIG1fY2hhbm5lbC5kaWRDbG9zZShjb2RlLCByZWFzb24pOwog
fQogCi12b2lkIFdlYlNvY2tldFRhc2s6OnNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiB0ZXh0ICwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJTb2NrZXRUYXNr
OjpzZW5kU3RyaW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgdXRmOFN0cmluZywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIGF1dG8gbWVzc2FnZSA9IGFk
b3B0TlMoW1tOU1VSTFNlc3Npb25XZWJTb2NrZXRNZXNzYWdlIGFsbG9jXSBpbml0V2l0aFN0cmlu
ZzogdGV4dF0pOworICAgIGF1dG8gdGV4dCA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5p
dFdpdGhCeXRlczp1dGY4U3RyaW5nLmRhdGEoKSBsZW5ndGg6dXRmOFN0cmluZy5zaXplKCkgZW5j
b2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddKTsKKyAgICBhdXRvIG1lc3NhZ2UgPSBhZG9wdE5T
KFtbTlNVUkxTZXNzaW9uV2ViU29ja2V0TWVzc2FnZSBhbGxvY10gaW5pdFdpdGhTdHJpbmc6IHRl
eHQuZ2V0KCldKTsKICAgICBbbV90YXNrIHNlbmRNZXNzYWdlOiBtZXNzYWdlLmdldCgpIGNvbXBs
ZXRpb25IYW5kbGVyOiBtYWtlQmxvY2tQdHIoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KE5TRXJyb3IgKiBfTnVsbGFibGUpIG11dGFibGUgewogICAgICAgICAvLyBXb3JrYXJvdW5kIHJk
YXI6Ly9wcm9ibGVtLzU1MzI0OTI2IHVudGlsIGl0IGdldHMgZml4ZWQuCiAgICAgICAgIGNhbGxP
bk1haW5SdW5Mb29wKFdURk1vdmUoY2FsbGJhY2spKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCmluZGV4IDBmZjFj
MWE0NTliZGU5YmZmMDIzZmQ3MTI1YWE5YTY0ODk3MjAzMjIuLjA3YzViNDA4MzdmNmVkY2ViYzE5
OTE1NThhMjU5YTUwMGI2MmU0MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcApAQCAtMTg1LDEzICsxODUsMTIg
QEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDbG9zZSh1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25z
dCBTdHJpbmcmIHJlYXNvbikKICAgICBtX2NoYW5uZWwuZGlkQ2xvc2UoY29kZSwgcmVhc29uKTsK
IH0KIAotdm9pZCBXZWJTb2NrZXRUYXNrOjpzZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgdGV4dCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJTb2NrZXRUYXNr
OjpzZW5kU3RyaW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgdXRmOCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIGlmIChtX2Nvbm5lY3Rpb24gJiYgc291
cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRfc3RhdGUobV9jb25uZWN0aW9uLmdldCgpKSA9PSBT
T1VQX1dFQlNPQ0tFVF9TVEFURV9PUEVOKSB7Ci0gICAgICAgIENTdHJpbmcgdXRmOCA9IHRleHQu
dXRmOChTdHJpY3RDb252ZXJzaW9uUmVwbGFjaW5nVW5wYWlyZWRTdXJyb2dhdGVzV2l0aEZGRkQp
OwogI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA2NywgMykKICAgICAgICAgLy8gU291cCBpcyBn
b2luZyB0byBjb3B5IHRoZSBkYXRhIGltbWVkaWF0ZWx5LCBzbyB3ZSBjYW4gdXNlIGdfYnl0ZXNf
bmV3X3N0YXRpYygpIGhlcmUgdG8gYXZvaWQgbW9yZSBkYXRhIGNvcGllcy4KLSAgICAgICAgR1Jl
ZlB0cjxHQnl0ZXM+IGJ5dGVzID0gYWRvcHRHUmVmKGdfYnl0ZXNfbmV3X3N0YXRpYyh1dGY4LmRh
dGEoKSwgdXRmOC5sZW5ndGgoKSkpOworICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBh
ZG9wdEdSZWYoZ19ieXRlc19uZXdfc3RhdGljKHV0ZjguZGF0YSgpLCB1dGY4LnNpemUoKSkpOwog
ICAgICAgICBzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShtX2Nvbm5lY3Rp
b24uZ2V0KCksIFNPVVBfV0VCU09DS0VUX0RBVEFfVEVYVCwgYnl0ZXMuZ2V0KCkpOwogI2Vsc2UK
ICAgICAgICAgc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9zZW5kX3RleHQobV9jb25uZWN0aW9u
LmdldCgpLCB1dGY4LmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oCmluZGV4IDRmMDc2YmY1ODMwOTdlNTYzMDcy
N2ViNTg1ZDM5MzMxMjU5N2JhMzEuLjk2MWI5NTkyOTg5MzQ4MjM3OTNhYTk0YzlhNWMzMWYwMzZk
MDdlMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJT
b2NrZXRUYXNrU291cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9X
ZWJTb2NrZXRUYXNrU291cC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICBXZWJTb2Nr
ZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgU291cFNlc3Npb24qLCBTb3VwTWVzc2FnZSos
IGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpOwogICAgIH5XZWJTb2NrZXRUYXNrKCk7CiAKLSAgICB2
b2lkIHNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmREYXRhKGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbG9z
ZShpbnQzMl90IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBh
ZDM0M2ZkYzRhMDcxZDEzMDRkNWFjMTJiZDE0MjA0NWY5NDg4Y2JjLi5lYjFhYmExZTk5NGU5OTg4
MzQ3YmVlN2QxZjBiY2EyNzE2YTU2OGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNTYsMTAgKzU2LDkgQEAg
dm9pZCBXZWJTb2NrZXRDaGFubmVsOjpub3RpZnlTZW5kRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9w
Q29kZSBvcENvZGUsIGNvbnN0IGNoYXIKIAogTmV0d29ya1NlbmRRdWV1ZSBXZWJTb2NrZXRDaGFu
bmVsOjpjcmVhdGVNZXNzYWdlUXVldWUoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFu
bmVsJiBjaGFubmVsKQogewotICAgIHJldHVybiB7IGRvY3VtZW50LCBbJmNoYW5uZWxdKGF1dG8m
IHN0cmluZykgewotICAgICAgICBhdXRvIGJ5dGVMZW5ndGggPSBzdHJpbmcuc2l6ZUluQnl0ZXMo
KTsKLSAgICAgICAgY2hhbm5lbC5ub3RpZnlTZW5kRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29k
ZTo6T3BDb2RlVGV4dCwgc3RyaW5nLnV0ZjgoKS5kYXRhKCksIGJ5dGVMZW5ndGgpOwotICAgICAg
ICBjaGFubmVsLnNlbmRNZXNzYWdlKE1lc3NhZ2VzOjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6U2Vu
ZFN0cmluZyB7IHN0cmluZyB9LCBieXRlTGVuZ3RoKTsKKyAgICByZXR1cm4geyBkb2N1bWVudCwg
WyZjaGFubmVsXShhdXRvJiB1dGY4U3RyaW5nKSB7CisgICAgICAgIGNoYW5uZWwubm90aWZ5U2Vu
ZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29kZVRleHQsIHV0ZjhTdHJpbmcuZGF0
YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgY2hhbm5lbC5zZW5kTWVzc2FnZShN
ZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OlNlbmRTdHJpbmcgeyBJUEM6OkRhdGFSZWZl
cmVuY2UgeyByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPih1dGY4U3RyaW5nLmRhdGEo
KSksIHV0ZjhTdHJpbmcubGVuZ3RoKCkgfSB9LCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKICAgICB9
LCBbJmNoYW5uZWxdKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBieXRlTGVuZ3RoKSB7CiAgICAg
ICAgIGNoYW5uZWwubm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29k
ZUJpbmFyeSwgZGF0YSwgYnl0ZUxlbmd0aCk7CiAgICAgICAgIGNoYW5uZWwuc2VuZE1lc3NhZ2Uo
TWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpTZW5kRGF0YSB7IElQQzo6RGF0YVJlZmVy
ZW5jZSB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBieXRlTGVuZ3Ro
IH0gfSwgYnl0ZUxlbmd0aCk7CkBAIC0xNjIsMTEgKzE2MSwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OnNlbmRNZXNzYWdlKFQmJiBtZXNzYWdlLCBzaXpl
X3QgYnl0ZQogCiBXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IFdlYlNvY2tldENoYW5uZWw6
OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIGF1dG8gYnl0ZUxlbmd0aCA9IG1l
c3NhZ2Uuc2l6ZUluQnl0ZXMoKTsKLSAgICBpZiAoIWluY3JlYXNlQnVmZmVyZWRBbW91bnQoYnl0
ZUxlbmd0aCkpCisgICAgYXV0byB1dGY4ID0gbWVzc2FnZS51dGY4KFN0cmljdENvbnZlcnNpb25S
ZXBsYWNpbmdVbnBhaXJlZFN1cnJvZ2F0ZXNXaXRoRkZGRCk7CisgICAgaWYgKCFpbmNyZWFzZUJ1
ZmZlcmVkQW1vdW50KHV0ZjgubGVuZ3RoKCkpKQogICAgICAgICByZXR1cm4gU2VuZEZhaWw7CiAK
LSAgICBtX21lc3NhZ2VRdWV1ZS5lbnF1ZXVlKG1lc3NhZ2UpOworICAgIG1fbWVzc2FnZVF1ZXVl
LmVucXVldWUodXRmOCk7CiAgICAgcmV0dXJuIFNlbmRTdWNjZXNzOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403186</attachid>
            <date>2020-06-30 02:51:23 -0700</date>
            <delta_ts>2020-07-01 00:23:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213714-20200630115121.patch</filename>
            <type>text/plain</type>
            <size>22034</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FlNDkxMjY5YTdmZmMw
MDE2YmNlMDY2NGVlOWQ5MTc1NDk5MTRmOS4uOGM0MmFhMWNhZGI1OGZiZmFlZjdjOTY1OThjODA4
YmNjN2E1NzU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA2LTMwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIE5ldHdvcmtTZW5k
UXVldWUgdXNlIENTdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmcgZm9yIFVURi04IGRhdGEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcxNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDU3RyaW5nIGlu
c3RlYWQgb2YgU3RyaW5nIGluIE5ldHdvcmtTZW5kUXVldWUgYXMgYWxsIGRhdGEgaXMgdG8gYmUg
ZW5jb2RlZCBhcyBVVEYtOC4KKyAgICAgICAgVGhpcyBhbGxvd3MgY29udmVydGluZyBhbmQgYWxs
b2NhdGluZyB0aGUgVVRGLTggc3RyaW5nIG9ubHkgb25jZS4KKyAgICAgICAgQ292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNyZWF0ZU1lc3Nh
Z2VRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6c2VuZCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxl
cjo6c2VuZFN0cmluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyOjpzZW5kUmF3RGF0YSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmg6CisgICAgICAgICogZmlsZWFw
aS9OZXR3b3JrU2VuZFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTZW5kUXVl
dWU6OmVucXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1NlbmRRdWV1ZTo6cHJvY2Vz
c01lc3NhZ2VzKToKKyAgICAgICAgKiBmaWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jazo6c2VuZFN0cmluZ0RhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oOgorCiAy
MDIwLTA2LTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgVlA5IFdlYlJUQyBjb2RlYyBydW50aW1lIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNjY3MjdmZGM5YzBl
ZTVmZTMxMzZlM2UxN2NmMjMxMDE3MmU0MmZjNi4uNjRiNjBhYWU1OTQzNzM4NGRjN2U4ZGZjOTEw
ODcxYmMzMDZmM2I3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0wNi0zMCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBOZXR3b3JrU2Vu
ZFF1ZXVlIHVzZSBDU3RyaW5nIGluc3RlYWQgb2YgU3RyaW5nIGZvciBVVEYtOCBkYXRhCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM3MTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgIFVwZGF0ZSBjb2RlIHRv
IHVzZSBDU3RyaW5nL0RhdGFSZWZlcmVuY2UgdG8gdHJhbnNtaXQgV2ViU29ja2V0IHRleHQgbWVz
c2FnZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpzZW5kU3RyaW5nKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlNvY2tldFRhc2suaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU29ja2V0VGFzazo6c2VuZFN0cmluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29j
b2EvV2ViU29ja2V0VGFza0NvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2Ev
V2ViU29ja2V0VGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRUYXNrOjpz
ZW5kU3RyaW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OnNlbmRTdHJpbmcpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlTWVzc2FnZVF1ZXVlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6c2VuZCk6CisKIDIwMjAtMDYtMzAgIENvbW1pdCBRdWV1
ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVy
dGluZyByMjYzNzI0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAppbmRleCAzOGYzOWRkNDlkYjU4MWE0NTcxYjRlZjlkODFi
ZGYxN2E5OGQ3M2YwLi5jOGU2ODM3M2NiNGIzY2Q2NTAwNjc0NzE3NmI4Zjg4MDZiMzhmZjFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFu
bmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFD
aGFubmVsLmNwcApAQCAtNjYsOCArNjYsOCBAQCBSZWY8UlRDRGF0YUNoYW5uZWw+IFJUQ0RhdGFD
aGFubmVsOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBzdGQ6OnVuaXF1ZV9wdHI8UgogCiBO
ZXR3b3JrU2VuZFF1ZXVlIFJUQ0RhdGFDaGFubmVsOjpjcmVhdGVNZXNzYWdlUXVldWUoRG9jdW1l
bnQmIGRvY3VtZW50LCBSVENEYXRhQ2hhbm5lbCYgY2hhbm5lbCkKIHsKLSAgICByZXR1cm4geyBk
b2N1bWVudCwgWyZjaGFubmVsXShjb25zdCBTdHJpbmcmIGRhdGEpIHsKLSAgICAgICAgaWYgKCFj
aGFubmVsLm1faGFuZGxlci0+c2VuZFN0cmluZ0RhdGEoZGF0YSkpCisgICAgcmV0dXJuIHsgZG9j
dW1lbnQsIFsmY2hhbm5lbF0oYXV0byYgc3RyaW5nKSB7CisgICAgICAgIGlmICghY2hhbm5lbC5t
X2hhbmRsZXItPnNlbmRTdHJpbmdEYXRhKHN0cmluZykpCiAgICAgICAgICAgICBjaGFubmVsLnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJFcnJvciBzZW5kaW5nIHN0cmluZyB0aHJvdWdoIFJU
Q0RhdGFDaGFubmVsLiJfcyk7CiAgICAgfSwgWyZjaGFubmVsXShhdXRvKiBkYXRhLCBzaXplX3Qg
bGVuZ3RoKSB7CiAgICAgICAgIGlmICghY2hhbm5lbC5tX2hhbmRsZXItPnNlbmRSYXdEYXRhKGRh
dGEsIGxlbmd0aCkpCkBAIC0xMjEsOCArMTIxLDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ0Rh
dGFDaGFubmVsOjpzZW5kKGNvbnN0IFN0cmluZyYgZGF0YSkKICAgICBpZiAobV9yZWFkeVN0YXRl
ICE9IFJUQ0RhdGFDaGFubmVsU3RhdGU6Ok9wZW4pCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAgbV9idWZmZXJlZEFtb3VudCArPSBkYXRhLnV0
ZjgoKS5sZW5ndGgoKTsKLSAgICBtX21lc3NhZ2VRdWV1ZS5lbnF1ZXVlKGRhdGEpOworICAgIC8v
IEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIHVzZSBzdHJpY3QgY29udmVyc2lvbiBsaWtlIFdlYlNv
Y2tldC4KKyAgICBhdXRvIHV0ZjggPSBkYXRhLnV0ZjgoKTsKKyAgICBtX2J1ZmZlcmVkQW1vdW50
ICs9IHV0ZjgubGVuZ3RoKCk7CisgICAgbV9tZXNzYWdlUXVldWUuZW5xdWV1ZShXVEZNb3ZlKHV0
ZjgpKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAppbmRleCBmY2Q2OTBlMDE5NzljMjY0YWMzZDhhNjAy
Y2ZlODIxYTUyMWY0ZWRkLi40Nzk2OTljM2Q1MDdlOTJlNDkwMjdjNzU2OTdjNDAxMzA1YTY3NmRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5j
cHAKQEAgLTg5LDE1ICs4OSwxNCBAQCB2b2lkIExpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlcjo6
c2V0Q2xpZW50KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCYgY2xpZW50KQogICAgIGNoZWNr
U3RhdGUoKTsKIH0KIAotYm9vbCBMaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXI6OnNlbmRTdHJp
bmdEYXRhKGNvbnN0IFN0cmluZyYgdGV4dCkKK2Jvb2wgTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5k
bGVyOjpzZW5kU3RyaW5nRGF0YShjb25zdCBDU3RyaW5nJiB1dGY4VGV4dCkKIHsKLSAgICBhdXRv
IHV0ZjhUZXh0ID0gdGV4dC51dGY4KCk7CiAgICAgcmV0dXJuIG1fY2hhbm5lbC0+U2VuZCh7IHJ0
Yzo6Q29weU9uV3JpdGVCdWZmZXIodXRmOFRleHQuZGF0YSgpLCB1dGY4VGV4dC5sZW5ndGgoKSks
IGZhbHNlIH0pOwogfQogCiBib29sIExpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlcjo6c2VuZFJh
d0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHsKLSAgICByZXR1cm4gbV9j
aGFubmVsLT5TZW5kKHtydGM6OkNvcHlPbldyaXRlQnVmZmVyKGRhdGEsIGxlbmd0aCksIHRydWV9
KTsKKyAgICByZXR1cm4gbV9jaGFubmVsLT5TZW5kKHsgcnRjOjpDb3B5T25Xcml0ZUJ1ZmZlcihk
YXRhLCBsZW5ndGgpLCB0cnVlIH0pOwogfQogCiB2b2lkIExpYldlYlJUQ0RhdGFDaGFubmVsSGFu
ZGxlcjo6Y2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhh
bmRsZXIuaAppbmRleCA1ZDJjZDg5YTFiMWVmZjBiMDU1YWFlOTUwMDY1ZTJhOWQ1MDBiZGEyLi5h
ZWEyNjk0ZGU2OGVlODViNTlhMTk5ZWVkNmE3M2RlMzY3NGNkNWYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hh
bm5lbEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaApAQCAtNjAsNyArNjAsNyBAQCBw
cml2YXRlOgogICAgIC8vIFJUQ0RhdGFDaGFubmVsSGFuZGxlciBBUEkKICAgICB2b2lkIHNldENs
aWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmKSBmaW5hbDsKICAgICB2b2lkIGNoZWNr
U3RhdGUoKTsKLSAgICBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpIGZpbmFsOwor
ICAgIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29uc3QgQ1N0cmluZyYpIGZpbmFsOwogICAgIGJvb2wg
c2VuZFJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBjbG9zZSgp
IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5k
UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmNwcApp
bmRleCA5ODVlNTMwMWQ0YjEyZmY3NzY1YzAzMWEzNGFlMzEyYTRkNDEwMDljLi43NWNmMTQzZTIx
YzVmNjBhMzRlZDQ5YTUwZjNjMjYzNzA2OWFlMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBOZXR3b3JrU2VuZFF1
ZXVlOjpOZXR3b3JrU2VuZFF1ZXVlKERvY3VtZW50JiBkb2N1bWVudCwgV3JpdGVTdHJpbmcmJiB3
cml0ZVN0cmluZwogCiBOZXR3b3JrU2VuZFF1ZXVlOjp+TmV0d29ya1NlbmRRdWV1ZSgpID0gZGVm
YXVsdDsKIAotdm9pZCBOZXR3b3JrU2VuZFF1ZXVlOjplbnF1ZXVlKGNvbnN0IFN0cmluZyYgZGF0
YSkKK3ZvaWQgTmV0d29ya1NlbmRRdWV1ZTo6ZW5xdWV1ZShDU3RyaW5nJiYgdXRmOCkKIHsKICAg
ICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV93cml0ZVN0cmluZyhkYXRhKTsK
KyAgICAgICAgbV93cml0ZVN0cmluZyh1dGY4KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICBtX3F1ZXVlLmFwcGVuZChkYXRhKTsKKyAgICBtX3F1ZXVlLmFwcGVuZChXVEZNb3ZlKHV0Zjgp
KTsKIH0KIAogdm9pZCBOZXR3b3JrU2VuZFF1ZXVlOjplbnF1ZXVlKGNvbnN0IEpTQzo6QXJyYXlC
dWZmZXImIGJpbmFyeURhdGEsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5n
dGgpCkBAIC04MCw4ICs4MCw4IEBAIHZvaWQgTmV0d29ya1NlbmRRdWV1ZTo6cHJvY2Vzc01lc3Nh
Z2VzKCkKIHsKICAgICB3aGlsZSAoIW1fcXVldWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGJvb2wg
c2hvdWxkU3RvcFByb2Nlc3NpbmcgPSBmYWxzZTsKLSAgICAgICAgc3dpdGNoT24obV9xdWV1ZS5m
aXJzdCgpLCBbdGhpc10oY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7Ci0gICAgICAgICAgICBtX3dy
aXRlU3RyaW5nKG1lc3NhZ2UpOworICAgICAgICBzd2l0Y2hPbihtX3F1ZXVlLmZpcnN0KCksIFt0
aGlzXShjb25zdCBDU3RyaW5nJiB1dGY4KSB7CisgICAgICAgICAgICBtX3dyaXRlU3RyaW5nKHV0
ZjgpOwogICAgICAgICB9LCBbdGhpc10oUmVmPFNoYXJlZEJ1ZmZlcj4mIGRhdGEpIHsKICAgICAg
ICAgICAgIG1fd3JpdGVSYXdEYXRhKGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpKTsKICAgICAg
ICAgfSwgW3RoaXMsICZzaG91bGRTdG9wUHJvY2Vzc2luZ10oVW5pcXVlUmVmPEJsb2JMb2FkZXI+
JiBsb2FkZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1Nl
bmRRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmgKaW5k
ZXggZTVjMjU2ZmNlM2Y3ZWQ5MGZhZGRhMzg4NGI0NTBkMmJhYzY2ODU1NC4uNmNiMzU2NWJjOTA1
YWRlNWI5NTQ5OWE1MDBmYWUwMWZmMDBhNDU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9O
ZXR3b3JrU2VuZFF1ZXVlLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvVW5pcXVl
UmVmLmg+CiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFz
cyBBcnJheUJ1ZmZlcjsKQEAgLTQ1LDE0ICs0NiwxNCBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiAK
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIE5ldHdvcmtTZW5kUXVldWUgewogcHVibGljOgotICAgIHVz
aW5nIFdyaXRlU3RyaW5nID0gRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT47CisgICAgdXNp
bmcgV3JpdGVTdHJpbmcgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IENTdHJpbmcmIC8qIHV0ZjggKi8p
PjsKICAgICB1c2luZyBXcml0ZVJhd0RhdGEgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IGNoYXIqLCBz
aXplX3QpPjsKICAgICBlbnVtIGNsYXNzIENvbnRpbnVlIHsgTm8sIFllcyB9OwogICAgIHVzaW5n
IFByb2Nlc3NFcnJvciA9IEZ1bmN0aW9uPENvbnRpbnVlKEV4Y2VwdGlvbkNvZGUpPjsKICAgICBO
ZXR3b3JrU2VuZFF1ZXVlKERvY3VtZW50JiwgV3JpdGVTdHJpbmcmJiwgV3JpdGVSYXdEYXRhJiYs
IFByb2Nlc3NFcnJvciYmKTsKICAgICB+TmV0d29ya1NlbmRRdWV1ZSgpOwogCi0gICAgdm9pZCBl
bnF1ZXVlKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZW5xdWV1ZShDU3RyaW5nJiYgLyogdXRm
OCAqLyk7CiAgICAgdm9pZCBlbnF1ZXVlKGNvbnN0IEpTQzo6QXJyYXlCdWZmZXImLCB1bnNpZ25l
ZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsKICAgICB2b2lkIGVucXVldWUoQmxv
YiYpOwogCkBAIC02MSw3ICs2Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBwcm9j
ZXNzTWVzc2FnZXMoKTsKIAotICAgIHVzaW5nIE1lc3NhZ2UgPSBWYXJpYW50PFN0cmluZywgUmVm
PFNoYXJlZEJ1ZmZlcj4sIFVuaXF1ZVJlZjxCbG9iTG9hZGVyPj47CisgICAgdXNpbmcgTWVzc2Fn
ZSA9IFZhcmlhbnQ8Q1N0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4sIFVuaXF1ZVJlZjxCbG9iTG9h
ZGVyPj47CiAgICAgRGVxdWU8TWVzc2FnZT4gbV9xdWV1ZTsKIAogICAgIFdURjo6V2Vha1B0cjxE
b2N1bWVudD4gbV9kb2N1bWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKaW5kZXggNzc4Yzc0NTk2
YjczMWRiNDcxOGZlNTk0MjEyNDAzZDJlNWU2ZDBmNC4uY2E2Y2Y3MmYwYjA1MDNlNjJmMzAwMzhm
ODE3OGI1Y2NmOWJkNDczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKQEAgLTQ5LDcgKzQ5LDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChSVENEYXRhQ2hhbm5lbEhh
bmRsZXJDbGllbnQmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29u
c3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBD
U3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzZW5kUmF3RGF0YShjb25zdCBjaGFyKiwg
c2l6ZV90KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9j
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxl
ck1vY2suY3BwCmluZGV4IGY2ZjgxMTEyNzczYzJjYWEzMjMxZWU0NDI4NzI4NzNiMWViZWIyMGYu
LmU4MDZhNjE1OTI5N2M5M2I4OTZjMmY4ZGZmMWQ5NzU1MGNkOGJjYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJN
b2NrLmNwcApAQCAtNDgsOSArNDgsOSBAQCB2b2lkIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6
OnNldENsaWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmIGNsaWVudCkKICAgICBtX3Rp
bWVyRXZlbnRzLmFwcGVuZChhZG9wdFJlZihuZXcgVGltZXJFdmVudCh0aGlzLCBXVEZNb3ZlKG5v
dGlmaWVyKSkpKTsKIH0KIAotYm9vbCBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrOjpzZW5kU3Ry
aW5nRGF0YShjb25zdCBTdHJpbmcmIHN0cmluZykKK2Jvb2wgUlRDRGF0YUNoYW5uZWxIYW5kbGVy
TW9jazo6c2VuZFN0cmluZ0RhdGEoY29uc3QgQ1N0cmluZyYgc3RyaW5nKQogewotICAgIG1fY2xp
ZW50LT5kaWRSZWNlaXZlU3RyaW5nRGF0YShzdHJpbmcpOworICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlU3RyaW5nRGF0YShTdHJpbmc6OmZyb21VVEY4KHN0cmluZykpOwogICAgIHJldHVybiB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFD
aGFubmVsSGFuZGxlck1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0
YUNoYW5uZWxIYW5kbGVyTW9jay5oCmluZGV4IDJiMTZiMmEyZTg2MzI0MGEyMWVjNmJhYTM2Zjk4
ODYyYjgxYzlhN2QuLmYzY2ZhNjgwNDg2Zjc0OGE1ZjRjODQ5ODhiOGRmODJkZjdmMTAyY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5k
bGVyTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyTW9jay5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
dm9pZCBzZXRDbGllbnQoUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50JikgZmluYWw7CiAKLSAg
ICBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgc2Vu
ZFN0cmluZ0RhdGEoY29uc3QgQ1N0cmluZyYpIGZpbmFsOwogICAgIGJvb2wgc2VuZFJhd0RhdGEo
Y29uc3QgY2hhciosIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBjbG9zZSgpIGZpbmFsOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5u
ZWwuY3BwCmluZGV4IDNkYmRjYTQ0YmNlYjJhZmJkMTkzZDVmMzMwNjc1NDhjMDMyNzIzNjQuLjI2
NTY3MGIzMTA1YTI2NmNmNDcyMzVlM2NjOTg0ZWE3NjVhZGY1MmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCkBAIC03
MSw3ICs3MSw3IEBAIE5ldHdvcmtTb2NrZXRDaGFubmVsOjp+TmV0d29ya1NvY2tldENoYW5uZWwo
KQogICAgICAgICBtX3NvY2tldC0+Y2FuY2VsKCk7CiB9CiAKLXZvaWQgTmV0d29ya1NvY2tldENo
YW5uZWw6OnNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY2FsbGJhY2spCit2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpzZW5kU3Ry
aW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIG1fc29ja2V0LT5zZW5kU3RyaW5nKG1lc3NhZ2Us
IFdURk1vdmUoY2FsbGJhY2spKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAppbmRleCBmY2RiOWQ0MzU1M2Y1ODU2Njc2MDU5
ODcxNWQ4NWYwYmZiNWNiNmUwLi41MTQ3ZTNkYzdiZTQ1ZjgwMzEyMjYyNWQzYjhmMDkyZTBiNDlj
NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2Nr
ZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29j
a2V0Q2hhbm5lbC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTZW5k
SGFuZHNoYWtlUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7CiAgICAgdm9pZCBk
aWRSZWNlaXZlSGFuZHNoYWtlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKTsK
IAotICAgIHZvaWQgc2VuZFN0cmluZyhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgc2VuZFN0cmluZyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2VuZERhdGEoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIGNsb3NlKGludDMyX3QgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hh
bm5lbC5tZXNzYWdlcy5pbgppbmRleCBjOGJlMmI0MGZjMTc3NmRjYTU2Y2M4ZDRiYTllNmUxMjZi
MjYyZjQ4Li5iZDAyYjkxNTBmNDM4MmI2YWU2N2UzNWY0MGQ3NTAxYmE5ZGYxZGE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tl
dENoYW5uZWwubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAog
bWVzc2FnZXMgLT4gTmV0d29ya1NvY2tldENoYW5uZWwgTm90UmVmQ291bnRlZCB7Ci0gICAgU2Vu
ZFN0cmluZyhTdHJpbmcgbWVzc2FnZSkgLT4gKCkgQXN5bmMKKyAgICBTZW5kU3RyaW5nKElQQzo6
RGF0YVJlZmVyZW5jZSBtZXNzYWdlKSAtPiAoKSBBc3luYwogICAgIFNlbmREYXRhKElQQzo6RGF0
YVJlZmVyZW5jZSBkYXRhKSAtPiAoKSBBc3luYwogICAgIENsb3NlKGludDMyX3QgY29kZSwgU3Ry
aW5nIHJlYXNvbikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
V2ViU29ja2V0VGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTb2NrZXRU
YXNrLmgKaW5kZXggMDQ3OTkyMDg5NmRhMjU3ZmM1ODY0NTE2MGMwMDA5ZDE2NGNlNWZmNS4uMjVm
MjE3NTdhNzg0NzFlNzU4MWJkNWVjMmM3YjcwNDQzN2UyMDIzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTb2NrZXRUYXNrLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTb2NrZXRUYXNrLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3Mg
V2ViU29ja2V0VGFzayB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiB1aW50NjRfdCBUYXNrSWRlbnRp
ZmllcjsKIAotICAgIHZvaWQgc2VuZFN0cmluZyhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIHsgfQorICAgIHZvaWQgc2VuZFN0cmluZyhjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIHsgfQogICAgIHZvaWQgc2Vu
ZERhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSB7IH0KICAgICB2b2lkIGNsb3NlKGludDMyX3QgY29kZSwgY29uc3QgU3RyaW5nJiByZWFz
b24pIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L1dlYlNvY2tldFRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9XZWJTb2NrZXRUYXNrQ29jb2EuaAppbmRleCA2YzVmNDY4YjUzMWUyYzJiNGU0ZjI0ZDM4Zjlk
NDllMGFjNjRlZGVhLi5kYWM2OTM1MDdlYjNlZmNlYTZkMTA5NDgwMWJjMDFiMzZmZTI2MzlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRh
c2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29j
a2V0VGFza0NvY29hLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIFdlYlNvY2tldFRh
c2soTmV0d29ya1NvY2tldENoYW5uZWwmLCBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uV2ViU29ja2V0
VGFzaz4mJik7CiAgICAgfldlYlNvY2tldFRhc2soKTsKIAotICAgIHZvaWQgc2VuZFN0cmluZyhj
b25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2Vu
ZFN0cmluZyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2VuZERhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsb3NlKGludDMyX3QgY29kZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tCmluZGV4IGQ5NDM0ZDM0NDRl
NTgyNmNiYTcxNTY1OWMwNjgxODI3ZWNlOTQwNWYuLmQ3NjQ3MzViZmQ1MzFiZTAyZDM4YWYxMTNl
ZjQ3MjRkNDI2YzhlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tCkBAIC0xMTUsMTAgKzExNSwxNSBAQCB2
b2lkIFdlYlNvY2tldFRhc2s6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0
cmluZyYgcmVhc29uKQogICAgIG1fY2hhbm5lbC5kaWRDbG9zZShjb2RlLCByZWFzb24pOwogfQog
Ci12b2lkIFdlYlNvY2tldFRhc2s6OnNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiB0ZXh0ICwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJTb2NrZXRUYXNrOjpz
ZW5kU3RyaW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgdXRmOFN0cmluZywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIGF1dG8gbWVzc2FnZSA9IGFkb3B0
TlMoW1tOU1VSTFNlc3Npb25XZWJTb2NrZXRNZXNzYWdlIGFsbG9jXSBpbml0V2l0aFN0cmluZzog
dGV4dF0pOwotICAgIFttX3Rhc2sgc2VuZE1lc3NhZ2U6IG1lc3NhZ2UuZ2V0KCkgY29tcGxldGlv
bkhhbmRsZXI6IG1ha2VCbG9ja1B0cihbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oTlNF
cnJvciAqIF9OdWxsYWJsZSkgbXV0YWJsZSB7CisgICAgYXV0byB0ZXh0ID0gYWRvcHROUyhbW05T
U3RyaW5nIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnV0ZjhTdHJpbmcuZGF0YSgpIGxlbmd0aDp1dGY4
U3RyaW5nLnNpemUoKSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10pOworICAgIGlmICgh
dGV4dCkgeworICAgICAgICBjYWxsYmFjaygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGF1dG8gbWVzc2FnZSA9IGFkb3B0TlMoW1tOU1VSTFNlc3Npb25XZWJTb2NrZXRNZXNzYWdlIGFs
bG9jXSBpbml0V2l0aFN0cmluZzp0ZXh0LmdldCgpXSk7CisgICAgW21fdGFzayBzZW5kTWVzc2Fn
ZTptZXNzYWdlLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oTlNFcnJvciAqIF9OdWxsYWJsZSkgbXV0YWJsZSB7CiAgICAg
ICAgIC8vIFdvcmthcm91bmQgcmRhcjovL3Byb2JsZW0vNTUzMjQ5MjYgdW50aWwgaXQgZ2V0cyBm
aXhlZC4KICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoV1RGTW92ZShjYWxsYmFjaykpOwogICAg
IH0pLmdldCgpXTsKQEAgLTEyNyw4ICsxMzIsOCBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OnNlbmRT
dHJpbmcoY29uc3QgU3RyaW5nJiB0ZXh0ICwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmCiB2
b2lkIFdlYlNvY2tldFRhc2s6OnNlbmREYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0
YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIGF1dG8gbnNE
YXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpkYXRhLmRhdGEoKSBs
ZW5ndGg6ZGF0YS5zaXplKCldKTsKLSAgICBhdXRvIG1lc3NhZ2UgPSBhZG9wdE5TKFtbTlNVUkxT
ZXNzaW9uV2ViU29ja2V0TWVzc2FnZSBhbGxvY10gaW5pdFdpdGhEYXRhOiBuc0RhdGEuZ2V0KCld
KTsKLSAgICBbbV90YXNrIHNlbmRNZXNzYWdlOiBtZXNzYWdlLmdldCgpIGNvbXBsZXRpb25IYW5k
bGVyOiBtYWtlQmxvY2tQdHIoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKE5TRXJyb3Ig
KiBfTnVsbGFibGUpIG11dGFibGUgeworICAgIGF1dG8gbWVzc2FnZSA9IGFkb3B0TlMoW1tOU1VS
TFNlc3Npb25XZWJTb2NrZXRNZXNzYWdlIGFsbG9jXSBpbml0V2l0aERhdGE6bnNEYXRhLmdldCgp
XSk7CisgICAgW21fdGFzayBzZW5kTWVzc2FnZTptZXNzYWdlLmdldCgpIGNvbXBsZXRpb25IYW5k
bGVyOm1ha2VCbG9ja1B0cihbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oTlNFcnJvciAq
IF9OdWxsYWJsZSkgbXV0YWJsZSB7CiAgICAgICAgIC8vIFdvcmthcm91bmQgcmRhcjovL3Byb2Js
ZW0vNTUzMjQ5MjYgdW50aWwgaXQgZ2V0cyBmaXhlZC4KICAgICAgICAgY2FsbE9uTWFpblJ1bkxv
b3AoV1RGTW92ZShjYWxsYmFjaykpOwogICAgIH0pLmdldCgpXTsKQEAgLTE0MCw3ICsxNDUsNyBA
QCB2b2lkIFdlYlNvY2tldFRhc2s6OmNsb3NlKGludDMyX3QgY29kZSwgY29uc3QgU3RyaW5nJiBy
ZWFzb24pCiAgICAgaWYgKGNvZGUgPT0gV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VF
dmVudENvZGVOb3RTcGVjaWZpZWQpCiAgICAgICAgIGNvZGUgPSAxMDA1OwogICAgIGF1dG8gbnNE
YXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpyZWFzb24udXRmOCgp
LmRhdGEoKSBsZW5ndGg6cmVhc29uLnNpemVJbkJ5dGVzKCldKTsKLSAgICBbbV90YXNrIGNhbmNl
bFdpdGhDbG9zZUNvZGU6IChOU1VSTFNlc3Npb25XZWJTb2NrZXRDbG9zZUNvZGUpY29kZSByZWFz
b246IG5zRGF0YS5nZXQoKV07CisgICAgW21fdGFzayBjYW5jZWxXaXRoQ2xvc2VDb2RlOihOU1VS
TFNlc3Npb25XZWJTb2NrZXRDbG9zZUNvZGUpY29kZSByZWFzb246bnNEYXRhLmdldCgpXTsKIH0K
IAogV2ViU29ja2V0VGFzazo6VGFza0lkZW50aWZpZXIgV2ViU29ja2V0VGFzazo6aWRlbnRpZmll
cigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
V2ViU29ja2V0VGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L1dlYlNvY2tldFRhc2tTb3VwLmNwcAppbmRleCAwZmYxYzFhNDU5YmRlOWJmZjAyM2ZkNzEyNWFh
OWE2NDg5NzIwMzIyLi4wN2M1YjQwODM3ZjZlZGNlYmMxOTkxNTU4YTI1OWE1MDBiNjJlNDI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFz
a1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2Nr
ZXRUYXNrU291cC5jcHAKQEAgLTE4NSwxMyArMTg1LDEyIEBAIHZvaWQgV2ViU29ja2V0VGFzazo6
ZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAg
bV9jaGFubmVsLmRpZENsb3NlKGNvZGUsIHJlYXNvbik7CiB9CiAKLXZvaWQgV2ViU29ja2V0VGFz
azo6c2VuZFN0cmluZyhjb25zdCBTdHJpbmcmIHRleHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViU29ja2V0VGFzazo6c2VuZFN0cmluZyhjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIHV0ZjgsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFj
aykKIHsKICAgICBpZiAobV9jb25uZWN0aW9uICYmIHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25f
Z2V0X3N0YXRlKG1fY29ubmVjdGlvbi5nZXQoKSkgPT0gU09VUF9XRUJTT0NLRVRfU1RBVEVfT1BF
TikgewotICAgICAgICBDU3RyaW5nIHV0ZjggPSB0ZXh0LnV0ZjgoU3RyaWN0Q29udmVyc2lvblJl
cGxhY2luZ1VucGFpcmVkU3Vycm9nYXRlc1dpdGhGRkZEKTsKICNpZiBTT1VQX0NIRUNLX1ZFUlNJ
T04oMiwgNjcsIDMpCiAgICAgICAgIC8vIFNvdXAgaXMgZ29pbmcgdG8gY29weSB0aGUgZGF0YSBp
bW1lZGlhdGVseSwgc28gd2UgY2FuIHVzZSBnX2J5dGVzX25ld19zdGF0aWMoKSBoZXJlIHRvIGF2
b2lkIG1vcmUgZGF0YSBjb3BpZXMuCi0gICAgICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFk
b3B0R1JlZihnX2J5dGVzX25ld19zdGF0aWModXRmOC5kYXRhKCksIHV0ZjgubGVuZ3RoKCkpKTsK
KyAgICAgICAgR1JlZlB0cjxHQnl0ZXM+IGJ5dGVzID0gYWRvcHRHUmVmKGdfYnl0ZXNfbmV3X3N0
YXRpYyh1dGY4LmRhdGEoKSwgdXRmOC5zaXplKCkpKTsKICAgICAgICAgc291cF93ZWJzb2NrZXRf
Y29ubmVjdGlvbl9zZW5kX21lc3NhZ2UobV9jb25uZWN0aW9uLmdldCgpLCBTT1VQX1dFQlNPQ0tF
VF9EQVRBX1RFWFQsIGJ5dGVzLmdldCgpKTsKICNlbHNlCiAgICAgICAgIHNvdXBfd2Vic29ja2V0
X2Nvbm5lY3Rpb25fc2VuZF90ZXh0KG1fY29ubmVjdGlvbi5nZXQoKSwgdXRmOC5kYXRhKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRh
c2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFz
a1NvdXAuaAppbmRleCA0ZjA3NmJmNTgzMDk3ZTU2MzA3MjdlYjU4NWQzOTMzMTI1OTdiYTMxLi45
NjFiOTU5Mjk4OTM0ODIzNzkzYWE5NGM5YTVjMzFmMDM2ZDA3ZTI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaApAQCAt
NDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgV2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hh
bm5lbCYsIFNvdXBTZXNzaW9uKiwgU291cE1lc3NhZ2UqLCBjb25zdCBTdHJpbmcmIHByb3RvY29s
KTsKICAgICB+V2ViU29ja2V0VGFzaygpOwogCi0gICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IFN0
cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZW5kU3RyaW5n
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZW5kRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xvc2UoaW50MzJfdCBjb2RlLCBjb25zdCBT
dHJpbmcmIHJlYXNvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggYWQzNDNmZGM0YTA3MWQxMzA0ZDVhYzEy
YmQxNDIwNDVmOTQ4OGNiYy4uN2Q5ZjAyMmVkZDkyMGY0MzkxZjUxOWNjZmEyYjg5ODVlYmM5YTll
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0
Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbC5jcHAKQEAgLTU2LDEwICs1Niw5IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6
bm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGUgb3BDb2RlLCBjb25zdCBjaGFy
CiAKIE5ldHdvcmtTZW5kUXVldWUgV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlTWVzc2FnZVF1ZXVl
KERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCkKIHsKLSAgICBy
ZXR1cm4geyBkb2N1bWVudCwgWyZjaGFubmVsXShhdXRvJiBzdHJpbmcpIHsKLSAgICAgICAgYXV0
byBieXRlTGVuZ3RoID0gc3RyaW5nLnNpemVJbkJ5dGVzKCk7Ci0gICAgICAgIGNoYW5uZWwubm90
aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29kZVRleHQsIHN0cmluZy51
dGY4KCkuZGF0YSgpLCBieXRlTGVuZ3RoKTsKLSAgICAgICAgY2hhbm5lbC5zZW5kTWVzc2FnZShN
ZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OlNlbmRTdHJpbmcgeyBzdHJpbmcgfSwgYnl0
ZUxlbmd0aCk7CisgICAgcmV0dXJuIHsgZG9jdW1lbnQsIFsmY2hhbm5lbF0oYXV0byYgdXRmOFN0
cmluZykgeworICAgICAgICBjaGFubmVsLm5vdGlmeVNlbmRGcmFtZShXZWJTb2NrZXRGcmFtZTo6
T3BDb2RlOjpPcENvZGVUZXh0LCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgo
KSk7CisgICAgICAgIGNoYW5uZWwuc2VuZE1lc3NhZ2UoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRD
aGFubmVsOjpTZW5kU3RyaW5nIHsgSVBDOjpEYXRhUmVmZXJlbmNlIHsgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCB1aW50OF90Kj4odXRmOFN0cmluZy5kYXRhKCkpLCB1dGY4U3RyaW5nLmxlbmd0aCgp
IH0gfSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CiAgICAgfSwgWyZjaGFubmVsXShjb25zdCBjaGFy
KiBkYXRhLCBzaXplX3QgYnl0ZUxlbmd0aCkgewogICAgICAgICBjaGFubmVsLm5vdGlmeVNlbmRG
cmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlOjpPcENvZGVCaW5hcnksIGRhdGEsIGJ5dGVMZW5n
dGgpOwogICAgICAgICBjaGFubmVsLnNlbmRNZXNzYWdlKE1lc3NhZ2VzOjpOZXR3b3JrU29ja2V0
Q2hhbm5lbDo6U2VuZERhdGEgeyBJUEM6OkRhdGFSZWZlcmVuY2UgeyByZWludGVycHJldF9jYXN0
PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgYnl0ZUxlbmd0aCB9IH0sIGJ5dGVMZW5ndGgpOwpAQCAt
MTYyLDExICsxNjEsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBXZWJTb2NrZXRDaGFu
bmVsOjpzZW5kTWVzc2FnZShUJiYgbWVzc2FnZSwgc2l6ZV90IGJ5dGUKIAogV2ViU29ja2V0Q2hh
bm5lbDo6U2VuZFJlc3VsdCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKIHsKLSAgICBhdXRvIGJ5dGVMZW5ndGggPSBtZXNzYWdlLnNpemVJbkJ5dGVzKCk7Ci0g
ICAgaWYgKCFpbmNyZWFzZUJ1ZmZlcmVkQW1vdW50KGJ5dGVMZW5ndGgpKQorICAgIGF1dG8gdXRm
OCA9IG1lc3NhZ2UudXRmOChTdHJpY3RDb252ZXJzaW9uUmVwbGFjaW5nVW5wYWlyZWRTdXJyb2dh
dGVzV2l0aEZGRkQpOworICAgIGlmICghaW5jcmVhc2VCdWZmZXJlZEFtb3VudCh1dGY4Lmxlbmd0
aCgpKSkKICAgICAgICAgcmV0dXJuIFNlbmRGYWlsOwogCi0gICAgbV9tZXNzYWdlUXVldWUuZW5x
dWV1ZShtZXNzYWdlKTsKKyAgICBtX21lc3NhZ2VRdWV1ZS5lbnF1ZXVlKFdURk1vdmUodXRmOCkp
OwogICAgIHJldHVybiBTZW5kU3VjY2VzczsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403277</attachid>
            <date>2020-07-01 00:23:15 -0700</date>
            <delta_ts>2020-07-01 07:23:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213714-20200701092313.patch</filename>
            <type>text/plain</type>
            <size>22013</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FlNDkxMjY5YTdmZmMw
MDE2YmNlMDY2NGVlOWQ5MTc1NDk5MTRmOS4uYzkyNDdmZGM0MWRiYTk3ZDc0MjEyNDIzNTAwYWQ1
YzcyMzNiMTEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA2LTMwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIE5ldHdvcmtTZW5k
UXVldWUgdXNlIENTdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmcgZm9yIFVURi04IGRhdGEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcxNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBDU3RyaW5nIGluc3Rl
YWQgb2YgU3RyaW5nIGluIE5ldHdvcmtTZW5kUXVldWUgYXMgYWxsIGRhdGEgaXMgdG8gYmUgZW5j
b2RlZCBhcyBVVEYtOC4KKyAgICAgICAgVGhpcyBhbGxvd3MgY29udmVydGluZyBhbmQgYWxsb2Nh
dGluZyB0aGUgVVRGLTggc3RyaW5nIG9ubHkgb25jZS4KKyAgICAgICAgQ292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5u
ZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNyZWF0ZU1lc3NhZ2VR
dWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6c2VuZCk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlcjo6
c2VuZFN0cmluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDRGF0YUNoYW5uZWxI
YW5kbGVyOjpzZW5kUmF3RGF0YSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmg6CisgICAgICAgICogZmlsZWFwaS9O
ZXR3b3JrU2VuZFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTZW5kUXVldWU6
OmVucXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1NlbmRRdWV1ZTo6cHJvY2Vzc01l
c3NhZ2VzKToKKyAgICAgICAgKiBmaWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jazo6c2VuZFN0cmluZ0RhdGEpOgorICAg
ICAgICAqIHBsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oOgorCiAyMDIw
LTA2LTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
VlA5IFdlYlJUQyBjb2RlYyBydW50aW1lIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNjY3MjdmZGM5YzBlZTVm
ZTMxMzZlM2UxN2NmMjMxMDE3MmU0MmZjNi4uM2IzY2Q1YTJjMTQxMzk4MjU1NWUyMDhmODY4Nzgz
Yjg4MjAwMDg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0wNi0zMCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBOZXR3b3JrU2VuZFF1
ZXVlIHVzZSBDU3RyaW5nIGluc3RlYWQgb2YgU3RyaW5nIGZvciBVVEYtOCBkYXRhCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM3MTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBVcGRhdGUgY29kZSB0byB1c2Ug
Q1N0cmluZy9EYXRhUmVmZXJlbmNlIHRvIHRyYW5zbWl0IFdlYlNvY2tldCB0ZXh0IG1lc3NhZ2Vz
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2VuZFN0cmluZyk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9XZWJTb2NrZXRUYXNrLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldFRhc2s6OnNlbmRTdHJpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dl
YlNvY2tldFRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNv
Y2tldFRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0VGFzazo6c2VuZFN0
cmluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRUYXNrOjpzZW5kU3RyaW5nKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlNvY2tldENoYW5uZWw6OmNyZWF0ZU1lc3NhZ2VRdWV1ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlNvY2tldENoYW5uZWw6OnNlbmQpOgorCiAyMDIwLTA2LTMwICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcg
cjI2MzcyNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRGF0YUNoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENEYXRhQ2hhbm5lbC5jcHAKaW5kZXggMzhmMzlkZDQ5ZGI1ODFhNDU3MWI0ZWY5ZDgxYmRmMTdh
OThkNzNmMC4uMDAxZDRlMjY3NTJiMGY3NTYzZmM1NzhkMjY2MmRkMWYzNDNmY2Q1OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5l
bC5jcHAKQEAgLTY2LDggKzY2LDggQEAgUmVmPFJUQ0RhdGFDaGFubmVsPiBSVENEYXRhQ2hhbm5l
bDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgc3RkOjp1bmlxdWVfcHRyPFIKIAogTmV0d29y
a1NlbmRRdWV1ZSBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlTWVzc2FnZVF1ZXVlKERvY3VtZW50JiBk
b2N1bWVudCwgUlRDRGF0YUNoYW5uZWwmIGNoYW5uZWwpCiB7Ci0gICAgcmV0dXJuIHsgZG9jdW1l
bnQsIFsmY2hhbm5lbF0oY29uc3QgU3RyaW5nJiBkYXRhKSB7Ci0gICAgICAgIGlmICghY2hhbm5l
bC5tX2hhbmRsZXItPnNlbmRTdHJpbmdEYXRhKGRhdGEpKQorICAgIHJldHVybiB7IGRvY3VtZW50
LCBbJmNoYW5uZWxdKGF1dG8mIHV0ZjgpIHsKKyAgICAgICAgaWYgKCFjaGFubmVsLm1faGFuZGxl
ci0+c2VuZFN0cmluZ0RhdGEodXRmOCkpCiAgICAgICAgICAgICBjaGFubmVsLnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsICJFcnJvciBzZW5kaW5nIHN0cmluZyB0aHJvdWdoIFJUQ0RhdGFDaGFu
bmVsLiJfcyk7CiAgICAgfSwgWyZjaGFubmVsXShhdXRvKiBkYXRhLCBzaXplX3QgbGVuZ3RoKSB7
CiAgICAgICAgIGlmICghY2hhbm5lbC5tX2hhbmRsZXItPnNlbmRSYXdEYXRhKGRhdGEsIGxlbmd0
aCkpCkBAIC0xMjEsOCArMTIxLDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ0RhdGFDaGFubmVs
OjpzZW5kKGNvbnN0IFN0cmluZyYgZGF0YSkKICAgICBpZiAobV9yZWFkeVN0YXRlICE9IFJUQ0Rh
dGFDaGFubmVsU3RhdGU6Ok9wZW4pCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9OwogCi0gICAgbV9idWZmZXJlZEFtb3VudCArPSBkYXRhLnV0ZjgoKS5sZW5n
dGgoKTsKLSAgICBtX21lc3NhZ2VRdWV1ZS5lbnF1ZXVlKGRhdGEpOworICAgIC8vIEZJWE1FOiBX
ZSBtaWdodCB3YW50IHRvIHVzZSBzdHJpY3QgY29udmVyc2lvbiBsaWtlIFdlYlNvY2tldC4KKyAg
ICBhdXRvIHV0ZjggPSBkYXRhLnV0ZjgoKTsKKyAgICBtX2J1ZmZlcmVkQW1vdW50ICs9IHV0Zjgu
bGVuZ3RoKCk7CisgICAgbV9tZXNzYWdlUXVldWUuZW5xdWV1ZShXVEZNb3ZlKHV0ZjgpKTsKICAg
ICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNo
YW5uZWxIYW5kbGVyLmNwcAppbmRleCBmY2Q2OTBlMDE5NzljMjY0YWMzZDhhNjAyY2ZlODIxYTUy
MWY0ZWRkLi40Nzk2OTljM2Q1MDdlOTJlNDkwMjdjNzU2OTdjNDAxMzA1YTY3NmRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5jcHAKQEAgLTg5
LDE1ICs4OSwxNCBAQCB2b2lkIExpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlcjo6c2V0Q2xpZW50
KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCYgY2xpZW50KQogICAgIGNoZWNrU3RhdGUoKTsK
IH0KIAotYm9vbCBMaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXI6OnNlbmRTdHJpbmdEYXRhKGNv
bnN0IFN0cmluZyYgdGV4dCkKK2Jvb2wgTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyOjpzZW5k
U3RyaW5nRGF0YShjb25zdCBDU3RyaW5nJiB1dGY4VGV4dCkKIHsKLSAgICBhdXRvIHV0ZjhUZXh0
ID0gdGV4dC51dGY4KCk7CiAgICAgcmV0dXJuIG1fY2hhbm5lbC0+U2VuZCh7IHJ0Yzo6Q29weU9u
V3JpdGVCdWZmZXIodXRmOFRleHQuZGF0YSgpLCB1dGY4VGV4dC5sZW5ndGgoKSksIGZhbHNlIH0p
OwogfQogCiBib29sIExpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlcjo6c2VuZFJhd0RhdGEoY29u
c3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHsKLSAgICByZXR1cm4gbV9jaGFubmVsLT5T
ZW5kKHtydGM6OkNvcHlPbldyaXRlQnVmZmVyKGRhdGEsIGxlbmd0aCksIHRydWV9KTsKKyAgICBy
ZXR1cm4gbV9jaGFubmVsLT5TZW5kKHsgcnRjOjpDb3B5T25Xcml0ZUJ1ZmZlcihkYXRhLCBsZW5n
dGgpLCB0cnVlIH0pOwogfQogCiB2b2lkIExpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlcjo6Y2xv
c2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaApp
bmRleCA1ZDJjZDg5YTFiMWVmZjBiMDU1YWFlOTUwMDY1ZTJhOWQ1MDBiZGEyLi5hZWEyNjk0ZGU2
OGVlODViNTlhMTk5ZWVkNmE3M2RlMzY3NGNkNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgog
ICAgIC8vIFJUQ0RhdGFDaGFubmVsSGFuZGxlciBBUEkKICAgICB2b2lkIHNldENsaWVudChSVENE
YXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmKSBmaW5hbDsKICAgICB2b2lkIGNoZWNrU3RhdGUoKTsK
LSAgICBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wg
c2VuZFN0cmluZ0RhdGEoY29uc3QgQ1N0cmluZyYpIGZpbmFsOwogICAgIGJvb2wgc2VuZFJhd0Rh
dGEoY29uc3QgY2hhciosIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBjbG9zZSgpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmNwcAppbmRleCA5ODVl
NTMwMWQ0YjEyZmY3NzY1YzAzMWEzNGFlMzEyYTRkNDEwMDljLi43NWNmMTQzZTIxYzVmNjBhMzRl
ZDQ5YTUwZjNjMjYzNzA2OWFlMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L05ldHdvcmtTZW5kUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29y
a1NlbmRRdWV1ZS5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBOZXR3b3JrU2VuZFF1ZXVlOjpOZXR3
b3JrU2VuZFF1ZXVlKERvY3VtZW50JiBkb2N1bWVudCwgV3JpdGVTdHJpbmcmJiB3cml0ZVN0cmlu
ZwogCiBOZXR3b3JrU2VuZFF1ZXVlOjp+TmV0d29ya1NlbmRRdWV1ZSgpID0gZGVmYXVsdDsKIAot
dm9pZCBOZXR3b3JrU2VuZFF1ZXVlOjplbnF1ZXVlKGNvbnN0IFN0cmluZyYgZGF0YSkKK3ZvaWQg
TmV0d29ya1NlbmRRdWV1ZTo6ZW5xdWV1ZShDU3RyaW5nJiYgdXRmOCkKIHsKICAgICBpZiAobV9x
dWV1ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV93cml0ZVN0cmluZyhkYXRhKTsKKyAgICAgICAg
bV93cml0ZVN0cmluZyh1dGY4KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX3F1ZXVl
LmFwcGVuZChkYXRhKTsKKyAgICBtX3F1ZXVlLmFwcGVuZChXVEZNb3ZlKHV0ZjgpKTsKIH0KIAog
dm9pZCBOZXR3b3JrU2VuZFF1ZXVlOjplbnF1ZXVlKGNvbnN0IEpTQzo6QXJyYXlCdWZmZXImIGJp
bmFyeURhdGEsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpCkBAIC04
MCw4ICs4MCw4IEBAIHZvaWQgTmV0d29ya1NlbmRRdWV1ZTo6cHJvY2Vzc01lc3NhZ2VzKCkKIHsK
ICAgICB3aGlsZSAoIW1fcXVldWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGJvb2wgc2hvdWxkU3Rv
cFByb2Nlc3NpbmcgPSBmYWxzZTsKLSAgICAgICAgc3dpdGNoT24obV9xdWV1ZS5maXJzdCgpLCBb
dGhpc10oY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7Ci0gICAgICAgICAgICBtX3dyaXRlU3RyaW5n
KG1lc3NhZ2UpOworICAgICAgICBzd2l0Y2hPbihtX3F1ZXVlLmZpcnN0KCksIFt0aGlzXShjb25z
dCBDU3RyaW5nJiB1dGY4KSB7CisgICAgICAgICAgICBtX3dyaXRlU3RyaW5nKHV0ZjgpOwogICAg
ICAgICB9LCBbdGhpc10oUmVmPFNoYXJlZEJ1ZmZlcj4mIGRhdGEpIHsKICAgICAgICAgICAgIG1f
d3JpdGVSYXdEYXRhKGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpKTsKICAgICAgICAgfSwgW3Ro
aXMsICZzaG91bGRTdG9wUHJvY2Vzc2luZ10oVW5pcXVlUmVmPEJsb2JMb2FkZXI+JiBsb2FkZXIp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5o
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmgKaW5kZXggZTVjMjU2
ZmNlM2Y3ZWQ5MGZhZGRhMzg4NGI0NTBkMmJhYzY2ODU1NC4uMjdmZmExZjMwZjc1NWRhYzExOTRi
NjI4MmQyMjgyN2Y2MGNhZDc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9O
ZXR3b3JrU2VuZFF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2Vu
ZFF1ZXVlLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBBcnJheUJ1
ZmZlcjsKQEAgLTQ1LDE0ICs0NiwxNCBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIE5ldHdvcmtTZW5kUXVldWUgewogcHVibGljOgotICAgIHVzaW5nIFdyaXRl
U3RyaW5nID0gRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT47CisgICAgdXNpbmcgV3JpdGVT
dHJpbmcgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IENTdHJpbmcmIHV0ZjgpPjsKICAgICB1c2luZyBX
cml0ZVJhd0RhdGEgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IGNoYXIqLCBzaXplX3QpPjsKICAgICBl
bnVtIGNsYXNzIENvbnRpbnVlIHsgTm8sIFllcyB9OwogICAgIHVzaW5nIFByb2Nlc3NFcnJvciA9
IEZ1bmN0aW9uPENvbnRpbnVlKEV4Y2VwdGlvbkNvZGUpPjsKICAgICBOZXR3b3JrU2VuZFF1ZXVl
KERvY3VtZW50JiwgV3JpdGVTdHJpbmcmJiwgV3JpdGVSYXdEYXRhJiYsIFByb2Nlc3NFcnJvciYm
KTsKICAgICB+TmV0d29ya1NlbmRRdWV1ZSgpOwogCi0gICAgdm9pZCBlbnF1ZXVlKGNvbnN0IFN0
cmluZyYpOworICAgIHZvaWQgZW5xdWV1ZShDU3RyaW5nJiYgdXRmOCk7CiAgICAgdm9pZCBlbnF1
ZXVlKGNvbnN0IEpTQzo6QXJyYXlCdWZmZXImLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25l
ZCBieXRlTGVuZ3RoKTsKICAgICB2b2lkIGVucXVldWUoQmxvYiYpOwogCkBAIC02MSw3ICs2Miw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzTWVzc2FnZXMoKTsKIAotICAg
IHVzaW5nIE1lc3NhZ2UgPSBWYXJpYW50PFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4sIFVuaXF1
ZVJlZjxCbG9iTG9hZGVyPj47CisgICAgdXNpbmcgTWVzc2FnZSA9IFZhcmlhbnQ8Q1N0cmluZywg
UmVmPFNoYXJlZEJ1ZmZlcj4sIFVuaXF1ZVJlZjxCbG9iTG9hZGVyPj47CiAgICAgRGVxdWU8TWVz
c2FnZT4gbV9xdWV1ZTsKIAogICAgIFdURjo6V2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFD
aGFubmVsSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWxIYW5kbGVyLmgKaW5kZXggNzc4Yzc0NTk2YjczMWRiNDcxOGZlNTk0MjEyNDAz
ZDJlNWU2ZDBmNC4uY2E2Y2Y3MmYwYjA1MDNlNjJmMzAwMzhmODE3OGI1Y2NmOWJkNDczZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWxIYW5kbGVyLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIHNldENsaWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmKSA9IDA7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJikgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBDU3RyaW5nJikgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBzZW5kUmF3RGF0YShjb25zdCBjaGFyKiwgc2l6ZV90KSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNsb3NlKCkgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwCmluZGV4IGY2Zjgx
MTEyNzczYzJjYWEzMjMxZWU0NDI4NzI4NzNiMWViZWIyMGYuLmU4MDZhNjE1OTI5N2M5M2I4OTZj
MmY4ZGZmMWQ5NzU1MGNkOGJjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNwcApAQCAtNDgsOSArNDgs
OSBAQCB2b2lkIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6OnNldENsaWVudChSVENEYXRhQ2hh
bm5lbEhhbmRsZXJDbGllbnQmIGNsaWVudCkKICAgICBtX3RpbWVyRXZlbnRzLmFwcGVuZChhZG9w
dFJlZihuZXcgVGltZXJFdmVudCh0aGlzLCBXVEZNb3ZlKG5vdGlmaWVyKSkpKTsKIH0KIAotYm9v
bCBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrOjpzZW5kU3RyaW5nRGF0YShjb25zdCBTdHJpbmcm
IHN0cmluZykKK2Jvb2wgUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jazo6c2VuZFN0cmluZ0RhdGEo
Y29uc3QgQ1N0cmluZyYgc3RyaW5nKQogewotICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlU3RyaW5n
RGF0YShzdHJpbmcpOworICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlU3RyaW5nRGF0YShTdHJpbmc6
OmZyb21VVEY4KHN0cmluZykpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5o
CmluZGV4IDJiMTZiMmEyZTg2MzI0MGEyMWVjNmJhYTM2Zjk4ODYyYjgxYzlhN2QuLmYzY2ZhNjgw
NDg2Zjc0OGE1ZjRjODQ5ODhiOGRmODJkZjdmMTAyY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCkBAIC00
MCw3ICs0MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDbGllbnQoUlRDRGF0
YUNoYW5uZWxIYW5kbGVyQ2xpZW50JikgZmluYWw7CiAKLSAgICBib29sIHNlbmRTdHJpbmdEYXRh
KGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29uc3QgQ1N0
cmluZyYpIGZpbmFsOwogICAgIGJvb2wgc2VuZFJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkg
ZmluYWw7CiAgICAgdm9pZCBjbG9zZSgpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCmluZGV4IDNkYmRjYTQ0
YmNlYjJhZmJkMTkzZDVmMzMwNjc1NDhjMDMyNzIzNjQuLjI2NTY3MGIzMTA1YTI2NmNmNDcyMzVl
M2NjOTg0ZWE3NjVhZGY1MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCkBAIC03MSw3ICs3MSw3IEBAIE5ldHdvcmtT
b2NrZXRDaGFubmVsOjp+TmV0d29ya1NvY2tldENoYW5uZWwoKQogICAgICAgICBtX3NvY2tldC0+
Y2FuY2VsKCk7CiB9CiAKLXZvaWQgTmV0d29ya1NvY2tldENoYW5uZWw6OnNlbmRTdHJpbmcoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2sp
Cit2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpzZW5kU3RyaW5nKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQog
ewogICAgIG1fc29ja2V0LT5zZW5kU3RyaW5nKG1lc3NhZ2UsIFdURk1vdmUoY2FsbGJhY2spKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tl
dENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENo
YW5uZWwuaAppbmRleCBmY2RiOWQ0MzU1M2Y1ODU2Njc2MDU5ODcxNWQ4NWYwYmZiNWNiNmUwLi41
MTQ3ZTNkYzdiZTQ1ZjgwMzEyMjYyNWQzYjhmMDkyZTBiNDljNWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCkBAIC03MCw3
ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTZW5kSGFuZHNoYWtlUmVxdWVzdChXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlSGFuZHNoYWtlUmVz
cG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKTsKIAotICAgIHZvaWQgc2VuZFN0cmlu
Zyhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQg
c2VuZFN0cmluZyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2VuZERhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsb3NlKGludDMyX3QgY29k
ZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgppbmRl
eCBjOGJlMmI0MGZjMTc3NmRjYTU2Y2M4ZDRiYTllNmUxMjZiMjYyZjQ4Li5iZDAyYjkxNTBmNDM4
MmI2YWU2N2UzNWY0MGQ3NTAxYmE5ZGYxZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwubWVzc2FnZXMuaW4K
QEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gTmV0d29ya1Nv
Y2tldENoYW5uZWwgTm90UmVmQ291bnRlZCB7Ci0gICAgU2VuZFN0cmluZyhTdHJpbmcgbWVzc2Fn
ZSkgLT4gKCkgQXN5bmMKKyAgICBTZW5kU3RyaW5nKElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdl
KSAtPiAoKSBBc3luYwogICAgIFNlbmREYXRhKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKSAtPiAo
KSBBc3luYwogICAgIENsb3NlKGludDMyX3QgY29kZSwgU3RyaW5nIHJlYXNvbikKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU29ja2V0VGFzay5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTb2NrZXRUYXNrLmgKaW5kZXggMDQ3OTkyMDg5
NmRhMjU3ZmM1ODY0NTE2MGMwMDA5ZDE2NGNlNWZmNS4uMjVmMjE3NTdhNzg0NzFlNzU4MWJkNWVj
MmM3YjcwNDQzN2UyMDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9XZWJTb2NrZXRUYXNrLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJT
b2NrZXRUYXNrLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgV2ViU29ja2V0VGFzayB7CiBwdWJs
aWM6CiAgICAgdHlwZWRlZiB1aW50NjRfdCBUYXNrSWRlbnRpZmllcjsKIAotICAgIHZvaWQgc2Vu
ZFN0cmluZyhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIHsgfQor
ICAgIHZvaWQgc2VuZFN0cmluZyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpIHsgfQogICAgIHZvaWQgc2VuZERhdGEoY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSB7IH0KICAgICB2b2lkIGNs
b3NlKGludDMyX3QgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pIHsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2Eu
aAppbmRleCA2YzVmNDY4YjUzMWUyYzJiNGU0ZjI0ZDM4ZjlkNDllMGFjNjRlZGVhLi5kYWM2OTM1
MDdlYjNlZmNlYTZkMTA5NDgwMWJjMDFiMzZmZTI2MzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLmgKQEAgLTQ3
LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIFdlYlNvY2tldFRhc2soTmV0d29ya1NvY2tldENoYW5u
ZWwmLCBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uV2ViU29ja2V0VGFzaz4mJik7CiAgICAgfldlYlNv
Y2tldFRhc2soKTsKIAotICAgIHZvaWQgc2VuZFN0cmluZyhjb25zdCBTdHJpbmcmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2VuZFN0cmluZyhjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2Vu
ZERhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIGNsb3NlKGludDMyX3QgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNv
Y2tldFRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2Vi
U29ja2V0VGFza0NvY29hLm1tCmluZGV4IGQ5NDM0ZDM0NDRlNTgyNmNiYTcxNTY1OWMwNjgxODI3
ZWNlOTQwNWYuLmQ3NjQ3MzViZmQ1MzFiZTAyZDM4YWYxMTNlZjQ3MjRkNDI2YzhlZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0Nv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0
VGFza0NvY29hLm1tCkBAIC0xMTUsMTAgKzExNSwxNSBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRp
ZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKQogICAgIG1f
Y2hhbm5lbC5kaWRDbG9zZShjb2RlLCByZWFzb24pOwogfQogCi12b2lkIFdlYlNvY2tldFRhc2s6
OnNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiB0ZXh0ICwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNhbGxiYWNrKQordm9pZCBXZWJTb2NrZXRUYXNrOjpzZW5kU3RyaW5nKGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgdXRmOFN0cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNh
bGxiYWNrKQogewotICAgIGF1dG8gbWVzc2FnZSA9IGFkb3B0TlMoW1tOU1VSTFNlc3Npb25XZWJT
b2NrZXRNZXNzYWdlIGFsbG9jXSBpbml0V2l0aFN0cmluZzogdGV4dF0pOwotICAgIFttX3Rhc2sg
c2VuZE1lc3NhZ2U6IG1lc3NhZ2UuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6IG1ha2VCbG9ja1B0
cihbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oTlNFcnJvciAqIF9OdWxsYWJsZSkgbXV0
YWJsZSB7CisgICAgYXV0byB0ZXh0ID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0
aEJ5dGVzOnV0ZjhTdHJpbmcuZGF0YSgpIGxlbmd0aDp1dGY4U3RyaW5nLnNpemUoKSBlbmNvZGlu
ZzpOU1VURjhTdHJpbmdFbmNvZGluZ10pOworICAgIGlmICghdGV4dCkgeworICAgICAgICBjYWxs
YmFjaygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGF1dG8gbWVzc2FnZSA9IGFkb3B0
TlMoW1tOU1VSTFNlc3Npb25XZWJTb2NrZXRNZXNzYWdlIGFsbG9jXSBpbml0V2l0aFN0cmluZzp0
ZXh0LmdldCgpXSk7CisgICAgW21fdGFzayBzZW5kTWVzc2FnZTptZXNzYWdlLmdldCgpIGNvbXBs
ZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0o
TlNFcnJvciAqIF9OdWxsYWJsZSkgbXV0YWJsZSB7CiAgICAgICAgIC8vIFdvcmthcm91bmQgcmRh
cjovL3Byb2JsZW0vNTUzMjQ5MjYgdW50aWwgaXQgZ2V0cyBmaXhlZC4KICAgICAgICAgY2FsbE9u
TWFpblJ1bkxvb3AoV1RGTW92ZShjYWxsYmFjaykpOwogICAgIH0pLmdldCgpXTsKQEAgLTEyNyw4
ICsxMzIsOCBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OnNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiB0
ZXh0ICwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmCiB2b2lkIFdlYlNvY2tldFRhc2s6OnNl
bmREYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIGF1dG8gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0
YSBhbGxvY10gaW5pdFdpdGhCeXRlczpkYXRhLmRhdGEoKSBsZW5ndGg6ZGF0YS5zaXplKCldKTsK
LSAgICBhdXRvIG1lc3NhZ2UgPSBhZG9wdE5TKFtbTlNVUkxTZXNzaW9uV2ViU29ja2V0TWVzc2Fn
ZSBhbGxvY10gaW5pdFdpdGhEYXRhOiBuc0RhdGEuZ2V0KCldKTsKLSAgICBbbV90YXNrIHNlbmRN
ZXNzYWdlOiBtZXNzYWdlLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOiBtYWtlQmxvY2tQdHIoW2Nh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKE5TRXJyb3IgKiBfTnVsbGFibGUpIG11dGFibGUg
eworICAgIGF1dG8gbWVzc2FnZSA9IGFkb3B0TlMoW1tOU1VSTFNlc3Npb25XZWJTb2NrZXRNZXNz
YWdlIGFsbG9jXSBpbml0V2l0aERhdGE6bnNEYXRhLmdldCgpXSk7CisgICAgW21fdGFzayBzZW5k
TWVzc2FnZTptZXNzYWdlLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oTlNFcnJvciAqIF9OdWxsYWJsZSkgbXV0YWJsZSB7
CiAgICAgICAgIC8vIFdvcmthcm91bmQgcmRhcjovL3Byb2JsZW0vNTUzMjQ5MjYgdW50aWwgaXQg
Z2V0cyBmaXhlZC4KICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoV1RGTW92ZShjYWxsYmFjaykp
OwogICAgIH0pLmdldCgpXTsKQEAgLTE0MCw3ICsxNDUsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6
OmNsb3NlKGludDMyX3QgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgaWYgKGNvZGUg
PT0gV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVOb3RTcGVjaWZpZWQp
CiAgICAgICAgIGNvZGUgPSAxMDA1OwogICAgIGF1dG8gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0
YSBhbGxvY10gaW5pdFdpdGhCeXRlczpyZWFzb24udXRmOCgpLmRhdGEoKSBsZW5ndGg6cmVhc29u
LnNpemVJbkJ5dGVzKCldKTsKLSAgICBbbV90YXNrIGNhbmNlbFdpdGhDbG9zZUNvZGU6IChOU1VS
TFNlc3Npb25XZWJTb2NrZXRDbG9zZUNvZGUpY29kZSByZWFzb246IG5zRGF0YS5nZXQoKV07Cisg
ICAgW21fdGFzayBjYW5jZWxXaXRoQ2xvc2VDb2RlOihOU1VSTFNlc3Npb25XZWJTb2NrZXRDbG9z
ZUNvZGUpY29kZSByZWFzb246bnNEYXRhLmdldCgpXTsKIH0KIAogV2ViU29ja2V0VGFzazo6VGFz
a0lkZW50aWZpZXIgV2ViU29ja2V0VGFzazo6aWRlbnRpZmllcigpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNw
cAppbmRleCAwZmYxYzFhNDU5YmRlOWJmZjAyM2ZkNzEyNWFhOWE2NDg5NzIwMzIyLi4wN2M1YjQw
ODM3ZjZlZGNlYmMxOTkxNTU4YTI1OWE1MDBiNjJlNDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKQEAgLTE4
NSwxMyArMTg1LDEyIEBAIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkQ2xvc2UodW5zaWduZWQgc2hv
cnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgbV9jaGFubmVsLmRpZENsb3NlKGNv
ZGUsIHJlYXNvbik7CiB9CiAKLXZvaWQgV2ViU29ja2V0VGFzazo6c2VuZFN0cmluZyhjb25zdCBT
dHJpbmcmIHRleHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3ZvaWQg
V2ViU29ja2V0VGFzazo6c2VuZFN0cmluZyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHV0Zjgs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9jb25u
ZWN0aW9uICYmIHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0X3N0YXRlKG1fY29ubmVjdGlv
bi5nZXQoKSkgPT0gU09VUF9XRUJTT0NLRVRfU1RBVEVfT1BFTikgewotICAgICAgICBDU3RyaW5n
IHV0ZjggPSB0ZXh0LnV0ZjgoU3RyaWN0Q29udmVyc2lvblJlcGxhY2luZ1VucGFpcmVkU3Vycm9n
YXRlc1dpdGhGRkZEKTsKICNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjcsIDMpCiAgICAgICAg
IC8vIFNvdXAgaXMgZ29pbmcgdG8gY29weSB0aGUgZGF0YSBpbW1lZGlhdGVseSwgc28gd2UgY2Fu
IHVzZSBnX2J5dGVzX25ld19zdGF0aWMoKSBoZXJlIHRvIGF2b2lkIG1vcmUgZGF0YSBjb3BpZXMu
Ci0gICAgICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihnX2J5dGVzX25ld19z
dGF0aWModXRmOC5kYXRhKCksIHV0ZjgubGVuZ3RoKCkpKTsKKyAgICAgICAgR1JlZlB0cjxHQnl0
ZXM+IGJ5dGVzID0gYWRvcHRHUmVmKGdfYnl0ZXNfbmV3X3N0YXRpYyh1dGY4LmRhdGEoKSwgdXRm
OC5zaXplKCkpKTsKICAgICAgICAgc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9zZW5kX21lc3Nh
Z2UobV9jb25uZWN0aW9uLmdldCgpLCBTT1VQX1dFQlNPQ0tFVF9EQVRBX1RFWFQsIGJ5dGVzLmdl
dCgpKTsKICNlbHNlCiAgICAgICAgIHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fc2VuZF90ZXh0
KG1fY29ubmVjdGlvbi5nZXQoKSwgdXRmOC5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaAppbmRleCA0ZjA3NmJm
NTgzMDk3ZTU2MzA3MjdlYjU4NWQzOTMzMTI1OTdiYTMxLi45NjFiOTU5Mjk4OTM0ODIzNzkzYWE5
NGM5YTVjMzFmMDM2ZDA3ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6
CiAgICAgV2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYsIFNvdXBTZXNzaW9uKiwg
U291cE1lc3NhZ2UqLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsKICAgICB+V2ViU29ja2V0VGFz
aygpOwogCi0gICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZW5kRGF0YShj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgY2xvc2UoaW50MzJfdCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5u
ZWwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5l
bC5jcHAKaW5kZXggYWQzNDNmZGM0YTA3MWQxMzA0ZDVhYzEyYmQxNDIwNDVmOTQ4OGNiYy4uN2Q5
ZjAyMmVkZDkyMGY0MzkxZjUxOWNjZmEyYjg5ODVlYmM5YTllYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTU2
LDEwICs1Niw5IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6bm90aWZ5U2VuZEZyYW1lKFdlYlNv
Y2tldEZyYW1lOjpPcENvZGUgb3BDb2RlLCBjb25zdCBjaGFyCiAKIE5ldHdvcmtTZW5kUXVldWUg
V2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlTWVzc2FnZVF1ZXVlKERvY3VtZW50JiBkb2N1bWVudCwg
V2ViU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCkKIHsKLSAgICByZXR1cm4geyBkb2N1bWVudCwgWyZj
aGFubmVsXShhdXRvJiBzdHJpbmcpIHsKLSAgICAgICAgYXV0byBieXRlTGVuZ3RoID0gc3RyaW5n
LnNpemVJbkJ5dGVzKCk7Ci0gICAgICAgIGNoYW5uZWwubm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tl
dEZyYW1lOjpPcENvZGU6Ok9wQ29kZVRleHQsIHN0cmluZy51dGY4KCkuZGF0YSgpLCBieXRlTGVu
Z3RoKTsKLSAgICAgICAgY2hhbm5lbC5zZW5kTWVzc2FnZShNZXNzYWdlczo6TmV0d29ya1NvY2tl
dENoYW5uZWw6OlNlbmRTdHJpbmcgeyBzdHJpbmcgfSwgYnl0ZUxlbmd0aCk7CisgICAgcmV0dXJu
IHsgZG9jdW1lbnQsIFsmY2hhbm5lbF0oYXV0byYgdXRmOFN0cmluZykgeworICAgICAgICBjaGFu
bmVsLm5vdGlmeVNlbmRGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlOjpPcENvZGVUZXh0LCB1
dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIGNoYW5uZWwu
c2VuZE1lc3NhZ2UoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpTZW5kU3RyaW5nIHsg
SVBDOjpEYXRhUmVmZXJlbmNlIHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odXRm
OFN0cmluZy5kYXRhKCkpLCB1dGY4U3RyaW5nLmxlbmd0aCgpIH0gfSwgdXRmOFN0cmluZy5sZW5n
dGgoKSk7CiAgICAgfSwgWyZjaGFubmVsXShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgYnl0ZUxl
bmd0aCkgewogICAgICAgICBjaGFubmVsLm5vdGlmeVNlbmRGcmFtZShXZWJTb2NrZXRGcmFtZTo6
T3BDb2RlOjpPcENvZGVCaW5hcnksIGRhdGEsIGJ5dGVMZW5ndGgpOwogICAgICAgICBjaGFubmVs
LnNlbmRNZXNzYWdlKE1lc3NhZ2VzOjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6U2VuZERhdGEgeyBJ
UEM6OkRhdGFSZWZlcmVuY2UgeyByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRh
KSwgYnl0ZUxlbmd0aCB9IH0sIGJ5dGVMZW5ndGgpOwpAQCAtMTYyLDExICsxNjEsMTEgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kTWVzc2FnZShUJiYg
bWVzc2FnZSwgc2l6ZV90IGJ5dGUKIAogV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXZWJT
b2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBhdXRvIGJ5
dGVMZW5ndGggPSBtZXNzYWdlLnNpemVJbkJ5dGVzKCk7Ci0gICAgaWYgKCFpbmNyZWFzZUJ1ZmZl
cmVkQW1vdW50KGJ5dGVMZW5ndGgpKQorICAgIGF1dG8gdXRmOCA9IG1lc3NhZ2UudXRmOChTdHJp
Y3RDb252ZXJzaW9uUmVwbGFjaW5nVW5wYWlyZWRTdXJyb2dhdGVzV2l0aEZGRkQpOworICAgIGlm
ICghaW5jcmVhc2VCdWZmZXJlZEFtb3VudCh1dGY4Lmxlbmd0aCgpKSkKICAgICAgICAgcmV0dXJu
IFNlbmRGYWlsOwogCi0gICAgbV9tZXNzYWdlUXVldWUuZW5xdWV1ZShtZXNzYWdlKTsKKyAgICBt
X21lc3NhZ2VRdWV1ZS5lbnF1ZXVlKFdURk1vdmUodXRmOCkpOwogICAgIHJldHVybiBTZW5kU3Vj
Y2VzczsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>