<?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>164680</bug_id>
          
          <creation_ts>2016-11-12 09:23:45 -0800</creation_ts>
          <short_desc>Refresh RTCDataChannel abstract infrastructure</short_desc>
          <delta_ts>2016-11-14 10:55:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></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>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1250665</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-12 09:23:45 -0800</bug_when>
    <thetext>To prepare for RTCDataChannel implementation, let&apos;s refresh what is there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250666</commentid>
    <comment_count>1</comment_count>
      <attachid>294614</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-12 09:28:24 -0800</bug_when>
    <thetext>Created attachment 294614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250672</commentid>
    <comment_count>2</comment_count>
      <attachid>294618</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-12 09:53:29 -0800</bug_when>
    <thetext>Created attachment 294618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250673</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-12 09:56:07 -0800</bug_when>
    <thetext>Attachment 294618 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/MediaEndpoint.cpp:47:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250674</commentid>
    <comment_count>4</comment_count>
      <attachid>294619</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-12 09:57:42 -0800</bug_when>
    <thetext>Created attachment 294619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250677</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-12 09:58:56 -0800</bug_when>
    <thetext>Attachment 294619 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/MediaEndpoint.cpp:47:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250776</commentid>
    <comment_count>6</comment_count>
      <attachid>294619</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-12 21:16:44 -0800</bug_when>
    <thetext>Comment on attachment 294619
Patch

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

&gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h:80
&gt; +    std::unique_ptr&lt;RTCDataChannelHandler&gt; createDataChannelHandler(const String&amp;, const RTCDataChannelInit&amp;) final;

Can this be private? Does it ever get called non-polymorphically on this class rather than the base class?

&gt; Source/WebCore/Modules/mediastream/RTCDataChannel.h:50
&gt; +    static Ref&lt;RTCDataChannel&gt; create(ScriptExecutionContext*, std::unique_ptr&lt;RTCDataChannelHandler&gt;&amp;&amp;, String&amp;&amp;, RTCDataChannelInit&amp;&amp;);

Can this take a ScriptExecutionContext&amp; instead?

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.idl:51
&gt; +dictionary RTCDataChannelInit {
&gt; +    boolean        ordered = true;
&gt; +    unsigned short maxRetransmitTime;
&gt; +    unsigned short maxRetransmits;
&gt; +    USVString      protocol = &quot;&quot;;
&gt; +    boolean        negotiated = false;
&gt; +    unsigned short id;
&gt; +};

WebKit coding style calls for *not* lining up in columns like this

&gt; Source/WebCore/platform/mediastream/MediaEndpoint.cpp:57
&gt;      EmptyMediaEndpoint(MediaEndpointClient&amp;) { }

I don’t understand why this constructor needs this ignored argument. I couldn’t fid the code that calls this; is it somehow shared or a template that works with more than one class?

Also, if we are keeping it like this, it should be marked explicit since it has exactly one argument but should not be used for type conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251014</commentid>
    <comment_count>7</comment_count>
      <attachid>294711</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-14 10:19:04 -0800</bug_when>
    <thetext>Created attachment 294711
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251015</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-14 10:22:28 -0800</bug_when>
    <thetext>Thanks for the review.

(In reply to comment #6)
&gt; Comment on attachment 294619 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=294619&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h:80
&gt; &gt; +    std::unique_ptr&lt;RTCDataChannelHandler&gt; createDataChannelHandler(const String&amp;, const RTCDataChannelInit&amp;) final;
&gt; 
&gt; Can this be private? Does it ever get called non-polymorphically on this
&gt; class rather than the base class?

Right

&gt; &gt; Source/WebCore/Modules/mediastream/RTCDataChannel.h:50
&gt; &gt; +    static Ref&lt;RTCDataChannel&gt; create(ScriptExecutionContext*, std::unique_ptr&lt;RTCDataChannelHandler&gt;&amp;&amp;, String&amp;&amp;, RTCDataChannelInit&amp;&amp;);
&gt; 
&gt; Can this take a ScriptExecutionContext&amp; instead?

Changed the IDL to pass a ScriptExecutionContext&amp; directly.

&gt; &gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.idl:51
&gt; &gt; +dictionary RTCDataChannelInit {
&gt; &gt; +    boolean        ordered = true;
&gt; &gt; +    unsigned short maxRetransmitTime;
&gt; &gt; +    unsigned short maxRetransmits;
&gt; &gt; +    USVString      protocol = &quot;&quot;;
&gt; &gt; +    boolean        negotiated = false;
&gt; &gt; +    unsigned short id;
&gt; &gt; +};
&gt; 
&gt; WebKit coding style calls for *not* lining up in columns like this

OK

&gt; &gt; Source/WebCore/platform/mediastream/MediaEndpoint.cpp:57
&gt; &gt;      EmptyMediaEndpoint(MediaEndpointClient&amp;) { }
&gt; 
&gt; I don’t understand why this constructor needs this ignored argument. I
&gt; couldn’t fid the code that calls this; is it somehow shared or a template
&gt; that works with more than one class?
&gt; 
&gt; Also, if we are keeping it like this, it should be marked explicit since it
&gt; has exactly one argument but should not be used for type conversion.

It&apos;s used by a function pointer who has this parameter.
But the function could just not pass it to the constructor.
Updated patch accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251034</commentid>
    <comment_count>9</comment_count>
      <attachid>294711</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-14 10:55:19 -0800</bug_when>
    <thetext>Comment on attachment 294711
Patch for landing

Clearing flags on attachment: 294711

Committed r208694: &lt;http://trac.webkit.org/changeset/208694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251035</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-14 10:55:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294614</attachid>
            <date>2016-11-12 09:28:24 -0800</date>
            <delta_ts>2016-11-12 09:53:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164680-20161112092408.patch</filename>
            <type>text/plain</type>
            <size>37838</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBiODEyNDIxNTA1Njhm
NWIxZGU1YTZmNTZjOTQ1YTVjMzM3NDUxZi4uZmU0MDgxZTIxYTBiZTJjYmY5YmFmOTAzNTExZjdh
NjYzYmE1MDc0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE2LTExLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZyZXNoIFJUQ0RhdGFD
aGFubmVsIGFic3RyYWN0IGluZnJhc3RydWN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyByZWFsIGNoYW5nZXMsIGV4Y2VwdCB0aGF0IGEgbW9j
ayBkYXRhIGNoYW5uZWwgaXMgbm93IHJldHVybmVkIGZvciBsYXlvdXQgdGVzdC4KKyAgICAgICAg
Q292ZXJlZCBieSBhY3RpdmF0ZWQgYW5kIHJlYmFzZWQgdGVzdC4KKworICAgICAgICBBZGRpbmcg
c3VwcG9ydCBmb3IgbW9jayBkYXRhIGNoYW5uZWwuCisgICAgICAgIFVwZGF0aW5nIGRhdGEgY2hh
bm5lbCBjcmVhdGlvbiBieSB1c2luZyBkaWN0aW9uYXJ5IGJpbmRpbmcgaW5mcmFzdHJ1Y3R1cmUu
CisgICAgICAgIFN0b3Jpbmcgb2Ygb3B0aW9ucyBkaXJlY3RseSBpbiBSVENEYXRhQ2hhbm5lbCB0
byByZWR1Y2UgdGhlIHVzZSBvZiB0aGUgZGF0YSBjaGFubmVsIGhhbmRsZXIuCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZURhdGFD
aGFubmVsSGFuZGxlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6UlRDRGF0YUNoYW5uZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjp+UlRDRGF0YUNoYW5uZWwpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmxhYmVsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjpvcmRlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsOjptYXhSZXRyYW5zbWl0VGltZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6bWF4UmV0cmFuc21pdHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OnByb3RvY29sKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjpuZWdvdGlhdGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjppZCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
VENEYXRhQ2hhbm5lbEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxFdmVudDo6UlRDRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbEV2ZW50Ojp+UlRDRGF0YUNoYW5uZWxFdmVudCk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlRGF0YUNoYW5uZWwpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5TWVk
aWFFbmRwb2ludDo6RW1wdHlNZWRpYUVuZHBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpSVENEYXRhQ2hhbm5lbEluaXQ6OlJUQ0RhdGFDaGFubmVsSW5pdCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRW5kcG9pbnRPd3I6OmNyZWF0ZURhdGFDaGFu
bmVsSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9N
ZWRpYUVuZHBvaW50T3dyLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRw
b2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6Y3JlYXRlRGF0
YUNoYW5uZWxIYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBv
aW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2Nr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6OlJUQ0Rh
dGFDaGFubmVsSGFuZGxlck1vY2spOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svUlRDRGF0YUNo
YW5uZWxIYW5kbGVyTW9jay5oOgorCiAyMDE2LTExLTExICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8
YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXZWJSVENdW09wZW5XZWJSVENdIEltcGxlbWVu
dCBkZXZpY2UgcGVybWlzc2lvbnMgaGFuZGxpbmcgc29sdXRpb24gZm9yIG93ciBiYWNrZW5kIGlu
IHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXgg
MDMxYTFmNDVkMjA2MjgwNGNhNzExMTQ2MTRlMTU2ODFhNjE0MjFiZS4uNDU3YWE3NjAwNjVlOWM0
N2VhZDU1MWMzZjk5ZmM1MGEwN2E4MzE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0
aW9uLmNwcApAQCAtNzA1LDYgKzcwNSwxMSBAQCBSZWZQdHI8UlRDUnRwUmVjZWl2ZXI+IE1lZGlh
RW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlUmVjZWl2ZXIoY29uc3QgU3RyaW5nJgogICAg
IHJldHVybiBSVENSdHBSZWNlaXZlcjo6Y3JlYXRlKFdURk1vdmUocmVtb3RlVHJhY2spKTsKIH0K
IAorc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gTWVkaWFFbmRwb2ludFBl
ZXJDb25uZWN0aW9uOjpjcmVhdGVEYXRhQ2hhbm5lbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBsYWJl
bCwgY29uc3QgUlRDRGF0YUNoYW5uZWxJbml0JiBvcHRpb25zKQoreworICAgIHJldHVybiBtX21l
ZGlhRW5kcG9pbnQtPmNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihsYWJlbCwgb3B0aW9ucyk7Cit9
CisKIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRw
U2VuZGVyJiBzZW5kZXIsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmIHdpdGhUcmFjaywgUGVl
ckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJiYgcHJvbWlzZSkKIHsKICAgICBSVENSdHBUcmFuc2Nl
aXZlciogdHJhbnNjZWl2ZXIgPSBtYXRjaFRyYW5zY2VpdmVyKG1fcGVlckNvbm5lY3Rpb24uZ2V0
VHJhbnNjZWl2ZXJzKCksIFsmc2VuZGVyXSAoUlRDUnRwVHJhbnNjZWl2ZXImIGN1cnJlbnQpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCmluZGV4IDhlZmVhYzRlZDFiN2YzYTVlYjlj
ZDRkZTQ0NTM0NjI5NmVkOTdjZDQuLjI3ZDg5ZDZmODA3NTZlZTk1Y2I2NzNiOGM2MTc0NjU3Y2Jl
YjQ0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaApAQCAtNzcsNiArNzcsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYg
YWN0aW9uKSBvdmVycmlkZTsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhh
bmRsZXI+IGNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENE
YXRhQ2hhbm5lbEluaXQmKSBmaW5hbDsKKwogcHJpdmF0ZToKICAgICB2b2lkIHJ1blRhc2soRnVu
Y3Rpb248dm9pZCAoKT4mJik7CiAgICAgdm9pZCBzdGFydFJ1bm5pbmdUYXNrcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmgKaW5kZXggOTk2MmRkNzAxODk4YzkyYWQ2ZTA1MzdiMjBlYjAyMGM3YTUyNjg4
My4uNmQxMWQ5YjQwYzg4NWEyNzlmODRjYjdlNDA4ZGEwZjNkNmRhZmFiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9u
QmFja2VuZC5oCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIK
ICNpbmNsdWRlICJQZWVyQ29ubmVjdGlvblN0YXRlcy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFu
bmVsLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNiArNDQsNyBAQCBjbGFzcyBN
ZWRpYVN0cmVhbTsKIGNsYXNzIE1lZGlhU3RyZWFtVHJhY2s7CiBjbGFzcyBQZWVyQ29ubmVjdGlv
bkJhY2tlbmQ7CiBjbGFzcyBSVENDb25maWd1cmF0aW9uOworY2xhc3MgUlRDRGF0YUNoYW5uZWxI
YW5kbGVyOwogY2xhc3MgUlRDSWNlQ2FuZGlkYXRlOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247
CiBjbGFzcyBSVENSdHBSZWNlaXZlcjsKQEAgLTc3LDYgKzc5LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiwgUGVlckNvbm5l
Y3Rpb246OlZvaWRQcm9taXNlJiYpOwogICAgIHZvaWQgYWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNh
bmRpZGF0ZSYsIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYmKTsKIAorICAgIHZpcnR1YWwg
c3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWxI
YW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYpID0gMDsKKwog
ICAgIHZvaWQgc3RvcCgpOwogCiAgICAgdmlydHVhbCBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uPiBsb2NhbERlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAppbmRleCBiNzIwYzJj
NmVmZDU0ZGM1ZDA0Njg5NzE4NDYyZTNjMzM4OTNkMjk2Li5kMTQxZjJlYzA5YjRiNjI2OTVmNTVj
MTcxOGIxODc5ZTc0NTg0NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApAQCAtNTUsODUgKzU1LDIzIEBAIHN0YXRp
YyBjb25zdCBBdG9taWNTdHJpbmcmIGFycmF5YnVmZmVyS2V5d29yZCgpCiAgICAgcmV0dXJuIGFy
cmF5YnVmZmVyOwogfQogCi1FeGNlcHRpb25PcjxSZWY8UlRDRGF0YUNoYW5uZWw+PiBSVENEYXRh
Q2hhbm5lbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlciogcGVlckNvbm5lY3Rpb25IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGxh
YmVsLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zKQotewotICAgIFJUQ0RhdGFDaGFubmVsSW5p
dCBpbml0RGF0YTsKLSAgICBTdHJpbmcgbWF4UmV0cmFuc21pdHNTdHI7Ci0gICAgU3RyaW5nIG1h
eFJldHJhbnNtaXRUaW1lU3RyOwotICAgIG9wdGlvbnMuZ2V0KCJvcmRlcmVkIiwgaW5pdERhdGEu
b3JkZXJlZCk7Ci0gICAgb3B0aW9ucy5nZXQoIm5lZ290aWF0ZWQiLCBpbml0RGF0YS5uZWdvdGlh
dGVkKTsKLSAgICBvcHRpb25zLmdldCgiaWQiLCBpbml0RGF0YS5pZCk7Ci0gICAgb3B0aW9ucy5n
ZXQoIm1heFJldHJhbnNtaXRzIiwgbWF4UmV0cmFuc21pdHNTdHIpOwotICAgIG9wdGlvbnMuZ2V0
KCJtYXhSZXRyYW5zbWl0VGltZSIsIG1heFJldHJhbnNtaXRUaW1lU3RyKTsKLSAgICBvcHRpb25z
LmdldCgicHJvdG9jb2wiLCBpbml0RGF0YS5wcm90b2NvbCk7Ci0KLSAgICBib29sIG1heFJldHJh
bnNtaXRzQ29udmVyc2lvbjsKLSAgICBib29sIG1heFJldHJhbnNtaXRUaW1lQ29udmVyc2lvbjsK
LSAgICBpbml0RGF0YS5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJhbnNtaXRzU3RyLnRvVUludFN0
cmljdCgmbWF4UmV0cmFuc21pdHNDb252ZXJzaW9uKTsKLSAgICBpbml0RGF0YS5tYXhSZXRyYW5z
bWl0VGltZSA9IG1heFJldHJhbnNtaXRUaW1lU3RyLnRvVUludFN0cmljdCgmbWF4UmV0cmFuc21p
dFRpbWVDb252ZXJzaW9uKTsKLSAgICBpZiAobWF4UmV0cmFuc21pdHNDb252ZXJzaW9uICYmIG1h
eFJldHJhbnNtaXRUaW1lQ29udmVyc2lvbikKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNZ
TlRBWF9FUlIgfTsKLQotICAgIGF1dG8gaGFuZGxlciA9IHBlZXJDb25uZWN0aW9uSGFuZGxlci0+
Y3JlYXRlRGF0YUNoYW5uZWwobGFiZWwsIGluaXREYXRhKTsKLSAgICBpZiAoIWhhbmRsZXIpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOT1RfU1VQUE9SVEVEX0VSUiB9OwotCi0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUlRDRGF0YUNoYW5uZWwoKmNvbnRleHQsIFdURk1vdmUoaGFuZGxl
cikpKTsKLX0KLQotUmVmPFJUQ0RhdGFDaGFubmVsPiBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hh
bm5lbEhhbmRsZXI+JiYgaGFuZGxlcikKK1JlZjxSVENEYXRhQ2hhbm5lbD4gUlRDRGF0YUNoYW5u
ZWw6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9w
dHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiYmIGhhbmRsZXIsIFN0cmluZyYmIGxhYmVsLCBSVENE
YXRhQ2hhbm5lbEluaXQmJiBvcHRpb25zKQogeworICAgIEFTU0VSVChjb250ZXh0KTsKICAgICBB
U1NFUlQoaGFuZGxlcik7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRGF0YUNoYW5uZWwo
KmNvbnRleHQsIFdURk1vdmUoaGFuZGxlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBS
VENEYXRhQ2hhbm5lbCgqY29udGV4dCwgV1RGTW92ZShoYW5kbGVyKSwgV1RGTW92ZShsYWJlbCks
IFdURk1vdmUob3B0aW9ucykpKTsKIH0KIAotUlRDRGF0YUNoYW5uZWw6OlJUQ0RhdGFDaGFubmVs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRh
Q2hhbm5lbEhhbmRsZXI+JiYgaGFuZGxlcikKK1JUQ0RhdGFDaGFubmVsOjpSVENEYXRhQ2hhbm5l
bChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0
YUNoYW5uZWxIYW5kbGVyPiYmIGhhbmRsZXIsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5l
bEluaXQmJiBvcHRpb25zKQogICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KCZjb250ZXh0
KQogICAgICwgbV9oYW5kbGVyKFdURk1vdmUoaGFuZGxlcikpCiAgICAgLCBtX3NjaGVkdWxlZEV2
ZW50VGltZXIoKnRoaXMsICZSVENEYXRhQ2hhbm5lbDo6c2NoZWR1bGVkRXZlbnRUaW1lckZpcmVk
KQorICAgICwgbV9sYWJlbChXVEZNb3ZlKGxhYmVsKSkKKyAgICAsIG1fb3B0aW9ucyhXVEZNb3Zl
KG9wdGlvbnMpKQogewogICAgIG1faGFuZGxlci0+c2V0Q2xpZW50KHRoaXMpOwogfQogCi1SVENE
YXRhQ2hhbm5lbDo6flJUQ0RhdGFDaGFubmVsKCkKLXsKLX0KLQotU3RyaW5nIFJUQ0RhdGFDaGFu
bmVsOjpsYWJlbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+bGFiZWwoKTsKLX0K
LQotYm9vbCBSVENEYXRhQ2hhbm5lbDo6b3JkZXJlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
aGFuZGxlci0+b3JkZXJlZCgpOwotfQotCi11bnNpZ25lZCBzaG9ydCBSVENEYXRhQ2hhbm5lbDo6
bWF4UmV0cmFuc21pdFRpbWUoKSBjb25zdAotewotICAgIHJldHVybiBtX2hhbmRsZXItPm1heFJl
dHJhbnNtaXRUaW1lKCk7Ci19Ci0KLXVuc2lnbmVkIHNob3J0IFJUQ0RhdGFDaGFubmVsOjptYXhS
ZXRyYW5zbWl0cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+bWF4UmV0cmFuc21p
dHMoKTsKLX0KLQotU3RyaW5nIFJUQ0RhdGFDaGFubmVsOjpwcm90b2NvbCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1faGFuZGxlci0+cHJvdG9jb2woKTsKLX0KLQotYm9vbCBSVENEYXRhQ2hhbm5l
bDo6bmVnb3RpYXRlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+bmVnb3RpYXRl
ZCgpOwotfQotCi11bnNpZ25lZCBzaG9ydCBSVENEYXRhQ2hhbm5lbDo6aWQoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2hhbmRsZXItPmlkKCk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgUlRD
RGF0YUNoYW5uZWw6OnJlYWR5U3RhdGUoKSBjb25zdAogewogICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IGNvbm5lY3RpbmdTdGF0ZSgiY29ubmVjdGluZyIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwpAQCAtMTU4LDcgKzk2LDcgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBSVENEYXRhQ2hhbm5lbDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiAKIHVuc2lnbmVk
IFJUQ0RhdGFDaGFubmVsOjpidWZmZXJlZEFtb3VudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
aGFuZGxlci0+YnVmZmVyZWRBbW91bnQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBSVENEYXRhQ2hhbm5lbDo6YmluYXJ5VHlwZSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKaW5kZXgg
ZGFlNWQyNDgyNTM3ZDE1NGI1ZjRlZjdmMWY4MzVjZDQxMzI2YWU3ZC4uMjkyMDYzMDUwNzY4MGE1
ZDc4YTk3YTgyOGFlMGUyMDhjYTkyNzA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaApAQCAtMjYsOCArMjYsMTAgQEAKIAog
I2lmIEVOQUJMRShXRUJfUlRDKQogCisjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNo
YW5uZWxIYW5kbGVyLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTQx
LDIyICs0MywyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2I7CiBjbGFzcyBE
aWN0aW9uYXJ5OwotY2xhc3MgUlRDRGF0YUNoYW5uZWxIYW5kbGVyOwogY2xhc3MgUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyOwogCiBjbGFzcyBSVENEYXRhQ2hhbm5lbCBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJUQ0RhdGFDaGFubmVsPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEsIHB1YmxpYyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8UlRDRGF0YUNoYW5uZWw+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
c3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4mJik7Ci0gICAgc3RhdGljIEV4
Y2VwdGlvbk9yPFJlZjxSVENEYXRhQ2hhbm5lbD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29u
c3QgRGljdGlvbmFyeSYgb3B0aW9ucyk7Ci0gICAgflJUQ0RhdGFDaGFubmVsKCk7Ci0KLSAgICBT
dHJpbmcgbGFiZWwoKSBjb25zdDsKLSAgICBib29sIG9yZGVyZWQoKSBjb25zdDsKLSAgICB1bnNp
Z25lZCBzaG9ydCBtYXhSZXRyYW5zbWl0VGltZSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIHNob3J0
IG1heFJldHJhbnNtaXRzKCkgY29uc3Q7Ci0gICAgU3RyaW5nIHByb3RvY29sKCkgY29uc3Q7Ci0g
ICAgYm9vbCBuZWdvdGlhdGVkKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgc2hvcnQgaWQoKSBjb25z
dDsKKyAgICBzdGF0aWMgUmVmPFJUQ0RhdGFDaGFubmVsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYsIFN0cmlu
ZyYmLCBSVENEYXRhQ2hhbm5lbEluaXQmJik7CisKKyAgICBib29sIG9yZGVyZWQoKSBjb25zdCB7
IHJldHVybiBtX29wdGlvbnMub3JkZXJlZDsgfQorICAgIHVuc2lnbmVkIHNob3J0IG1heFJldHJh
bnNtaXRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLm1heFJldHJhbnNtaXRUaW1lOyB9
CisgICAgdW5zaWduZWQgc2hvcnQgbWF4UmV0cmFuc21pdHMoKSBjb25zdCB7IHJldHVybiBtX29w
dGlvbnMubWF4UmV0cmFuc21pdHM7IH0KKyAgICBTdHJpbmcgcHJvdG9jb2woKSBjb25zdCB7IHJl
dHVybiBtX29wdGlvbnMucHJvdG9jb2w7IH0KKyAgICBib29sIG5lZ290aWF0ZWQoKSBjb25zdCB7
IHJldHVybiBtX29wdGlvbnMubmVnb3RpYXRlZDsgfTsKKyAgICB1bnNpZ25lZCBzaG9ydCBpZCgp
IGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5pZDsgfTsKKworICAgIFN0cmluZyBsYWJlbCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHJlYWR5U3Rh
dGUoKSBjb25zdDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3VudCgpIGNvbnN0OwogCkBAIC03
Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogcHJp
dmF0ZToKLSAgICBSVENEYXRhQ2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1
bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4mJik7CisgICAgUlRDRGF0YUNoYW5uZWwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhh
bmRsZXI+JiYsIFN0cmluZyYmLCBSVENEYXRhQ2hhbm5lbEluaXQmJik7CiAKICAgICB2b2lkIHNj
aGVkdWxlRGlzcGF0Y2hFdmVudChSZWY8RXZlbnQ+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVkRXZl
bnRUaW1lckZpcmVkKCk7CkBAIC05Myw2ICs5Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRS
ZWNlaXZlU3RyaW5nRGF0YShjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2Vp
dmVSYXdEYXRhKGNvbnN0IGNoYXIqLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgZGlkRGV0ZWN0
RXJyb3IoKSBmaW5hbDsKKyAgICB2b2lkIHByb3RlY3QoKSBmaW5hbCB7IHJlZigpOyB9CisgICAg
dm9pZCB1bnByb3RlY3QoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IG1faGFuZGxlcjsKIApAQCAtMTA1LDYgKzEwNyw5IEBA
IHByaXZhdGU6CiAKICAgICBUaW1lciBtX3NjaGVkdWxlZEV2ZW50VGltZXI7CiAgICAgVmVjdG9y
PFJlZjxFdmVudD4+IG1fc2NoZWR1bGVkRXZlbnRzOworCisgICAgU3RyaW5nIG1fbGFiZWw7Cisg
ICAgUlRDRGF0YUNoYW5uZWxJbml0IG1fb3B0aW9uczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0RhdGFDaGFubmVsRXZlbnQuY3BwCmluZGV4IDU4OTk1OTQ5NTFlYTI5MTNjMDFjY2U3ZjY0
NTk2NzE4NTRmYTE2YTguLjhhNWVlZTU2YWE5NjVlZWE0YzljZGIxZmQ4ZTk4Y2E1YjdjNGQ4Yzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENEYXRhQ2hhbm5lbEV2ZW50LmNwcApAQCAtMzIsMTggKzMyLDE0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUmVmPFJUQ0RhdGFDaGFubmVsRXZlbnQ+IFJUQ0RhdGFDaGFubmVsRXZlbnQ6
OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNh
bmNlbGFibGUsIFJUQ0RhdGFDaGFubmVsJiBjaGFubmVsKQorUmVmPFJUQ0RhdGFDaGFubmVsRXZl
bnQ+IFJUQ0RhdGFDaGFubmVsRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJlZjxSVENEYXRhQ2hhbm5lbD4mJiBj
aGFubmVsKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0RhdGFDaGFubmVsRXZlbnQo
dHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBjaGFubmVsKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUlRDRGF0YUNoYW5uZWxFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUs
IFdURk1vdmUoY2hhbm5lbCkpKTsKIH0KIAotUlRDRGF0YUNoYW5uZWxFdmVudDo6UlRDRGF0YUNo
YW5uZWxFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIFJUQ0RhdGFDaGFubmVsJiBjaGFubmVsKQorUlRDRGF0YUNoYW5uZWxFdmVu
dDo6UlRDRGF0YUNoYW5uZWxFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2Fu
QnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJlZjxSVENEYXRhQ2hhbm5lbD4mJiBjaGFubmVsKQog
ICAgIDogRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlKQotICAgICwgbV9jaGFubmVs
KGNoYW5uZWwpCi17Ci19Ci0KLVJUQ0RhdGFDaGFubmVsRXZlbnQ6On5SVENEYXRhQ2hhbm5lbEV2
ZW50KCkKKyAgICAsIG1fY2hhbm5lbChXVEZNb3ZlKGNoYW5uZWwpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxF
dmVudC5oCmluZGV4IDhiY2RjNTRkMjE0YWY0YmM1MGYyZThkZmMzN2ZhNzQ3Zjk3MzQ1ODAuLjUy
NDFlMjc5MGU1ODk3NWY1YTM1ZDBmZTIzZTljOTJkYzQ1YmMyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5o
CkBAIC0yMiw4ICsyMiw3IEBACiAgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFJUQ0RhdGFDaGFubmVs
RXZlbnRfaAotI2RlZmluZSBSVENEYXRhQ2hhbm5lbEV2ZW50X2gKKyNwcmFnbWEgb25jZQogCiAj
aWYgRU5BQkxFKFdFQl9SVEMpCiAKQEAgLTM1LDE2ICszNCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFJUQ0RhdGFDaGFubmVsRXZlbnQgOiBwdWJsaWMgRXZlbnQgewogcHVibGlj
OgotICAgIHZpcnR1YWwgflJUQ0RhdGFDaGFubmVsRXZlbnQoKTsKLQotICAgIHN0YXRpYyBSZWY8
UlRDRGF0YUNoYW5uZWxFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUlRDRGF0YUNoYW5uZWwmKTsKKyAgICBzdGF0
aWMgUmVmPFJUQ0RhdGFDaGFubmVsRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJlZjxSVENEYXRhQ2hhbm5lbD4m
Jik7CiAKICAgICBSVENEYXRhQ2hhbm5lbCogY2hhbm5lbCgpOwogCiAgICAgdmlydHVhbCBFdmVu
dEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFJUQ0Rh
dGFDaGFubmVsRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBSVENEYXRhQ2hhbm5lbCYpOworICAgIFJUQ0RhdGFDaGFubmVsRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBSZWY8UlRDRGF0YUNoYW5uZWw+JiYpOwogCiAgICAgUmVmPFJUQ0RhdGFDaGFubmVsPiBt
X2NoYW5uZWw7CiB9OwpAQCAtNTIsNSArNDksMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCi0KLSNlbmRpZiAvLyBSVENEYXRh
Q2hhbm5lbEV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNmVjM2U5MmZhMWM0MjNiZTc5ZDZl
MDVlMmFkOWIyZTdiMDhlNTU2ZS4uZjZhN2UzYzU3MzQ0YmQ1NWQ0MDdmZDNmNmVmZjg4YjZjYWI5
ZmVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTM2OSwxMiArMzY5LDE3IEBAIHZvaWQgUlRDUGVl
ckNvbm5lY3Rpb246OnByaXZhdGVHZXRTdGF0cyhNZWRpYVN0cmVhbVRyYWNrKiBzZWxlY3Rvciwg
UGVlckNvbm5lY3RpCiAgICAgbV9iYWNrZW5kLT5nZXRTdGF0cyhzZWxlY3RvciwgV1RGTW92ZShw
cm9taXNlKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPFJlZlB0cjxSVENEYXRhQ2hhbm5lbD4+IFJUQ1Bl
ZXJDb25uZWN0aW9uOjpjcmVhdGVEYXRhQ2hhbm5lbChjb25zdCBTdHJpbmcmLCBjb25zdCBEaWN0
aW9uYXJ5JikKK0V4Y2VwdGlvbk9yPFJlZjxSVENEYXRhQ2hhbm5lbD4+IFJUQ1BlZXJDb25uZWN0
aW9uOjpjcmVhdGVEYXRhQ2hhbm5lbChTdHJpbmcmJiBsYWJlbCwgUlRDRGF0YUNoYW5uZWxJbml0
JiYgb3B0aW9ucykKIHsKICAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0
ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIg
fTsKIAotICAgIHJldHVybiBudWxscHRyOworICAgIC8vIEZJWE1FOiBDaGVjayBvcHRpb25zCisg
ICAgYXV0byBjaGFubmVsSGFuZGxlciA9IG1fYmFja2VuZC0+Y3JlYXRlRGF0YUNoYW5uZWxIYW5k
bGVyKGxhYmVsLCBvcHRpb25zKTsKKyAgICBpZiAoIWNoYW5uZWxIYW5kbGVyKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTk9UX1NVUFBPUlRFRF9FUlIgfTsKKworICAgIHJldHVybiBSVENE
YXRhQ2hhbm5lbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGTW92ZShjaGFu
bmVsSGFuZGxlciksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKIH0KIAogdm9p
ZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IDc1OTE0N2I2Mjkw
YWIwNTM2Y2Y2YzA1ZGFkNDc0Zjk4M2Y5Y2VjNDkuLmJlMTI2ZTc0MWUxYmNjZjlmNzA4OWZiMWQ4
ZDEyYmYxYjlhY2NhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl
ICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJNZWRp
YVN0cmVhbS5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRDT2Zm
ZXJBbnN3ZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNjZWl2ZXIuaCIKICNpbmNs
dWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTQ5LDcgKzUwLDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIFBlZXJDb25uZWN0aW9uQmFja2Vu
ZDsKIGNsYXNzIFJUQ0NvbmZpZ3VyYXRpb247Ci1jbGFzcyBSVENEYXRhQ2hhbm5lbDsKIGNsYXNz
IFJUQ0ljZUNhbmRpZGF0ZTsKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjazsK
IGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjsKQEAgLTYwLDkgKzYwLDEwIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFJUQ1BlZXJDb25uZWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpOwogICAgIH5SVENQZWVyQ29ubmVjdGlvbigpOwogCisgICAgdXNpbmcgQW5zd2Vy
T3B0aW9ucyA9IFJUQ0Fuc3dlck9wdGlvbnM7CisgICAgdXNpbmcgRGF0YUNoYW5uZWxJbml0ID0g
UlRDRGF0YUNoYW5uZWxJbml0OwogICAgIHVzaW5nIE9mZmVyQW5zd2VyT3B0aW9ucyA9IFJUQ09m
ZmVyQW5zd2VyT3B0aW9uczsKICAgICB1c2luZyBPZmZlck9wdGlvbnMgPSBSVENPZmZlck9wdGlv
bnM7Ci0gICAgdXNpbmcgQW5zd2VyT3B0aW9ucyA9IFJUQ0Fuc3dlck9wdGlvbnM7CiAKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBpbml0aWFsaXplV2l0aChEb2N1bWVudCYsIGNvbnN0IERpY3Rpb25h
cnkmKTsKIApAQCAtMTExLDcgKzExMiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJpdmF0ZUdl
dFN0YXRzKE1lZGlhU3RyZWFtVHJhY2sqLCBQZWVyQ29ubmVjdGlvbjo6U3RhdHNQcm9taXNlJiYp
OwogCi0gICAgRXhjZXB0aW9uT3I8UmVmUHRyPFJUQ0RhdGFDaGFubmVsPj4gY3JlYXRlRGF0YUNo
YW5uZWwoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgRGljdGlvbmFyeSYgZGF0YUNoYW5uZWxE
aWN0KTsKKyAgICBFeGNlcHRpb25PcjxSZWY8UlRDRGF0YUNoYW5uZWw+PiBjcmVhdGVEYXRhQ2hh
bm5lbChTdHJpbmcmJiwgUlRDRGF0YUNoYW5uZWxJbml0JiYpOwogCiAgICAgdm9pZCBjbG9zZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaWRsCmluZGV4IGVmMWVmNTdhYzk1Zjc0NDY2NzQyNzc4YzhiYTdkZTU2
ZmU3MTI0OTcuLmIwMmFlZTQ2MWM2ZTRkZWQ3OTAwOTQ0MmU5NmNlODVhNjFlMWE1NjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uaWRsCkBAIC00MSw2ICs0MSwxNSBAQCBkaWN0aW9uYXJ5IFJUQ09mZmVyT3B0aW9u
cyA6IFJUQ09mZmVyQW5zd2VyT3B0aW9ucyB7CiBkaWN0aW9uYXJ5IFJUQ0Fuc3dlck9wdGlvbnMg
OiBSVENPZmZlckFuc3dlck9wdGlvbnMgewogfTsKIAorZGljdGlvbmFyeSBSVENEYXRhQ2hhbm5l
bEluaXQgeworICAgIGJvb2xlYW4gICAgICAgIG9yZGVyZWQgPSB0cnVlOworICAgIHVuc2lnbmVk
IHNob3J0IG1heFJldHJhbnNtaXRUaW1lOworICAgIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNt
aXRzOworICAgIFVTVlN0cmluZyAgICAgIHByb3RvY29sID0gIiI7CisgICAgYm9vbGVhbiAgICAg
ICAgbmVnb3RpYXRlZCA9IGZhbHNlOworICAgIHVuc2lnbmVkIHNob3J0IGlkOworfTsKKwogWwog
ICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1XRUJfUlRDLApAQCAtMTI1LDcg
KzEzNCw3IEBAIGRpY3Rpb25hcnkgUlRDQW5zd2VyT3B0aW9ucyA6IFJUQ09mZmVyQW5zd2VyT3B0
aW9ucyB7CiAgICAgW1ByaXZhdGVJZGVudGlmaWVyXSBQcm9taXNlPHZvaWQ+IHF1ZXVlZEFkZElj
ZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKTsKICAgICBbUHJpdmF0ZUlkZW50
aWZpZXJdIFByb21pc2U8UlRDU3RhdHNSZXBvcnQ+IHByaXZhdGVHZXRTdGF0cyhNZWRpYVN0cmVh
bVRyYWNrPyBzZWxlY3Rvcik7CiAKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFJUQ0RhdGFDaGFu
bmVsIGNyZWF0ZURhdGFDaGFubmVsKFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5n
IGxhYmVsLCBvcHRpb25hbCBEaWN0aW9uYXJ5IG9wdGlvbnMpOworICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gUlRDRGF0YUNoYW5uZWwgY3JlYXRlRGF0YUNoYW5uZWwoW1RyZWF0TnVsbEFzPUVtcHR5
U3RyaW5nXSBET01TdHJpbmcgbGFiZWwsIG9wdGlvbmFsIFJUQ0RhdGFDaGFubmVsSW5pdCBvcHRp
b25zKTsKIAogICAgIHZvaWQgY2xvc2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcAppbmRleCBkNGM4Y2Q3NDlkMTcx
YzY2MmQyZmZlMjBmMjI1MDE0MDEzNDQ1MTQ4Li5lN2M3YTk1MmIxZmI4ODM4MzAzMzk3YzllNDcz
YjFiZTFjMWQ3OWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1l
ZGlhRW5kcG9pbnQuaCIKIAogI2luY2x1ZGUgIk1lZGlhUGF5bG9hZC5oIgorI2luY2x1ZGUgIlJU
Q0RhdGFDaGFubmVsSGFuZGxlci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsMzggKzQzLDM3IEBAIGNsYXNzIEVtcHR5UmVh
bHRpbWVNZWRpYVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPEVtcHR5UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSk7IH0KIAor
cHJpdmF0ZToKKyAgICBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSA6IFJlYWx0aW1lTWVkaWFT
b3VyY2UoZW1wdHlTdHJpbmcoKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Tm9uZSwgZW1wdHlTdHJp
bmcoKSkgeyB9CisKICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
Y2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3NvdXJjZVNldHRpbmdzOyB9CiAKLXByaXZhdGU6Ci0gICAgRW1wdHlSZWFsdGltZU1l
ZGlhU291cmNlKCkKLSAgICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGVtcHR5U3RyaW5nKCks
IFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5vbmUsIGVtcHR5U3RyaW5nKCkpCi0gICAgICAgIHsgfQot
CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc291cmNlU2V0dGluZ3M7CiB9Owog
Ci1jbGFzcyBFbXB0eU1lZGlhRW5kcG9pbnQgOiBwdWJsaWMgTWVkaWFFbmRwb2ludCB7CitjbGFz
cyBFbXB0eU1lZGlhRW5kcG9pbnQgZmluYWwgOiBwdWJsaWMgTWVkaWFFbmRwb2ludCB7CiBwdWJs
aWM6CiAgICAgRW1wdHlNZWRpYUVuZHBvaW50KE1lZGlhRW5kcG9pbnRDbGllbnQmKSB7IH0KK3By
aXZhdGU6CisgICAgdm9pZCBzZXRDb25maWd1cmF0aW9uKE1lZGlhRW5kcG9pbnRDb25maWd1cmF0
aW9uJiYpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBzZXRDb25maWd1cmF0aW9uKE1lZGlhRW5kcG9p
bnRDb25maWd1cmF0aW9uJiYpIG92ZXJyaWRlIHsgfQotCi0gICAgdm9pZCBnZW5lcmF0ZUR0bHNJ
bmZvKCkgb3ZlcnJpZGUgeyB9Ci0gICAgTWVkaWFQYXlsb2FkVmVjdG9yIGdldERlZmF1bHRBdWRp
b1BheWxvYWRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFQYXlsb2FkVmVjdG9yKCk7IH0KLSAg
ICBNZWRpYVBheWxvYWRWZWN0b3IgZ2V0RGVmYXVsdFZpZGVvUGF5bG9hZHMoKSBvdmVycmlkZSB7
IHJldHVybiBNZWRpYVBheWxvYWRWZWN0b3IoKTsgfQotICAgIE1lZGlhUGF5bG9hZFZlY3RvciBm
aWx0ZXJQYXlsb2Fkcyhjb25zdCBNZWRpYVBheWxvYWRWZWN0b3ImLCBjb25zdCBNZWRpYVBheWxv
YWRWZWN0b3ImKSBvdmVycmlkZSB7IHJldHVybiBNZWRpYVBheWxvYWRWZWN0b3IoKTsgfQorICAg
IHZvaWQgZ2VuZXJhdGVEdGxzSW5mbygpIGZpbmFsIHsgfQorICAgIE1lZGlhUGF5bG9hZFZlY3Rv
ciBnZXREZWZhdWx0QXVkaW9QYXlsb2FkcygpIGZpbmFsIHsgcmV0dXJuIE1lZGlhUGF5bG9hZFZl
Y3RvcigpOyB9CisgICAgTWVkaWFQYXlsb2FkVmVjdG9yIGdldERlZmF1bHRWaWRlb1BheWxvYWRz
KCkgZmluYWwgeyByZXR1cm4gTWVkaWFQYXlsb2FkVmVjdG9yKCk7IH0KKyAgICBNZWRpYVBheWxv
YWRWZWN0b3IgZmlsdGVyUGF5bG9hZHMoY29uc3QgTWVkaWFQYXlsb2FkVmVjdG9yJiwgY29uc3Qg
TWVkaWFQYXlsb2FkVmVjdG9yJikgZmluYWwgeyByZXR1cm4gTWVkaWFQYXlsb2FkVmVjdG9yKCk7
IH0KIAotICAgIFVwZGF0ZVJlc3VsdCB1cGRhdGVSZWNlaXZlQ29uZmlndXJhdGlvbihNZWRpYUVu
ZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24qLCBib29sKSBvdmVycmlkZSB7IHJldHVybiBVcGRh
dGVSZXN1bHQ6OkZhaWxlZDsgfQotICAgIFVwZGF0ZVJlc3VsdCB1cGRhdGVTZW5kQ29uZmlndXJh
dGlvbihNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24qLCBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlTWFwJiwgYm9vbCkgb3ZlcnJpZGUgeyByZXR1cm4gVXBkYXRlUmVzdWx0OjpGYWls
ZWQ7IH0KKyAgICBVcGRhdGVSZXN1bHQgdXBkYXRlUmVjZWl2ZUNvbmZpZ3VyYXRpb24oTWVkaWFF
bmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uKiwgYm9vbCkgZmluYWwgeyByZXR1cm4gVXBkYXRl
UmVzdWx0OjpGYWlsZWQ7IH0KKyAgICBVcGRhdGVSZXN1bHQgdXBkYXRlU2VuZENvbmZpZ3VyYXRp
b24oTWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uKiwgY29uc3QgUmVhbHRpbWVNZWRp
YVNvdXJjZU1hcCYsIGJvb2wpIGZpbmFsIHsgcmV0dXJuIFVwZGF0ZVJlc3VsdDo6RmFpbGVkOyB9
CiAKLSAgICB2b2lkIGFkZFJlbW90ZUNhbmRpZGF0ZShjb25zdCBJY2VDYW5kaWRhdGUmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IH0KKyAg
ICB2b2lkIGFkZFJlbW90ZUNhbmRpZGF0ZShjb25zdCBJY2VDYW5kaWRhdGUmLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KIAotICAgIFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVNdXRlZFJlbW90ZVNvdXJjZShjb25zdCBTdHJpbmcm
LCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlKSBvdmVycmlkZSB7IHJldHVybiBFbXB0eVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSgpOyB9Ci0gICAgdm9pZCByZXBsYWNlU2VuZFNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9p
ZCByZXBsYWNlTXV0ZWRSZW1vdGVTb3VyY2VNaWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGUgeyB9OworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVNdXRl
ZFJlbW90ZVNvdXJjZShjb25zdCBTdHJpbmcmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlKSBm
aW5hbCB7IHJldHVybiBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSgpOyB9CisgICAg
dm9pZCByZXBsYWNlU2VuZFNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiwgY29uc3QgU3RyaW5n
JikgZmluYWwgeyB9CisgICAgdm9pZCByZXBsYWNlTXV0ZWRSZW1vdGVTb3VyY2VNaWQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9OwogCi0gICAgdm9pZCBzdG9wKCkgb3Zl
cnJpZGUgeyB9CisgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3Jl
YXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVs
SW5pdCYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2b2lkIHN0b3AoKSBmaW5hbCB7
IH0KIH07CiAKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFFbmRwb2ludD4gY3JlYXRlTWVk
aWFFbmRwb2ludChNZWRpYUVuZHBvaW50Q2xpZW50JiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmgKaW5kZXggZjI3NzM3
ZjgyZDQ2ZWI1NTk5ZTQ0YzU4YzdmZjUzMTQwZmU3ODBjYi4uMWM1OTZkMjdiYjhlOTNkMjM1NzY0
NTJjOTgxMTBhMzhjZjYwNjI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaApAQCAtMzksMTMgKzM5LDE2IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEljZUNhbmRpZGF0ZTsKIGNsYXNzIE1lZGlhRW5kcG9p
bnQ7CiBjbGFzcyBNZWRpYUVuZHBvaW50Q2xpZW50OwogY2xhc3MgTWVkaWFFbmRwb2ludFNlc3Np
b25Db25maWd1cmF0aW9uOwotc3RydWN0IE1lZGlhUGF5bG9hZDsKK2NsYXNzIFJUQ0RhdGFDaGFu
bmVsSGFuZGxlcjsKIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CiAKK3N0cnVjdCBJY2VDYW5k
aWRhdGU7CitzdHJ1Y3QgTWVkaWFQYXlsb2FkOworc3RydWN0IFJUQ0RhdGFDaGFubmVsSW5pdDsK
KwogdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFFbmRwb2ludD4gKCpDcmVhdGVNZWRpYUVu
ZHBvaW50KShNZWRpYUVuZHBvaW50Q2xpZW50Jik7CiB0eXBlZGVmIFZlY3RvcjxNZWRpYVBheWxv
YWQ+IE1lZGlhUGF5bG9hZFZlY3RvcjsKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlYWx0aW1l
TWVkaWFTb3VyY2UqPiBSZWFsdGltZU1lZGlhU291cmNlTWFwOwpAQCAtNzksNiArODIsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcGxhY2VTZW5kU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2UmLCBjb25zdCBTdHJpbmcmIG1pZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXBsYWNl
TXV0ZWRSZW1vdGVTb3VyY2VNaWQoY29uc3QgU3RyaW5nJiBvbGRNaWQsIGNvbnN0IFN0cmluZyYg
bmV3TWlkKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5l
bEhhbmRsZXI+IGNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBS
VENEYXRhQ2hhbm5lbEluaXQmKSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmKSB7
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENE
YXRhQ2hhbm5lbEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCmluZGV4IDUyMmY5NzUzNTliNmYxZGE5ZTUxNDBiNDZk
ZDhhNTk2NzkxNTJhNWIuLmIyYTM3OWEwODBlOGE3Nzk1OTJiMDE5YTE4NWY1YmUwN2I0ZWZjNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFD
aGFubmVsSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCkBAIC0yMiw4ICsyMiw3IEBACiAgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0jaWZuZGVmIFJUQ0RhdGFDaGFubmVsSGFuZGxlcl9oCi0jZGVmaW5lIFJUQ0RhdGFDaGFubmVs
SGFuZGxlcl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShXRUJfUlRDKQogCkBAIC0zMSw2
ICszMCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVjdCBSVENEYXRhQ2hhbm5l
bEluaXQgeworICAgIGJvb2wgb3JkZXJlZCB7IHRydWUgfTsKKyAgICBpbnQgbWF4UmV0cmFuc21p
dFRpbWUgeyAtMSB9OworICAgIGludCBtYXhSZXRyYW5zbWl0cyB7IC0xIH07CisgICAgU3RyaW5n
IHByb3RvY29sOworICAgIGJvb2wgbmVnb3RpYXRlZCB7IGZhbHNlIH07CisgICAgaW50IGlkIHsg
LTEgfTsKK307CisKIGNsYXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudDsKIAogY2xhc3Mg
UlRDRGF0YUNoYW5uZWxIYW5kbGVyIHsKQEAgLTM5LDE1ICs0Nyw2IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50KikgPSAw
OwogCi0gICAgdmlydHVhbCBTdHJpbmcgbGFiZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIG9y
ZGVyZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBtYXhSZXRyYW5zbWl0VGlt
ZSgpID0gMDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNtaXRzKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIHByb3RvY29sKCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBu
ZWdvdGlhdGVkKCkgPSAwOwotICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgaWQoKSA9IDA7Ci0g
ICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgPSAwOwotCiAgICAgdmly
dHVhbCBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFs
IGJvb2wgc2VuZFJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBjbG9zZSgpID0gMDsKQEAgLTU2LDUgKzU1LDMgQEAgcHVibGljOgogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCi0KLSNlbmRpZiAvLyBSVENE
YXRhQ2hhbm5lbEhhbmRsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQuaAppbmRl
eCA3M2U4NmMzNzcyN2Q5NTg2YzgxMmRjYWIzYjM4NTRmOWRjYzdiNGRmLi5hNzZkMzkyNTlmNzU3
YWYxYWUxMmIyMDY2OWZkYWU5YzJjMTAyNzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXJD
bGllbnQuaApAQCAtNDYsNiArNDYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZVJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWREZXRlY3RFcnJvcigpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBwcm90ZWN0KCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB1bnByb3RlY3QoKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDRjMmUwZWUyNDE0NDY5
Y2IwNmZhYjNkZjllNzVhZTA1OGEwNjI3NmMuLjlhYzc3MGQ5OGYyMDMxZjQxZTdhNWNiNTEwYmUx
OGI1NTIxODI3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCkBAIC01MywyMSArNTMs
NyBAQCBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OwogY2xhc3MgUlRDU3RhdHNS
ZXF1ZXN0OwogY2xhc3MgUlRDVm9pZFJlcXVlc3Q7CiAKLXN0cnVjdCBSVENEYXRhQ2hhbm5lbElu
aXQgewotcHVibGljOgotICAgIFJUQ0RhdGFDaGFubmVsSW5pdCgpCi0gICAgICAgIDogb3JkZXJl
ZCh0cnVlKQotICAgICAgICAsIG1heFJldHJhbnNtaXRUaW1lKC0xKQotICAgICAgICAsIG1heFJl
dHJhbnNtaXRzKC0xKQotICAgICAgICAsIG5lZ290aWF0ZWQoZmFsc2UpCi0gICAgICAgICwgaWQo
LTEpIHsgfQotICAgIGJvb2wgb3JkZXJlZDsKLSAgICBpbnQgbWF4UmV0cmFuc21pdFRpbWU7Ci0g
ICAgaW50IG1heFJldHJhbnNtaXRzOwotICAgIFN0cmluZyBwcm90b2NvbDsKLSAgICBib29sIG5l
Z290aWF0ZWQ7Ci0gICAgaW50IGlkOwotfTsKK3N0cnVjdCBSVENEYXRhQ2hhbm5lbEluaXQ7CiAK
IHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4gKCpDcmVh
dGVQZWVyQ29ubmVjdGlvbkhhbmRsZXIpKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVu
d2VicnRjL01lZGlhRW5kcG9pbnRPd3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dyLmNwcAppbmRleCA1YmFlN2VkMTZj
NmFjYzA0NjRmYTdkODhlY2M4ODUwYzA3ZmZjZjc2Li43MTI1NjQ5NGRkYzg3YjQzMzY0MDZlZDEw
ZjU4NDg0MTAyMGU4NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9vcGVud2VicnRjL01lZGlhRW5kcG9pbnRPd3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5jcHAK
QEAgLTk0LDYgKzk0LDEzIEBAIHZvaWQgTWVkaWFFbmRwb2ludE93cjo6c2V0Q29uZmlndXJhdGlv
bihNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpCiAgICAgbV9jb25maWd1
cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPFJU
Q0RhdGFDaGFubmVsSGFuZGxlcj4gTWVkaWFFbmRwb2ludE93cjo6Y3JlYXRlRGF0YUNoYW5uZWxI
YW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYpCit7CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudCBkYXRhIGNoYW5uZWwuCisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIHN0YXRpYyB2b2lkIGNyeXB0b0RhdGFDYWxs
YmFjayhnY2hhciogcHJpdmF0ZUtleSwgZ2NoYXIqIGNlcnRpZmljYXRlLCBnY2hhciogZmluZ2Vy
cHJpbnQsIGdjaGFyKiBmaW5nZXJwcmludEZ1bmN0aW9uLCBncG9pbnRlciBkYXRhKQogewogICAg
IE1lZGlhRW5kcG9pbnRPd3IqIG1lZGlhRW5kcG9pbnQgPSAoTWVkaWFFbmRwb2ludE93ciopIGRh
dGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVu
d2VicnRjL01lZGlhRW5kcG9pbnRPd3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5oCmluZGV4IGM0ZDFlNTYzOTkyY2Qw
MTE2NzQ3OWNhODQ1MDJmZDg0MzM0Yzg3MzguLmMzMzk2ZTcxOGZlNDcwM2FkMGNjNTU3MThhMmVi
M2UyYzMwYWMyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5oCkBAIC0xMjAs
NiArMTIwLDggQEAgcHJpdmF0ZToKICAgICAgICAgU3RyaW5nIG1pZDsKICAgICB9OwogCisgICAg
c3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWxI
YW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYpIGZpbmFsOwor
CiAgICAgdm9pZCBwcmVwYXJlU2Vzc2lvbihPd3JTZXNzaW9uKiwgUGVlck1lZGlhRGVzY3JpcHRp
b24qKTsKICAgICB2b2lkIHByZXBhcmVNZWRpYVNlc3Npb24oT3dyTWVkaWFTZXNzaW9uKiwgUGVl
ck1lZGlhRGVzY3JpcHRpb24qLCBib29sIGlzSW5pdGlhdG9yKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcAppbmRleCA2MTQyMzE1
ZDU4YzcwMjcxMDY1OWIzZjdkNTEzOGE3NzRlOGY4ODc5Li42MGJiMDE4MWFlOGNkM2I3N2I4OWVk
ZjQ5YTM2NTM4NGYyZTBkZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIk1l
ZGlhUGF5bG9hZC5oIgogI2luY2x1ZGUgIk1vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgiCiAjaW5j
bHVkZSAiTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5l
bEhhbmRsZXJNb2NrLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTYzLDYgKzY0LDExIEBAIE1vY2tNZWRpYUVuZHBv
aW50Ojp+TW9ja01lZGlhRW5kcG9pbnQoKQogICAgIHN0b3AoKTsKIH0KIAorc3RkOjp1bmlxdWVf
cHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gTW9ja01lZGlhRW5kcG9pbnQ6OmNyZWF0ZURhdGFD
aGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBSVENEYXRhQ2hhbm5lbElu
aXQmIG9wdGlvbnMpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UlRDRGF0YUNoYW5u
ZWxIYW5kbGVyTW9jaz4obGFiZWwsIG9wdGlvbnMpOworfQorCiB2b2lkIE1vY2tNZWRpYUVuZHBv
aW50OjpnZW5lcmF0ZUR0bHNJbmZvKCkKIHsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSgp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5k
cG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQu
aAppbmRleCA0ODAzODc0ZDdkMWZkM2QzZDU2OTYwOTEzMDk1OGIxNjdkNmY0NzdiLi4xM2JkNDdi
MjZkNTA4N2I4Y2RjMGUxNTRiYTA1MDc4M2M5ZmNiYTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oCkBAIC02OCw2ICs2OCw4IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uTWlkcyhjb25zdCBN
ZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24mKTsKIAorICAgIHN0ZDo6dW5pcXVlX3B0
cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBT
dHJpbmcmLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmKSBmaW5hbDsKKwogICAgIHZvaWQgZGlz
cGF0Y2hGYWtlSWNlQ2FuZGlkYXRlcygpOwogICAgIHZvaWQgaWNlQ2FuZGlkYXRlVGltZXJGaXJl
ZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFD
aGFubmVsSGFuZGxlck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENE
YXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNwcAppbmRleCA4Y2E4MDA2MzEzNWI1MDgzOTAxYzg5Y2U3
NWY5ZGVjYmRlMzEzZmE2Li44OTg1ZTVjOWY1OTgwZjJkODVlM2E0ZTRkM2Y5NTkxMDllYjZlYjgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVs
SGFuZGxlck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0
YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAKQEAgLTM3LDExICszNyw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6OlJUQ0RhdGFDaGFubmVsSGFuZGxlck1v
Y2soY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgUlRDRGF0YUNoYW5uZWxJbml0JiBpbml0KQog
ICAgIDogbV9sYWJlbChsYWJlbCkKICAgICAsIG1fcHJvdG9jb2woaW5pdC5wcm90b2NvbCkKLSAg
ICAsIG1fbWF4UmV0cmFuc21pdFRpbWUoaW5pdC5tYXhSZXRyYW5zbWl0VGltZSkKLSAgICAsIG1f
bWF4UmV0cmFuc21pdHMoaW5pdC5tYXhSZXRyYW5zbWl0cykKLSAgICAsIG1faWQoaW5pdC5pZCkK
LSAgICAsIG1fb3JkZXJlZChpbml0Lm9yZGVyZWQpCi0gICAgLCBtX25lZ290aWF0ZWQoaW5pdC5u
ZWdvdGlhdGVkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCmluZGV4IDhmNDMyZDVjOTI5NjlhOGQw
YzhmYjcwZDZkMDAwMzkyOTUxNjMzYWUuLmViZDgzNWZjOWIyZWMyNmNjZjhmMTgwMTQ1NDljODY2
YWVlMWViN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0
YUNoYW5uZWxIYW5kbGVyTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCkBAIC00MSwxNSArNDEsNiBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldENsaWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQqKSBvdmVycmlk
ZTsKIAotICAgIFN0cmluZyBsYWJlbCgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fbGFiZWw7IH0KLSAg
ICBib29sIG9yZGVyZWQoKSBvdmVycmlkZSB7IHJldHVybiBtX29yZGVyZWQ7IH0KLSAgICB1bnNp
Z25lZCBzaG9ydCBtYXhSZXRyYW5zbWl0VGltZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fbWF4UmV0
cmFuc21pdFRpbWU7IH0KLSAgICB1bnNpZ25lZCBzaG9ydCBtYXhSZXRyYW5zbWl0cygpIG92ZXJy
aWRlIHsgcmV0dXJuIG1fbWF4UmV0cmFuc21pdHM7IH0KLSAgICBTdHJpbmcgcHJvdG9jb2woKSBv
dmVycmlkZSB7IHJldHVybiBtX3Byb3RvY29sOyB9Ci0gICAgYm9vbCBuZWdvdGlhdGVkKCkgb3Zl
cnJpZGUgeyByZXR1cm4gbV9uZWdvdGlhdGVkOyB9Ci0gICAgdW5zaWduZWQgc2hvcnQgaWQoKSBv
dmVycmlkZSB7IHJldHVybiBtX2lkOyB9Ci0gICAgdW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3Vu
dCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KLQogICAgIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzZW5kUmF3RGF0YShjb25zdCBjaGFyKiwg
c2l6ZV90KSBvdmVycmlkZTsKICAgICB2b2lkIGNsb3NlKCkgb3ZlcnJpZGU7CkBAIC01OSwxMSAr
NTAsNiBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fbGFiZWw7CiAgICAgU3RyaW5nIG1fcHJv
dG9jb2w7Ci0gICAgdW5zaWduZWQgc2hvcnQgbV9tYXhSZXRyYW5zbWl0VGltZTsKLSAgICB1bnNp
Z25lZCBzaG9ydCBtX21heFJldHJhbnNtaXRzOwotICAgIHVuc2lnbmVkIHNob3J0IG1faWQ7Ci0g
ICAgYm9vbCBtX29yZGVyZWQ7Ci0gICAgYm9vbCBtX25lZ290aWF0ZWQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDQzZDFkZDdiOGZjNmViODIyZjI2NjVlOTQ1NTI5NmI1
Nzg3ZmM4OS4uMGVmZDZiOTEwMmIyMzU1NDQxYTk1OWZiYmU5NjIwNjc0MjM0NzgxMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDE2LTExLTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWZyZXNoIFJUQ0RhdGFDaGFubmVsIGFic3RyYWN0IGluZnJhc3Ry
dWN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNoYW5uZWwtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNo
YW5uZWwuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAxNi0xMS0xMSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbY3NzLWdyaWRdIEFTU0VSVElPTiBGQUlMRUQ6ICFtX2dyaWRJc0RpcnR5IGluIFdl
YkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRSb3dDb3VudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFj
aGFubmVsLWV4cGVjdGVkLnR4dAppbmRleCBiM2M3OTQ5YzRjNzdlYzI1MmM0N2QxNmMyM2MyNDE3
ZTY1YThlOWQxLi44NGYxNmEwZTMyMzk2MTAxNmRjMDYyNmM3MDc0ZWFmYTM1ZDcxOTQxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRh
dGFjaGFubmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dApAQCAtMywzNSArMywx
NCBAQCBUZXN0cyBSVENEYXRhQ2hhbm5lbC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAog
Ci1QQVNTIGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoImxhYmVsIiwge21heFJldHJhbnNtaXRU
aW1lOjAsIG1heFJldHJhbnNtaXRzOjB9KTsgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yIChE
T00gRXhjZXB0aW9uIDEyKTogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBw
YXR0ZXJuLi4KK0ZBSUwgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwiLCB7bWF4UmV0
cmFuc21pdFRpbWU6MCwgbWF4UmV0cmFuc21pdHM6MH0pOyBzaG91bGQgdGhyb3cgYW4gZXhjZXB0
aW9uLiBXYXMgW29iamVjdCBSVENEYXRhQ2hhbm5lbF0uCiBQQVNTIGRjID0gcGMuY3JlYXRlRGF0
YUNoYW5uZWwoImxhYmVsMSIpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgZGMgPSBw
Yy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwyIiwge30pOyBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KIFBBU1MgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwzIiwge29yZGVyZWQ6dHJ1
ZX0pOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgZGMgPSBwYy5jcmVhdGVEYXRhQ2hh
bm5lbCgibGFiZWwzIiwge29yZGVyZWQ6ZmFsc2V9KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
CiBQQVNTIGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoImxhYmVsMyIsIHttYXhSZXRyYW5zbWl0
czowfSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBkYyA9IHBjLmNyZWF0ZURhdGFD
aGFubmVsKCJsYWJlbDMiLCB7bWF4UmV0cmFuc21pdFRpbWU6MH0pOyBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KLVBBU1MgcGMgaXMgY29ubmVjdGVkCi1QQVNTIGRjID0gcGMuY3JlYXRlRGF0YUNo
YW5uZWwoImxhYmVsIik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBkYy5yZWFkeVN0
YXRlIGlzICdjb25uZWN0aW5nJwotUEFTUyBwY19vbmRhdGFjaGFubmVsIHdhcyBjYWxsZWQKLVBB
U1MgZGNfb25vcGVuIHdhcyBjYWxsZWQKLVBBU1MgZGMucmVhZHlTdGF0ZSBpcyAnb3BlbicKLVBB
U1MgZGMubGFiZWwgaXMgJ2xhYmVsJwotUEFTUyBkYy5zZW5kKCd4eXp6eScpOyBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KLVBBU1MgZGNfb25tZXNzYWdlX3N0cmluZyB3YXMgY2FsbGVkCi1QQVNT
IGRhdGEgaXMgJ3h5enp5JwotUEFTUyBkYy5zZW5kKGJ1ZmZlcik7IGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgotUEFTUyBkY19vbm1lc3NhZ2VfYXJyYXlidWZmZXIgd2FzIGNhbGxlZAotUEFTUyBk
YXRhLmJ5dGVMZW5ndGggaXMgMgotUEFTUyBhcnJheVswXSBpcyAxNwotUEFTUyBhcnJheVsxXSBp
cyAxOQotUEFTUyBkYy5zZW5kKGFycmF5KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNT
IGRjX29ubWVzc2FnZV9hcnJheWJ1ZmZlcnZpZXcgd2FzIGNhbGxlZAotUEFTUyBkYXRhLmJ5dGVM
ZW5ndGggaXMgMgotUEFTUyBhcnJheVswXSBpcyAxMQotUEFTUyBhcnJheVsxXSBpcyAxMwotUEFT
UyBkY19vbmNsb3NlIHdhcyBjYWxsZWQKLVBBU1MgZGMucmVhZHlTdGF0ZSBpcyAnY2xvc2VkJwor
RkFJTCBUZXN0IHRpbWVkIG91dAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLmh0bWwKaW5kZXggOTYzYTdmMWM3
MzAzNTcxNTQ5OTk2Y2NmYWEwZTk4ZThmY2Y2NmYzMy4uNjFhNjgwYmRjYTIyNzZlZDJmMWFkMWU2
M2M4N2VhOTZiYzYzMjNiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNoYW5uZWwuaHRtbApAQCAtOTks
NiArOTksMTEgQEAKIAogICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwog
ICAgICAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKyAgICAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
VGVzdCB0aW1lZCBvdXQiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgICAgIH0sIDIwMDApOwogICAgICAgICA8L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogICAgIDwvYm9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzk5NDMyZmYz
YjY2Njg5YTAzOTNmZTg2MTBjMmNlY2U2YjQ1YWRjNC4uMDBiMWYzYjQ2NjBjZDJjOWU1NDNhNjkx
MTkzOWFlMmYyZjAxZTMzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTE2NSw3ICsxNjUsNiBAQCBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaHRtbAogCiAjIFdlYlJUQyBpcyBub3Qgc3VwcG9ydGVkIHlldC4KIGZhc3QvZXZlbnRzL2Nv
bnN0cnVjdG9ycy9tZWRpYS1zdHJlYW0tZXZlbnQtY29uc3RydWN0b3IuaHRtbAotZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1sIFsgU2tpcCBdCiBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWR0bWYuaHRtbCBbIFNraXAgXQogZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1ldmVudHMuaHRtbCBbIFNraXAgXQogZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2UuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294618</attachid>
            <date>2016-11-12 09:53:29 -0800</date>
            <delta_ts>2016-11-12 09:57:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164680-20161112094913.patch</filename>
            <type>text/plain</type>
            <size>37436</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM4NDAzMGNiNTg5MTgy
MDI0NDRjZGE2MGFlMGY2YWE1YTJlNmI2My4uYmUxYmU4NmU2NWI2OTgxZWI0Nzc2MjIwMjc4M2M0
YmQzN2M1YmJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE2LTExLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZyZXNoIFJUQ0RhdGFD
aGFubmVsIGFic3RyYWN0IGluZnJhc3RydWN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyByZWFsIGNoYW5nZXMsIGV4Y2VwdCB0aGF0IGEgbW9j
ayBkYXRhIGNoYW5uZWwgaXMgbm93IHJldHVybmVkIGZvciBsYXlvdXQgdGVzdC4KKyAgICAgICAg
Q292ZXJlZCBieSBhY3RpdmF0ZWQgYW5kIHJlYmFzZWQgdGVzdC4KKworICAgICAgICBBZGRpbmcg
c3VwcG9ydCBmb3IgbW9jayBkYXRhIGNoYW5uZWwuCisgICAgICAgIFVwZGF0aW5nIGRhdGEgY2hh
bm5lbCBjcmVhdGlvbiBieSB1c2luZyBkaWN0aW9uYXJ5IGJpbmRpbmcgaW5mcmFzdHJ1Y3R1cmUu
CisgICAgICAgIFN0b3Jpbmcgb2Ygb3B0aW9ucyBkaXJlY3RseSBpbiBSVENEYXRhQ2hhbm5lbCB0
byByZWR1Y2UgdGhlIHVzZSBvZiB0aGUgZGF0YSBjaGFubmVsIGhhbmRsZXIuCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZURhdGFD
aGFubmVsSGFuZGxlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6UlRDRGF0YUNoYW5uZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjp+UlRDRGF0YUNoYW5uZWwpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmxhYmVsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjpvcmRlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsOjptYXhSZXRyYW5zbWl0VGltZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6bWF4UmV0cmFuc21pdHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OnByb3RvY29sKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjpuZWdvdGlhdGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjppZCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
VENEYXRhQ2hhbm5lbEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxFdmVudDo6UlRDRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbEV2ZW50Ojp+UlRDRGF0YUNoYW5uZWxFdmVudCk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlRGF0YUNoYW5uZWwpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5TWVk
aWFFbmRwb2ludDo6RW1wdHlNZWRpYUVuZHBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpSVENEYXRhQ2hhbm5lbEluaXQ6OlJUQ0RhdGFDaGFubmVsSW5pdCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRW5kcG9pbnRPd3I6OmNyZWF0ZURhdGFDaGFu
bmVsSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9N
ZWRpYUVuZHBvaW50T3dyLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRw
b2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6Y3JlYXRlRGF0
YUNoYW5uZWxIYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBv
aW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2Nr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6OlJUQ0Rh
dGFDaGFubmVsSGFuZGxlck1vY2spOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svUlRDRGF0YUNo
YW5uZWxIYW5kbGVyTW9jay5oOgorCiAyMDE2LTExLTEyICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSAzMi1iaXQgYnVpbGQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMDMxYTFmNDVkMjA2MjgwNGNhNzEx
MTQ2MTRlMTU2ODFhNjE0MjFiZS4uNDU3YWE3NjAwNjVlOWM0N2VhZDU1MWMzZjk5ZmM1MGEwN2E4
MzE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcApAQCAtNzA1LDYgKzcw
NSwxMSBAQCBSZWZQdHI8UlRDUnRwUmVjZWl2ZXI+IE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bjo6Y3JlYXRlUmVjZWl2ZXIoY29uc3QgU3RyaW5nJgogICAgIHJldHVybiBSVENSdHBSZWNlaXZl
cjo6Y3JlYXRlKFdURk1vdmUocmVtb3RlVHJhY2spKTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPFJU
Q0RhdGFDaGFubmVsSGFuZGxlcj4gTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpjcmVhdGVE
YXRhQ2hhbm5lbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgUlRDRGF0YUNoYW5u
ZWxJbml0JiBvcHRpb25zKQoreworICAgIHJldHVybiBtX21lZGlhRW5kcG9pbnQtPmNyZWF0ZURh
dGFDaGFubmVsSGFuZGxlcihsYWJlbCwgb3B0aW9ucyk7Cit9CisKIHZvaWQgTWVkaWFFbmRwb2lu
dFBlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIFJlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrPiYmIHdpdGhUcmFjaywgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9t
aXNlJiYgcHJvbWlzZSkKIHsKICAgICBSVENSdHBUcmFuc2NlaXZlciogdHJhbnNjZWl2ZXIgPSBt
YXRjaFRyYW5zY2VpdmVyKG1fcGVlckNvbm5lY3Rpb24uZ2V0VHJhbnNjZWl2ZXJzKCksIFsmc2Vu
ZGVyXSAoUlRDUnRwVHJhbnNjZWl2ZXImIGN1cnJlbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29u
bmVjdGlvbi5oCmluZGV4IDhlZmVhYzRlZDFiN2YzYTVlYjljZDRkZTQ0NTM0NjI5NmVkOTdjZDQu
LjI3ZDg5ZDZmODA3NTZlZTk1Y2I2NzNiOGM2MTc0NjU3Y2JlYjQ0MzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb24uaApAQCAtNzcsNiArNzcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYgYWN0aW9uKSBvdmVycmlkZTsKIAor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGNyZWF0ZURhdGFDaGFu
bmVsSGFuZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmKSBmaW5h
bDsKKwogcHJpdmF0ZToKICAgICB2b2lkIHJ1blRhc2soRnVuY3Rpb248dm9pZCAoKT4mJik7CiAg
ICAgdm9pZCBzdGFydFJ1bm5pbmdUYXNrcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKaW5kZXggOTk2
MmRkNzAxODk4YzkyYWQ2ZTA1MzdiMjBlYjAyMGM3YTUyNjg4My4uNmQxMWQ5YjQwYzg4NWEyNzlm
ODRjYjdlNDA4ZGEwZjNkNmRhZmFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC0zNCw2ICsz
NCw3IEBACiAKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJQZWVyQ29ubmVj
dGlvblN0YXRlcy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDMsNiArNDQsNyBAQCBjbGFzcyBNZWRpYVN0cmVhbTsKIGNsYXNzIE1l
ZGlhU3RyZWFtVHJhY2s7CiBjbGFzcyBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ7CiBjbGFzcyBSVEND
b25maWd1cmF0aW9uOworY2xhc3MgUlRDRGF0YUNoYW5uZWxIYW5kbGVyOwogY2xhc3MgUlRDSWNl
Q2FuZGlkYXRlOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247CiBjbGFzcyBSVENSdHBSZWNlaXZl
cjsKQEAgLTc3LDYgKzc5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRp
b24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiwgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJiYp
OwogICAgIHZvaWQgYWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSYsIFBlZXJDb25uZWN0
aW9uOjpWb2lkUHJvbWlzZSYmKTsKIAorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFJUQ0Rh
dGFDaGFubmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYpID0gMDsKKwogICAgIHZvaWQgc3RvcCgpOwogCiAg
ICAgdmlydHVhbCBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBsb2NhbERlc2NyaXB0aW9u
KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAppbmRleCBiNzIwYzJjNmVmZDU0ZGM1ZDA0Njg5NzE4NDYy
ZTNjMzM4OTNkMjk2Li5kMTQxZjJlYzA5YjRiNjI2OTVmNTVjMTcxOGIxODc5ZTc0NTg0NzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFu
bmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFD
aGFubmVsLmNwcApAQCAtNTUsODUgKzU1LDIzIEBAIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IGFycmF5YnVmZmVyS2V5d29yZCgpCiAgICAgcmV0dXJuIGFycmF5YnVmZmVyOwogfQogCi1FeGNl
cHRpb25PcjxSZWY8UlRDRGF0YUNoYW5uZWw+PiBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciogcGVl
ckNvbm5lY3Rpb25IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBEaWN0aW9uYXJ5
JiBvcHRpb25zKQotewotICAgIFJUQ0RhdGFDaGFubmVsSW5pdCBpbml0RGF0YTsKLSAgICBTdHJp
bmcgbWF4UmV0cmFuc21pdHNTdHI7Ci0gICAgU3RyaW5nIG1heFJldHJhbnNtaXRUaW1lU3RyOwot
ICAgIG9wdGlvbnMuZ2V0KCJvcmRlcmVkIiwgaW5pdERhdGEub3JkZXJlZCk7Ci0gICAgb3B0aW9u
cy5nZXQoIm5lZ290aWF0ZWQiLCBpbml0RGF0YS5uZWdvdGlhdGVkKTsKLSAgICBvcHRpb25zLmdl
dCgiaWQiLCBpbml0RGF0YS5pZCk7Ci0gICAgb3B0aW9ucy5nZXQoIm1heFJldHJhbnNtaXRzIiwg
bWF4UmV0cmFuc21pdHNTdHIpOwotICAgIG9wdGlvbnMuZ2V0KCJtYXhSZXRyYW5zbWl0VGltZSIs
IG1heFJldHJhbnNtaXRUaW1lU3RyKTsKLSAgICBvcHRpb25zLmdldCgicHJvdG9jb2wiLCBpbml0
RGF0YS5wcm90b2NvbCk7Ci0KLSAgICBib29sIG1heFJldHJhbnNtaXRzQ29udmVyc2lvbjsKLSAg
ICBib29sIG1heFJldHJhbnNtaXRUaW1lQ29udmVyc2lvbjsKLSAgICBpbml0RGF0YS5tYXhSZXRy
YW5zbWl0cyA9IG1heFJldHJhbnNtaXRzU3RyLnRvVUludFN0cmljdCgmbWF4UmV0cmFuc21pdHND
b252ZXJzaW9uKTsKLSAgICBpbml0RGF0YS5tYXhSZXRyYW5zbWl0VGltZSA9IG1heFJldHJhbnNt
aXRUaW1lU3RyLnRvVUludFN0cmljdCgmbWF4UmV0cmFuc21pdFRpbWVDb252ZXJzaW9uKTsKLSAg
ICBpZiAobWF4UmV0cmFuc21pdHNDb252ZXJzaW9uICYmIG1heFJldHJhbnNtaXRUaW1lQ29udmVy
c2lvbikKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNZTlRBWF9FUlIgfTsKLQotICAgIGF1
dG8gaGFuZGxlciA9IHBlZXJDb25uZWN0aW9uSGFuZGxlci0+Y3JlYXRlRGF0YUNoYW5uZWwobGFi
ZWwsIGluaXREYXRhKTsKLSAgICBpZiAoIWhhbmRsZXIpCi0gICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOT1RfU1VQUE9SVEVEX0VSUiB9OwotCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRD
RGF0YUNoYW5uZWwoKmNvbnRleHQsIFdURk1vdmUoaGFuZGxlcikpKTsKLX0KLQotUmVmPFJUQ0Rh
dGFDaGFubmVsPiBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYgaGFuZGxl
cikKK1JlZjxSVENEYXRhQ2hhbm5lbD4gUlRDRGF0YUNoYW5uZWw6OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5k
bGVyPiYmIGhhbmRsZXIsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5lbEluaXQmJiBvcHRp
b25zKQogeworICAgIEFTU0VSVChjb250ZXh0KTsKICAgICBBU1NFUlQoaGFuZGxlcik7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRGF0YUNoYW5uZWwoKmNvbnRleHQsIFdURk1vdmUoaGFu
ZGxlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENEYXRhQ2hhbm5lbCgqY29udGV4
dCwgV1RGTW92ZShoYW5kbGVyKSwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9ucykpKTsK
IH0KIAotUlRDRGF0YUNoYW5uZWw6OlJUQ0RhdGFDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYgaGFu
ZGxlcikKK1JUQ0RhdGFDaGFubmVsOjpSVENEYXRhQ2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiYmIGhh
bmRsZXIsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5lbEluaXQmJiBvcHRpb25zKQogICAg
IDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KCZjb250ZXh0KQogICAgICwgbV9oYW5kbGVyKFdU
Rk1vdmUoaGFuZGxlcikpCiAgICAgLCBtX3NjaGVkdWxlZEV2ZW50VGltZXIoKnRoaXMsICZSVENE
YXRhQ2hhbm5lbDo6c2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKQorICAgICwgbV9sYWJlbChXVEZN
b3ZlKGxhYmVsKSkKKyAgICAsIG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKQogewogICAgIG1f
aGFuZGxlci0+c2V0Q2xpZW50KHRoaXMpOwogfQogCi1SVENEYXRhQ2hhbm5lbDo6flJUQ0RhdGFD
aGFubmVsKCkKLXsKLX0KLQotU3RyaW5nIFJUQ0RhdGFDaGFubmVsOjpsYWJlbCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+bGFiZWwoKTsKLX0KLQotYm9vbCBSVENEYXRhQ2hhbm5l
bDo6b3JkZXJlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+b3JkZXJlZCgpOwot
fQotCi11bnNpZ25lZCBzaG9ydCBSVENEYXRhQ2hhbm5lbDo6bWF4UmV0cmFuc21pdFRpbWUoKSBj
b25zdAotewotICAgIHJldHVybiBtX2hhbmRsZXItPm1heFJldHJhbnNtaXRUaW1lKCk7Ci19Ci0K
LXVuc2lnbmVkIHNob3J0IFJUQ0RhdGFDaGFubmVsOjptYXhSZXRyYW5zbWl0cygpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+bWF4UmV0cmFuc21pdHMoKTsKLX0KLQotU3RyaW5nIFJU
Q0RhdGFDaGFubmVsOjpwcm90b2NvbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+
cHJvdG9jb2woKTsKLX0KLQotYm9vbCBSVENEYXRhQ2hhbm5lbDo6bmVnb3RpYXRlZCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+bmVnb3RpYXRlZCgpOwotfQotCi11bnNpZ25lZCBz
aG9ydCBSVENEYXRhQ2hhbm5lbDo6aWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2hhbmRsZXIt
PmlkKCk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgUlRDRGF0YUNoYW5uZWw6OnJlYWR5U3Rh
dGUoKSBjb25zdAogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGNv
bm5lY3RpbmdTdGF0ZSgiY29ubmVjdGluZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwpAQCAtMTU4LDcgKzk2LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBSVENEYXRhQ2hh
bm5lbDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiAKIHVuc2lnbmVkIFJUQ0RhdGFDaGFubmVsOjpidWZm
ZXJlZEFtb3VudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+YnVmZmVyZWRBbW91
bnQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBSVENEYXRhQ2hh
bm5lbDo6YmluYXJ5VHlwZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKaW5kZXggZGFlNWQyNDgyNTM3ZDE1NGI1ZjRl
ZjdmMWY4MzVjZDQxMzI2YWU3ZC4uMjkyMDYzMDUwNzY4MGE1ZDc4YTk3YTgyOGFlMGUyMDhjYTky
NzA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENE
YXRhQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWwuaApAQCAtMjYsOCArMjYsMTAgQEAKIAogI2lmIEVOQUJMRShXRUJfUlRDKQog
CisjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgiCiAjaW5j
bHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0V3Jh
cHBhYmxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTQxLDIyICs0MywyMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2I7CiBjbGFzcyBEaWN0aW9uYXJ5OwotY2xhc3MgUlRD
RGF0YUNoYW5uZWxIYW5kbGVyOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOwogCiBj
bGFzcyBSVENEYXRhQ2hhbm5lbCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0RhdGFDaGFu
bmVsPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBSVENEYXRhQ2hh
bm5lbEhhbmRsZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UlRDRGF0YUNoYW5u
ZWw+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgc3RkOjp1bmlxdWVfcHRyPFJUQ0Rh
dGFDaGFubmVsSGFuZGxlcj4mJik7Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxSVENEYXRh
Q2hhbm5lbD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyKiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9u
cyk7Ci0gICAgflJUQ0RhdGFDaGFubmVsKCk7Ci0KLSAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsK
LSAgICBib29sIG9yZGVyZWQoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBzaG9ydCBtYXhSZXRyYW5z
bWl0VGltZSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNtaXRzKCkgY29u
c3Q7Ci0gICAgU3RyaW5nIHByb3RvY29sKCkgY29uc3Q7Ci0gICAgYm9vbCBuZWdvdGlhdGVkKCkg
Y29uc3Q7Ci0gICAgdW5zaWduZWQgc2hvcnQgaWQoKSBjb25zdDsKKyAgICBzdGF0aWMgUmVmPFJU
Q0RhdGFDaGFubmVsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHN0ZDo6dW5pcXVl
X3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYsIFN0cmluZyYmLCBSVENEYXRhQ2hhbm5lbElu
aXQmJik7CisKKyAgICBib29sIG9yZGVyZWQoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMub3Jk
ZXJlZDsgfQorICAgIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNtaXRUaW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcHRpb25zLm1heFJldHJhbnNtaXRUaW1lOyB9CisgICAgdW5zaWduZWQgc2hvcnQg
bWF4UmV0cmFuc21pdHMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMubWF4UmV0cmFuc21pdHM7
IH0KKyAgICBTdHJpbmcgcHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMucHJvdG9j
b2w7IH0KKyAgICBib29sIG5lZ290aWF0ZWQoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMubmVn
b3RpYXRlZDsgfTsKKyAgICB1bnNpZ25lZCBzaG9ydCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9ucy5pZDsgfTsKKworICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7
IH0KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHJlYWR5U3RhdGUoKSBjb25zdDsKICAgICB1bnNp
Z25lZCBidWZmZXJlZEFtb3VudCgpIGNvbnN0OwogCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoK
ICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogcHJpdmF0ZToKLSAgICBSVENEYXRhQ2hh
bm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFu
bmVsSGFuZGxlcj4mJik7CisgICAgUlRDRGF0YUNoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYsIFN0cmluZyYmLCBS
VENEYXRhQ2hhbm5lbEluaXQmJik7CiAKICAgICB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hFdmVudChS
ZWY8RXZlbnQ+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKCk7CkBAIC05
Myw2ICs5Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlU3RyaW5nRGF0YShjb25z
dCBTdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVSYXdEYXRhKGNvbnN0IGNoYXIq
LCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgZGlkRGV0ZWN0RXJyb3IoKSBmaW5hbDsKKyAgICB2
b2lkIHByb3RlY3QoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCB1bnByb3RlY3QoKSBmaW5h
bCB7IGRlcmVmKCk7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRs
ZXI+IG1faGFuZGxlcjsKIApAQCAtMTA1LDYgKzEwNyw5IEBAIHByaXZhdGU6CiAKICAgICBUaW1l
ciBtX3NjaGVkdWxlZEV2ZW50VGltZXI7CiAgICAgVmVjdG9yPFJlZjxFdmVudD4+IG1fc2NoZWR1
bGVkRXZlbnRzOworCisgICAgU3RyaW5nIG1fbGFiZWw7CisgICAgUlRDRGF0YUNoYW5uZWxJbml0
IG1fb3B0aW9uczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQu
Y3BwCmluZGV4IDU4OTk1OTQ5NTFlYTI5MTNjMDFjY2U3ZjY0NTk2NzE4NTRmYTE2YTguLjhhNWVl
ZTU2YWE5NjVlZWE0YzljZGIxZmQ4ZTk4Y2E1YjdjNGQ4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmNw
cApAQCAtMzIsMTggKzMyLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFJUQ0Rh
dGFDaGFubmVsRXZlbnQ+IFJUQ0RhdGFDaGFubmVsRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJUQ0RhdGFDaGFu
bmVsJiBjaGFubmVsKQorUmVmPFJUQ0RhdGFDaGFubmVsRXZlbnQ+IFJUQ0RhdGFDaGFubmVsRXZl
bnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIFJlZjxSVENEYXRhQ2hhbm5lbD4mJiBjaGFubmVsKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJUQ0RhdGFDaGFubmVsRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5j
ZWxhYmxlLCBjaGFubmVsKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRGF0YUNoYW5u
ZWxFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURk1vdmUoY2hhbm5lbCkpKTsK
IH0KIAotUlRDRGF0YUNoYW5uZWxFdmVudDo6UlRDRGF0YUNoYW5uZWxFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJUQ0RhdGFD
aGFubmVsJiBjaGFubmVsKQorUlRDRGF0YUNoYW5uZWxFdmVudDo6UlRDRGF0YUNoYW5uZWxFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIFJlZjxSVENEYXRhQ2hhbm5lbD4mJiBjaGFubmVsKQogICAgIDogRXZlbnQodHlwZSwgY2Fu
QnViYmxlLCBjYW5jZWxhYmxlKQotICAgICwgbV9jaGFubmVsKGNoYW5uZWwpCi17Ci19Ci0KLVJU
Q0RhdGFDaGFubmVsRXZlbnQ6On5SVENEYXRhQ2hhbm5lbEV2ZW50KCkKKyAgICAsIG1fY2hhbm5l
bChXVEZNb3ZlKGNoYW5uZWwpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5oCmluZGV4IDE0MGRmOGFh
ZmZhOGVjZmRjZTFhZjMzZmI4ZTY4ZWFlOTM0ZjAyNzcuLjUyNDFlMjc5MGU1ODk3NWY1YTM1ZDBm
ZTIzZTljOTJkYzQ1YmMyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5oCkBAIC0zNCwxNiArMzQsMTQgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSVENEYXRhQ2hhbm5lbEV2ZW50IDogcHVibGlj
IEV2ZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5SVENEYXRhQ2hhbm5lbEV2ZW50KCk7Ci0K
LSAgICBzdGF0aWMgUmVmPFJUQ0RhdGFDaGFubmVsRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJUQ0RhdGFDaGFu
bmVsJik7CisgICAgc3RhdGljIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBSZWY8
UlRDRGF0YUNoYW5uZWw+JiYpOwogCiAgICAgUlRDRGF0YUNoYW5uZWwqIGNoYW5uZWwoKTsKIAog
ICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdDsKIAogcHJp
dmF0ZToKLSAgICBSVENEYXRhQ2hhbm5lbEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUlRDRGF0YUNoYW5uZWwmKTsKKyAgICBS
VENEYXRhQ2hhbm5lbEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgUmVmPFJUQ0RhdGFDaGFubmVsPiYmKTsKIAogICAgIFJlZjxS
VENEYXRhQ2hhbm5lbD4gbV9jaGFubmVsOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNmVjM2U5
MmZhMWM0MjNiZTc5ZDZlMDVlMmFkOWIyZTdiMDhlNTU2ZS4uZjZhN2UzYzU3MzQ0YmQ1NWQ0MDdm
ZDNmNmVmZjg4YjZjYWI5ZmVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTM2OSwxMiArMzY5LDE3
IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnByaXZhdGVHZXRTdGF0cyhNZWRpYVN0cmVhbVRy
YWNrKiBzZWxlY3RvciwgUGVlckNvbm5lY3RpCiAgICAgbV9iYWNrZW5kLT5nZXRTdGF0cyhzZWxl
Y3RvciwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPFJlZlB0cjxSVENEYXRh
Q2hhbm5lbD4+IFJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGVEYXRhQ2hhbm5lbChjb25zdCBTdHJp
bmcmLCBjb25zdCBEaWN0aW9uYXJ5JikKK0V4Y2VwdGlvbk9yPFJlZjxSVENEYXRhQ2hhbm5lbD4+
IFJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGVEYXRhQ2hhbm5lbChTdHJpbmcmJiBsYWJlbCwgUlRD
RGF0YUNoYW5uZWxJbml0JiYgb3B0aW9ucykKIHsKICAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9
PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5W
QUxJRF9TVEFURV9FUlIgfTsKIAotICAgIHJldHVybiBudWxscHRyOworICAgIC8vIEZJWE1FOiBD
aGVjayBvcHRpb25zCisgICAgYXV0byBjaGFubmVsSGFuZGxlciA9IG1fYmFja2VuZC0+Y3JlYXRl
RGF0YUNoYW5uZWxIYW5kbGVyKGxhYmVsLCBvcHRpb25zKTsKKyAgICBpZiAoIWNoYW5uZWxIYW5k
bGVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTk9UX1NVUFBPUlRFRF9FUlIgfTsKKwor
ICAgIHJldHVybiBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgV1RGTW92ZShjaGFubmVsSGFuZGxlciksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKG9wdGlv
bnMpKTsKIH0KIAogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmlu
ZGV4IDc1OTE0N2I2MjkwYWIwNTM2Y2Y2YzA1ZGFkNDc0Zjk4M2Y5Y2VjNDkuLmJlMTI2ZTc0MWUx
YmNjZjlmNzA4OWZiMWQ4ZDEyYmYxYjlhY2NhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTM4LDYgKzM4
LDcgQEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIK
ICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAj
aW5jbHVkZSAiUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNj
ZWl2ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTQ5LDcgKzUwLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIFBlZXJD
b25uZWN0aW9uQmFja2VuZDsKIGNsYXNzIFJUQ0NvbmZpZ3VyYXRpb247Ci1jbGFzcyBSVENEYXRh
Q2hhbm5lbDsKIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZTsKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9u
RXJyb3JDYWxsYmFjazsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjsKQEAgLTYwLDkgKzYw
LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJUQ1BlZXJDb25uZWN0aW9uPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIH5SVENQZWVyQ29ubmVjdGlvbigpOwogCisg
ICAgdXNpbmcgQW5zd2VyT3B0aW9ucyA9IFJUQ0Fuc3dlck9wdGlvbnM7CisgICAgdXNpbmcgRGF0
YUNoYW5uZWxJbml0ID0gUlRDRGF0YUNoYW5uZWxJbml0OwogICAgIHVzaW5nIE9mZmVyQW5zd2Vy
T3B0aW9ucyA9IFJUQ09mZmVyQW5zd2VyT3B0aW9uczsKICAgICB1c2luZyBPZmZlck9wdGlvbnMg
PSBSVENPZmZlck9wdGlvbnM7Ci0gICAgdXNpbmcgQW5zd2VyT3B0aW9ucyA9IFJUQ0Fuc3dlck9w
dGlvbnM7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbml0aWFsaXplV2l0aChEb2N1bWVudCYs
IGNvbnN0IERpY3Rpb25hcnkmKTsKIApAQCAtMTExLDcgKzExMiw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcHJpdmF0ZUdldFN0YXRzKE1lZGlhU3RyZWFtVHJhY2sqLCBQZWVyQ29ubmVjdGlvbjo6
U3RhdHNQcm9taXNlJiYpOwogCi0gICAgRXhjZXB0aW9uT3I8UmVmUHRyPFJUQ0RhdGFDaGFubmVs
Pj4gY3JlYXRlRGF0YUNoYW5uZWwoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgRGljdGlvbmFy
eSYgZGF0YUNoYW5uZWxEaWN0KTsKKyAgICBFeGNlcHRpb25PcjxSZWY8UlRDRGF0YUNoYW5uZWw+
PiBjcmVhdGVEYXRhQ2hhbm5lbChTdHJpbmcmJiwgUlRDRGF0YUNoYW5uZWxJbml0JiYpOwogCiAg
ICAgdm9pZCBjbG9zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsCmluZGV4IGVmMWVmNTdhYzk1Zjc0NDY2
NzQyNzc4YzhiYTdkZTU2ZmU3MTI0OTcuLmIwMmFlZTQ2MWM2ZTRkZWQ3OTAwOTQ0MmU5NmNlODVh
NjFlMWE1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsCkBAIC00MSw2ICs0MSwxNSBAQCBkaWN0aW9uYXJ5
IFJUQ09mZmVyT3B0aW9ucyA6IFJUQ09mZmVyQW5zd2VyT3B0aW9ucyB7CiBkaWN0aW9uYXJ5IFJU
Q0Fuc3dlck9wdGlvbnMgOiBSVENPZmZlckFuc3dlck9wdGlvbnMgewogfTsKIAorZGljdGlvbmFy
eSBSVENEYXRhQ2hhbm5lbEluaXQgeworICAgIGJvb2xlYW4gICAgICAgIG9yZGVyZWQgPSB0cnVl
OworICAgIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNtaXRUaW1lOworICAgIHVuc2lnbmVkIHNo
b3J0IG1heFJldHJhbnNtaXRzOworICAgIFVTVlN0cmluZyAgICAgIHByb3RvY29sID0gIiI7Cisg
ICAgYm9vbGVhbiAgICAgICAgbmVnb3RpYXRlZCA9IGZhbHNlOworICAgIHVuc2lnbmVkIHNob3J0
IGlkOworfTsKKwogWwogICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1XRUJf
UlRDLApAQCAtMTI1LDcgKzEzNCw3IEBAIGRpY3Rpb25hcnkgUlRDQW5zd2VyT3B0aW9ucyA6IFJU
Q09mZmVyQW5zd2VyT3B0aW9ucyB7CiAgICAgW1ByaXZhdGVJZGVudGlmaWVyXSBQcm9taXNlPHZv
aWQ+IHF1ZXVlZEFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKTsKICAg
ICBbUHJpdmF0ZUlkZW50aWZpZXJdIFByb21pc2U8UlRDU3RhdHNSZXBvcnQ+IHByaXZhdGVHZXRT
dGF0cyhNZWRpYVN0cmVhbVRyYWNrPyBzZWxlY3Rvcik7CiAKLSAgICBbTWF5VGhyb3dFeGNlcHRp
b25dIFJUQ0RhdGFDaGFubmVsIGNyZWF0ZURhdGFDaGFubmVsKFtUcmVhdE51bGxBcz1FbXB0eVN0
cmluZ10gRE9NU3RyaW5nIGxhYmVsLCBvcHRpb25hbCBEaWN0aW9uYXJ5IG9wdGlvbnMpOworICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gUlRDRGF0YUNoYW5uZWwgY3JlYXRlRGF0YUNoYW5uZWwoW1Ry
ZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgbGFiZWwsIG9wdGlvbmFsIFJUQ0RhdGFD
aGFubmVsSW5pdCBvcHRpb25zKTsKIAogICAgIHZvaWQgY2xvc2UoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcAppbmRl
eCBkNGM4Y2Q3NDlkMTcxYzY2MmQyZmZlMjBmMjI1MDE0MDEzNDQ1MTQ4Li5lN2M3YTk1MmIxZmI4
ODM4MzAzMzk3YzllNDczYjFiZTFjMWQ3OWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIk1lZGlhRW5kcG9pbnQuaCIKIAogI2luY2x1ZGUgIk1lZGlhUGF5bG9hZC5o
IgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgogI2luY2x1ZGUgIlJlYWx0aW1l
TWVkaWFTb3VyY2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsMzggKzQzLDM3IEBA
IGNsYXNzIEVtcHR5UmVhbHRpbWVNZWRpYVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZU1l
ZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEVtcHR5UmVhbHRpbWVNZWRpYVNv
dXJjZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVJlYWx0aW1lTWVkaWFT
b3VyY2UoKSk7IH0KIAorcHJpdmF0ZToKKyAgICBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSA6
IFJlYWx0aW1lTWVkaWFTb3VyY2UoZW1wdHlTdHJpbmcoKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Tm9uZSwgZW1wdHlTdHJpbmcoKSkgeyB9CisKICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0
cjsgfQogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZVNldHRpbmdzOyB9CiAKLXByaXZhdGU6Ci0gICAg
RW1wdHlSZWFsdGltZU1lZGlhU291cmNlKCkKLSAgICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNl
KGVtcHR5U3RyaW5nKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5vbmUsIGVtcHR5U3RyaW5nKCkp
Ci0gICAgICAgIHsgfQotCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc291cmNl
U2V0dGluZ3M7CiB9OwogCi1jbGFzcyBFbXB0eU1lZGlhRW5kcG9pbnQgOiBwdWJsaWMgTWVkaWFF
bmRwb2ludCB7CitjbGFzcyBFbXB0eU1lZGlhRW5kcG9pbnQgZmluYWwgOiBwdWJsaWMgTWVkaWFF
bmRwb2ludCB7CiBwdWJsaWM6CiAgICAgRW1wdHlNZWRpYUVuZHBvaW50KE1lZGlhRW5kcG9pbnRD
bGllbnQmKSB7IH0KK3ByaXZhdGU6CisgICAgdm9pZCBzZXRDb25maWd1cmF0aW9uKE1lZGlhRW5k
cG9pbnRDb25maWd1cmF0aW9uJiYpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBzZXRDb25maWd1cmF0
aW9uKE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uJiYpIG92ZXJyaWRlIHsgfQotCi0gICAgdm9p
ZCBnZW5lcmF0ZUR0bHNJbmZvKCkgb3ZlcnJpZGUgeyB9Ci0gICAgTWVkaWFQYXlsb2FkVmVjdG9y
IGdldERlZmF1bHRBdWRpb1BheWxvYWRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFQYXlsb2Fk
VmVjdG9yKCk7IH0KLSAgICBNZWRpYVBheWxvYWRWZWN0b3IgZ2V0RGVmYXVsdFZpZGVvUGF5bG9h
ZHMoKSBvdmVycmlkZSB7IHJldHVybiBNZWRpYVBheWxvYWRWZWN0b3IoKTsgfQotICAgIE1lZGlh
UGF5bG9hZFZlY3RvciBmaWx0ZXJQYXlsb2Fkcyhjb25zdCBNZWRpYVBheWxvYWRWZWN0b3ImLCBj
b25zdCBNZWRpYVBheWxvYWRWZWN0b3ImKSBvdmVycmlkZSB7IHJldHVybiBNZWRpYVBheWxvYWRW
ZWN0b3IoKTsgfQorICAgIHZvaWQgZ2VuZXJhdGVEdGxzSW5mbygpIGZpbmFsIHsgfQorICAgIE1l
ZGlhUGF5bG9hZFZlY3RvciBnZXREZWZhdWx0QXVkaW9QYXlsb2FkcygpIGZpbmFsIHsgcmV0dXJu
IE1lZGlhUGF5bG9hZFZlY3RvcigpOyB9CisgICAgTWVkaWFQYXlsb2FkVmVjdG9yIGdldERlZmF1
bHRWaWRlb1BheWxvYWRzKCkgZmluYWwgeyByZXR1cm4gTWVkaWFQYXlsb2FkVmVjdG9yKCk7IH0K
KyAgICBNZWRpYVBheWxvYWRWZWN0b3IgZmlsdGVyUGF5bG9hZHMoY29uc3QgTWVkaWFQYXlsb2Fk
VmVjdG9yJiwgY29uc3QgTWVkaWFQYXlsb2FkVmVjdG9yJikgZmluYWwgeyByZXR1cm4gTWVkaWFQ
YXlsb2FkVmVjdG9yKCk7IH0KIAotICAgIFVwZGF0ZVJlc3VsdCB1cGRhdGVSZWNlaXZlQ29uZmln
dXJhdGlvbihNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24qLCBib29sKSBvdmVycmlk
ZSB7IHJldHVybiBVcGRhdGVSZXN1bHQ6OkZhaWxlZDsgfQotICAgIFVwZGF0ZVJlc3VsdCB1cGRh
dGVTZW5kQ29uZmlndXJhdGlvbihNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24qLCBj
b25zdCBSZWFsdGltZU1lZGlhU291cmNlTWFwJiwgYm9vbCkgb3ZlcnJpZGUgeyByZXR1cm4gVXBk
YXRlUmVzdWx0OjpGYWlsZWQ7IH0KKyAgICBVcGRhdGVSZXN1bHQgdXBkYXRlUmVjZWl2ZUNvbmZp
Z3VyYXRpb24oTWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uKiwgYm9vbCkgZmluYWwg
eyByZXR1cm4gVXBkYXRlUmVzdWx0OjpGYWlsZWQ7IH0KKyAgICBVcGRhdGVSZXN1bHQgdXBkYXRl
U2VuZENvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uKiwgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZU1hcCYsIGJvb2wpIGZpbmFsIHsgcmV0dXJuIFVwZGF0ZVJl
c3VsdDo6RmFpbGVkOyB9CiAKLSAgICB2b2lkIGFkZFJlbW90ZUNhbmRpZGF0ZShjb25zdCBJY2VD
YW5kaWRhdGUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBv
dmVycmlkZSB7IH0KKyAgICB2b2lkIGFkZFJlbW90ZUNhbmRpZGF0ZShjb25zdCBJY2VDYW5kaWRh
dGUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7
IH0KIAotICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVNdXRlZFJlbW90ZVNvdXJj
ZShjb25zdCBTdHJpbmcmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlKSBvdmVycmlkZSB7IHJl
dHVybiBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSgpOyB9Ci0gICAgdm9pZCByZXBs
YWNlU2VuZFNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGUgeyB9Ci0gICAgdm9pZCByZXBsYWNlTXV0ZWRSZW1vdGVTb3VyY2VNaWQoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9OworICAgIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiBjcmVhdGVNdXRlZFJlbW90ZVNvdXJjZShjb25zdCBTdHJpbmcmLCBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlKSBmaW5hbCB7IHJldHVybiBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
ZWF0ZSgpOyB9CisgICAgdm9pZCByZXBsYWNlU2VuZFNvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
JiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgdm9pZCByZXBsYWNlTXV0ZWRSZW1vdGVT
b3VyY2VNaWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9OwogCi0gICAg
dm9pZCBzdG9wKCkgb3ZlcnJpZGUgeyB9CisgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFu
bmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFJUQ0RhdGFDaGFubmVsSW5pdCYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2b2lk
IHN0b3AoKSBmaW5hbCB7IH0KIH07CiAKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFFbmRw
b2ludD4gY3JlYXRlTWVkaWFFbmRwb2ludChNZWRpYUVuZHBvaW50Q2xpZW50JiBjbGllbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
LmgKaW5kZXggZjI3NzM3ZjgyZDQ2ZWI1NTk5ZTQ0YzU4YzdmZjUzMTQwZmU3ODBjYi4uMWM1OTZk
MjdiYjhlOTNkMjM1NzY0NTJjOTgxMTBhMzhjZjYwNjI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaApAQCAtMzksMTMgKzM5
LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEljZUNhbmRpZGF0ZTsKIGNs
YXNzIE1lZGlhRW5kcG9pbnQ7CiBjbGFzcyBNZWRpYUVuZHBvaW50Q2xpZW50OwogY2xhc3MgTWVk
aWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uOwotc3RydWN0IE1lZGlhUGF5bG9hZDsKK2Ns
YXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlcjsKIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CiAK
K3N0cnVjdCBJY2VDYW5kaWRhdGU7CitzdHJ1Y3QgTWVkaWFQYXlsb2FkOworc3RydWN0IFJUQ0Rh
dGFDaGFubmVsSW5pdDsKKwogdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFFbmRwb2ludD4g
KCpDcmVhdGVNZWRpYUVuZHBvaW50KShNZWRpYUVuZHBvaW50Q2xpZW50Jik7CiB0eXBlZGVmIFZl
Y3RvcjxNZWRpYVBheWxvYWQ+IE1lZGlhUGF5bG9hZFZlY3RvcjsKIHR5cGVkZWYgSGFzaE1hcDxT
dHJpbmcsIFJlYWx0aW1lTWVkaWFTb3VyY2UqPiBSZWFsdGltZU1lZGlhU291cmNlTWFwOwpAQCAt
NzksNiArODIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcGxhY2VTZW5kU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2UmLCBjb25zdCBTdHJpbmcmIG1pZCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCByZXBsYWNlTXV0ZWRSZW1vdGVTb3VyY2VNaWQoY29uc3QgU3RyaW5nJiBvbGRNaWQs
IGNvbnN0IFN0cmluZyYgbmV3TWlkKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0
cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBT
dHJpbmcmLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmKSA9IDA7CisKICAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChj
b25zdCBTdHJpbmcmKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCmluZGV4IDUyMmY5NzUzNTli
NmYxZGE5ZTUxNDBiNDZkZDhhNTk2NzkxNTJhNWIuLmIyYTM3OWEwODBlOGE3Nzk1OTJiMDE5YTE4
NWY1YmUwN2I0ZWZjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCkBAIC0yMiw4ICsyMiw3IEBA
CiAgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFJUQ0RhdGFDaGFubmVsSGFuZGxlcl9oCi0jZGVmaW5l
IFJUQ0RhdGFDaGFubmVsSGFuZGxlcl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShXRUJf
UlRDKQogCkBAIC0zMSw2ICszMCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVj
dCBSVENEYXRhQ2hhbm5lbEluaXQgeworICAgIGJvb2wgb3JkZXJlZCB7IHRydWUgfTsKKyAgICBp
bnQgbWF4UmV0cmFuc21pdFRpbWUgeyAtMSB9OworICAgIGludCBtYXhSZXRyYW5zbWl0cyB7IC0x
IH07CisgICAgU3RyaW5nIHByb3RvY29sOworICAgIGJvb2wgbmVnb3RpYXRlZCB7IGZhbHNlIH07
CisgICAgaW50IGlkIHsgLTEgfTsKK307CisKIGNsYXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNs
aWVudDsKIAogY2xhc3MgUlRDRGF0YUNoYW5uZWxIYW5kbGVyIHsKQEAgLTM5LDE1ICs0Nyw2IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoUlRDRGF0YUNoYW5uZWxIYW5k
bGVyQ2xpZW50KikgPSAwOwogCi0gICAgdmlydHVhbCBTdHJpbmcgbGFiZWwoKSA9IDA7Ci0gICAg
dmlydHVhbCBib29sIG9yZGVyZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBt
YXhSZXRyYW5zbWl0VGltZSgpID0gMDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IG1heFJl
dHJhbnNtaXRzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHByb3RvY29sKCkgPSAwOwotICAg
IHZpcnR1YWwgYm9vbCBuZWdvdGlhdGVkKCkgPSAwOwotICAgIHZpcnR1YWwgdW5zaWduZWQgc2hv
cnQgaWQoKSA9IDA7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkg
PSAwOwotCiAgICAgdmlydHVhbCBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgc2VuZFJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKQEAgLTU2LDUgKzU1LDMgQEAgcHVibGlj
OgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCi0K
LSNlbmRpZiAvLyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRs
ZXJDbGllbnQuaAppbmRleCA3M2U4NmMzNzcyN2Q5NTg2YzgxMmRjYWIzYjM4NTRmOWRjYzdiNGRm
Li5hNzZkMzkyNTlmNzU3YWYxYWUxMmIyMDY2OWZkYWU5YzJjMTAyNzlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbEhhbmRsZXJDbGllbnQuaApAQCAtNDYsNiArNDYsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWREZXRlY3RFcnJvcigpID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCBwcm90ZWN0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnByb3RlY3QoKSA9IDA7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4
IDRjMmUwZWUyNDE0NDY5Y2IwNmZhYjNkZjllNzVhZTA1OGEwNjI3NmMuLjlhYzc3MGQ5OGYyMDMx
ZjQxZTdhNWNiNTEwYmUxOGI1NTIxODI3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5o
CkBAIC01MywyMSArNTMsNyBAQCBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Owog
Y2xhc3MgUlRDU3RhdHNSZXF1ZXN0OwogY2xhc3MgUlRDVm9pZFJlcXVlc3Q7CiAKLXN0cnVjdCBS
VENEYXRhQ2hhbm5lbEluaXQgewotcHVibGljOgotICAgIFJUQ0RhdGFDaGFubmVsSW5pdCgpCi0g
ICAgICAgIDogb3JkZXJlZCh0cnVlKQotICAgICAgICAsIG1heFJldHJhbnNtaXRUaW1lKC0xKQot
ICAgICAgICAsIG1heFJldHJhbnNtaXRzKC0xKQotICAgICAgICAsIG5lZ290aWF0ZWQoZmFsc2Up
Ci0gICAgICAgICwgaWQoLTEpIHsgfQotICAgIGJvb2wgb3JkZXJlZDsKLSAgICBpbnQgbWF4UmV0
cmFuc21pdFRpbWU7Ci0gICAgaW50IG1heFJldHJhbnNtaXRzOwotICAgIFN0cmluZyBwcm90b2Nv
bDsKLSAgICBib29sIG5lZ290aWF0ZWQ7Ci0gICAgaW50IGlkOwotfTsKK3N0cnVjdCBSVENEYXRh
Q2hhbm5lbEluaXQ7CiAKIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcj4gKCpDcmVhdGVQZWVyQ29ubmVjdGlvbkhhbmRsZXIpKFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNsaWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9vcGVud2VicnRjL01lZGlhRW5kcG9pbnRPd3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dyLmNwcApp
bmRleCA1YmFlN2VkMTZjNmFjYzA0NjRmYTdkODhlY2M4ODUwYzA3ZmZjZjc2Li43MTI1NjQ5NGRk
Yzg3YjQzMzY0MDZlZDEwZjU4NDg0MTAyMGU4NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL01lZGlhRW5kcG9pbnRPd3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFF
bmRwb2ludE93ci5jcHAKQEAgLTk0LDYgKzk0LDEzIEBAIHZvaWQgTWVkaWFFbmRwb2ludE93cjo6
c2V0Q29uZmlndXJhdGlvbihNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
CiAgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKIH0KIAorc3Rk
Ojp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gTWVkaWFFbmRwb2ludE93cjo6Y3Jl
YXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVs
SW5pdCYpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBkYXRhIGNoYW5uZWwuCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIHN0YXRpYyB2b2lk
IGNyeXB0b0RhdGFDYWxsYmFjayhnY2hhciogcHJpdmF0ZUtleSwgZ2NoYXIqIGNlcnRpZmljYXRl
LCBnY2hhciogZmluZ2VycHJpbnQsIGdjaGFyKiBmaW5nZXJwcmludEZ1bmN0aW9uLCBncG9pbnRl
ciBkYXRhKQogewogICAgIE1lZGlhRW5kcG9pbnRPd3IqIG1lZGlhRW5kcG9pbnQgPSAoTWVkaWFF
bmRwb2ludE93ciopIGRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9vcGVud2VicnRjL01lZGlhRW5kcG9pbnRPd3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5oCmluZGV4
IGM0ZDFlNTYzOTkyY2QwMTE2NzQ3OWNhODQ1MDJmZDg0MzM0Yzg3MzguLmMzMzk2ZTcxOGZlNDcw
M2FkMGNjNTU3MThhMmViM2UyYzMwYWMyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2lu
dE93ci5oCkBAIC0xMjAsNiArMTIwLDggQEAgcHJpdmF0ZToKICAgICAgICAgU3RyaW5nIG1pZDsK
ICAgICB9OwogCisgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3Jl
YXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVs
SW5pdCYpIGZpbmFsOworCiAgICAgdm9pZCBwcmVwYXJlU2Vzc2lvbihPd3JTZXNzaW9uKiwgUGVl
ck1lZGlhRGVzY3JpcHRpb24qKTsKICAgICB2b2lkIHByZXBhcmVNZWRpYVNlc3Npb24oT3dyTWVk
aWFTZXNzaW9uKiwgUGVlck1lZGlhRGVzY3JpcHRpb24qLCBib29sIGlzSW5pdGlhdG9yKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2lu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNw
cAppbmRleCA2MTQyMzE1ZDU4YzcwMjcxMDY1OWIzZjdkNTEzOGE3NzRlOGY4ODc5Li42MGJiMDE4
MWFlOGNkM2I3N2I4OWVkZjQ5YTM2NTM4NGYyZTBkZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcApAQCAtMzcsNiArMzcsNyBA
QAogI2luY2x1ZGUgIk1lZGlhUGF5bG9hZC5oIgogI2luY2x1ZGUgIk1vY2tSZWFsdGltZUF1ZGlv
U291cmNlLmgiCiAjaW5jbHVkZSAiTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKKyNpbmNsdWRl
ICJSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTYzLDYgKzY0LDExIEBA
IE1vY2tNZWRpYUVuZHBvaW50Ojp+TW9ja01lZGlhRW5kcG9pbnQoKQogICAgIHN0b3AoKTsKIH0K
IAorc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gTW9ja01lZGlhRW5kcG9p
bnQ6OmNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBS
VENEYXRhQ2hhbm5lbEluaXQmIG9wdGlvbnMpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jaz4obGFiZWwsIG9wdGlvbnMpOworfQorCiB2b2lk
IE1vY2tNZWRpYUVuZHBvaW50OjpnZW5lcmF0ZUR0bHNJbmZvKCkKIHsKICAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzXSgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja01lZGlhRW5kcG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a01lZGlhRW5kcG9pbnQuaAppbmRleCA0ODAzODc0ZDdkMWZkM2QzZDU2OTYwOTEzMDk1OGIxNjdk
NmY0NzdiLi4xM2JkNDdiMjZkNTA4N2I4Y2RjMGUxNTRiYTA1MDc4M2M5ZmNiYTQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oCkBAIC02
OCw2ICs2OCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0
aW9uTWlkcyhjb25zdCBNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24mKTsKIAorICAg
IHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGNyZWF0ZURhdGFDaGFubmVs
SGFuZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmKSBmaW5hbDsK
KwogICAgIHZvaWQgZGlzcGF0Y2hGYWtlSWNlQ2FuZGlkYXRlcygpOwogICAgIHZvaWQgaWNlQ2Fu
ZGlkYXRlVGltZXJGaXJlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNwcAppbmRleCA4Y2E4MDA2MzEz
NWI1MDgzOTAxYzg5Y2U3NWY5ZGVjYmRlMzEzZmE2Li44OTg1ZTVjOWY1OTgwZjJkODVlM2E0ZTRk
M2Y5NTkxMDllYjZlYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAKQEAgLTM3LDExICszNyw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6OlJUQ0RhdGFD
aGFubmVsSGFuZGxlck1vY2soY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgUlRDRGF0YUNoYW5u
ZWxJbml0JiBpbml0KQogICAgIDogbV9sYWJlbChsYWJlbCkKICAgICAsIG1fcHJvdG9jb2woaW5p
dC5wcm90b2NvbCkKLSAgICAsIG1fbWF4UmV0cmFuc21pdFRpbWUoaW5pdC5tYXhSZXRyYW5zbWl0
VGltZSkKLSAgICAsIG1fbWF4UmV0cmFuc21pdHMoaW5pdC5tYXhSZXRyYW5zbWl0cykKLSAgICAs
IG1faWQoaW5pdC5pZCkKLSAgICAsIG1fb3JkZXJlZChpbml0Lm9yZGVyZWQpCi0gICAgLCBtX25l
Z290aWF0ZWQoaW5pdC5uZWdvdGlhdGVkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCmluZGV4IDhm
NDMyZDVjOTI5NjlhOGQwYzhmYjcwZDZkMDAwMzkyOTUxNjMzYWUuLmViZDgzNWZjOWIyZWMyNmNj
ZjhmMTgwMTQ1NDljODY2YWVlMWViN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCkBAIC00MSwxNSArNDEs
NiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENsaWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJD
bGllbnQqKSBvdmVycmlkZTsKIAotICAgIFN0cmluZyBsYWJlbCgpIG92ZXJyaWRlIHsgcmV0dXJu
IG1fbGFiZWw7IH0KLSAgICBib29sIG9yZGVyZWQoKSBvdmVycmlkZSB7IHJldHVybiBtX29yZGVy
ZWQ7IH0KLSAgICB1bnNpZ25lZCBzaG9ydCBtYXhSZXRyYW5zbWl0VGltZSgpIG92ZXJyaWRlIHsg
cmV0dXJuIG1fbWF4UmV0cmFuc21pdFRpbWU7IH0KLSAgICB1bnNpZ25lZCBzaG9ydCBtYXhSZXRy
YW5zbWl0cygpIG92ZXJyaWRlIHsgcmV0dXJuIG1fbWF4UmV0cmFuc21pdHM7IH0KLSAgICBTdHJp
bmcgcHJvdG9jb2woKSBvdmVycmlkZSB7IHJldHVybiBtX3Byb3RvY29sOyB9Ci0gICAgYm9vbCBu
ZWdvdGlhdGVkKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9uZWdvdGlhdGVkOyB9Ci0gICAgdW5zaWdu
ZWQgc2hvcnQgaWQoKSBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9Ci0gICAgdW5zaWduZWQgbG9u
ZyBidWZmZXJlZEFtb3VudCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KLQogICAgIGJvb2wgc2Vu
ZFN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzZW5kUmF3RGF0
YShjb25zdCBjaGFyKiwgc2l6ZV90KSBvdmVycmlkZTsKICAgICB2b2lkIGNsb3NlKCkgb3ZlcnJp
ZGU7CkBAIC01OSwxMSArNTAsNiBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fbGFiZWw7CiAg
ICAgU3RyaW5nIG1fcHJvdG9jb2w7Ci0gICAgdW5zaWduZWQgc2hvcnQgbV9tYXhSZXRyYW5zbWl0
VGltZTsKLSAgICB1bnNpZ25lZCBzaG9ydCBtX21heFJldHJhbnNtaXRzOwotICAgIHVuc2lnbmVk
IHNob3J0IG1faWQ7Ci0gICAgYm9vbCBtX29yZGVyZWQ7Ci0gICAgYm9vbCBtX25lZ290aWF0ZWQ7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGMwNGYzYzY4ZTRhYThkMzM4
Y2VhMjZlYTVlMzhmNGViYjZlNWFhMC4uZTc4MTYzMjExNWRkNGI2NDFjYmE0ZjQ4YjhiZDA4ZDk5
NThiODViMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTExLTEyICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZyZXNoIFJUQ0RhdGFDaGFubmVsIGFi
c3RyYWN0IGluZnJhc3RydWN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjQ2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNo
YW5uZWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tZGF0YWNoYW5uZWwuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9uczoKKwogMjAxNi0xMS0xMiAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5j
b20+CiAKICAgICAgICAgRW5zdXJlIE1hdGhNTCByZW5kZXIgdHJlZSBhcmUgY2xlYW4gYnkgdGhl
IGVuZCBvZiBGcmFtZVZpZXc6OmxheW91dCgpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFu
bmVsLWV4cGVjdGVkLnR4dAppbmRleCBiM2M3OTQ5YzRjNzdlYzI1MmM0N2QxNmMyM2MyNDE3ZTY1
YThlOWQxLi44NGYxNmEwZTMyMzk2MTAxNmRjMDYyNmM3MDc0ZWFmYTM1ZDcxOTQxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFj
aGFubmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dApAQCAtMywzNSArMywxNCBA
QCBUZXN0cyBSVENEYXRhQ2hhbm5lbC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1Q
QVNTIGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoImxhYmVsIiwge21heFJldHJhbnNtaXRUaW1l
OjAsIG1heFJldHJhbnNtaXRzOjB9KTsgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yIChET00g
RXhjZXB0aW9uIDEyKTogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0
ZXJuLi4KK0ZBSUwgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwiLCB7bWF4UmV0cmFu
c21pdFRpbWU6MCwgbWF4UmV0cmFuc21pdHM6MH0pOyBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9u
LiBXYXMgW29iamVjdCBSVENEYXRhQ2hhbm5lbF0uCiBQQVNTIGRjID0gcGMuY3JlYXRlRGF0YUNo
YW5uZWwoImxhYmVsMSIpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgZGMgPSBwYy5j
cmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwyIiwge30pOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
IFBBU1MgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwzIiwge29yZGVyZWQ6dHJ1ZX0p
OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5l
bCgibGFiZWwzIiwge29yZGVyZWQ6ZmFsc2V9KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQ
QVNTIGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoImxhYmVsMyIsIHttYXhSZXRyYW5zbWl0czow
fSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBkYyA9IHBjLmNyZWF0ZURhdGFDaGFu
bmVsKCJsYWJlbDMiLCB7bWF4UmV0cmFuc21pdFRpbWU6MH0pOyBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbi4KLVBBU1MgcGMgaXMgY29ubmVjdGVkCi1QQVNTIGRjID0gcGMuY3JlYXRlRGF0YUNoYW5u
ZWwoImxhYmVsIik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBkYy5yZWFkeVN0YXRl
IGlzICdjb25uZWN0aW5nJwotUEFTUyBwY19vbmRhdGFjaGFubmVsIHdhcyBjYWxsZWQKLVBBU1Mg
ZGNfb25vcGVuIHdhcyBjYWxsZWQKLVBBU1MgZGMucmVhZHlTdGF0ZSBpcyAnb3BlbicKLVBBU1Mg
ZGMubGFiZWwgaXMgJ2xhYmVsJwotUEFTUyBkYy5zZW5kKCd4eXp6eScpOyBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4KLVBBU1MgZGNfb25tZXNzYWdlX3N0cmluZyB3YXMgY2FsbGVkCi1QQVNTIGRh
dGEgaXMgJ3h5enp5JwotUEFTUyBkYy5zZW5kKGJ1ZmZlcik7IGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgotUEFTUyBkY19vbm1lc3NhZ2VfYXJyYXlidWZmZXIgd2FzIGNhbGxlZAotUEFTUyBkYXRh
LmJ5dGVMZW5ndGggaXMgMgotUEFTUyBhcnJheVswXSBpcyAxNwotUEFTUyBhcnJheVsxXSBpcyAx
OQotUEFTUyBkYy5zZW5kKGFycmF5KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGRj
X29ubWVzc2FnZV9hcnJheWJ1ZmZlcnZpZXcgd2FzIGNhbGxlZAotUEFTUyBkYXRhLmJ5dGVMZW5n
dGggaXMgMgotUEFTUyBhcnJheVswXSBpcyAxMQotUEFTUyBhcnJheVsxXSBpcyAxMwotUEFTUyBk
Y19vbmNsb3NlIHdhcyBjYWxsZWQKLVBBU1MgZGMucmVhZHlTdGF0ZSBpcyAnY2xvc2VkJworRkFJ
TCBUZXN0IHRpbWVkIG91dAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLmh0bWwKaW5kZXggOTYzYTdmMWM3MzAz
NTcxNTQ5OTk2Y2NmYWEwZTk4ZThmY2Y2NmYzMy4uNjFhNjgwYmRjYTIyNzZlZDJmMWFkMWU2M2M4
N2VhOTZiYzYzMjNiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNoYW5uZWwuaHRtbApAQCAtOTksNiAr
OTksMTEgQEAKIAogICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAg
ICAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKyAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGVz
dCB0aW1lZCBvdXQiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
ICAgIH0sIDIwMDApOwogICAgICAgICA8L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogICAgIDwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzk5NDMyZmYzYjY2
Njg5YTAzOTNmZTg2MTBjMmNlY2U2YjQ1YWRjNC4uMDBiMWYzYjQ2NjBjZDJjOWU1NDNhNjkxMTkz
OWFlMmYyZjAxZTMzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE2NSw3ICsxNjUsNiBAQCBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aHRtbAogCiAjIFdlYlJUQyBpcyBub3Qgc3VwcG9ydGVkIHlldC4KIGZhc3QvZXZlbnRzL2NvbnN0
cnVjdG9ycy9tZWRpYS1zdHJlYW0tZXZlbnQtY29uc3RydWN0b3IuaHRtbAotZmFzdC9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1sIFsgU2tpcCBdCiBmYXN0L21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWR0bWYuaHRtbCBbIFNraXAgXQogZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1ldmVudHMuaHRtbCBbIFNraXAgXQogZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2UuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294619</attachid>
            <date>2016-11-12 09:57:42 -0800</date>
            <delta_ts>2016-11-14 10:19:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164680-20161112095327.patch</filename>
            <type>text/plain</type>
            <size>37675</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM4NDAzMGNiNTg5MTgy
MDI0NDRjZGE2MGFlMGY2YWE1YTJlNmI2My4uYmUxYmU4NmU2NWI2OTgxZWI0Nzc2MjIwMjc4M2M0
YmQzN2M1YmJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE2LTExLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZyZXNoIFJUQ0RhdGFD
aGFubmVsIGFic3RyYWN0IGluZnJhc3RydWN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyByZWFsIGNoYW5nZXMsIGV4Y2VwdCB0aGF0IGEgbW9j
ayBkYXRhIGNoYW5uZWwgaXMgbm93IHJldHVybmVkIGZvciBsYXlvdXQgdGVzdC4KKyAgICAgICAg
Q292ZXJlZCBieSBhY3RpdmF0ZWQgYW5kIHJlYmFzZWQgdGVzdC4KKworICAgICAgICBBZGRpbmcg
c3VwcG9ydCBmb3IgbW9jayBkYXRhIGNoYW5uZWwuCisgICAgICAgIFVwZGF0aW5nIGRhdGEgY2hh
bm5lbCBjcmVhdGlvbiBieSB1c2luZyBkaWN0aW9uYXJ5IGJpbmRpbmcgaW5mcmFzdHJ1Y3R1cmUu
CisgICAgICAgIFN0b3Jpbmcgb2Ygb3B0aW9ucyBkaXJlY3RseSBpbiBSVENEYXRhQ2hhbm5lbCB0
byByZWR1Y2UgdGhlIHVzZSBvZiB0aGUgZGF0YSBjaGFubmVsIGhhbmRsZXIuCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZURhdGFD
aGFubmVsSGFuZGxlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6UlRDRGF0YUNoYW5uZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjp+UlRDRGF0YUNoYW5uZWwpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmxhYmVsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjpvcmRlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsOjptYXhSZXRyYW5zbWl0VGltZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6bWF4UmV0cmFuc21pdHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OnByb3RvY29sKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjpuZWdvdGlhdGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjppZCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
VENEYXRhQ2hhbm5lbEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxFdmVudDo6UlRDRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbEV2ZW50Ojp+UlRDRGF0YUNoYW5uZWxFdmVudCk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlRGF0YUNoYW5uZWwpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5TWVk
aWFFbmRwb2ludDo6RW1wdHlNZWRpYUVuZHBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpSVENEYXRhQ2hhbm5lbEluaXQ6OlJUQ0RhdGFDaGFubmVsSW5pdCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRW5kcG9pbnRPd3I6OmNyZWF0ZURhdGFDaGFu
bmVsSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9N
ZWRpYUVuZHBvaW50T3dyLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRw
b2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6Y3JlYXRlRGF0
YUNoYW5uZWxIYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBv
aW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2Nr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6OlJUQ0Rh
dGFDaGFubmVsSGFuZGxlck1vY2spOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svUlRDRGF0YUNo
YW5uZWxIYW5kbGVyTW9jay5oOgorCiAyMDE2LTExLTEyICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSAzMi1iaXQgYnVpbGQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMDMxYTFmNDVkMjA2MjgwNGNhNzEx
MTQ2MTRlMTU2ODFhNjE0MjFiZS4uNDU3YWE3NjAwNjVlOWM0N2VhZDU1MWMzZjk5ZmM1MGEwN2E4
MzE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcApAQCAtNzA1LDYgKzcw
NSwxMSBAQCBSZWZQdHI8UlRDUnRwUmVjZWl2ZXI+IE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bjo6Y3JlYXRlUmVjZWl2ZXIoY29uc3QgU3RyaW5nJgogICAgIHJldHVybiBSVENSdHBSZWNlaXZl
cjo6Y3JlYXRlKFdURk1vdmUocmVtb3RlVHJhY2spKTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPFJU
Q0RhdGFDaGFubmVsSGFuZGxlcj4gTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpjcmVhdGVE
YXRhQ2hhbm5lbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgUlRDRGF0YUNoYW5u
ZWxJbml0JiBvcHRpb25zKQoreworICAgIHJldHVybiBtX21lZGlhRW5kcG9pbnQtPmNyZWF0ZURh
dGFDaGFubmVsSGFuZGxlcihsYWJlbCwgb3B0aW9ucyk7Cit9CisKIHZvaWQgTWVkaWFFbmRwb2lu
dFBlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIFJlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrPiYmIHdpdGhUcmFjaywgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9t
aXNlJiYgcHJvbWlzZSkKIHsKICAgICBSVENSdHBUcmFuc2NlaXZlciogdHJhbnNjZWl2ZXIgPSBt
YXRjaFRyYW5zY2VpdmVyKG1fcGVlckNvbm5lY3Rpb24uZ2V0VHJhbnNjZWl2ZXJzKCksIFsmc2Vu
ZGVyXSAoUlRDUnRwVHJhbnNjZWl2ZXImIGN1cnJlbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29u
bmVjdGlvbi5oCmluZGV4IDhlZmVhYzRlZDFiN2YzYTVlYjljZDRkZTQ0NTM0NjI5NmVkOTdjZDQu
LjI3ZDg5ZDZmODA3NTZlZTk1Y2I2NzNiOGM2MTc0NjU3Y2JlYjQ0MzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb24uaApAQCAtNzcsNiArNzcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYgYWN0aW9uKSBvdmVycmlkZTsKIAor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGNyZWF0ZURhdGFDaGFu
bmVsSGFuZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmKSBmaW5h
bDsKKwogcHJpdmF0ZToKICAgICB2b2lkIHJ1blRhc2soRnVuY3Rpb248dm9pZCAoKT4mJik7CiAg
ICAgdm9pZCBzdGFydFJ1bm5pbmdUYXNrcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKaW5kZXggOTk2
MmRkNzAxODk4YzkyYWQ2ZTA1MzdiMjBlYjAyMGM3YTUyNjg4My4uNmQxMWQ5YjQwYzg4NWEyNzlm
ODRjYjdlNDA4ZGEwZjNkNmRhZmFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC0zNCw2ICsz
NCw3IEBACiAKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJQZWVyQ29ubmVj
dGlvblN0YXRlcy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDMsNiArNDQsNyBAQCBjbGFzcyBNZWRpYVN0cmVhbTsKIGNsYXNzIE1l
ZGlhU3RyZWFtVHJhY2s7CiBjbGFzcyBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ7CiBjbGFzcyBSVEND
b25maWd1cmF0aW9uOworY2xhc3MgUlRDRGF0YUNoYW5uZWxIYW5kbGVyOwogY2xhc3MgUlRDSWNl
Q2FuZGlkYXRlOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247CiBjbGFzcyBSVENSdHBSZWNlaXZl
cjsKQEAgLTc3LDYgKzc5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRp
b24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiwgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJiYp
OwogICAgIHZvaWQgYWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSYsIFBlZXJDb25uZWN0
aW9uOjpWb2lkUHJvbWlzZSYmKTsKIAorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFJUQ0Rh
dGFDaGFubmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYpID0gMDsKKwogICAgIHZvaWQgc3RvcCgpOwogCiAg
ICAgdmlydHVhbCBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBsb2NhbERlc2NyaXB0aW9u
KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAppbmRleCBiNzIwYzJjNmVmZDU0ZGM1ZDA0Njg5NzE4NDYy
ZTNjMzM4OTNkMjk2Li5kMTQxZjJlYzA5YjRiNjI2OTVmNTVjMTcxOGIxODc5ZTc0NTg0NzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFu
bmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFD
aGFubmVsLmNwcApAQCAtNTUsODUgKzU1LDIzIEBAIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IGFycmF5YnVmZmVyS2V5d29yZCgpCiAgICAgcmV0dXJuIGFycmF5YnVmZmVyOwogfQogCi1FeGNl
cHRpb25PcjxSZWY8UlRDRGF0YUNoYW5uZWw+PiBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciogcGVl
ckNvbm5lY3Rpb25IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBEaWN0aW9uYXJ5
JiBvcHRpb25zKQotewotICAgIFJUQ0RhdGFDaGFubmVsSW5pdCBpbml0RGF0YTsKLSAgICBTdHJp
bmcgbWF4UmV0cmFuc21pdHNTdHI7Ci0gICAgU3RyaW5nIG1heFJldHJhbnNtaXRUaW1lU3RyOwot
ICAgIG9wdGlvbnMuZ2V0KCJvcmRlcmVkIiwgaW5pdERhdGEub3JkZXJlZCk7Ci0gICAgb3B0aW9u
cy5nZXQoIm5lZ290aWF0ZWQiLCBpbml0RGF0YS5uZWdvdGlhdGVkKTsKLSAgICBvcHRpb25zLmdl
dCgiaWQiLCBpbml0RGF0YS5pZCk7Ci0gICAgb3B0aW9ucy5nZXQoIm1heFJldHJhbnNtaXRzIiwg
bWF4UmV0cmFuc21pdHNTdHIpOwotICAgIG9wdGlvbnMuZ2V0KCJtYXhSZXRyYW5zbWl0VGltZSIs
IG1heFJldHJhbnNtaXRUaW1lU3RyKTsKLSAgICBvcHRpb25zLmdldCgicHJvdG9jb2wiLCBpbml0
RGF0YS5wcm90b2NvbCk7Ci0KLSAgICBib29sIG1heFJldHJhbnNtaXRzQ29udmVyc2lvbjsKLSAg
ICBib29sIG1heFJldHJhbnNtaXRUaW1lQ29udmVyc2lvbjsKLSAgICBpbml0RGF0YS5tYXhSZXRy
YW5zbWl0cyA9IG1heFJldHJhbnNtaXRzU3RyLnRvVUludFN0cmljdCgmbWF4UmV0cmFuc21pdHND
b252ZXJzaW9uKTsKLSAgICBpbml0RGF0YS5tYXhSZXRyYW5zbWl0VGltZSA9IG1heFJldHJhbnNt
aXRUaW1lU3RyLnRvVUludFN0cmljdCgmbWF4UmV0cmFuc21pdFRpbWVDb252ZXJzaW9uKTsKLSAg
ICBpZiAobWF4UmV0cmFuc21pdHNDb252ZXJzaW9uICYmIG1heFJldHJhbnNtaXRUaW1lQ29udmVy
c2lvbikKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNZTlRBWF9FUlIgfTsKLQotICAgIGF1
dG8gaGFuZGxlciA9IHBlZXJDb25uZWN0aW9uSGFuZGxlci0+Y3JlYXRlRGF0YUNoYW5uZWwobGFi
ZWwsIGluaXREYXRhKTsKLSAgICBpZiAoIWhhbmRsZXIpCi0gICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOT1RfU1VQUE9SVEVEX0VSUiB9OwotCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRD
RGF0YUNoYW5uZWwoKmNvbnRleHQsIFdURk1vdmUoaGFuZGxlcikpKTsKLX0KLQotUmVmPFJUQ0Rh
dGFDaGFubmVsPiBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYgaGFuZGxl
cikKK1JlZjxSVENEYXRhQ2hhbm5lbD4gUlRDRGF0YUNoYW5uZWw6OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5k
bGVyPiYmIGhhbmRsZXIsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5lbEluaXQmJiBvcHRp
b25zKQogeworICAgIEFTU0VSVChjb250ZXh0KTsKICAgICBBU1NFUlQoaGFuZGxlcik7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRGF0YUNoYW5uZWwoKmNvbnRleHQsIFdURk1vdmUoaGFu
ZGxlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENEYXRhQ2hhbm5lbCgqY29udGV4
dCwgV1RGTW92ZShoYW5kbGVyKSwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9ucykpKTsK
IH0KIAotUlRDRGF0YUNoYW5uZWw6OlJUQ0RhdGFDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYgaGFu
ZGxlcikKK1JUQ0RhdGFDaGFubmVsOjpSVENEYXRhQ2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiYmIGhh
bmRsZXIsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5lbEluaXQmJiBvcHRpb25zKQogICAg
IDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KCZjb250ZXh0KQogICAgICwgbV9oYW5kbGVyKFdU
Rk1vdmUoaGFuZGxlcikpCiAgICAgLCBtX3NjaGVkdWxlZEV2ZW50VGltZXIoKnRoaXMsICZSVENE
YXRhQ2hhbm5lbDo6c2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKQorICAgICwgbV9sYWJlbChXVEZN
b3ZlKGxhYmVsKSkKKyAgICAsIG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKQogewogICAgIG1f
aGFuZGxlci0+c2V0Q2xpZW50KHRoaXMpOwogfQogCi1SVENEYXRhQ2hhbm5lbDo6flJUQ0RhdGFD
aGFubmVsKCkKLXsKLX0KLQotU3RyaW5nIFJUQ0RhdGFDaGFubmVsOjpsYWJlbCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+bGFiZWwoKTsKLX0KLQotYm9vbCBSVENEYXRhQ2hhbm5l
bDo6b3JkZXJlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+b3JkZXJlZCgpOwot
fQotCi11bnNpZ25lZCBzaG9ydCBSVENEYXRhQ2hhbm5lbDo6bWF4UmV0cmFuc21pdFRpbWUoKSBj
b25zdAotewotICAgIHJldHVybiBtX2hhbmRsZXItPm1heFJldHJhbnNtaXRUaW1lKCk7Ci19Ci0K
LXVuc2lnbmVkIHNob3J0IFJUQ0RhdGFDaGFubmVsOjptYXhSZXRyYW5zbWl0cygpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+bWF4UmV0cmFuc21pdHMoKTsKLX0KLQotU3RyaW5nIFJU
Q0RhdGFDaGFubmVsOjpwcm90b2NvbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+
cHJvdG9jb2woKTsKLX0KLQotYm9vbCBSVENEYXRhQ2hhbm5lbDo6bmVnb3RpYXRlZCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+bmVnb3RpYXRlZCgpOwotfQotCi11bnNpZ25lZCBz
aG9ydCBSVENEYXRhQ2hhbm5lbDo6aWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2hhbmRsZXIt
PmlkKCk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgUlRDRGF0YUNoYW5uZWw6OnJlYWR5U3Rh
dGUoKSBjb25zdAogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGNv
bm5lY3RpbmdTdGF0ZSgiY29ubmVjdGluZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwpAQCAtMTU4LDcgKzk2LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBSVENEYXRhQ2hh
bm5lbDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiAKIHVuc2lnbmVkIFJUQ0RhdGFDaGFubmVsOjpidWZm
ZXJlZEFtb3VudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+YnVmZmVyZWRBbW91
bnQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBSVENEYXRhQ2hh
bm5lbDo6YmluYXJ5VHlwZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKaW5kZXggZGFlNWQyNDgyNTM3ZDE1NGI1ZjRl
ZjdmMWY4MzVjZDQxMzI2YWU3ZC4uMjkyMDYzMDUwNzY4MGE1ZDc4YTk3YTgyOGFlMGUyMDhjYTky
NzA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENE
YXRhQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWwuaApAQCAtMjYsOCArMjYsMTAgQEAKIAogI2lmIEVOQUJMRShXRUJfUlRDKQog
CisjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgiCiAjaW5j
bHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0V3Jh
cHBhYmxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTQxLDIyICs0MywyMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2I7CiBjbGFzcyBEaWN0aW9uYXJ5OwotY2xhc3MgUlRD
RGF0YUNoYW5uZWxIYW5kbGVyOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOwogCiBj
bGFzcyBSVENEYXRhQ2hhbm5lbCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0RhdGFDaGFu
bmVsPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBSVENEYXRhQ2hh
bm5lbEhhbmRsZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UlRDRGF0YUNoYW5u
ZWw+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgc3RkOjp1bmlxdWVfcHRyPFJUQ0Rh
dGFDaGFubmVsSGFuZGxlcj4mJik7Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxSVENEYXRh
Q2hhbm5lbD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyKiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9u
cyk7Ci0gICAgflJUQ0RhdGFDaGFubmVsKCk7Ci0KLSAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsK
LSAgICBib29sIG9yZGVyZWQoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBzaG9ydCBtYXhSZXRyYW5z
bWl0VGltZSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNtaXRzKCkgY29u
c3Q7Ci0gICAgU3RyaW5nIHByb3RvY29sKCkgY29uc3Q7Ci0gICAgYm9vbCBuZWdvdGlhdGVkKCkg
Y29uc3Q7Ci0gICAgdW5zaWduZWQgc2hvcnQgaWQoKSBjb25zdDsKKyAgICBzdGF0aWMgUmVmPFJU
Q0RhdGFDaGFubmVsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHN0ZDo6dW5pcXVl
X3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYsIFN0cmluZyYmLCBSVENEYXRhQ2hhbm5lbElu
aXQmJik7CisKKyAgICBib29sIG9yZGVyZWQoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMub3Jk
ZXJlZDsgfQorICAgIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNtaXRUaW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcHRpb25zLm1heFJldHJhbnNtaXRUaW1lOyB9CisgICAgdW5zaWduZWQgc2hvcnQg
bWF4UmV0cmFuc21pdHMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMubWF4UmV0cmFuc21pdHM7
IH0KKyAgICBTdHJpbmcgcHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMucHJvdG9j
b2w7IH0KKyAgICBib29sIG5lZ290aWF0ZWQoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMubmVn
b3RpYXRlZDsgfTsKKyAgICB1bnNpZ25lZCBzaG9ydCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9ucy5pZDsgfTsKKworICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7
IH0KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHJlYWR5U3RhdGUoKSBjb25zdDsKICAgICB1bnNp
Z25lZCBidWZmZXJlZEFtb3VudCgpIGNvbnN0OwogCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoK
ICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogcHJpdmF0ZToKLSAgICBSVENEYXRhQ2hh
bm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFu
bmVsSGFuZGxlcj4mJik7CisgICAgUlRDRGF0YUNoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYsIFN0cmluZyYmLCBS
VENEYXRhQ2hhbm5lbEluaXQmJik7CiAKICAgICB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hFdmVudChS
ZWY8RXZlbnQ+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKCk7CkBAIC05
Myw2ICs5Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlU3RyaW5nRGF0YShjb25z
dCBTdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVSYXdEYXRhKGNvbnN0IGNoYXIq
LCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgZGlkRGV0ZWN0RXJyb3IoKSBmaW5hbDsKKyAgICB2
b2lkIHByb3RlY3QoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCB1bnByb3RlY3QoKSBmaW5h
bCB7IGRlcmVmKCk7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRs
ZXI+IG1faGFuZGxlcjsKIApAQCAtMTA1LDYgKzEwNyw5IEBAIHByaXZhdGU6CiAKICAgICBUaW1l
ciBtX3NjaGVkdWxlZEV2ZW50VGltZXI7CiAgICAgVmVjdG9yPFJlZjxFdmVudD4+IG1fc2NoZWR1
bGVkRXZlbnRzOworCisgICAgU3RyaW5nIG1fbGFiZWw7CisgICAgUlRDRGF0YUNoYW5uZWxJbml0
IG1fb3B0aW9uczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQu
Y3BwCmluZGV4IDU4OTk1OTQ5NTFlYTI5MTNjMDFjY2U3ZjY0NTk2NzE4NTRmYTE2YTguLjhhNWVl
ZTU2YWE5NjVlZWE0YzljZGIxZmQ4ZTk4Y2E1YjdjNGQ4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmNw
cApAQCAtMzIsMTggKzMyLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFJUQ0Rh
dGFDaGFubmVsRXZlbnQ+IFJUQ0RhdGFDaGFubmVsRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJUQ0RhdGFDaGFu
bmVsJiBjaGFubmVsKQorUmVmPFJUQ0RhdGFDaGFubmVsRXZlbnQ+IFJUQ0RhdGFDaGFubmVsRXZl
bnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIFJlZjxSVENEYXRhQ2hhbm5lbD4mJiBjaGFubmVsKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJUQ0RhdGFDaGFubmVsRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5j
ZWxhYmxlLCBjaGFubmVsKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRGF0YUNoYW5u
ZWxFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURk1vdmUoY2hhbm5lbCkpKTsK
IH0KIAotUlRDRGF0YUNoYW5uZWxFdmVudDo6UlRDRGF0YUNoYW5uZWxFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJUQ0RhdGFD
aGFubmVsJiBjaGFubmVsKQorUlRDRGF0YUNoYW5uZWxFdmVudDo6UlRDRGF0YUNoYW5uZWxFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIFJlZjxSVENEYXRhQ2hhbm5lbD4mJiBjaGFubmVsKQogICAgIDogRXZlbnQodHlwZSwgY2Fu
QnViYmxlLCBjYW5jZWxhYmxlKQotICAgICwgbV9jaGFubmVsKGNoYW5uZWwpCi17Ci19Ci0KLVJU
Q0RhdGFDaGFubmVsRXZlbnQ6On5SVENEYXRhQ2hhbm5lbEV2ZW50KCkKKyAgICAsIG1fY2hhbm5l
bChXVEZNb3ZlKGNoYW5uZWwpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5oCmluZGV4IDE0MGRmOGFh
ZmZhOGVjZmRjZTFhZjMzZmI4ZTY4ZWFlOTM0ZjAyNzcuLjUyNDFlMjc5MGU1ODk3NWY1YTM1ZDBm
ZTIzZTljOTJkYzQ1YmMyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5oCkBAIC0zNCwxNiArMzQsMTQgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSVENEYXRhQ2hhbm5lbEV2ZW50IDogcHVibGlj
IEV2ZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5SVENEYXRhQ2hhbm5lbEV2ZW50KCk7Ci0K
LSAgICBzdGF0aWMgUmVmPFJUQ0RhdGFDaGFubmVsRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJUQ0RhdGFDaGFu
bmVsJik7CisgICAgc3RhdGljIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBSZWY8
UlRDRGF0YUNoYW5uZWw+JiYpOwogCiAgICAgUlRDRGF0YUNoYW5uZWwqIGNoYW5uZWwoKTsKIAog
ICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdDsKIAogcHJp
dmF0ZToKLSAgICBSVENEYXRhQ2hhbm5lbEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUlRDRGF0YUNoYW5uZWwmKTsKKyAgICBS
VENEYXRhQ2hhbm5lbEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgUmVmPFJUQ0RhdGFDaGFubmVsPiYmKTsKIAogICAgIFJlZjxS
VENEYXRhQ2hhbm5lbD4gbV9jaGFubmVsOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNmVjM2U5
MmZhMWM0MjNiZTc5ZDZlMDVlMmFkOWIyZTdiMDhlNTU2ZS4uZjZhN2UzYzU3MzQ0YmQ1NWQ0MDdm
ZDNmNmVmZjg4YjZjYWI5ZmVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTM2OSwxMiArMzY5LDE3
IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnByaXZhdGVHZXRTdGF0cyhNZWRpYVN0cmVhbVRy
YWNrKiBzZWxlY3RvciwgUGVlckNvbm5lY3RpCiAgICAgbV9iYWNrZW5kLT5nZXRTdGF0cyhzZWxl
Y3RvciwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPFJlZlB0cjxSVENEYXRh
Q2hhbm5lbD4+IFJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGVEYXRhQ2hhbm5lbChjb25zdCBTdHJp
bmcmLCBjb25zdCBEaWN0aW9uYXJ5JikKK0V4Y2VwdGlvbk9yPFJlZjxSVENEYXRhQ2hhbm5lbD4+
IFJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGVEYXRhQ2hhbm5lbChTdHJpbmcmJiBsYWJlbCwgUlRD
RGF0YUNoYW5uZWxJbml0JiYgb3B0aW9ucykKIHsKICAgICBpZiAobV9zaWduYWxpbmdTdGF0ZSA9
PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5W
QUxJRF9TVEFURV9FUlIgfTsKIAotICAgIHJldHVybiBudWxscHRyOworICAgIC8vIEZJWE1FOiBD
aGVjayBvcHRpb25zCisgICAgYXV0byBjaGFubmVsSGFuZGxlciA9IG1fYmFja2VuZC0+Y3JlYXRl
RGF0YUNoYW5uZWxIYW5kbGVyKGxhYmVsLCBvcHRpb25zKTsKKyAgICBpZiAoIWNoYW5uZWxIYW5k
bGVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTk9UX1NVUFBPUlRFRF9FUlIgfTsKKwor
ICAgIHJldHVybiBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgV1RGTW92ZShjaGFubmVsSGFuZGxlciksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKG9wdGlv
bnMpKTsKIH0KIAogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmlu
ZGV4IDc1OTE0N2I2MjkwYWIwNTM2Y2Y2YzA1ZGFkNDc0Zjk4M2Y5Y2VjNDkuLmJlMTI2ZTc0MWUx
YmNjZjlmNzA4OWZiMWQ4ZDEyYmYxYjlhY2NhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTM4LDYgKzM4
LDcgQEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIK
ICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAj
aW5jbHVkZSAiUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNj
ZWl2ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTQ5LDcgKzUwLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIFBlZXJD
b25uZWN0aW9uQmFja2VuZDsKIGNsYXNzIFJUQ0NvbmZpZ3VyYXRpb247Ci1jbGFzcyBSVENEYXRh
Q2hhbm5lbDsKIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZTsKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9u
RXJyb3JDYWxsYmFjazsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjsKQEAgLTYwLDkgKzYw
LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJUQ1BlZXJDb25uZWN0aW9uPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIH5SVENQZWVyQ29ubmVjdGlvbigpOwogCisg
ICAgdXNpbmcgQW5zd2VyT3B0aW9ucyA9IFJUQ0Fuc3dlck9wdGlvbnM7CisgICAgdXNpbmcgRGF0
YUNoYW5uZWxJbml0ID0gUlRDRGF0YUNoYW5uZWxJbml0OwogICAgIHVzaW5nIE9mZmVyQW5zd2Vy
T3B0aW9ucyA9IFJUQ09mZmVyQW5zd2VyT3B0aW9uczsKICAgICB1c2luZyBPZmZlck9wdGlvbnMg
PSBSVENPZmZlck9wdGlvbnM7Ci0gICAgdXNpbmcgQW5zd2VyT3B0aW9ucyA9IFJUQ0Fuc3dlck9w
dGlvbnM7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbml0aWFsaXplV2l0aChEb2N1bWVudCYs
IGNvbnN0IERpY3Rpb25hcnkmKTsKIApAQCAtMTExLDcgKzExMiw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcHJpdmF0ZUdldFN0YXRzKE1lZGlhU3RyZWFtVHJhY2sqLCBQZWVyQ29ubmVjdGlvbjo6
U3RhdHNQcm9taXNlJiYpOwogCi0gICAgRXhjZXB0aW9uT3I8UmVmUHRyPFJUQ0RhdGFDaGFubmVs
Pj4gY3JlYXRlRGF0YUNoYW5uZWwoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgRGljdGlvbmFy
eSYgZGF0YUNoYW5uZWxEaWN0KTsKKyAgICBFeGNlcHRpb25PcjxSZWY8UlRDRGF0YUNoYW5uZWw+
PiBjcmVhdGVEYXRhQ2hhbm5lbChTdHJpbmcmJiwgUlRDRGF0YUNoYW5uZWxJbml0JiYpOwogCiAg
ICAgdm9pZCBjbG9zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsCmluZGV4IGVmMWVmNTdhYzk1Zjc0NDY2
NzQyNzc4YzhiYTdkZTU2ZmU3MTI0OTcuLmIwMmFlZTQ2MWM2ZTRkZWQ3OTAwOTQ0MmU5NmNlODVh
NjFlMWE1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsCkBAIC00MSw2ICs0MSwxNSBAQCBkaWN0aW9uYXJ5
IFJUQ09mZmVyT3B0aW9ucyA6IFJUQ09mZmVyQW5zd2VyT3B0aW9ucyB7CiBkaWN0aW9uYXJ5IFJU
Q0Fuc3dlck9wdGlvbnMgOiBSVENPZmZlckFuc3dlck9wdGlvbnMgewogfTsKIAorZGljdGlvbmFy
eSBSVENEYXRhQ2hhbm5lbEluaXQgeworICAgIGJvb2xlYW4gICAgICAgIG9yZGVyZWQgPSB0cnVl
OworICAgIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNtaXRUaW1lOworICAgIHVuc2lnbmVkIHNo
b3J0IG1heFJldHJhbnNtaXRzOworICAgIFVTVlN0cmluZyAgICAgIHByb3RvY29sID0gIiI7Cisg
ICAgYm9vbGVhbiAgICAgICAgbmVnb3RpYXRlZCA9IGZhbHNlOworICAgIHVuc2lnbmVkIHNob3J0
IGlkOworfTsKKwogWwogICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1XRUJf
UlRDLApAQCAtMTI1LDcgKzEzNCw3IEBAIGRpY3Rpb25hcnkgUlRDQW5zd2VyT3B0aW9ucyA6IFJU
Q09mZmVyQW5zd2VyT3B0aW9ucyB7CiAgICAgW1ByaXZhdGVJZGVudGlmaWVyXSBQcm9taXNlPHZv
aWQ+IHF1ZXVlZEFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKTsKICAg
ICBbUHJpdmF0ZUlkZW50aWZpZXJdIFByb21pc2U8UlRDU3RhdHNSZXBvcnQ+IHByaXZhdGVHZXRT
dGF0cyhNZWRpYVN0cmVhbVRyYWNrPyBzZWxlY3Rvcik7CiAKLSAgICBbTWF5VGhyb3dFeGNlcHRp
b25dIFJUQ0RhdGFDaGFubmVsIGNyZWF0ZURhdGFDaGFubmVsKFtUcmVhdE51bGxBcz1FbXB0eVN0
cmluZ10gRE9NU3RyaW5nIGxhYmVsLCBvcHRpb25hbCBEaWN0aW9uYXJ5IG9wdGlvbnMpOworICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gUlRDRGF0YUNoYW5uZWwgY3JlYXRlRGF0YUNoYW5uZWwoW1Ry
ZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgbGFiZWwsIG9wdGlvbmFsIFJUQ0RhdGFD
aGFubmVsSW5pdCBvcHRpb25zKTsKIAogICAgIHZvaWQgY2xvc2UoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcAppbmRl
eCBkNGM4Y2Q3NDlkMTcxYzY2MmQyZmZlMjBmMjI1MDE0MDEzNDQ1MTQ4Li5lN2M3YTk1MmIxZmI4
ODM4MzAzMzk3YzllNDczYjFiZTFjMWQ3OWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIk1lZGlhRW5kcG9pbnQuaCIKIAogI2luY2x1ZGUgIk1lZGlhUGF5bG9hZC5o
IgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgogI2luY2x1ZGUgIlJlYWx0aW1l
TWVkaWFTb3VyY2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsMzggKzQzLDM3IEBA
IGNsYXNzIEVtcHR5UmVhbHRpbWVNZWRpYVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZU1l
ZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEVtcHR5UmVhbHRpbWVNZWRpYVNv
dXJjZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVJlYWx0aW1lTWVkaWFT
b3VyY2UoKSk7IH0KIAorcHJpdmF0ZToKKyAgICBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSA6
IFJlYWx0aW1lTWVkaWFTb3VyY2UoZW1wdHlTdHJpbmcoKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Tm9uZSwgZW1wdHlTdHJpbmcoKSkgeyB9CisKICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0
cjsgfQogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZVNldHRpbmdzOyB9CiAKLXByaXZhdGU6Ci0gICAg
RW1wdHlSZWFsdGltZU1lZGlhU291cmNlKCkKLSAgICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNl
KGVtcHR5U3RyaW5nKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5vbmUsIGVtcHR5U3RyaW5nKCkp
Ci0gICAgICAgIHsgfQotCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc291cmNl
U2V0dGluZ3M7CiB9OwogCi1jbGFzcyBFbXB0eU1lZGlhRW5kcG9pbnQgOiBwdWJsaWMgTWVkaWFF
bmRwb2ludCB7CitjbGFzcyBFbXB0eU1lZGlhRW5kcG9pbnQgZmluYWwgOiBwdWJsaWMgTWVkaWFF
bmRwb2ludCB7CiBwdWJsaWM6CiAgICAgRW1wdHlNZWRpYUVuZHBvaW50KE1lZGlhRW5kcG9pbnRD
bGllbnQmKSB7IH0KK3ByaXZhdGU6CisgICAgdm9pZCBzZXRDb25maWd1cmF0aW9uKE1lZGlhRW5k
cG9pbnRDb25maWd1cmF0aW9uJiYpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBzZXRDb25maWd1cmF0
aW9uKE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uJiYpIG92ZXJyaWRlIHsgfQotCi0gICAgdm9p
ZCBnZW5lcmF0ZUR0bHNJbmZvKCkgb3ZlcnJpZGUgeyB9Ci0gICAgTWVkaWFQYXlsb2FkVmVjdG9y
IGdldERlZmF1bHRBdWRpb1BheWxvYWRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFQYXlsb2Fk
VmVjdG9yKCk7IH0KLSAgICBNZWRpYVBheWxvYWRWZWN0b3IgZ2V0RGVmYXVsdFZpZGVvUGF5bG9h
ZHMoKSBvdmVycmlkZSB7IHJldHVybiBNZWRpYVBheWxvYWRWZWN0b3IoKTsgfQotICAgIE1lZGlh
UGF5bG9hZFZlY3RvciBmaWx0ZXJQYXlsb2Fkcyhjb25zdCBNZWRpYVBheWxvYWRWZWN0b3ImLCBj
b25zdCBNZWRpYVBheWxvYWRWZWN0b3ImKSBvdmVycmlkZSB7IHJldHVybiBNZWRpYVBheWxvYWRW
ZWN0b3IoKTsgfQorICAgIHZvaWQgZ2VuZXJhdGVEdGxzSW5mbygpIGZpbmFsIHsgfQorICAgIE1l
ZGlhUGF5bG9hZFZlY3RvciBnZXREZWZhdWx0QXVkaW9QYXlsb2FkcygpIGZpbmFsIHsgcmV0dXJu
IE1lZGlhUGF5bG9hZFZlY3RvcigpOyB9CisgICAgTWVkaWFQYXlsb2FkVmVjdG9yIGdldERlZmF1
bHRWaWRlb1BheWxvYWRzKCkgZmluYWwgeyByZXR1cm4gTWVkaWFQYXlsb2FkVmVjdG9yKCk7IH0K
KyAgICBNZWRpYVBheWxvYWRWZWN0b3IgZmlsdGVyUGF5bG9hZHMoY29uc3QgTWVkaWFQYXlsb2Fk
VmVjdG9yJiwgY29uc3QgTWVkaWFQYXlsb2FkVmVjdG9yJikgZmluYWwgeyByZXR1cm4gTWVkaWFQ
YXlsb2FkVmVjdG9yKCk7IH0KIAotICAgIFVwZGF0ZVJlc3VsdCB1cGRhdGVSZWNlaXZlQ29uZmln
dXJhdGlvbihNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24qLCBib29sKSBvdmVycmlk
ZSB7IHJldHVybiBVcGRhdGVSZXN1bHQ6OkZhaWxlZDsgfQotICAgIFVwZGF0ZVJlc3VsdCB1cGRh
dGVTZW5kQ29uZmlndXJhdGlvbihNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24qLCBj
b25zdCBSZWFsdGltZU1lZGlhU291cmNlTWFwJiwgYm9vbCkgb3ZlcnJpZGUgeyByZXR1cm4gVXBk
YXRlUmVzdWx0OjpGYWlsZWQ7IH0KKyAgICBVcGRhdGVSZXN1bHQgdXBkYXRlUmVjZWl2ZUNvbmZp
Z3VyYXRpb24oTWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uKiwgYm9vbCkgZmluYWwg
eyByZXR1cm4gVXBkYXRlUmVzdWx0OjpGYWlsZWQ7IH0KKyAgICBVcGRhdGVSZXN1bHQgdXBkYXRl
U2VuZENvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uKiwgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZU1hcCYsIGJvb2wpIGZpbmFsIHsgcmV0dXJuIFVwZGF0ZVJl
c3VsdDo6RmFpbGVkOyB9CiAKLSAgICB2b2lkIGFkZFJlbW90ZUNhbmRpZGF0ZShjb25zdCBJY2VD
YW5kaWRhdGUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBv
dmVycmlkZSB7IH0KKyAgICB2b2lkIGFkZFJlbW90ZUNhbmRpZGF0ZShjb25zdCBJY2VDYW5kaWRh
dGUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7
IH0KIAotICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVNdXRlZFJlbW90ZVNvdXJj
ZShjb25zdCBTdHJpbmcmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlKSBvdmVycmlkZSB7IHJl
dHVybiBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSgpOyB9Ci0gICAgdm9pZCByZXBs
YWNlU2VuZFNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGUgeyB9Ci0gICAgdm9pZCByZXBsYWNlTXV0ZWRSZW1vdGVTb3VyY2VNaWQoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9OworICAgIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiBjcmVhdGVNdXRlZFJlbW90ZVNvdXJjZShjb25zdCBTdHJpbmcmLCBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlKSBmaW5hbCB7IHJldHVybiBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
ZWF0ZSgpOyB9CisgICAgdm9pZCByZXBsYWNlU2VuZFNvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
JiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgdm9pZCByZXBsYWNlTXV0ZWRSZW1vdGVT
b3VyY2VNaWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9OwogCi0gICAg
dm9pZCBzdG9wKCkgb3ZlcnJpZGUgeyB9CisgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFu
bmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFJUQ0RhdGFDaGFubmVsSW5pdCYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2b2lk
IHN0b3AoKSBmaW5hbCB7IH0KIH07CiAKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFFbmRw
b2ludD4gY3JlYXRlTWVkaWFFbmRwb2ludChNZWRpYUVuZHBvaW50Q2xpZW50JiBjbGllbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
LmgKaW5kZXggZjI3NzM3ZjgyZDQ2ZWI1NTk5ZTQ0YzU4YzdmZjUzMTQwZmU3ODBjYi4uMWM1OTZk
MjdiYjhlOTNkMjM1NzY0NTJjOTgxMTBhMzhjZjYwNjI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaApAQCAtMzksMTMgKzM5
LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEljZUNhbmRpZGF0ZTsKIGNs
YXNzIE1lZGlhRW5kcG9pbnQ7CiBjbGFzcyBNZWRpYUVuZHBvaW50Q2xpZW50OwogY2xhc3MgTWVk
aWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uOwotc3RydWN0IE1lZGlhUGF5bG9hZDsKK2Ns
YXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlcjsKIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CiAK
K3N0cnVjdCBJY2VDYW5kaWRhdGU7CitzdHJ1Y3QgTWVkaWFQYXlsb2FkOworc3RydWN0IFJUQ0Rh
dGFDaGFubmVsSW5pdDsKKwogdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFFbmRwb2ludD4g
KCpDcmVhdGVNZWRpYUVuZHBvaW50KShNZWRpYUVuZHBvaW50Q2xpZW50Jik7CiB0eXBlZGVmIFZl
Y3RvcjxNZWRpYVBheWxvYWQ+IE1lZGlhUGF5bG9hZFZlY3RvcjsKIHR5cGVkZWYgSGFzaE1hcDxT
dHJpbmcsIFJlYWx0aW1lTWVkaWFTb3VyY2UqPiBSZWFsdGltZU1lZGlhU291cmNlTWFwOwpAQCAt
NzksNiArODIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcGxhY2VTZW5kU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2UmLCBjb25zdCBTdHJpbmcmIG1pZCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCByZXBsYWNlTXV0ZWRSZW1vdGVTb3VyY2VNaWQoY29uc3QgU3RyaW5nJiBvbGRNaWQs
IGNvbnN0IFN0cmluZyYgbmV3TWlkKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0
cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBT
dHJpbmcmLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmKSA9IDA7CisKICAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChj
b25zdCBTdHJpbmcmKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCmluZGV4IDUyMmY5NzUzNTli
NmYxZGE5ZTUxNDBiNDZkZDhhNTk2NzkxNTJhNWIuLmIyYTM3OWEwODBlOGE3Nzk1OTJiMDE5YTE4
NWY1YmUwN2I0ZWZjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCkBAIC0yMiw4ICsyMiw3IEBA
CiAgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFJUQ0RhdGFDaGFubmVsSGFuZGxlcl9oCi0jZGVmaW5l
IFJUQ0RhdGFDaGFubmVsSGFuZGxlcl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShXRUJf
UlRDKQogCkBAIC0zMSw2ICszMCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVj
dCBSVENEYXRhQ2hhbm5lbEluaXQgeworICAgIGJvb2wgb3JkZXJlZCB7IHRydWUgfTsKKyAgICBp
bnQgbWF4UmV0cmFuc21pdFRpbWUgeyAtMSB9OworICAgIGludCBtYXhSZXRyYW5zbWl0cyB7IC0x
IH07CisgICAgU3RyaW5nIHByb3RvY29sOworICAgIGJvb2wgbmVnb3RpYXRlZCB7IGZhbHNlIH07
CisgICAgaW50IGlkIHsgLTEgfTsKK307CisKIGNsYXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNs
aWVudDsKIAogY2xhc3MgUlRDRGF0YUNoYW5uZWxIYW5kbGVyIHsKQEAgLTM5LDE1ICs0Nyw2IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoUlRDRGF0YUNoYW5uZWxIYW5k
bGVyQ2xpZW50KikgPSAwOwogCi0gICAgdmlydHVhbCBTdHJpbmcgbGFiZWwoKSA9IDA7Ci0gICAg
dmlydHVhbCBib29sIG9yZGVyZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBt
YXhSZXRyYW5zbWl0VGltZSgpID0gMDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IG1heFJl
dHJhbnNtaXRzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHByb3RvY29sKCkgPSAwOwotICAg
IHZpcnR1YWwgYm9vbCBuZWdvdGlhdGVkKCkgPSAwOwotICAgIHZpcnR1YWwgdW5zaWduZWQgc2hv
cnQgaWQoKSA9IDA7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkg
PSAwOwotCiAgICAgdmlydHVhbCBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgc2VuZFJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKQEAgLTU2LDUgKzU1LDMgQEAgcHVibGlj
OgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCi0K
LSNlbmRpZiAvLyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRs
ZXJDbGllbnQuaAppbmRleCA3M2U4NmMzNzcyN2Q5NTg2YzgxMmRjYWIzYjM4NTRmOWRjYzdiNGRm
Li5hNzZkMzkyNTlmNzU3YWYxYWUxMmIyMDY2OWZkYWU5YzJjMTAyNzlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbEhhbmRsZXJDbGllbnQuaApAQCAtNDYsNiArNDYsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWREZXRlY3RFcnJvcigpID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCBwcm90ZWN0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnByb3RlY3QoKSA9IDA7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4
IDRjMmUwZWUyNDE0NDY5Y2IwNmZhYjNkZjllNzVhZTA1OGEwNjI3NmMuLjlhYzc3MGQ5OGYyMDMx
ZjQxZTdhNWNiNTEwYmUxOGI1NTIxODI3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5o
CkBAIC01MywyMSArNTMsNyBAQCBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Owog
Y2xhc3MgUlRDU3RhdHNSZXF1ZXN0OwogY2xhc3MgUlRDVm9pZFJlcXVlc3Q7CiAKLXN0cnVjdCBS
VENEYXRhQ2hhbm5lbEluaXQgewotcHVibGljOgotICAgIFJUQ0RhdGFDaGFubmVsSW5pdCgpCi0g
ICAgICAgIDogb3JkZXJlZCh0cnVlKQotICAgICAgICAsIG1heFJldHJhbnNtaXRUaW1lKC0xKQot
ICAgICAgICAsIG1heFJldHJhbnNtaXRzKC0xKQotICAgICAgICAsIG5lZ290aWF0ZWQoZmFsc2Up
Ci0gICAgICAgICwgaWQoLTEpIHsgfQotICAgIGJvb2wgb3JkZXJlZDsKLSAgICBpbnQgbWF4UmV0
cmFuc21pdFRpbWU7Ci0gICAgaW50IG1heFJldHJhbnNtaXRzOwotICAgIFN0cmluZyBwcm90b2Nv
bDsKLSAgICBib29sIG5lZ290aWF0ZWQ7Ci0gICAgaW50IGlkOwotfTsKK3N0cnVjdCBSVENEYXRh
Q2hhbm5lbEluaXQ7CiAKIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcj4gKCpDcmVhdGVQZWVyQ29ubmVjdGlvbkhhbmRsZXIpKFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNsaWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9vcGVud2VicnRjL01lZGlhRW5kcG9pbnRPd3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dyLmNwcApp
bmRleCA1YmFlN2VkMTZjNmFjYzA0NjRmYTdkODhlY2M4ODUwYzA3ZmZjZjc2Li5hNzI1Mzk4YjU2
MTQyM2MzZDY3YjUyNTJhODk4ZmI3NzgyM2JjMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL01lZGlhRW5kcG9pbnRPd3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFF
bmRwb2ludE93ci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJNZWRpYVBheWxvYWQu
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9wZW5XZWJSVENVdGls
aXRpZXMuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCIKICNpbmNsdWRlICJS
ZWFsdGltZU1lZGlhU291cmNlT3dyLmgiCiAjaW5jbHVkZSA8b3dyL293ci5oPgogI2luY2x1ZGUg
PG93ci9vd3JfYXVkaW9fcGF5bG9hZC5oPgpAQCAtOTQsNiArOTUsMTMgQEAgdm9pZCBNZWRpYUVu
ZHBvaW50T3dyOjpzZXRDb25maWd1cmF0aW9uKE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uJiYg
Y29uZmlndXJhdGkKICAgICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24p
OwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBNZWRpYUVuZHBv
aW50T3dyOjpjcmVhdGVEYXRhQ2hhbm5lbEhhbmRsZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgUlRD
RGF0YUNoYW5uZWxJbml0JikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGRhdGEgY2hhbm5l
bC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwog
c3RhdGljIHZvaWQgY3J5cHRvRGF0YUNhbGxiYWNrKGdjaGFyKiBwcml2YXRlS2V5LCBnY2hhciog
Y2VydGlmaWNhdGUsIGdjaGFyKiBmaW5nZXJwcmludCwgZ2NoYXIqIGZpbmdlcnByaW50RnVuY3Rp
b24sIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgTWVkaWFFbmRwb2ludE93ciogbWVkaWFFbmRwb2lu
dCA9IChNZWRpYUVuZHBvaW50T3dyKikgZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50
T3dyLmgKaW5kZXggYzRkMWU1NjM5OTJjZDAxMTY3NDc5Y2E4NDUwMmZkODQzMzRjODczOC4uYzMz
OTZlNzE4ZmU0NzAzYWQwY2M1NTcxOGEyZWIzZTJjMzBhYzIxYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9N
ZWRpYUVuZHBvaW50T3dyLmgKQEAgLTEyMCw2ICsxMjAsOCBAQCBwcml2YXRlOgogICAgICAgICBT
dHJpbmcgbWlkOwogICAgIH07CiAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxI
YW5kbGVyPiBjcmVhdGVEYXRhQ2hhbm5lbEhhbmRsZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgUlRD
RGF0YUNoYW5uZWxJbml0JikgZmluYWw7CisKICAgICB2b2lkIHByZXBhcmVTZXNzaW9uKE93clNl
c3Npb24qLCBQZWVyTWVkaWFEZXNjcmlwdGlvbiopOwogICAgIHZvaWQgcHJlcGFyZU1lZGlhU2Vz
c2lvbihPd3JNZWRpYVNlc3Npb24qLCBQZWVyTWVkaWFEZXNjcmlwdGlvbiosIGJvb2wgaXNJbml0
aWF0b3IpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tN
ZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlh
RW5kcG9pbnQuY3BwCmluZGV4IDYxNDIzMTVkNThjNzAyNzEwNjU5YjNmN2Q1MTM4YTc3NGU4Zjg4
NzkuLjYwYmIwMTgxYWU4Y2QzYjc3Yjg5ZWRmNDlhMzY1Mzg0ZjJlMGRlNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTWVkaWFQYXlsb2FkLmgiCiAjaW5jbHVkZSAiTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UuaCIKICNpbmNsdWRlICJNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5o
IgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCIKICNpbmNsdWRlICJSZWFs
dGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtNjMs
NiArNjQsMTEgQEAgTW9ja01lZGlhRW5kcG9pbnQ6On5Nb2NrTWVkaWFFbmRwb2ludCgpCiAgICAg
c3RvcCgpOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBNb2Nr
TWVkaWFFbmRwb2ludDo6Y3JlYXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYgbGFi
ZWwsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYgb3B0aW9ucykKK3sKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrPihsYWJlbCwgb3B0aW9ucyk7
Cit9CisKIHZvaWQgTW9ja01lZGlhRW5kcG9pbnQ6OmdlbmVyYXRlRHRsc0luZm8oKQogewogICAg
IGNhbGxPbk1haW5UaHJlYWQoW3RoaXNdKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oCmluZGV4IDQ4MDM4NzRkN2QxZmQzZDNkNTY5NjA5
MTMwOTU4YjE2N2Q2ZjQ3N2IuLjEzYmQ0N2IyNmQ1MDg3YjhjZGMwZTE1NGJhMDUwNzgzYzlmY2Jh
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5k
cG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBv
aW50LmgKQEAgLTY4LDYgKzY4LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0
ZUNvbmZpZ3VyYXRpb25NaWRzKGNvbnN0IE1lZGlhRW5kcG9pbnRTZXNzaW9uQ29uZmlndXJhdGlv
biYpOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3JlYXRl
RGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5p
dCYpIGZpbmFsOworCiAgICAgdm9pZCBkaXNwYXRjaEZha2VJY2VDYW5kaWRhdGVzKCk7CiAgICAg
dm9pZCBpY2VDYW5kaWRhdGVUaW1lckZpcmVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwCmluZGV4
IDhjYTgwMDYzMTM1YjUwODM5MDFjODljZTc1ZjlkZWNiZGUzMTNmYTYuLjg5ODVlNWM5ZjU5ODBm
MmQ4NWUzYTRlNGQzZjk1OTEwOWViNmViODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNwcApAQCAtMzcs
MTEgKzM3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9j
azo6UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jayhjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBS
VENEYXRhQ2hhbm5lbEluaXQmIGluaXQpCiAgICAgOiBtX2xhYmVsKGxhYmVsKQogICAgICwgbV9w
cm90b2NvbChpbml0LnByb3RvY29sKQotICAgICwgbV9tYXhSZXRyYW5zbWl0VGltZShpbml0Lm1h
eFJldHJhbnNtaXRUaW1lKQotICAgICwgbV9tYXhSZXRyYW5zbWl0cyhpbml0Lm1heFJldHJhbnNt
aXRzKQotICAgICwgbV9pZChpbml0LmlkKQotICAgICwgbV9vcmRlcmVkKGluaXQub3JkZXJlZCkK
LSAgICAsIG1fbmVnb3RpYXRlZChpbml0Lm5lZ290aWF0ZWQpCiB7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2Nr
LmgKaW5kZXggOGY0MzJkNWM5Mjk2OWE4ZDBjOGZiNzBkNmQwMDAzOTI5NTE2MzNhZS4uZWJkODM1
ZmM5YjJlYzI2Y2NmOGYxODAxNDU0OWM4NjZhZWUxZWI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmgKQEAg
LTQxLDE1ICs0MSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q2xpZW50KFJUQ0RhdGFDaGFu
bmVsSGFuZGxlckNsaWVudCopIG92ZXJyaWRlOwogCi0gICAgU3RyaW5nIGxhYmVsKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9sYWJlbDsgfQotICAgIGJvb2wgb3JkZXJlZCgpIG92ZXJyaWRlIHsgcmV0
dXJuIG1fb3JkZXJlZDsgfQotICAgIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNtaXRUaW1lKCkg
b3ZlcnJpZGUgeyByZXR1cm4gbV9tYXhSZXRyYW5zbWl0VGltZTsgfQotICAgIHVuc2lnbmVkIHNo
b3J0IG1heFJldHJhbnNtaXRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9tYXhSZXRyYW5zbWl0czsg
fQotICAgIFN0cmluZyBwcm90b2NvbCgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fcHJvdG9jb2w7IH0K
LSAgICBib29sIG5lZ290aWF0ZWQoKSBvdmVycmlkZSB7IHJldHVybiBtX25lZ290aWF0ZWQ7IH0K
LSAgICB1bnNpZ25lZCBzaG9ydCBpZCgpIG92ZXJyaWRlIHsgcmV0dXJuIG1faWQ7IH0KLSAgICB1
bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQotCiAg
ICAgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICBib29s
IHNlbmRSYXdEYXRhKGNvbnN0IGNoYXIqLCBzaXplX3QpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xv
c2UoKSBvdmVycmlkZTsKQEAgLTU5LDExICs1MCw2IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcg
bV9sYWJlbDsKICAgICBTdHJpbmcgbV9wcm90b2NvbDsKLSAgICB1bnNpZ25lZCBzaG9ydCBtX21h
eFJldHJhbnNtaXRUaW1lOwotICAgIHVuc2lnbmVkIHNob3J0IG1fbWF4UmV0cmFuc21pdHM7Ci0g
ICAgdW5zaWduZWQgc2hvcnQgbV9pZDsKLSAgICBib29sIG1fb3JkZXJlZDsKLSAgICBib29sIG1f
bmVnb3RpYXRlZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YzA0ZjNj
NjhlNGFhOGQzMzhjZWEyNmVhNWUzOGY0ZWJiNmU1YWEwLi5lNzgxNjMyMTE1ZGQ0YjY0MWNiYTRm
NDhiOGJkMDhkOTk1OGI4NWIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMTIgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlZnJlc2ggUlRDRGF0
YUNoYW5uZWwgYWJzdHJhY3QgaW5mcmFzdHJ1Y3R1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDY4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1kYXRhY2hhbm5lbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1sOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE2LTExLTEyICBGcmVkZXJpYyBXYW5nICA8Zndh
bmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBFbnN1cmUgTWF0aE1MIHJlbmRlciB0cmVlIGFyZSBj
bGVhbiBieSB0aGUgZW5kIG9mIEZyYW1lVmlldzo6bGF5b3V0KCkuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24tZGF0YWNoYW5uZWwtZXhwZWN0ZWQudHh0CmluZGV4IGIzYzc5NDljNGM3N2VjMjUyYzQ3ZDE2
YzIzYzI0MTdlNjVhOGU5ZDEuLjg0ZjE2YTBlMzIzOTYxMDE2ZGMwNjI2YzcwNzRlYWZhMzVkNzE5
NDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24tZGF0YWNoYW5uZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNoYW5uZWwtZXhwZWN0ZWQudHh0CkBAIC0z
LDM1ICszLDE0IEBAIFRlc3RzIFJUQ0RhdGFDaGFubmVsLgogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCiAKLVBBU1MgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwiLCB7bWF4UmV0
cmFuc21pdFRpbWU6MCwgbWF4UmV0cmFuc21pdHM6MH0pOyB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3IgKERPTSBFeGNlcHRpb24gMTIpOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4
cGVjdGVkIHBhdHRlcm4uLgorRkFJTCBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCJsYWJlbCIs
IHttYXhSZXRyYW5zbWl0VGltZTowLCBtYXhSZXRyYW5zbWl0czowfSk7IHNob3VsZCB0aHJvdyBh
biBleGNlcHRpb24uIFdhcyBbb2JqZWN0IFJUQ0RhdGFDaGFubmVsXS4KIFBBU1MgZGMgPSBwYy5j
cmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwxIik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFT
UyBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCJsYWJlbDIiLCB7fSk7IGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uLgogUEFTUyBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCJsYWJlbDMiLCB7b3Jk
ZXJlZDp0cnVlfSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBkYyA9IHBjLmNyZWF0
ZURhdGFDaGFubmVsKCJsYWJlbDMiLCB7b3JkZXJlZDpmYWxzZX0pOyBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KIFBBU1MgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwzIiwge21heFJl
dHJhbnNtaXRzOjB9KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIGRjID0gcGMuY3Jl
YXRlRGF0YUNoYW5uZWwoImxhYmVsMyIsIHttYXhSZXRyYW5zbWl0VGltZTowfSk7IGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgotUEFTUyBwYyBpcyBjb25uZWN0ZWQKLVBBU1MgZGMgPSBwYy5jcmVh
dGVEYXRhQ2hhbm5lbCgibGFiZWwiKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGRj
LnJlYWR5U3RhdGUgaXMgJ2Nvbm5lY3RpbmcnCi1QQVNTIHBjX29uZGF0YWNoYW5uZWwgd2FzIGNh
bGxlZAotUEFTUyBkY19vbm9wZW4gd2FzIGNhbGxlZAotUEFTUyBkYy5yZWFkeVN0YXRlIGlzICdv
cGVuJwotUEFTUyBkYy5sYWJlbCBpcyAnbGFiZWwnCi1QQVNTIGRjLnNlbmQoJ3h5enp5Jyk7IGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBkY19vbm1lc3NhZ2Vfc3RyaW5nIHdhcyBjYWxs
ZWQKLVBBU1MgZGF0YSBpcyAneHl6enknCi1QQVNTIGRjLnNlbmQoYnVmZmVyKTsgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCi1QQVNTIGRjX29ubWVzc2FnZV9hcnJheWJ1ZmZlciB3YXMgY2FsbGVk
Ci1QQVNTIGRhdGEuYnl0ZUxlbmd0aCBpcyAyCi1QQVNTIGFycmF5WzBdIGlzIDE3Ci1QQVNTIGFy
cmF5WzFdIGlzIDE5Ci1QQVNTIGRjLnNlbmQoYXJyYXkpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KLVBBU1MgZGNfb25tZXNzYWdlX2FycmF5YnVmZmVydmlldyB3YXMgY2FsbGVkCi1QQVNTIGRh
dGEuYnl0ZUxlbmd0aCBpcyAyCi1QQVNTIGFycmF5WzBdIGlzIDExCi1QQVNTIGFycmF5WzFdIGlz
IDEzCi1QQVNTIGRjX29uY2xvc2Ugd2FzIGNhbGxlZAotUEFTUyBkYy5yZWFkeVN0YXRlIGlzICdj
bG9zZWQnCitGQUlMIFRlc3QgdGltZWQgb3V0CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNoYW5uZWwuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNoYW5uZWwuaHRtbAppbmRleCA5
NjNhN2YxYzczMDM1NzE1NDk5OTZjY2ZhYTBlOThlOGZjZjY2ZjMzLi42MWE2ODBiZGNhMjI3NmVk
MmYxYWQxZTYzYzg3ZWE5NmJjNjMyM2JmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1s
CkBAIC05OSw2ICs5OSwxMSBAQAogCiAgICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CiAgICAgICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKwor
ICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJUZXN0IHRpbWVkIG91dCIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICAgICAgfSwgMjAwMCk7CiAgICAgICAgIDwvc2NyaXB0PgogICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiAgICAg
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBj
OTk0MzJmZjNiNjY2ODlhMDM5M2ZlODYxMGMyY2VjZTZiNDVhZGM0Li4wMGIxZjNiNDY2MGNkMmM5
ZTU0M2E2OTExOTM5YWUyZjJmMDFlMzNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTY1LDcgKzE2NSw2IEBAIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5odG1sCiAKICMgV2ViUlRDIGlzIG5vdCBzdXBwb3J0ZWQgeWV0LgogZmFzdC9l
dmVudHMvY29uc3RydWN0b3JzL21lZGlhLXN0cmVhbS1ldmVudC1jb25zdHJ1Y3Rvci5odG1sCi1m
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLmh0bWwgWyBTa2lw
IF0KIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZHRtZi5odG1sIFsgU2tpcCBd
CiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWV2ZW50cy5odG1sIFsgU2tpcCBd
CiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWljZS5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294711</attachid>
            <date>2016-11-14 10:19:04 -0800</date>
            <delta_ts>2016-11-14 10:55:19 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-164680-20161114101445.patch</filename>
            <type>text/plain</type>
            <size>38123</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4Njg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGUxYTgxMzlkYjc1N2My
NDUzMDY5ZGZhYTU1ZGYzM2VkNzljMDNlNS4uZTQ2YTcyNTNhYjE2NDRhNDY3NDM2YzBlMTFjNmVk
MDMzMWYwM2JjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE2LTExLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZyZXNoIFJUQ0RhdGFD
aGFubmVsIGFic3RyYWN0IGluZnJhc3RydWN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KKworICAgICAgICBObyByZWFsIGNoYW5nZXMsIGV4Y2VwdCB0aGF0IGEgbW9jayBk
YXRhIGNoYW5uZWwgaXMgbm93IHJldHVybmVkIGZvciBsYXlvdXQgdGVzdC4KKyAgICAgICAgQ292
ZXJlZCBieSBhY3RpdmF0ZWQgYW5kIHJlYmFzZWQgdGVzdC4KKworICAgICAgICBBZGRpbmcgc3Vw
cG9ydCBmb3IgbW9jayBkYXRhIGNoYW5uZWwuCisgICAgICAgIFVwZGF0aW5nIGRhdGEgY2hhbm5l
bCBjcmVhdGlvbiBieSB1c2luZyBkaWN0aW9uYXJ5IGJpbmRpbmcgaW5mcmFzdHJ1Y3R1cmUuCisg
ICAgICAgIFN0b3Jpbmcgb2Ygb3B0aW9ucyBkaXJlY3RseSBpbiBSVENEYXRhQ2hhbm5lbCB0byBy
ZWR1Y2UgdGhlIHVzZSBvZiB0aGUgZGF0YSBjaGFubmVsIGhhbmRsZXIuCisKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZURhdGFDaGFu
bmVsSGFuZGxlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6UlRDRGF0YUNoYW5uZWwpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsOjp+UlRDRGF0YUNoYW5uZWwpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmxhYmVsKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsOjpvcmRlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJUQ0RhdGFDaGFubmVsOjptYXhSZXRyYW5zbWl0VGltZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6bWF4UmV0cmFuc21pdHMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OnByb3RvY29sKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjpuZWdvdGlhdGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjppZCk6IERlbGV0ZWQuCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxFdmVudDo6UlRDRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbEV2ZW50Ojp+UlRDRGF0YUNoYW5uZWxFdmVudCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50Lmg6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlRGF0YUNoYW5uZWwpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5TWVkaWFF
bmRwb2ludDo6RW1wdHlNZWRpYUVuZHBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSVENEYXRhQ2hhbm5lbEluaXQ6OlJUQ0RhdGFDaGFubmVsSW5pdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRW5kcG9pbnRPd3I6OmNyZWF0ZURhdGFDaGFubmVs
SGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRp
YUVuZHBvaW50T3dyLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6Y3JlYXRlRGF0YUNo
YW5uZWxIYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6OlJUQ0RhdGFD
aGFubmVsSGFuZGxlck1vY2spOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyTW9jay5oOgorCiAyMDE2LTExLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uZkBn
bWFpbC5jb20+CiAKICAgICAgICAgUlRDUnRwVHJhbnNjZWl2ZXIgc2hvdWxkIGhhdmUgUmVmIG9m
IHNlbmRlciBhbmQgcmVjZWl2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcApp
bmRleCBhZjA2OThmNWRjMGFiNGI1YzhhYTk5MzMxNzJlMjFmNmUyMjYzYWIzLi5kMDRkNTY3ZWQw
NDRlMjJiOGE3MDViM2UzYmQ2MWE1Y2Q3ODU0ZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNv
bm5lY3Rpb24uY3BwCkBAIC03MDUsNiArNzA1LDExIEBAIFJlZjxSVENSdHBSZWNlaXZlcj4gTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpjcmVhdGVSZWNlaXZlcihjb25zdCBTdHJpbmcmIHRy
CiAgICAgcmV0dXJuIFJUQ1J0cFJlY2VpdmVyOjpjcmVhdGUoV1RGTW92ZShyZW1vdGVUcmFjaykp
OwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBNZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcm
IGxhYmVsLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmIG9wdGlvbnMpCit7CisgICAgcmV0dXJu
IG1fbWVkaWFFbmRwb2ludC0+Y3JlYXRlRGF0YUNoYW5uZWxIYW5kbGVyKGxhYmVsLCBvcHRpb25z
KTsKK30KKwogdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJlcGxhY2VUcmFjayhS
VENSdHBTZW5kZXImIHNlbmRlciwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYgd2l0aFRyYWNr
LCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJiBwcm9taXNlKQogewogICAgIFJUQ1J0cFRy
YW5zY2VpdmVyKiB0cmFuc2NlaXZlciA9IG1hdGNoVHJhbnNjZWl2ZXIobV9wZWVyQ29ubmVjdGlv
bi5nZXRUcmFuc2NlaXZlcnMoKSwgWyZzZW5kZXJdIChSVENSdHBUcmFuc2NlaXZlciYgY3VycmVu
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKaW5kZXggMzk2M2Y2Y2M1YjNiNWU1
ODI3MDljZWI0Njk0YzI0NmQxYTNiNWE2OC4uN2M4MDQ0NTVhMWE0ZTAwYjQ1OGNkNmQwMjk5Yzgy
ODg2ZWNhMDhkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCkBAIC0xMTEsNiAr
MTExLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKGNvbnN0
IFN0cmluZyYgbWlkKSBvdmVycmlkZTsKICAgICB2b2lkIGljZVRyYW5zcG9ydFN0YXRlQ2hhbmdl
ZChjb25zdCBTdHJpbmcmIG1pZCwgTWVkaWFFbmRwb2ludDo6SWNlVHJhbnNwb3J0U3RhdGUpIG92
ZXJyaWRlOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3Jl
YXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVs
SW5pdCYpIGZpbmFsOworCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhRW5kcG9pbnQ+IG1fbWVk
aWFFbmRwb2ludDsKIAogICAgIEZ1bmN0aW9uPHZvaWQgKCk+IG1faW5pdGlhbERlZmVycmVkVGFz
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNv
bm5lY3Rpb25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5oCmluZGV4IGJiYzI0OWY1MWQxNTBjZWQyNDhjYTZkZjk2ZDNi
ZWFiM2MzYmQ2MzEuLmE2MTQ2MDlmMjg1ZmQwYjg3ZTVkNDUyZjc0NmJkNDVlMWJkZTM0NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbkJhY2tlbmQuaApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAiSlNET01Q
cm9taXNlLmgiCiAjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25TdGF0ZXMuaCIKKyNpbmNsdWRlICJS
VENEYXRhQ2hhbm5lbC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQzLDYgKzQ0LDcg
QEAgY2xhc3MgTWVkaWFTdHJlYW07CiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwogY2xhc3MgUGVl
ckNvbm5lY3Rpb25CYWNrZW5kOwogY2xhc3MgUlRDQ29uZmlndXJhdGlvbjsKK2NsYXNzIFJUQ0Rh
dGFDaGFubmVsSGFuZGxlcjsKIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZTsKIGNsYXNzIFJUQ1BlZXJD
b25uZWN0aW9uOwogY2xhc3MgUlRDUnRwUmVjZWl2ZXI7CkBAIC03Nyw2ICs3OSw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYs
IFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYmKTsKICAgICB2b2lkIGFkZEljZUNhbmRpZGF0
ZShSVENJY2VDYW5kaWRhdGUmLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJik7CiAKKyAg
ICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGNyZWF0ZURh
dGFDaGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQm
KSA9IDA7CisKICAgICB2b2lkIHN0b3AoKTsKIAogICAgIHZpcnR1YWwgUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbj4gbG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5k
ZXggYjcyMGMyYzZlZmQ1NGRjNWQwNDY4OTcxODQ2MmUzYzMzODkzZDI5Ni4uMDk1NjdmYjc2M2Vh
ZGI3YzVjN2FlMmJiYTZmYzUyYzMyOTU2NzlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAgLTU1LDg1ICs1NSwy
MiBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhcnJheWJ1ZmZlcktleXdvcmQoKQogICAg
IHJldHVybiBhcnJheWJ1ZmZlcjsKIH0KIAotRXhjZXB0aW9uT3I8UmVmPFJUQ0RhdGFDaGFubmVs
Pj4gUlRDRGF0YUNoYW5uZWw6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIHBlZXJDb25uZWN0aW9uSGFuZGxlciwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9ucykKLXsKLSAgICBSVENEYXRh
Q2hhbm5lbEluaXQgaW5pdERhdGE7Ci0gICAgU3RyaW5nIG1heFJldHJhbnNtaXRzU3RyOwotICAg
IFN0cmluZyBtYXhSZXRyYW5zbWl0VGltZVN0cjsKLSAgICBvcHRpb25zLmdldCgib3JkZXJlZCIs
IGluaXREYXRhLm9yZGVyZWQpOwotICAgIG9wdGlvbnMuZ2V0KCJuZWdvdGlhdGVkIiwgaW5pdERh
dGEubmVnb3RpYXRlZCk7Ci0gICAgb3B0aW9ucy5nZXQoImlkIiwgaW5pdERhdGEuaWQpOwotICAg
IG9wdGlvbnMuZ2V0KCJtYXhSZXRyYW5zbWl0cyIsIG1heFJldHJhbnNtaXRzU3RyKTsKLSAgICBv
cHRpb25zLmdldCgibWF4UmV0cmFuc21pdFRpbWUiLCBtYXhSZXRyYW5zbWl0VGltZVN0cik7Ci0g
ICAgb3B0aW9ucy5nZXQoInByb3RvY29sIiwgaW5pdERhdGEucHJvdG9jb2wpOwotCi0gICAgYm9v
bCBtYXhSZXRyYW5zbWl0c0NvbnZlcnNpb247Ci0gICAgYm9vbCBtYXhSZXRyYW5zbWl0VGltZUNv
bnZlcnNpb247Ci0gICAgaW5pdERhdGEubWF4UmV0cmFuc21pdHMgPSBtYXhSZXRyYW5zbWl0c1N0
ci50b1VJbnRTdHJpY3QoJm1heFJldHJhbnNtaXRzQ29udmVyc2lvbik7Ci0gICAgaW5pdERhdGEu
bWF4UmV0cmFuc21pdFRpbWUgPSBtYXhSZXRyYW5zbWl0VGltZVN0ci50b1VJbnRTdHJpY3QoJm1h
eFJldHJhbnNtaXRUaW1lQ29udmVyc2lvbik7Ci0gICAgaWYgKG1heFJldHJhbnNtaXRzQ29udmVy
c2lvbiAmJiBtYXhSZXRyYW5zbWl0VGltZUNvbnZlcnNpb24pCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBTWU5UQVhfRVJSIH07Ci0KLSAgICBhdXRvIGhhbmRsZXIgPSBwZWVyQ29ubmVjdGlv
bkhhbmRsZXItPmNyZWF0ZURhdGFDaGFubmVsKGxhYmVsLCBpbml0RGF0YSk7Ci0gICAgaWYgKCFo
YW5kbGVyKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTk9UX1NVUFBPUlRFRF9FUlIgfTsK
LQotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0RhdGFDaGFubmVsKCpjb250ZXh0LCBXVEZN
b3ZlKGhhbmRsZXIpKSk7Ci19Ci0KLVJlZjxSVENEYXRhQ2hhbm5lbD4gUlRDRGF0YUNoYW5uZWw6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8
UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiYmIGhhbmRsZXIpCitSZWY8UlRDRGF0YUNoYW5uZWw+IFJU
Q0RhdGFDaGFubmVsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3Rk
Ojp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4mJiBoYW5kbGVyLCBTdHJpbmcmJiBs
YWJlbCwgUlRDRGF0YUNoYW5uZWxJbml0JiYgb3B0aW9ucykKIHsKICAgICBBU1NFUlQoaGFuZGxl
cik7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRGF0YUNoYW5uZWwoKmNvbnRleHQsIFdU
Rk1vdmUoaGFuZGxlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENEYXRhQ2hhbm5l
bChjb250ZXh0LCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShvcHRp
b25zKSkpOwogfQogCi1SVENEYXRhQ2hhbm5lbDo6UlRDRGF0YUNoYW5uZWwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxl
cj4mJiBoYW5kbGVyKQorUlRDRGF0YUNoYW5uZWw6OlJUQ0RhdGFDaGFubmVsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRs
ZXI+JiYgaGFuZGxlciwgU3RyaW5nJiYgbGFiZWwsIFJUQ0RhdGFDaGFubmVsSW5pdCYmIG9wdGlv
bnMpCiAgICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoJmNvbnRleHQpCiAgICAgLCBtX2hh
bmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKICAgICAsIG1fc2NoZWR1bGVkRXZlbnRUaW1lcigqdGhp
cywgJlJUQ0RhdGFDaGFubmVsOjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQpCisgICAgLCBtX2xh
YmVsKFdURk1vdmUobGFiZWwpKQorICAgICwgbV9vcHRpb25zKFdURk1vdmUob3B0aW9ucykpCiB7
CiAgICAgbV9oYW5kbGVyLT5zZXRDbGllbnQodGhpcyk7CiB9CiAKLVJUQ0RhdGFDaGFubmVsOjp+
UlRDRGF0YUNoYW5uZWwoKQotewotfQotCi1TdHJpbmcgUlRDRGF0YUNoYW5uZWw6OmxhYmVsKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9oYW5kbGVyLT5sYWJlbCgpOwotfQotCi1ib29sIFJUQ0Rh
dGFDaGFubmVsOjpvcmRlcmVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9oYW5kbGVyLT5vcmRl
cmVkKCk7Ci19Ci0KLXVuc2lnbmVkIHNob3J0IFJUQ0RhdGFDaGFubmVsOjptYXhSZXRyYW5zbWl0
VGltZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faGFuZGxlci0+bWF4UmV0cmFuc21pdFRpbWUo
KTsKLX0KLQotdW5zaWduZWQgc2hvcnQgUlRDRGF0YUNoYW5uZWw6Om1heFJldHJhbnNtaXRzKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9oYW5kbGVyLT5tYXhSZXRyYW5zbWl0cygpOwotfQotCi1T
dHJpbmcgUlRDRGF0YUNoYW5uZWw6OnByb3RvY29sKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9o
YW5kbGVyLT5wcm90b2NvbCgpOwotfQotCi1ib29sIFJUQ0RhdGFDaGFubmVsOjpuZWdvdGlhdGVk
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9oYW5kbGVyLT5uZWdvdGlhdGVkKCk7Ci19Ci0KLXVu
c2lnbmVkIHNob3J0IFJUQ0RhdGFDaGFubmVsOjppZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
aGFuZGxlci0+aWQoKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBSVENEYXRhQ2hhbm5lbDo6
cmVhZHlTdGF0ZSgpIGNvbnN0CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gY29ubmVjdGluZ1N0YXRlKCJjb25uZWN0aW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CkBAIC0xNTgsNyArOTUsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFJU
Q0RhdGFDaGFubmVsOjpyZWFkeVN0YXRlKCkgY29uc3QKIAogdW5zaWduZWQgUlRDRGF0YUNoYW5u
ZWw6OmJ1ZmZlcmVkQW1vdW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9oYW5kbGVyLT5idWZm
ZXJlZEFtb3VudCgpOworICAgIHJldHVybiAwOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFJU
Q0RhdGFDaGFubmVsOjpiaW5hcnlUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaAppbmRleCBkYWU1ZDI0ODI1Mzdk
MTU0YjVmNGVmN2YxZjgzNWNkNDEzMjZhZTdkLi5iNjg1NTcwN2M0Mzg2ODk4NWQ3OGI3MGUxZjFk
OTg2ZmI3MmRhMmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5oCkBAIC0yNiw4ICsyNiwxMCBAQAogCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAKKyNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXIu
aCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQuaCIKICNpbmNsdWRlICJT
Y3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtNDEsMjIgKzQzLDIwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxvYjsKIGNsYXNzIERpY3Rpb25hcnk7Ci1j
bGFzcyBSVENEYXRhQ2hhbm5lbEhhbmRsZXI7CiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXI7CiAKIGNsYXNzIFJUQ0RhdGFDaGFubmVsIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8UlRD
RGF0YUNoYW5uZWw+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIFJU
Q0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENE
YXRhQ2hhbm5lbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBzdGQ6OnVuaXF1ZV9w
dHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiYmKTsKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVm
PFJUQ0RhdGFDaGFubmVsPj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIqLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBEaWN0aW9uYXJ5
JiBvcHRpb25zKTsKLSAgICB+UlRDRGF0YUNoYW5uZWwoKTsKLQotICAgIFN0cmluZyBsYWJlbCgp
IGNvbnN0OwotICAgIGJvb2wgb3JkZXJlZCgpIGNvbnN0OwotICAgIHVuc2lnbmVkIHNob3J0IG1h
eFJldHJhbnNtaXRUaW1lKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgc2hvcnQgbWF4UmV0cmFuc21p
dHMoKSBjb25zdDsKLSAgICBTdHJpbmcgcHJvdG9jb2woKSBjb25zdDsKLSAgICBib29sIG5lZ290
aWF0ZWQoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBzaG9ydCBpZCgpIGNvbnN0OworICAgIHN0YXRp
YyBSZWY8UlRDRGF0YUNoYW5uZWw+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3Rk
Ojp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4mJiwgU3RyaW5nJiYsIFJUQ0RhdGFD
aGFubmVsSW5pdCYmKTsKKworICAgIGJvb2wgb3JkZXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9ucy5vcmRlcmVkOyB9CisgICAgdW5zaWduZWQgc2hvcnQgbWF4UmV0cmFuc21pdFRpbWUoKSBj
b25zdCB7IHJldHVybiBtX29wdGlvbnMubWF4UmV0cmFuc21pdFRpbWU7IH0KKyAgICB1bnNpZ25l
ZCBzaG9ydCBtYXhSZXRyYW5zbWl0cygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5tYXhSZXRy
YW5zbWl0czsgfQorICAgIFN0cmluZyBwcm90b2NvbCgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9u
cy5wcm90b2NvbDsgfQorICAgIGJvb2wgbmVnb3RpYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9ucy5uZWdvdGlhdGVkOyB9OworICAgIHVuc2lnbmVkIHNob3J0IGlkKCkgY29uc3QgeyByZXR1
cm4gbV9vcHRpb25zLmlkOyB9OworCisgICAgU3RyaW5nIGxhYmVsKCkgY29uc3QgeyByZXR1cm4g
bV9sYWJlbDsgfQogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcmVhZHlTdGF0ZSgpIGNvbnN0Owog
ICAgIHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3Q7CiAKQEAgLTc2LDcgKzc2LDcgQEAg
cHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCiBwcml2YXRlOgotICAgIFJU
Q0RhdGFDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6OnVuaXF1ZV9wdHI8UlRD
RGF0YUNoYW5uZWxIYW5kbGVyPiYmKTsKKyAgICBSVENEYXRhQ2hhbm5lbChTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4mJiwgU3Ry
aW5nJiYsIFJUQ0RhdGFDaGFubmVsSW5pdCYmKTsKIAogICAgIHZvaWQgc2NoZWR1bGVEaXNwYXRj
aEV2ZW50KFJlZjxFdmVudD4mJik7CiAgICAgdm9pZCBzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQo
KTsKQEAgLTkzLDYgKzkzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVTdHJpbmdE
YXRhKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJhd0RhdGEoY29u
c3QgY2hhciosIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBkaWREZXRlY3RFcnJvcigpIGZpbmFs
OworICAgIHZvaWQgcHJvdGVjdCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIHVucHJvdGVj
dCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFu
bmVsSGFuZGxlcj4gbV9oYW5kbGVyOwogCkBAIC0xMDUsNiArMTA3LDkgQEAgcHJpdmF0ZToKIAog
ICAgIFRpbWVyIG1fc2NoZWR1bGVkRXZlbnRUaW1lcjsKICAgICBWZWN0b3I8UmVmPEV2ZW50Pj4g
bV9zY2hlZHVsZWRFdmVudHM7CisKKyAgICBTdHJpbmcgbV9sYWJlbDsKKyAgICBSVENEYXRhQ2hh
bm5lbEluaXQgbV9vcHRpb25zOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5u
ZWxFdmVudC5jcHAKaW5kZXggNTg5OTU5NDk1MWVhMjkxM2MwMWNjZTdmNjQ1OTY3MTg1NGZhMTZh
OC4uOGE1ZWVlNTZhYTk2NWVlYTRjOWNkYjFmZDhlOThjYTViN2M0ZDhjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVs
RXZlbnQuY3BwCkBAIC0zMiwxOCArMzIsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8UlRDRGF0YUNoYW5uZWxFdmVudD4gUlRDRGF0YUNoYW5uZWxFdmVudDo6Y3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUlRD
RGF0YUNoYW5uZWwmIGNoYW5uZWwpCitSZWY8UlRDRGF0YUNoYW5uZWxFdmVudD4gUlRDRGF0YUNo
YW5uZWxFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgUmVmPFJUQ0RhdGFDaGFubmVsPiYmIGNoYW5uZWwpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRGF0YUNoYW5uZWxFdmVudCh0eXBlLCBjYW5CdWJi
bGUsIGNhbmNlbGFibGUsIGNoYW5uZWwpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENE
YXRhQ2hhbm5lbEV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgV1RGTW92ZShjaGFu
bmVsKSkpOwogfQogCi1SVENEYXRhQ2hhbm5lbEV2ZW50OjpSVENEYXRhQ2hhbm5lbEV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwg
UlRDRGF0YUNoYW5uZWwmIGNoYW5uZWwpCitSVENEYXRhQ2hhbm5lbEV2ZW50OjpSVENEYXRhQ2hh
bm5lbEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wg
Y2FuY2VsYWJsZSwgUmVmPFJUQ0RhdGFDaGFubmVsPiYmIGNoYW5uZWwpCiAgICAgOiBFdmVudCh0
eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUpCi0gICAgLCBtX2NoYW5uZWwoY2hhbm5lbCkKLXsK
LX0KLQotUlRDRGF0YUNoYW5uZWxFdmVudDo6flJUQ0RhdGFDaGFubmVsRXZlbnQoKQorICAgICwg
bV9jaGFubmVsKFdURk1vdmUoY2hhbm5lbCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmgKaW5kZXgg
MTQwZGY4YWFmZmE4ZWNmZGNlMWFmMzNmYjhlNjhlYWU5MzRmMDI3Ny4uNTI0MWUyNzkwZTU4OTc1
ZjVhMzVkMGZlMjNlOWM5MmRjNDViYzJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmgKQEAgLTM0LDE2ICsz
NCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0RhdGFDaGFubmVsRXZlbnQg
OiBwdWJsaWMgRXZlbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgflJUQ0RhdGFDaGFubmVsRXZl
bnQoKTsKLQotICAgIHN0YXRpYyBSZWY8UlRDRGF0YUNoYW5uZWxFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUlRD
RGF0YUNoYW5uZWwmKTsKKyAgICBzdGF0aWMgUmVmPFJUQ0RhdGFDaGFubmVsRXZlbnQ+IGNyZWF0
ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIFJlZjxSVENEYXRhQ2hhbm5lbD4mJik7CiAKICAgICBSVENEYXRhQ2hhbm5lbCogY2hhbm5l
bCgpOwogCiAgICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0
OwogCiBwcml2YXRlOgotICAgIFJUQ0RhdGFDaGFubmVsRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBSVENEYXRhQ2hhbm5lbCYp
OworICAgIFJUQ0RhdGFDaGFubmVsRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29s
IGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBSZWY8UlRDRGF0YUNoYW5uZWw+JiYpOwogCiAg
ICAgUmVmPFJUQ0RhdGFDaGFubmVsPiBtX2NoYW5uZWw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRl
eCBlNTY4ZjcyOGQwZGFmNjBlYTBkMGM2MzViOThiYWMxOGVlNzE4ZmU1Li41YThhOGNhOTFjNDNm
NzY0OGIyN2I5MWRiN2UzNTE0NTRjZjcxZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMzc2LDEy
ICszNzYsMTcgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cHJpdmF0ZUdldFN0YXRzKE1lZGlh
U3RyZWFtVHJhY2sqIHNlbGVjdG9yLCBQZWVyQ29ubmVjdGkKICAgICBtX2JhY2tlbmQtPmdldFN0
YXRzKHNlbGVjdG9yLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAotRXhjZXB0aW9uT3I8UmVmUHRy
PFJUQ0RhdGFDaGFubmVsPj4gUlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZURhdGFDaGFubmVsKGNv
bnN0IFN0cmluZyYsIGNvbnN0IERpY3Rpb25hcnkmKQorRXhjZXB0aW9uT3I8UmVmPFJUQ0RhdGFD
aGFubmVsPj4gUlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZURhdGFDaGFubmVsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5lbEluaXQm
JiBvcHRpb25zKQogewogICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25hbGluZ1N0YXRl
OjpDbG9zZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9
OwogCi0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgLy8gRklYTUU6IENoZWNrIG9wdGlvbnMKKyAg
ICBhdXRvIGNoYW5uZWxIYW5kbGVyID0gbV9iYWNrZW5kLT5jcmVhdGVEYXRhQ2hhbm5lbEhhbmRs
ZXIobGFiZWwsIG9wdGlvbnMpOworICAgIGlmICghY2hhbm5lbEhhbmRsZXIpCisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOT1RfU1VQUE9SVEVEX0VSUiB9OworCisgICAgcmV0dXJuIFJUQ0Rh
dGFDaGFubmVsOjpjcmVhdGUoY29udGV4dCwgV1RGTW92ZShjaGFubmVsSGFuZGxlciksIFdURk1v
dmUobGFiZWwpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKIH0KIAogdm9pZCBSVENQZWVyQ29ubmVjdGlv
bjo6Y2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IGRmZDlhZWQ4MjgzOTZkOTAxNWI5YTU3YjNhMjNl
MjBhYzQ5YTQ2YjQuLmUyNmQ1NTk5NzZiYmQ2Zjk1YTdlN2EwNzE1MDkwZjY4YzRhMzNiNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAj
aW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgorI2luY2x1
ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmgi
CiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNjZWl2ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFi
bGUuaCIKQEAgLTQ5LDcgKzUwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFT
dHJlYW1UcmFjazsKIGNsYXNzIFBlZXJDb25uZWN0aW9uQmFja2VuZDsKIGNsYXNzIFJUQ0NvbmZp
Z3VyYXRpb247Ci1jbGFzcyBSVENEYXRhQ2hhbm5lbDsKIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZTsK
IGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjazsKIGNsYXNzIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbjsKQEAgLTYwLDkgKzYwLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJU
Q1BlZXJDb25uZWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIH5S
VENQZWVyQ29ubmVjdGlvbigpOwogCisgICAgdXNpbmcgQW5zd2VyT3B0aW9ucyA9IFJUQ0Fuc3dl
ck9wdGlvbnM7CisgICAgdXNpbmcgRGF0YUNoYW5uZWxJbml0ID0gUlRDRGF0YUNoYW5uZWxJbml0
OwogICAgIHVzaW5nIE9mZmVyQW5zd2VyT3B0aW9ucyA9IFJUQ09mZmVyQW5zd2VyT3B0aW9uczsK
ICAgICB1c2luZyBPZmZlck9wdGlvbnMgPSBSVENPZmZlck9wdGlvbnM7Ci0gICAgdXNpbmcgQW5z
d2VyT3B0aW9ucyA9IFJUQ0Fuc3dlck9wdGlvbnM7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBp
bml0aWFsaXplV2l0aChEb2N1bWVudCYsIGNvbnN0IERpY3Rpb25hcnkmKTsKIApAQCAtMTExLDcg
KzExMiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJpdmF0ZUdldFN0YXRzKE1lZGlhU3RyZWFt
VHJhY2sqLCBQZWVyQ29ubmVjdGlvbjo6U3RhdHNQcm9taXNlJiYpOwogCi0gICAgRXhjZXB0aW9u
T3I8UmVmUHRyPFJUQ0RhdGFDaGFubmVsPj4gY3JlYXRlRGF0YUNoYW5uZWwoY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3QgRGljdGlvbmFyeSYgZGF0YUNoYW5uZWxEaWN0KTsKKyAgICBFeGNlcHRp
b25PcjxSZWY8UlRDRGF0YUNoYW5uZWw+PiBjcmVhdGVEYXRhQ2hhbm5lbChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgU3RyaW5nJiYsIFJUQ0RhdGFDaGFubmVsSW5pdCYmKTsKIAogICAgIHZvaWQg
Y2xvc2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAppbmRleCBlZjFlZjU3YWM5NWY3NDQ2Njc0Mjc3OGM4
YmE3ZGU1NmZlNzEyNDk3Li4yNTU5ZTUzNmZiNGFjNDgxNzczMjE1OTc5OTExMzAwYzYyYzE3OGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmlkbApAQCAtNDEsNiArNDEsMTUgQEAgZGljdGlvbmFyeSBSVENPZmZl
ck9wdGlvbnMgOiBSVENPZmZlckFuc3dlck9wdGlvbnMgewogZGljdGlvbmFyeSBSVENBbnN3ZXJP
cHRpb25zIDogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zIHsKIH07CiAKK2RpY3Rpb25hcnkgUlRDRGF0
YUNoYW5uZWxJbml0IHsKKyAgICBib29sZWFuIG9yZGVyZWQgPSB0cnVlOworICAgIHVuc2lnbmVk
IHNob3J0IG1heFJldHJhbnNtaXRUaW1lOworICAgIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNt
aXRzOworICAgIFVTVlN0cmluZyBwcm90b2NvbCA9ICIiOworICAgIGJvb2xlYW4gbmVnb3RpYXRl
ZCA9IGZhbHNlOworICAgIHVuc2lnbmVkIHNob3J0IGlkOworfTsKKwogWwogICAgIEFjdGl2ZURP
TU9iamVjdCwKICAgICBDb25kaXRpb25hbD1XRUJfUlRDLApAQCAtMTI1LDcgKzEzNCw3IEBAIGRp
Y3Rpb25hcnkgUlRDQW5zd2VyT3B0aW9ucyA6IFJUQ09mZmVyQW5zd2VyT3B0aW9ucyB7CiAgICAg
W1ByaXZhdGVJZGVudGlmaWVyXSBQcm9taXNlPHZvaWQ+IHF1ZXVlZEFkZEljZUNhbmRpZGF0ZShS
VENJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKTsKICAgICBbUHJpdmF0ZUlkZW50aWZpZXJdIFByb21p
c2U8UlRDU3RhdHNSZXBvcnQ+IHByaXZhdGVHZXRTdGF0cyhNZWRpYVN0cmVhbVRyYWNrPyBzZWxl
Y3Rvcik7CiAKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFJUQ0RhdGFDaGFubmVsIGNyZWF0ZURh
dGFDaGFubmVsKFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGxhYmVsLCBvcHRp
b25hbCBEaWN0aW9uYXJ5IG9wdGlvbnMpOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gUlRDRGF0YUNoYW5uZWwgY3JlYXRlRGF0YUNoYW5u
ZWwoW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgbGFiZWwsIG9wdGlvbmFsIFJU
Q0RhdGFDaGFubmVsSW5pdCBvcHRpb25zKTsKIAogICAgIHZvaWQgY2xvc2UoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNw
cAppbmRleCBkNGM4Y2Q3NDlkMTcxYzY2MmQyZmZlMjBmMjI1MDE0MDEzNDQ1MTQ4Li4wMmRmZGRi
NjI5Y2FkYTMyY2FjOTA1ZGQ5ZTVjZmY3MTcxM2E2YzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcApAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIk1lZGlhRW5kcG9pbnQuaCIKIAogI2luY2x1ZGUgIk1lZGlhUGF5
bG9hZC5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgogI2luY2x1ZGUgIlJl
YWx0aW1lTWVkaWFTb3VyY2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsNDMgKzQz
LDQwIEBAIGNsYXNzIEVtcHR5UmVhbHRpbWVNZWRpYVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBSZWFs
dGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEVtcHR5UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVJlYWx0aW1l
TWVkaWFTb3VyY2UoKSk7IH0KIAorcHJpdmF0ZToKKyAgICBFbXB0eVJlYWx0aW1lTWVkaWFTb3Vy
Y2UoKSA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZW1wdHlTdHJpbmcoKSwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Tm9uZSwgZW1wdHlTdHJpbmcoKSkgeyB9CisKICAgICBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGlu
Z3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZVNldHRpbmdzOyB9CiAKLXByaXZhdGU6
Ci0gICAgRW1wdHlSZWFsdGltZU1lZGlhU291cmNlKCkKLSAgICAgICAgOiBSZWFsdGltZU1lZGlh
U291cmNlKGVtcHR5U3RyaW5nKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5vbmUsIGVtcHR5U3Ry
aW5nKCkpCi0gICAgICAgIHsgfQotCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1f
c291cmNlU2V0dGluZ3M7CiB9OwogCi1jbGFzcyBFbXB0eU1lZGlhRW5kcG9pbnQgOiBwdWJsaWMg
TWVkaWFFbmRwb2ludCB7Ci1wdWJsaWM6Ci0gICAgRW1wdHlNZWRpYUVuZHBvaW50KE1lZGlhRW5k
cG9pbnRDbGllbnQmKSB7IH0KLQotICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihNZWRpYUVuZHBv
aW50Q29uZmlndXJhdGlvbiYmKSBvdmVycmlkZSB7IH0KK2NsYXNzIEVtcHR5TWVkaWFFbmRwb2lu
dCBmaW5hbCA6IHB1YmxpYyBNZWRpYUVuZHBvaW50IHsKK3ByaXZhdGU6CisgICAgdm9pZCBzZXRD
b25maWd1cmF0aW9uKE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uJiYpIGZpbmFsIHsgfQogCi0g
ICAgdm9pZCBnZW5lcmF0ZUR0bHNJbmZvKCkgb3ZlcnJpZGUgeyB9Ci0gICAgTWVkaWFQYXlsb2Fk
VmVjdG9yIGdldERlZmF1bHRBdWRpb1BheWxvYWRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFQ
YXlsb2FkVmVjdG9yKCk7IH0KLSAgICBNZWRpYVBheWxvYWRWZWN0b3IgZ2V0RGVmYXVsdFZpZGVv
UGF5bG9hZHMoKSBvdmVycmlkZSB7IHJldHVybiBNZWRpYVBheWxvYWRWZWN0b3IoKTsgfQotICAg
IE1lZGlhUGF5bG9hZFZlY3RvciBmaWx0ZXJQYXlsb2Fkcyhjb25zdCBNZWRpYVBheWxvYWRWZWN0
b3ImLCBjb25zdCBNZWRpYVBheWxvYWRWZWN0b3ImKSBvdmVycmlkZSB7IHJldHVybiBNZWRpYVBh
eWxvYWRWZWN0b3IoKTsgfQorICAgIHZvaWQgZ2VuZXJhdGVEdGxzSW5mbygpIGZpbmFsIHsgfQor
ICAgIE1lZGlhUGF5bG9hZFZlY3RvciBnZXREZWZhdWx0QXVkaW9QYXlsb2FkcygpIGZpbmFsIHsg
cmV0dXJuIE1lZGlhUGF5bG9hZFZlY3RvcigpOyB9CisgICAgTWVkaWFQYXlsb2FkVmVjdG9yIGdl
dERlZmF1bHRWaWRlb1BheWxvYWRzKCkgZmluYWwgeyByZXR1cm4gTWVkaWFQYXlsb2FkVmVjdG9y
KCk7IH0KKyAgICBNZWRpYVBheWxvYWRWZWN0b3IgZmlsdGVyUGF5bG9hZHMoY29uc3QgTWVkaWFQ
YXlsb2FkVmVjdG9yJiwgY29uc3QgTWVkaWFQYXlsb2FkVmVjdG9yJikgZmluYWwgeyByZXR1cm4g
TWVkaWFQYXlsb2FkVmVjdG9yKCk7IH0KIAotICAgIFVwZGF0ZVJlc3VsdCB1cGRhdGVSZWNlaXZl
Q29uZmlndXJhdGlvbihNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24qLCBib29sKSBv
dmVycmlkZSB7IHJldHVybiBVcGRhdGVSZXN1bHQ6OkZhaWxlZDsgfQotICAgIFVwZGF0ZVJlc3Vs
dCB1cGRhdGVTZW5kQ29uZmlndXJhdGlvbihNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRp
b24qLCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlTWFwJiwgYm9vbCkgb3ZlcnJpZGUgeyByZXR1
cm4gVXBkYXRlUmVzdWx0OjpGYWlsZWQ7IH0KKyAgICBVcGRhdGVSZXN1bHQgdXBkYXRlUmVjZWl2
ZUNvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uKiwgYm9vbCkg
ZmluYWwgeyByZXR1cm4gVXBkYXRlUmVzdWx0OjpGYWlsZWQ7IH0KKyAgICBVcGRhdGVSZXN1bHQg
dXBkYXRlU2VuZENvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9u
KiwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZU1hcCYsIGJvb2wpIGZpbmFsIHsgcmV0dXJuIFVw
ZGF0ZVJlc3VsdDo6RmFpbGVkOyB9CiAKLSAgICB2b2lkIGFkZFJlbW90ZUNhbmRpZGF0ZShjb25z
dCBJY2VDYW5kaWRhdGUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGFkZFJlbW90ZUNhbmRpZGF0ZShjb25zdCBJY2VD
YW5kaWRhdGUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBm
aW5hbCB7IH0KIAotICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVNdXRlZFJlbW90
ZVNvdXJjZShjb25zdCBTdHJpbmcmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlKSBvdmVycmlk
ZSB7IHJldHVybiBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSgpOyB9Ci0gICAgdm9p
ZCByZXBsYWNlU2VuZFNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiwgY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCByZXBsYWNlTXV0ZWRSZW1vdGVTb3VyY2VNaWQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9OworICAgIFJlZjxSZWFsdGltZU1l
ZGlhU291cmNlPiBjcmVhdGVNdXRlZFJlbW90ZVNvdXJjZShjb25zdCBTdHJpbmcmLCBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlKSBmaW5hbCB7IHJldHVybiBFbXB0eVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNyZWF0ZSgpOyB9CisgICAgdm9pZCByZXBsYWNlU2VuZFNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgdm9pZCByZXBsYWNlTXV0ZWRS
ZW1vdGVTb3VyY2VNaWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9Owog
Ci0gICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGUgeyB9CisgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0Rh
dGFDaGFubmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAg
ICB2b2lkIHN0b3AoKSBmaW5hbCB7IH0KIH07CiAKLXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFFbmRwb2ludD4gY3JlYXRlTWVkaWFFbmRwb2ludChNZWRpYUVuZHBvaW50Q2xpZW50JiBjbGll
bnQpCitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhRW5kcG9pbnQ+IGNyZWF0ZU1lZGlhRW5k
cG9pbnQoTWVkaWFFbmRwb2ludENsaWVudCYpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8RW1wdHlNZWRpYUVuZHBvaW50PihjbGllbnQpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPEVtcHR5TWVkaWFFbmRwb2ludD4oKTsKIH0KIAogQ3JlYXRlTWVkaWFFbmRwb2ludCBNZWRp
YUVuZHBvaW50OjpjcmVhdGUgPSBjcmVhdGVNZWRpYUVuZHBvaW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5oCmluZGV4IGYyNzcz
N2Y4MmQ0NmViNTU5OWU0NGM1OGM3ZmY1MzE0MGZlNzgwY2IuLjFjNTk2ZDI3YmI4ZTkzZDIzNTc2
NDUyYzk4MTEwYTM4Y2Y2MDYyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmgKQEAgLTM5LDEzICszOSwxNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBJY2VDYW5kaWRhdGU7CiBjbGFzcyBNZWRpYUVuZHBv
aW50OwogY2xhc3MgTWVkaWFFbmRwb2ludENsaWVudDsKIGNsYXNzIE1lZGlhRW5kcG9pbnRTZXNz
aW9uQ29uZmlndXJhdGlvbjsKLXN0cnVjdCBNZWRpYVBheWxvYWQ7CitjbGFzcyBSVENEYXRhQ2hh
bm5lbEhhbmRsZXI7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlOwogCitzdHJ1Y3QgSWNlQ2Fu
ZGlkYXRlOworc3RydWN0IE1lZGlhUGF5bG9hZDsKK3N0cnVjdCBSVENEYXRhQ2hhbm5lbEluaXQ7
CisKIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPE1lZGlhRW5kcG9pbnQ+ICgqQ3JlYXRlTWVkaWFF
bmRwb2ludCkoTWVkaWFFbmRwb2ludENsaWVudCYpOwogdHlwZWRlZiBWZWN0b3I8TWVkaWFQYXls
b2FkPiBNZWRpYVBheWxvYWRWZWN0b3I7CiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWFsdGlt
ZU1lZGlhU291cmNlKj4gUmVhbHRpbWVNZWRpYVNvdXJjZU1hcDsKQEAgLTc5LDYgKzgyLDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXBsYWNlU2VuZFNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlJiwgY29uc3QgU3RyaW5nJiBtaWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVwbGFj
ZU11dGVkUmVtb3RlU291cmNlTWlkKGNvbnN0IFN0cmluZyYgb2xkTWlkLCBjb25zdCBTdHJpbmcm
IG5ld01pZCkgPSAwOwogCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5u
ZWxIYW5kbGVyPiBjcmVhdGVEYXRhQ2hhbm5lbEhhbmRsZXIoY29uc3QgU3RyaW5nJiwgY29uc3Qg
UlRDRGF0YUNoYW5uZWxJbml0JikgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJikg
eyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWxIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaAppbmRleCA1MjJmOTc1MzU5YjZmMWRhOWU1MTQwYjQ2
ZGQ4YTU5Njc5MTUyYTViLi5iMmEzNzlhMDgwZThhNzc5NTkyYjAxOWExODVmNWJlMDdiNGVmYzRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaApAQCAtMjIsOCArMjIsNyBAQAogICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotI2lmbmRlZiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJfaAotI2RlZmluZSBSVENEYXRhQ2hhbm5l
bEhhbmRsZXJfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIApAQCAtMzEs
NiArMzAsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgUlRDRGF0YUNoYW5u
ZWxJbml0IHsKKyAgICBib29sIG9yZGVyZWQgeyB0cnVlIH07CisgICAgaW50IG1heFJldHJhbnNt
aXRUaW1lIHsgLTEgfTsKKyAgICBpbnQgbWF4UmV0cmFuc21pdHMgeyAtMSB9OworICAgIFN0cmlu
ZyBwcm90b2NvbDsKKyAgICBib29sIG5lZ290aWF0ZWQgeyBmYWxzZSB9OworICAgIGludCBpZCB7
IC0xIH07Cit9OworCiBjbGFzcyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQ7CiAKIGNsYXNz
IFJUQ0RhdGFDaGFubmVsSGFuZGxlciB7CkBAIC0zOSwxNSArNDcsNiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCopID0g
MDsKIAotICAgIHZpcnR1YWwgU3RyaW5nIGxhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBv
cmRlcmVkKCkgPSAwOwotICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgbWF4UmV0cmFuc21pdFRp
bWUoKSA9IDA7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBtYXhSZXRyYW5zbWl0cygpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBwcm90b2NvbCgpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wg
bmVnb3RpYXRlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGlkKCkgPSAwOwot
ICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCgpID0gMDsKLQogICAgIHZp
cnR1YWwgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVh
bCBib29sIHNlbmRSYXdEYXRhKGNvbnN0IGNoYXIqLCBzaXplX3QpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgY2xvc2UoKSA9IDA7CkBAIC01Niw1ICs1NSwzIEBAIHB1YmxpYzoKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQotCi0jZW5kaWYgLy8gUlRD
RGF0YUNoYW5uZWxIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmgKaW5k
ZXggNzNlODZjMzc3MjdkOTU4NmM4MTJkY2FiM2IzODU0ZjlkY2M3YjRkZi4uYTc2ZDM5MjU5Zjc1
N2FmMWFlMTJiMjA2NjlmZGFlOWMyYzEwMjc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVy
Q2xpZW50LmgKQEAgLTQ2LDYgKzQ2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlU3RyaW5nRGF0YShjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVSYXdEYXRhKGNvbnN0IGNoYXIqLCBzaXplX3QpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkRGV0ZWN0RXJyb3IoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcHJvdGVjdCgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5wcm90ZWN0KCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRleCA0YzJlMGVlMjQxNDQ2
OWNiMDZmYWIzZGY5ZTc1YWUwNThhMDYyNzZjLi45YWM3NzBkOThmMjAzMWY0MWU3YTVjYjUxMGJl
MThiNTUyMTgyNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApAQCAtNTMsMjEgKzUz
LDcgQEAgY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDsKIGNsYXNzIFJUQ1N0YXRz
UmVxdWVzdDsKIGNsYXNzIFJUQ1ZvaWRSZXF1ZXN0OwogCi1zdHJ1Y3QgUlRDRGF0YUNoYW5uZWxJ
bml0IHsKLXB1YmxpYzoKLSAgICBSVENEYXRhQ2hhbm5lbEluaXQoKQotICAgICAgICA6IG9yZGVy
ZWQodHJ1ZSkKLSAgICAgICAgLCBtYXhSZXRyYW5zbWl0VGltZSgtMSkKLSAgICAgICAgLCBtYXhS
ZXRyYW5zbWl0cygtMSkKLSAgICAgICAgLCBuZWdvdGlhdGVkKGZhbHNlKQotICAgICAgICAsIGlk
KC0xKSB7IH0KLSAgICBib29sIG9yZGVyZWQ7Ci0gICAgaW50IG1heFJldHJhbnNtaXRUaW1lOwot
ICAgIGludCBtYXhSZXRyYW5zbWl0czsKLSAgICBTdHJpbmcgcHJvdG9jb2w7Ci0gICAgYm9vbCBu
ZWdvdGlhdGVkOwotICAgIGludCBpZDsKLX07CitzdHJ1Y3QgUlRDRGF0YUNoYW5uZWxJbml0Owog
CiB0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+ICgqQ3Jl
YXRlUGVlckNvbm5lY3Rpb25IYW5kbGVyKShSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQq
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3Bl
bndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5jcHAKaW5kZXggNWJhZTdlZDE2
YzZhY2MwNDY0ZmE3ZDg4ZWNjODg1MGMwN2ZmY2Y3Ni4uYTcyNTM5OGI1NjE0MjNjM2Q2N2I1MjUy
YTg5OGZiNzc4MjNiYzEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL01lZGlhRW5kcG9pbnRPd3IuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTWVkaWFQYXlsb2FkLmgiCiAjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJPcGVuV2ViUlRDVXRpbGl0aWVzLmgiCisjaW5j
bHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZU93ci5oIgogI2luY2x1ZGUgPG93ci9vd3IuaD4KICNpbmNsdWRlIDxvd3Ivb3dyX2F1ZGlv
X3BheWxvYWQuaD4KQEAgLTk0LDYgKzk1LDEzIEBAIHZvaWQgTWVkaWFFbmRwb2ludE93cjo6c2V0
Q29uZmlndXJhdGlvbihNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpCiAg
ICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKIH0KIAorc3RkOjp1
bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gTWVkaWFFbmRwb2ludE93cjo6Y3JlYXRl
RGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5p
dCYpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBkYXRhIGNoYW5uZWwuCisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIHN0YXRpYyB2b2lkIGNy
eXB0b0RhdGFDYWxsYmFjayhnY2hhciogcHJpdmF0ZUtleSwgZ2NoYXIqIGNlcnRpZmljYXRlLCBn
Y2hhciogZmluZ2VycHJpbnQsIGdjaGFyKiBmaW5nZXJwcmludEZ1bmN0aW9uLCBncG9pbnRlciBk
YXRhKQogewogICAgIE1lZGlhRW5kcG9pbnRPd3IqIG1lZGlhRW5kcG9pbnQgPSAoTWVkaWFFbmRw
b2ludE93ciopIGRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9vcGVud2VicnRjL01lZGlhRW5kcG9pbnRPd3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5oCmluZGV4IGM0
ZDFlNTYzOTkyY2QwMTE2NzQ3OWNhODQ1MDJmZDg0MzM0Yzg3MzguLmMzMzk2ZTcxOGZlNDcwM2Fk
MGNjNTU3MThhMmViM2UyYzMwYWMyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93
ci5oCkBAIC0xMjAsNiArMTIwLDggQEAgcHJpdmF0ZToKICAgICAgICAgU3RyaW5nIG1pZDsKICAg
ICB9OwogCisgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3JlYXRl
RGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5p
dCYpIGZpbmFsOworCiAgICAgdm9pZCBwcmVwYXJlU2Vzc2lvbihPd3JTZXNzaW9uKiwgUGVlck1l
ZGlhRGVzY3JpcHRpb24qKTsKICAgICB2b2lkIHByZXBhcmVNZWRpYVNlc3Npb24oT3dyTWVkaWFT
ZXNzaW9uKiwgUGVlck1lZGlhRGVzY3JpcHRpb24qLCBib29sIGlzSW5pdGlhdG9yKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcApp
bmRleCA2MTQyMzE1ZDU4YzcwMjcxMDY1OWIzZjdkNTEzOGE3NzRlOGY4ODc5Li42MGJiMDE4MWFl
OGNkM2I3N2I4OWVkZjQ5YTM2NTM4NGYyZTBkZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIk1lZGlhUGF5bG9hZC5oIgogI2luY2x1ZGUgIk1vY2tSZWFsdGltZUF1ZGlvU291
cmNlLmgiCiAjaW5jbHVkZSAiTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKKyNpbmNsdWRlICJS
VENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTYzLDYgKzY0LDExIEBAIE1v
Y2tNZWRpYUVuZHBvaW50Ojp+TW9ja01lZGlhRW5kcG9pbnQoKQogICAgIHN0b3AoKTsKIH0KIAor
c3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gTW9ja01lZGlhRW5kcG9pbnQ6
OmNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBSVENE
YXRhQ2hhbm5lbEluaXQmIG9wdGlvbnMpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jaz4obGFiZWwsIG9wdGlvbnMpOworfQorCiB2b2lkIE1v
Y2tNZWRpYUVuZHBvaW50OjpnZW5lcmF0ZUR0bHNJbmZvKCkKIHsKICAgICBjYWxsT25NYWluVGhy
ZWFkKFt0aGlzXSgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja01lZGlhRW5kcG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01l
ZGlhRW5kcG9pbnQuaAppbmRleCA0ODAzODc0ZDdkMWZkM2QzZDU2OTYwOTEzMDk1OGIxNjdkNmY0
NzdiLi4xM2JkNDdiMjZkNTA4N2I4Y2RjMGUxNTRiYTA1MDc4M2M5ZmNiYTQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oCkBAIC02OCw2
ICs2OCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9u
TWlkcyhjb25zdCBNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24mKTsKIAorICAgIHN0
ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGNyZWF0ZURhdGFDaGFubmVsSGFu
ZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmKSBmaW5hbDsKKwog
ICAgIHZvaWQgZGlzcGF0Y2hGYWtlSWNlQ2FuZGlkYXRlcygpOwogICAgIHZvaWQgaWNlQ2FuZGlk
YXRlVGltZXJGaXJlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNwcAppbmRleCA4Y2E4MDA2MzEzNWI1
MDgzOTAxYzg5Y2U3NWY5ZGVjYmRlMzEzZmE2Li44OTg1ZTVjOWY1OTgwZjJkODVlM2E0ZTRkM2Y5
NTkxMDllYjZlYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JU
Q0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAKQEAgLTM3LDExICszNyw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2s6OlJUQ0RhdGFDaGFu
bmVsSGFuZGxlck1vY2soY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgUlRDRGF0YUNoYW5uZWxJ
bml0JiBpbml0KQogICAgIDogbV9sYWJlbChsYWJlbCkKICAgICAsIG1fcHJvdG9jb2woaW5pdC5w
cm90b2NvbCkKLSAgICAsIG1fbWF4UmV0cmFuc21pdFRpbWUoaW5pdC5tYXhSZXRyYW5zbWl0VGlt
ZSkKLSAgICAsIG1fbWF4UmV0cmFuc21pdHMoaW5pdC5tYXhSZXRyYW5zbWl0cykKLSAgICAsIG1f
aWQoaW5pdC5pZCkKLSAgICAsIG1fb3JkZXJlZChpbml0Lm9yZGVyZWQpCi0gICAgLCBtX25lZ290
aWF0ZWQoaW5pdC5uZWdvdGlhdGVkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCmluZGV4IDhmNDMy
ZDVjOTI5NjlhOGQwYzhmYjcwZDZkMDAwMzkyOTUxNjMzYWUuLmViZDgzNWZjOWIyZWMyNmNjZjhm
MTgwMTQ1NDljODY2YWVlMWViN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCkBAIC00MSwxNSArNDEsNiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENsaWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGll
bnQqKSBvdmVycmlkZTsKIAotICAgIFN0cmluZyBsYWJlbCgpIG92ZXJyaWRlIHsgcmV0dXJuIG1f
bGFiZWw7IH0KLSAgICBib29sIG9yZGVyZWQoKSBvdmVycmlkZSB7IHJldHVybiBtX29yZGVyZWQ7
IH0KLSAgICB1bnNpZ25lZCBzaG9ydCBtYXhSZXRyYW5zbWl0VGltZSgpIG92ZXJyaWRlIHsgcmV0
dXJuIG1fbWF4UmV0cmFuc21pdFRpbWU7IH0KLSAgICB1bnNpZ25lZCBzaG9ydCBtYXhSZXRyYW5z
bWl0cygpIG92ZXJyaWRlIHsgcmV0dXJuIG1fbWF4UmV0cmFuc21pdHM7IH0KLSAgICBTdHJpbmcg
cHJvdG9jb2woKSBvdmVycmlkZSB7IHJldHVybiBtX3Byb3RvY29sOyB9Ci0gICAgYm9vbCBuZWdv
dGlhdGVkKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9uZWdvdGlhdGVkOyB9Ci0gICAgdW5zaWduZWQg
c2hvcnQgaWQoKSBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9Ci0gICAgdW5zaWduZWQgbG9uZyBi
dWZmZXJlZEFtb3VudCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KLQogICAgIGJvb2wgc2VuZFN0
cmluZ0RhdGEoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzZW5kUmF3RGF0YShj
b25zdCBjaGFyKiwgc2l6ZV90KSBvdmVycmlkZTsKICAgICB2b2lkIGNsb3NlKCkgb3ZlcnJpZGU7
CkBAIC01OSwxMSArNTAsNiBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fbGFiZWw7CiAgICAg
U3RyaW5nIG1fcHJvdG9jb2w7Ci0gICAgdW5zaWduZWQgc2hvcnQgbV9tYXhSZXRyYW5zbWl0VGlt
ZTsKLSAgICB1bnNpZ25lZCBzaG9ydCBtX21heFJldHJhbnNtaXRzOwotICAgIHVuc2lnbmVkIHNo
b3J0IG1faWQ7Ci0gICAgYm9vbCBtX29yZGVyZWQ7Ci0gICAgYm9vbCBtX25lZ290aWF0ZWQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWI4ZmUyNmZlZjA4ZWUxYzQxMWE2
ZDlmZWZkZTM1NzJkMzhlODNhNi4uMjgyN2I5MjNmYzUwMGMwYTg0MGFlNjBmNzUyNWI2MzI5MDhi
YWQ0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTExLTE0ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZyZXNoIFJUQ0RhdGFDaGFubmVsIGFic3Ry
YWN0IGluZnJhc3RydWN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjQ2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNoYW5uZWwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24tZGF0YWNoYW5uZWwuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAxNi0xMS0xMyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KIAogICAgICAgICBbSGFyZkJ1enpdIEhhcmZCdXp6U2hhcGVyIHNob3VsZCBub3QgYXNz
dW1lIG51bUdseXBocyBpcyBncmVhdGVyIHRoYW4gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFj
aGFubmVsLWV4cGVjdGVkLnR4dAppbmRleCBiM2M3OTQ5YzRjNzdlYzI1MmM0N2QxNmMyM2MyNDE3
ZTY1YThlOWQxLi44NGYxNmEwZTMyMzk2MTAxNmRjMDYyNmM3MDc0ZWFmYTM1ZDcxOTQxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRh
dGFjaGFubmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dApAQCAtMywzNSArMywx
NCBAQCBUZXN0cyBSVENEYXRhQ2hhbm5lbC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAog
Ci1QQVNTIGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoImxhYmVsIiwge21heFJldHJhbnNtaXRU
aW1lOjAsIG1heFJldHJhbnNtaXRzOjB9KTsgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yIChE
T00gRXhjZXB0aW9uIDEyKTogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBw
YXR0ZXJuLi4KK0ZBSUwgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwiLCB7bWF4UmV0
cmFuc21pdFRpbWU6MCwgbWF4UmV0cmFuc21pdHM6MH0pOyBzaG91bGQgdGhyb3cgYW4gZXhjZXB0
aW9uLiBXYXMgW29iamVjdCBSVENEYXRhQ2hhbm5lbF0uCiBQQVNTIGRjID0gcGMuY3JlYXRlRGF0
YUNoYW5uZWwoImxhYmVsMSIpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgZGMgPSBw
Yy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwyIiwge30pOyBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KIFBBU1MgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwzIiwge29yZGVyZWQ6dHJ1
ZX0pOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgZGMgPSBwYy5jcmVhdGVEYXRhQ2hh
bm5lbCgibGFiZWwzIiwge29yZGVyZWQ6ZmFsc2V9KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
CiBQQVNTIGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoImxhYmVsMyIsIHttYXhSZXRyYW5zbWl0
czowfSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBkYyA9IHBjLmNyZWF0ZURhdGFD
aGFubmVsKCJsYWJlbDMiLCB7bWF4UmV0cmFuc21pdFRpbWU6MH0pOyBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KLVBBU1MgcGMgaXMgY29ubmVjdGVkCi1QQVNTIGRjID0gcGMuY3JlYXRlRGF0YUNo
YW5uZWwoImxhYmVsIik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBkYy5yZWFkeVN0
YXRlIGlzICdjb25uZWN0aW5nJwotUEFTUyBwY19vbmRhdGFjaGFubmVsIHdhcyBjYWxsZWQKLVBB
U1MgZGNfb25vcGVuIHdhcyBjYWxsZWQKLVBBU1MgZGMucmVhZHlTdGF0ZSBpcyAnb3BlbicKLVBB
U1MgZGMubGFiZWwgaXMgJ2xhYmVsJwotUEFTUyBkYy5zZW5kKCd4eXp6eScpOyBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KLVBBU1MgZGNfb25tZXNzYWdlX3N0cmluZyB3YXMgY2FsbGVkCi1QQVNT
IGRhdGEgaXMgJ3h5enp5JwotUEFTUyBkYy5zZW5kKGJ1ZmZlcik7IGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgotUEFTUyBkY19vbm1lc3NhZ2VfYXJyYXlidWZmZXIgd2FzIGNhbGxlZAotUEFTUyBk
YXRhLmJ5dGVMZW5ndGggaXMgMgotUEFTUyBhcnJheVswXSBpcyAxNwotUEFTUyBhcnJheVsxXSBp
cyAxOQotUEFTUyBkYy5zZW5kKGFycmF5KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNT
IGRjX29ubWVzc2FnZV9hcnJheWJ1ZmZlcnZpZXcgd2FzIGNhbGxlZAotUEFTUyBkYXRhLmJ5dGVM
ZW5ndGggaXMgMgotUEFTUyBhcnJheVswXSBpcyAxMQotUEFTUyBhcnJheVsxXSBpcyAxMwotUEFT
UyBkY19vbmNsb3NlIHdhcyBjYWxsZWQKLVBBU1MgZGMucmVhZHlTdGF0ZSBpcyAnY2xvc2VkJwor
RkFJTCBUZXN0IHRpbWVkIG91dAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLmh0bWwKaW5kZXggOTYzYTdmMWM3
MzAzNTcxNTQ5OTk2Y2NmYWEwZTk4ZThmY2Y2NmYzMy4uNjFhNjgwYmRjYTIyNzZlZDJmMWFkMWU2
M2M4N2VhOTZiYzYzMjNiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNoYW5uZWwuaHRtbApAQCAtOTks
NiArOTksMTEgQEAKIAogICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwog
ICAgICAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKyAgICAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
VGVzdCB0aW1lZCBvdXQiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgICAgIH0sIDIwMDApOwogICAgICAgICA8L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogICAgIDwvYm9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzk5NDMyZmYz
YjY2Njg5YTAzOTNmZTg2MTBjMmNlY2U2YjQ1YWRjNC4uMDBiMWYzYjQ2NjBjZDJjOWU1NDNhNjkx
MTkzOWFlMmYyZjAxZTMzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTE2NSw3ICsxNjUsNiBAQCBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaHRtbAogCiAjIFdlYlJUQyBpcyBub3Qgc3VwcG9ydGVkIHlldC4KIGZhc3QvZXZlbnRzL2Nv
bnN0cnVjdG9ycy9tZWRpYS1zdHJlYW0tZXZlbnQtY29uc3RydWN0b3IuaHRtbAotZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1sIFsgU2tpcCBdCiBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWR0bWYuaHRtbCBbIFNraXAgXQogZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1ldmVudHMuaHRtbCBbIFNraXAgXQogZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2UuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>